// Copyright 2015, 2016 Ethcore (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . import React, { Component, PropTypes } from 'react'; import { observer } from 'mobx-react'; import Account from '../Account'; import TransactionPendingForm from '../TransactionPendingForm'; import TxHashLink from '../TxHashLink'; import styles from './signRequest.css'; @observer export default class SignRequest extends Component { static propTypes = { id: PropTypes.object.isRequired, address: PropTypes.string.isRequired, hash: PropTypes.string.isRequired, isFinished: PropTypes.bool.isRequired, isSending: PropTypes.bool, onConfirm: PropTypes.func, onReject: PropTypes.func, status: PropTypes.string, className: PropTypes.string, isTest: PropTypes.bool.isRequired, store: PropTypes.object.isRequired }; componentWillMount () { const { address, store } = this.props; store.fetchBalance(address); } render () { const { className } = this.props; return (
{ this.renderDetails() } { this.renderActions() }
); } renderDetails () { const { address, hash, isTest, store } = this.props; const balance = store.balances[address]; if (!balance) { return
; } return (

Dapp is requesting to sign arbitrary transaction using this account.

Confirm the transaction only if you trust the app.

); } renderActions () { const { address, isFinished, status } = this.props; if (isFinished) { if (status === 'confirmed') { const { hash, isTest } = this.props; return (
Confirmed
Transaction hash:
); } return (
Rejected
); } return ( ); } onConfirm = password => { const { id } = this.props; this.props.onConfirm({ id, password }); } onReject = () => { this.props.onReject(this.props.id); } }