diff options
author | Leonid <logvinov.leon@gmail.com> | 2017-07-04 07:24:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-04 07:24:22 +0800 |
commit | 2892f45ab7fd4b2b3d57a3ce7775a738a00026cb (patch) | |
tree | fb5b7fd517985f905159ffd7ec5f3e5a197ef710 /src | |
parent | 997964f3e24eda9287a6d4a9c56d8e90b72f0789 (diff) | |
parent | e6fcf9cdbf8b6159a6af2ecc7dfcf8a65ee2d638 (diff) | |
download | dexon-sol-tools-2892f45ab7fd4b2b3d57a3ce7775a738a00026cb.tar dexon-sol-tools-2892f45ab7fd4b2b3d57a3ce7775a738a00026cb.tar.gz dexon-sol-tools-2892f45ab7fd4b2b3d57a3ce7775a738a00026cb.tar.bz2 dexon-sol-tools-2892f45ab7fd4b2b3d57a3ce7775a738a00026cb.tar.lz dexon-sol-tools-2892f45ab7fd4b2b3d57a3ce7775a738a00026cb.tar.xz dexon-sol-tools-2892f45ab7fd4b2b3d57a3ce7775a738a00026cb.tar.zst dexon-sol-tools-2892f45ab7fd4b2b3d57a3ce7775a738a00026cb.zip |
Merge pull request #89 from 0xProject/proxy
Add zeroEx.proxy
Diffstat (limited to 'src')
-rw-r--r-- | src/0x.ts | 12 | ||||
-rw-r--r-- | src/contract_wrappers/exchange_wrapper.ts | 8 | ||||
-rw-r--r-- | src/contract_wrappers/proxy_wrapper.ts | 12 | ||||
-rw-r--r-- | src/types.ts | 3 |
4 files changed, 26 insertions, 9 deletions
@@ -52,7 +52,11 @@ export class ZeroEx { * wrapped ETH ERC20 token smart contract. */ public etherToken: EtherTokenWrapper; - private _proxyWrapper: ProxyWrapper; + /** + * An instance of the ProxyWrapper class containing methods for interacting with the + * proxy smart contract. + */ + public proxy: ProxyWrapper; private _web3Wrapper: Web3Wrapper; /** * Verifies that the elliptic curve signature `signature` was generated @@ -150,8 +154,8 @@ export class ZeroEx { constructor(provider: Web3Provider) { this._web3Wrapper = new Web3Wrapper(provider); this.token = new TokenWrapper(this._web3Wrapper); - this._proxyWrapper = new ProxyWrapper(this._web3Wrapper); - this.exchange = new ExchangeWrapper(this._web3Wrapper, this.token, this._proxyWrapper); + this.proxy = new ProxyWrapper(this._web3Wrapper); + this.exchange = new ExchangeWrapper(this._web3Wrapper, this.token, this.proxy); this.tokenRegistry = new TokenRegistryWrapper(this._web3Wrapper); this.etherToken = new EtherTokenWrapper(this._web3Wrapper, this.token); } @@ -165,7 +169,7 @@ export class ZeroEx { await this.exchange.invalidateContractInstancesAsync(); this.tokenRegistry.invalidateContractInstance(); this.token.invalidateContractInstances(); - this._proxyWrapper.invalidateContractInstance(); + this.proxy.invalidateContractInstance(); } /** * Get user Ethereum addresses available through the supplied web3 instance available for sending transactions. diff --git a/src/contract_wrappers/exchange_wrapper.ts b/src/contract_wrappers/exchange_wrapper.ts index 57a116aea..6726f3eac 100644 --- a/src/contract_wrappers/exchange_wrapper.ts +++ b/src/contract_wrappers/exchange_wrapper.ts @@ -99,7 +99,7 @@ export class ExchangeWrapper extends ContractWrapper { * subtracting the unavailable amount from the total order takerAmount. * @param orderHash The hex encoded orderHash for which you would like to retrieve the * unavailable takerAmount. - * @param exchangeContractAddress The hex encoded address of the Exchange contract to use. + * @param exchangeContractAddress The hex encoded address of the Exchange contract to call. * @return The amount of the order (in taker tokens) that has either been filled or canceled. */ public async getUnavailableTakerAmountAsync(orderHash: string, @@ -115,7 +115,7 @@ export class ExchangeWrapper extends ContractWrapper { /** * Retrieve the takerAmount of an order that has already been filled. * @param orderHash The hex encoded orderHash for which you would like to retrieve the filled takerAmount. - * @param exchangeContractAddress The hex encoded address of the Exchange contract to use. + * @param exchangeContractAddress The hex encoded address of the Exchange contract to call. * @return The amount of the order (in taker tokens) that has already been filled. */ public async getFilledTakerAmountAsync(orderHash: string, @@ -132,7 +132,7 @@ export class ExchangeWrapper extends ContractWrapper { * Retrieve the takerAmount of an order that has been cancelled. * @param orderHash The hex encoded orderHash for which you would like to retrieve the * cancelled takerAmount. - * @param exchangeContractAddress The hex encoded address of the Exchange contract to use. + * @param exchangeContractAddress The hex encoded address of the Exchange contract to call. * @return The amount of the order (in taker tokens) that has been cancelled. */ public async getCanceledTakerAmountAsync(orderHash: string, @@ -578,7 +578,7 @@ export class ExchangeWrapper extends ContractWrapper { * @param subscriptionOpts Subscriptions options that let you configure the subscription. * @param indexFilterValues An object where the keys are indexed args returned by the event and * the value is the value you are interested in. E.g `{maker: aUserAddressHex}` - * @param exchangeContractAddress The hex encoded address of the Exchange contract to use. + * @param exchangeContractAddress The hex encoded address of the Exchange contract to call. * @return ContractEventEmitter object */ public async subscribeAsync(eventName: ExchangeEvents, subscriptionOpts: SubscriptionOpts, diff --git a/src/contract_wrappers/proxy_wrapper.ts b/src/contract_wrappers/proxy_wrapper.ts index 862bce131..bdf163f35 100644 --- a/src/contract_wrappers/proxy_wrapper.ts +++ b/src/contract_wrappers/proxy_wrapper.ts @@ -14,7 +14,7 @@ export class ProxyWrapper extends ContractWrapper { } /** * Check if the Exchange contract address is authorized by the Proxy contract. - * @param exchangeContractAddress The hex encoded address of the Exchange contract to use. + * @param exchangeContractAddress The hex encoded address of the Exchange contract to call. * @return Whether the exchangeContractAddress is authorized. */ public async isAuthorizedAsync(exchangeContractAddress: string): Promise<boolean> { @@ -22,6 +22,16 @@ export class ProxyWrapper extends ContractWrapper { const isAuthorized = await proxyContractInstance.authorized.call(exchangeContractAddress); return isAuthorized; } + /** + * Get the list of all Exchange contract addresses authorized by the Proxy contract. + * @param exchangeContractAddress The hex encoded address of the Exchange contract to call. + * @return The list of authorized addresses. + */ + public async getAuthorizedAddressesAsync(exchangeContractAddress: string): Promise<string[]> { + const proxyContractInstance = await this._getProxyContractAsync(); + const authorizedAddresses = await proxyContractInstance.getAuthorizedAddresses.call(); + return authorizedAddresses; + } private async _getProxyContractAsync(): Promise<ProxyContract> { if (!_.isUndefined(this._proxyContractIfExists)) { return this._proxyContractIfExists; diff --git a/src/types.ts b/src/types.ts index b7ee9c946..8047f4536 100644 --- a/src/types.ts +++ b/src/types.ts @@ -149,6 +149,9 @@ export interface EtherTokenContract extends ContractInstance { } export interface ProxyContract extends ContractInstance { + getAuthorizedAddresses: { + call: () => Promise<string[]>; + }; authorized: { call: (address: string) => Promise<boolean>; }; |