diff --git a/js/src/ui/Form/InputAddress/inputAddress.js b/js/src/ui/Form/InputAddress/inputAddress.js index c685081e0..ec70502c0 100644 --- a/js/src/ui/Form/InputAddress/inputAddress.js +++ b/js/src/ui/Form/InputAddress/inputAddress.js @@ -14,13 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Parity. If not, see . -import BigNumber from 'bignumber.js'; import React, { Component, PropTypes } from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import util from '~/api/util'; import { nodeOrStringProptype } from '~/util/proptypes'; +import { isNullAddress } from '~/util/validation'; import IdentityIcon from '../../IdentityIcon'; import Input from '../Input'; @@ -69,7 +69,7 @@ class InputAddress extends Component { classes.push(!icon ? styles.inputEmpty : styles.input); const containerClasses = [ styles.container ]; - const nullName = value && new BigNumber(value).eq(0) ? 'null' : null; + const nullName = (disabled || readOnly) && isNullAddress(value) ? 'null' : null; if (small) { containerClasses.push(styles.small); diff --git a/js/src/ui/IdentityIcon/identityIcon.js b/js/src/ui/IdentityIcon/identityIcon.js index 25fd7d154..5ab1651ec 100644 --- a/js/src/ui/IdentityIcon/identityIcon.js +++ b/js/src/ui/IdentityIcon/identityIcon.js @@ -14,13 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Parity. If not, see . -import BigNumber from 'bignumber.js'; import React, { Component, PropTypes } from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import { createIdentityImg } from '~/api/util/identity'; -import { ContractIcon } from '../Icons'; +import { isNullAddress } from '~/util/validation'; +import { CancelIcon, ContractIcon } from '../Icons'; import styles from './identityIcon.css'; @@ -108,19 +108,20 @@ class IdentityIcon extends Component { return ( ); - } else if (new BigNumber(address).eq(0)) { + } else if (isNullAddress(address)) { return ( -
@@ -130,6 +131,7 @@ class IdentityIcon extends Component { return ( diff --git a/js/src/ui/IdentityName/identityName.js b/js/src/ui/IdentityName/identityName.js index 47c190f44..45e864a75 100644 --- a/js/src/ui/IdentityName/identityName.js +++ b/js/src/ui/IdentityName/identityName.js @@ -14,11 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Parity. If not, see . -import BigNumber from 'bignumber.js'; import React, { Component, PropTypes } from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; +import { isNullAddress } from '~/util/validation'; import ShortenedHash from '../ShortenedHash'; const defaultName = 'UNNAMED'; @@ -43,7 +43,7 @@ class IdentityName extends Component { return null; } - const nullName = new BigNumber(address || 0).eq(0) ? 'null' : null; + const nullName = isNullAddress(address) ? 'null' : null; const addressFallback = nullName || (shorten ? () : address); const fallback = unknown ? defaultName : addressFallback; const isUuid = account && account.name === account.uuid; diff --git a/js/src/ui/MethodDecoding/methodDecoding.css b/js/src/ui/MethodDecoding/methodDecoding.css index c606ab853..adb899e1c 100644 --- a/js/src/ui/MethodDecoding/methodDecoding.css +++ b/js/src/ui/MethodDecoding/methodDecoding.css @@ -75,7 +75,7 @@ font-family: inherit !important; } -.inputs img { +.inputs [data-address-img] { position: absolute; top: -16px; } diff --git a/js/src/util/constants.js b/js/src/util/constants.js index 4e2a073f1..109c060dd 100644 --- a/js/src/util/constants.js +++ b/js/src/util/constants.js @@ -19,8 +19,11 @@ const DEFAULT_GASPRICE = '20000000000'; const MAX_GAS_ESTIMATION = '50000000'; +const NULL_ADDRESS = '0000000000000000000000000000000000000000'; + export { DEFAULT_GAS, DEFAULT_GASPRICE, - MAX_GAS_ESTIMATION + MAX_GAS_ESTIMATION, + NULL_ADDRESS }; diff --git a/js/src/util/validation.js b/js/src/util/validation.js index 75802ed5f..6838c2e71 100644 --- a/js/src/util/validation.js +++ b/js/src/util/validation.js @@ -18,6 +18,8 @@ import BigNumber from 'bignumber.js'; import util from '~/api/util'; +import { NULL_ADDRESS } from './constants'; + export const ERRORS = { invalidAddress: 'address is an invalid network address', invalidAmount: 'the supplied amount should be a valid positive number', @@ -174,3 +176,11 @@ export function validateUint (value) { valueError }; } + +export function isNullAddress (address) { + if (address && address.substr(0, 2) === '0x') { + return isNullAddress(address.substr(2)); + } + + return address === NULL_ADDRESS; +} diff --git a/js/src/views/Dapps/dappsStore.js b/js/src/views/Dapps/dappsStore.js index e167331a4..42342aff3 100644 --- a/js/src/views/Dapps/dappsStore.js +++ b/js/src/views/Dapps/dappsStore.js @@ -46,6 +46,7 @@ export default class DappsStore { constructor (api) { this._api = api; + this.readDisplayApps(); this.loadExternalOverlay(); this.loadApps(); this.subscribeToChanges();