aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2017-12-19 18:04:25 +0800
committerFabio Berger <me@fabioberger.com>2017-12-19 18:04:25 +0800
commit32396b5eca53bdc97d44f0d8683b77ab8fc1c29a (patch)
treec0ca2b026a61dfd4762219574a24cdc9617a18f8 /packages/website/ts
parentfb0b7efc4563c7c561866ab8691361ce6919160b (diff)
parentc63f76dde7267c54328d2f12f401d94484e5a91a (diff)
downloaddexon-sol-tools-32396b5eca53bdc97d44f0d8683b77ab8fc1c29a.tar
dexon-sol-tools-32396b5eca53bdc97d44f0d8683b77ab8fc1c29a.tar.gz
dexon-sol-tools-32396b5eca53bdc97d44f0d8683b77ab8fc1c29a.tar.bz2
dexon-sol-tools-32396b5eca53bdc97d44f0d8683b77ab8fc1c29a.tar.lz
dexon-sol-tools-32396b5eca53bdc97d44f0d8683b77ab8fc1c29a.tar.xz
dexon-sol-tools-32396b5eca53bdc97d44f0d8683b77ab8fc1c29a.tar.zst
dexon-sol-tools-32396b5eca53bdc97d44f0d8683b77ab8fc1c29a.zip
Merge branch 'development' into refactor/website
* development: Add additional public changes introduced to changelog Update CHANGELOG Add a comment Introduce a variable for true Remove redundant template string Implement the address derivations Add hdnode dependency Move web3 import after subprovider imports in test web3_factory Fixed https://github.com/0xProject/wiki/issues/19 by disabling re-rendering of markdownCodeBlock renderer if props haven't updated Add convenience `rebuild` command Update website calls to deposit/withdraw Add entry to CHANGELOG Fix tests in contracts Modify the etherToken wrapper methods to accept an etherTokenAddress as the first arg. Since it is becoming apparent we will be updating the canonical WETH contract, we want users of 0x.js to be able to interact with n number of etherTokens without re-instantiating for each one. Fix documentation issue where `unsubscribeAll` shown as method on every contractWrapper instance even though it's only used by Exchange and Token wrappers. # Conflicts: # packages/website/ts/components/eth_weth_conversion_button.tsx
Diffstat (limited to 'packages/website/ts')
-rw-r--r--packages/website/ts/blockchain.ts8
-rw-r--r--packages/website/ts/components/eth_weth_conversion_button.tsx4
-rw-r--r--packages/website/ts/pages/shared/markdown_code_block.tsx29
3 files changed, 25 insertions, 16 deletions
diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts
index 680eac0af..529fd032f 100644
--- a/packages/website/ts/blockchain.ts
+++ b/packages/website/ts/blockchain.ts
@@ -388,18 +388,18 @@ export class Blockchain {
const balance = await this.web3Wrapper.getBalanceInEthAsync(owner);
return balance;
}
- public async convertEthToWrappedEthTokensAsync(amount: BigNumber): Promise<void> {
+ public async convertEthToWrappedEthTokensAsync(etherTokenAddress: string, amount: BigNumber): Promise<void> {
utils.assert(!_.isUndefined(this.zeroEx), 'ZeroEx must be instantiated.');
utils.assert(this.doesUserAddressExist(), BlockchainCallErrs.UserHasNoAssociatedAddresses);
- const txHash = await this.zeroEx.etherToken.depositAsync(amount, this.userAddress);
+ const txHash = await this.zeroEx.etherToken.depositAsync(etherTokenAddress, amount, this.userAddress);
await this.showEtherScanLinkAndAwaitTransactionMinedAsync(txHash);
}
- public async convertWrappedEthTokensToEthAsync(amount: BigNumber): Promise<void> {
+ public async convertWrappedEthTokensToEthAsync(etherTokenAddress: string, amount: BigNumber): Promise<void> {
utils.assert(!_.isUndefined(this.zeroEx), 'ZeroEx must be instantiated.');
utils.assert(this.doesUserAddressExist(), BlockchainCallErrs.UserHasNoAssociatedAddresses);
- const txHash = await this.zeroEx.etherToken.withdrawAsync(amount, this.userAddress);
+ const txHash = await this.zeroEx.etherToken.withdrawAsync(etherTokenAddress, amount, this.userAddress);
await this.showEtherScanLinkAndAwaitTransactionMinedAsync(txHash);
}
public async doesContractExistAtAddressAsync(address: string) {
diff --git a/packages/website/ts/components/eth_weth_conversion_button.tsx b/packages/website/ts/components/eth_weth_conversion_button.tsx
index 351dfd9a4..e802b8782 100644
--- a/packages/website/ts/components/eth_weth_conversion_button.tsx
+++ b/packages/website/ts/components/eth_weth_conversion_button.tsx
@@ -88,12 +88,12 @@ export class EthWethConversionButton extends
let balance = tokenState.balance;
try {
if (direction === Side.Deposit) {
- await this.props.blockchain.convertEthToWrappedEthTokensAsync(value);
+ await this.props.blockchain.convertEthToWrappedEthTokensAsync(token.address, value);
const ethAmount = ZeroEx.toUnitAmount(value, constants.DECIMAL_PLACES_ETH);
this.props.dispatcher.showFlashMessage(`Successfully wrapped ${ethAmount.toString()} ETH to WETH`);
balance = balance.plus(value);
} else {
- await this.props.blockchain.convertWrappedEthTokensToEthAsync(value);
+ await this.props.blockchain.convertWrappedEthTokensToEthAsync(token.address, value);
const tokenAmount = ZeroEx.toUnitAmount(value, token.decimals);
this.props.dispatcher.showFlashMessage(`Successfully unwrapped ${tokenAmount.toString()} WETH to ETH`);
balance = balance.minus(value);
diff --git a/packages/website/ts/pages/shared/markdown_code_block.tsx b/packages/website/ts/pages/shared/markdown_code_block.tsx
index 621e5b606..aded15f0c 100644
--- a/packages/website/ts/pages/shared/markdown_code_block.tsx
+++ b/packages/website/ts/pages/shared/markdown_code_block.tsx
@@ -7,14 +7,23 @@ interface MarkdownCodeBlockProps {
language: string;
}
-export function MarkdownCodeBlock(props: MarkdownCodeBlockProps) {
- return (
- <span style={{fontSize: 16}}>
- <HighLight
- className={props.language || 'js'}
- >
- {props.literal}
- </HighLight>
- </span>
- );
+interface MarkdownCodeBlockState {}
+
+export class MarkdownCodeBlock extends React.Component<MarkdownCodeBlockProps, MarkdownCodeBlockState> {
+ // Re-rendering a codeblock causes any use selection to become de-selected. This is annoying when trying
+ // to copy-paste code examples. We therefore noop re-renders on this component if it's props haven't changed.
+ public shouldComponentUpdate(nextProps: MarkdownCodeBlockProps, nextState: MarkdownCodeBlockState) {
+ return nextProps.literal !== this.props.literal || nextProps.language !== this.props.language;
+ }
+ public render() {
+ return (
+ <span style={{fontSize: 16}}>
+ <HighLight
+ className={this.props.language || 'javascript'}
+ >
+ {this.props.literal}
+ </HighLight>
+ </span>
+ );
+ }
}