diff options
| author | Fabio Berger <me@fabioberger.com> | 2018-03-11 19:33:34 +0800 | 
|---|---|---|
| committer | Fabio Berger <me@fabioberger.com> | 2018-03-11 19:33:34 +0800 | 
| commit | caaa70f6302b0d84d43ca93ab014e0cf37886c0a (patch) | |
| tree | 21967186c45a0e84a0ed54d3aeffa7596aad3be0 | |
| parent | 56a8e0a09a61ca2c399c676da695bf4cd4ed63a6 (diff) | |
| download | dexon-sol-tools-caaa70f6302b0d84d43ca93ab014e0cf37886c0a.tar.gz dexon-sol-tools-caaa70f6302b0d84d43ca93ab014e0cf37886c0a.tar.zst dexon-sol-tools-caaa70f6302b0d84d43ca93ab014e0cf37886c0a.zip | |
Fix getTokenBalanceAndAllowanceAsync to take ownerAddressIfExists so that we don't sometimes pass an empty string and sometimes undefined
6 files changed, 25 insertions, 13 deletions
| diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index 3e19cb715..14582eae9 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -496,18 +496,21 @@ export class Blockchain {          );          return tokenBalanceAndAllowance;      } -    public async getTokenBalanceAndAllowanceAsync(ownerAddress: string, tokenAddress: string): Promise<BigNumber[]> { +    public async getTokenBalanceAndAllowanceAsync( +        ownerAddressIfExists: string, +        tokenAddress: string, +    ): Promise<BigNumber[]> {          utils.assert(!_.isUndefined(this._zeroEx), 'ZeroEx must be instantiated.'); -        if (_.isEmpty(ownerAddress)) { +        if (_.isUndefined(ownerAddressIfExists)) {              const zero = new BigNumber(0);              return [zero, zero];          }          let balance = new BigNumber(0);          let allowance = new BigNumber(0);          if (this._doesUserAddressExist()) { -            balance = await this._zeroEx.token.getBalanceAsync(tokenAddress, ownerAddress); -            allowance = await this._zeroEx.token.getProxyAllowanceAsync(tokenAddress, ownerAddress); +            balance = await this._zeroEx.token.getBalanceAsync(tokenAddress, ownerAddressIfExists); +            allowance = await this._zeroEx.token.getProxyAllowanceAsync(tokenAddress, ownerAddressIfExists);          }          return [balance, allowance];      } diff --git a/packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx b/packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx index 72ebe1f67..d1bdb447f 100644 --- a/packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx +++ b/packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx @@ -1,6 +1,7 @@  import { ZeroEx } from '0x.js';  import { colors } from '@0xproject/react-shared';  import { BigNumber } from '@0xproject/utils'; +import * as _ from 'lodash';  import Dialog from 'material-ui/Dialog';  import FlatButton from 'material-ui/FlatButton';  import * as React from 'react'; @@ -185,8 +186,9 @@ export class EthWethConversionDialog extends React.Component<          this.props.onCancelled();      }      private async _fetchEthTokenBalanceAsync() { +        const userAddressIfExists = _.isEmpty(this.props.userAddress) ? undefined : this.props.userAddress;          const [balance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -            this.props.userAddress, +            userAddressIfExists,              this.props.token.address,          );          if (!this._isUnmounted) { diff --git a/packages/website/ts/components/eth_wrappers.tsx b/packages/website/ts/components/eth_wrappers.tsx index 327d7bd7f..b12c637e5 100644 --- a/packages/website/ts/components/eth_wrappers.tsx +++ b/packages/website/ts/components/eth_wrappers.tsx @@ -351,8 +351,9 @@ export class EthWrappers extends React.Component<EthWrappersProps, EthWrappersSt                  [outdatedWETHAddress]: false,              },          }); +        const userAddressIfExists = _.isEmpty(this.props.userAddress) ? undefined : this.props.userAddress;          const [balance, allowance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -            this.props.userAddress, +            userAddressIfExists,              outdatedWETHAddress,          );          this.setState({ @@ -372,8 +373,9 @@ export class EthWrappers extends React.Component<EthWrappersProps, EthWrappersSt      private async _fetchWETHStateAsync() {          const tokens = _.values(this.props.tokenByAddress);          const wethToken = _.find(tokens, token => token.symbol === 'WETH'); +        const userAddressIfExists = _.isEmpty(this.props.userAddress) ? undefined : this.props.userAddress;          const [wethBalance, wethAllowance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -            this.props.userAddress, +            userAddressIfExists,              wethToken.address,          ); @@ -382,7 +384,7 @@ export class EthWrappers extends React.Component<EthWrappersProps, EthWrappersSt          const outdatedWETHStateByAddress: OutdatedWETHStateByAddress = {};          for (const address of outdatedWETHAddresses) {              const [balance, allowance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -                this.props.userAddress, +                userAddressIfExists,                  address,              );              outdatedWETHStateByAddress[address] = { @@ -423,8 +425,9 @@ export class EthWrappers extends React.Component<EthWrappersProps, EthWrappersSt      }      private async _refetchEthTokenStateAsync() {          const etherToken = this._getEthToken(); +        const userAddressIfExists = _.isEmpty(this.props.userAddress) ? undefined : this.props.userAddress;          const [balance, allowance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -            this.props.userAddress, +            userAddressIfExists,              etherToken.address,          );          this.setState({ diff --git a/packages/website/ts/components/generate_order/generate_order_form.tsx b/packages/website/ts/components/generate_order/generate_order_form.tsx index 26fa904fe..ea1d57a7b 100644 --- a/packages/website/ts/components/generate_order/generate_order_form.tsx +++ b/packages/website/ts/components/generate_order/generate_order_form.tsx @@ -237,8 +237,9 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G          // Check if all required inputs were supplied          const debitToken = this.props.sideToAssetToken[Side.Deposit]; +        const userAddressIfExists = _.isEmpty(this.props.userAddress) ? undefined : this.props.userAddress;          const [debitBalance, debitAllowance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -            this.props.userAddress, +            userAddressIfExists,              debitToken.address,          );          const receiveAmount = this.props.sideToAssetToken[Side.Receive].amount; diff --git a/packages/website/ts/components/inputs/token_amount_input.tsx b/packages/website/ts/components/inputs/token_amount_input.tsx index 53248c065..b55840fc4 100644 --- a/packages/website/ts/components/inputs/token_amount_input.tsx +++ b/packages/website/ts/components/inputs/token_amount_input.tsx @@ -109,8 +109,9 @@ export class TokenAmountInput extends React.Component<TokenAmountInputProps, Tok          this.setState({              isBalanceAndAllowanceLoaded: false,          }); +        const userAddressIfExists = _.isEmpty(userAddress) ? undefined : userAddress;          const [balance, allowance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -            userAddress, +            userAddressIfExists,              tokenAddress,          );          if (!this._isUnmounted) { diff --git a/packages/website/ts/components/token_balances.tsx b/packages/website/ts/components/token_balances.tsx index fe27bfa01..894e0721f 100644 --- a/packages/website/ts/components/token_balances.tsx +++ b/packages/website/ts/components/token_balances.tsx @@ -687,9 +687,10 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala      }      private async _fetchBalancesAndAllowancesAsync(tokenAddresses: string[]) {          const trackedTokenStateByAddress = this.state.trackedTokenStateByAddress; +        const userAddressIfExists = _.isEmpty(this.props.userAddress) ? undefined : this.props.userAddress;          for (const tokenAddress of tokenAddresses) {              const [balance, allowance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -                this.props.userAddress, +                userAddressIfExists,                  tokenAddress,              );              trackedTokenStateByAddress[tokenAddress] = { @@ -716,8 +717,9 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala          return trackedTokenStateByAddress;      }      private async _refetchTokenStateAsync(tokenAddress: string) { +        const userAddressIfExists = _.isEmpty(this.props.userAddress) ? undefined : this.props.userAddress;          const [balance, allowance] = await this.props.blockchain.getTokenBalanceAndAllowanceAsync( -            this.props.userAddress, +            userAddressIfExists,              tokenAddress,          );          this.setState({ | 
