Disable time conditions in Tx UI #6445
This commit is contained in:
parent
b74065a471
commit
0e43ce6e07
@ -188,6 +188,10 @@ export default class LocalAccountsMiddleware extends Middleware {
|
||||
return [];
|
||||
});
|
||||
|
||||
register('parity_lockedHardwareAccountsInfo', () => {
|
||||
return [];
|
||||
});
|
||||
|
||||
register('parity_hashContent', () => {
|
||||
throw new Error('Functionality unavailable on a public wallet.');
|
||||
});
|
||||
|
@ -66,6 +66,7 @@ class DeployContract extends Component {
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
availability: PropTypes.string.isRequired,
|
||||
accounts: PropTypes.object.isRequired,
|
||||
abi: PropTypes.string,
|
||||
code: PropTypes.string,
|
||||
@ -331,6 +332,7 @@ class DeployContract extends Component {
|
||||
|
||||
return (
|
||||
<Extras
|
||||
availability={ this.props.availability }
|
||||
gasStore={ this.gasStore }
|
||||
hideData
|
||||
isEth
|
||||
@ -490,9 +492,11 @@ class DeployContract extends Component {
|
||||
}
|
||||
|
||||
function mapStateToProps (state) {
|
||||
const { gasLimit } = state.nodeStatus;
|
||||
const { gasLimit, nodeKind = {} } = state.nodeStatus;
|
||||
const { availability = 'unknown' } = nodeKind;
|
||||
|
||||
return {
|
||||
availability,
|
||||
gasLimit
|
||||
};
|
||||
}
|
||||
|
@ -22,15 +22,19 @@ import styles from '../executeContract.css';
|
||||
|
||||
export default class AdvancedStep extends Component {
|
||||
static propTypes = {
|
||||
availability: PropTypes.string.isRequired,
|
||||
gasStore: PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
render () {
|
||||
const { gasStore } = this.props;
|
||||
const { availability, gasStore } = this.props;
|
||||
|
||||
return (
|
||||
<div className={ styles.gaseditor }>
|
||||
<GasPriceEditor store={ gasStore } />
|
||||
<GasPriceEditor
|
||||
availability={ availability }
|
||||
store={ gasStore }
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
@ -57,6 +57,7 @@ class ExecuteContract extends Component {
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
availability: PropTypes.string.isRequired,
|
||||
accounts: PropTypes.object,
|
||||
contract: PropTypes.object.isRequired,
|
||||
fromAddress: PropTypes.string,
|
||||
@ -198,7 +199,7 @@ class ExecuteContract extends Component {
|
||||
}
|
||||
|
||||
renderStep () {
|
||||
const { accounts, contract, fromAddress, onFromAddressChange } = this.props;
|
||||
const { availability, accounts, contract, fromAddress, onFromAddressChange } = this.props;
|
||||
const { step } = this.state;
|
||||
|
||||
if (step === STEP_DETAILS) {
|
||||
@ -218,7 +219,10 @@ class ExecuteContract extends Component {
|
||||
}
|
||||
|
||||
return (
|
||||
<AdvancedStep gasStore={ this.gasStore } />
|
||||
<AdvancedStep
|
||||
availability={ availability }
|
||||
gasStore={ this.gasStore }
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@ -337,9 +341,10 @@ class ExecuteContract extends Component {
|
||||
}
|
||||
|
||||
function mapStateToProps (state) {
|
||||
const { gasLimit } = state.nodeStatus;
|
||||
const { gasLimit, nodeKind = {} } = state.nodeStatus;
|
||||
const { availability = 'unknown' } = nodeKind;
|
||||
|
||||
return { gasLimit };
|
||||
return { availability, gasLimit };
|
||||
}
|
||||
|
||||
export default connect(
|
||||
|
@ -23,6 +23,7 @@ import styles from '../transfer.css';
|
||||
|
||||
export default class Extras extends Component {
|
||||
static propTypes = {
|
||||
availability: PropTypes.string.isRequired,
|
||||
data: PropTypes.string,
|
||||
dataError: PropTypes.string,
|
||||
hideData: PropTypes.bool,
|
||||
@ -38,13 +39,14 @@ export default class Extras extends Component {
|
||||
};
|
||||
|
||||
render () {
|
||||
const { gasStore, onChange } = this.props;
|
||||
const { availability, gasStore, onChange } = this.props;
|
||||
|
||||
return (
|
||||
<Form>
|
||||
{ this.renderData() }
|
||||
<div className={ styles.gaseditor }>
|
||||
<GasPriceEditor
|
||||
availability={ availability }
|
||||
store={ gasStore }
|
||||
onChange={ onChange }
|
||||
/>
|
||||
|
@ -42,6 +42,7 @@ class Transfer extends Component {
|
||||
}
|
||||
|
||||
static propTypes = {
|
||||
availability: PropTypes.string.isRequired,
|
||||
newError: PropTypes.func.isRequired,
|
||||
gasLimit: PropTypes.object.isRequired,
|
||||
|
||||
@ -186,6 +187,7 @@ class Transfer extends Component {
|
||||
onChange={ this.store.onUpdateDetails }
|
||||
total={ total }
|
||||
totalError={ totalError }
|
||||
availability={ this.props.availability }
|
||||
/>
|
||||
);
|
||||
}
|
||||
@ -291,13 +293,14 @@ function mapStateToProps (initState, initProps) {
|
||||
: null;
|
||||
|
||||
return (state) => {
|
||||
const { gasLimit } = state.nodeStatus;
|
||||
const { gasLimit, nodeKind = {} } = state.nodeStatus;
|
||||
const { balances } = state;
|
||||
const { availability = 'unknown' } = nodeKind;
|
||||
|
||||
const balance = balances[address];
|
||||
const sendersBalances = senders ? pick(balances, Object.keys(senders)) : null;
|
||||
|
||||
return { balance, gasLimit, senders, sendersBalances, tokens, wallet };
|
||||
return { availability, balance, gasLimit, senders, sendersBalances, tokens, wallet };
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,8 @@ export default class GasPriceEditor extends Component {
|
||||
static propTypes = {
|
||||
children: PropTypes.node,
|
||||
onChange: PropTypes.func,
|
||||
store: PropTypes.object.isRequired
|
||||
store: PropTypes.object.isRequired,
|
||||
availability: PropTypes.string.isRequired
|
||||
}
|
||||
|
||||
static Store = Store;
|
||||
@ -72,7 +73,7 @@ export default class GasPriceEditor extends Component {
|
||||
render () {
|
||||
const { api } = this.context;
|
||||
const { children, store } = this.props;
|
||||
const { conditionType, errorGas, errorPrice, errorTotal, estimated, gas, histogram, price, priceDefault, totalValue } = store;
|
||||
const { errorGas, errorPrice, errorTotal, estimated, gas, histogram, price, priceDefault, totalValue } = store;
|
||||
|
||||
const eth = api.util.fromWei(totalValue).toFormat();
|
||||
const gasLabel = `gas (estimated: ${new BigNumber(estimated).toFormat()})`;
|
||||
@ -80,18 +81,7 @@ export default class GasPriceEditor extends Component {
|
||||
|
||||
return (
|
||||
<div className={ styles.container }>
|
||||
<RadioButtons
|
||||
className={ styles.conditionRadio }
|
||||
label={
|
||||
<FormattedMessage
|
||||
id='txEditor.condition.label'
|
||||
defaultMessage='Condition where transaction activates'
|
||||
/>
|
||||
}
|
||||
onChange={ this.onChangeConditionType }
|
||||
value={ conditionType }
|
||||
values={ CONDITION_VALUES }
|
||||
/>
|
||||
{ this.renderConditionRadioButtons() }
|
||||
{ this.renderConditions() }
|
||||
|
||||
<div className={ styles.graphContainer }>
|
||||
@ -148,10 +138,35 @@ export default class GasPriceEditor extends Component {
|
||||
);
|
||||
}
|
||||
|
||||
renderConditionRadioButtons () {
|
||||
const { availability } = this.props;
|
||||
const { conditionType } = this.props.store;
|
||||
|
||||
if (availability !== 'personal') {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<RadioButtons
|
||||
className={ styles.conditionRadio }
|
||||
label={
|
||||
<FormattedMessage
|
||||
id='txEditor.condition.label'
|
||||
defaultMessage='Condition where transaction activates'
|
||||
/>
|
||||
}
|
||||
onChange={ this.onChangeConditionType }
|
||||
value={ conditionType }
|
||||
values={ CONDITION_VALUES }
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
renderConditions () {
|
||||
const { availability } = this.props;
|
||||
const { conditionType, condition, conditionBlockError } = this.props.store;
|
||||
|
||||
if (conditionType === CONDITIONS.NONE) {
|
||||
if (conditionType === CONDITIONS.NONE || availability !== 'personal') {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,7 @@ class TransactionPending extends Component {
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
availability: PropTypes.string.isRequired,
|
||||
accounts: PropTypes.object.isRequired,
|
||||
className: PropTypes.string,
|
||||
date: PropTypes.instanceOf(Date).isRequired,
|
||||
@ -140,11 +141,11 @@ class TransactionPending extends Component {
|
||||
}
|
||||
|
||||
renderTxEditor () {
|
||||
const { className } = this.props;
|
||||
const { availability, className } = this.props;
|
||||
|
||||
return (
|
||||
<div className={ `${styles.container} ${className}` }>
|
||||
<GasPriceEditor store={ this.gasStore }>
|
||||
<GasPriceEditor availability={ availability } store={ this.gasStore }>
|
||||
<Button
|
||||
label={
|
||||
<FormattedMessage
|
||||
@ -190,9 +191,12 @@ class TransactionPending extends Component {
|
||||
}
|
||||
|
||||
function mapStateToProps (state) {
|
||||
const { nodeKind = {} } = state.nodeStatus;
|
||||
const { accounts } = state.personal;
|
||||
const { availability = 'unknown' } = nodeKind;
|
||||
|
||||
return {
|
||||
availability,
|
||||
accounts
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user