diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-07-04 05:57:40 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-07-04 06:03:33 +0800 |
commit | 1275f243a3d2e790919d8dfe09b970d7bce8a0c5 (patch) | |
tree | dfb6e0bd08f26ee824c97070d3ddb67c0caa33b7 | |
parent | dacf19ecaeb6a31c2f7d6b19aa6a517328e5d15f (diff) | |
download | dexon-sol-tools-1275f243a3d2e790919d8dfe09b970d7bce8a0c5.tar dexon-sol-tools-1275f243a3d2e790919d8dfe09b970d7bce8a0c5.tar.gz dexon-sol-tools-1275f243a3d2e790919d8dfe09b970d7bce8a0c5.tar.bz2 dexon-sol-tools-1275f243a3d2e790919d8dfe09b970d7bce8a0c5.tar.lz dexon-sol-tools-1275f243a3d2e790919d8dfe09b970d7bce8a0c5.tar.xz dexon-sol-tools-1275f243a3d2e790919d8dfe09b970d7bce8a0c5.tar.zst dexon-sol-tools-1275f243a3d2e790919d8dfe09b970d7bce8a0c5.zip |
Add zeroEx.proxy.getAuthorizedAddressesAsync and tests
-rw-r--r-- | src/contract_wrappers/proxy_wrapper.ts | 10 | ||||
-rw-r--r-- | src/types.ts | 3 | ||||
-rw-r--r-- | test/proxy_wrapper_test.ts | 11 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/contract_wrappers/proxy_wrapper.ts b/src/contract_wrappers/proxy_wrapper.ts index 862bce131..f74c145bf 100644 --- a/src/contract_wrappers/proxy_wrapper.ts +++ b/src/contract_wrappers/proxy_wrapper.ts @@ -22,6 +22,16 @@ export class ProxyWrapper extends ContractWrapper { const isAuthorized = await proxyContractInstance.authorized.call(exchangeContractAddress); return isAuthorized; } + /** + * Get the list of all exchange addresses authorized by the Proxy contract. + * @param exchangeContractAddress The hex encoded address of the Exchange contract to use. + * @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 2af778677..01c22c5ad 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>; }; diff --git a/test/proxy_wrapper_test.ts b/test/proxy_wrapper_test.ts index ecda09e57..c60159b81 100644 --- a/test/proxy_wrapper_test.ts +++ b/test/proxy_wrapper_test.ts @@ -9,9 +9,11 @@ const expect = chai.expect; describe('ProxyWrapper', () => { let zeroEx: ZeroEx; + let exchangeContractAddress: string; before(async () => { const web3 = web3Factory.create(); zeroEx = new ZeroEx(web3.currentProvider); + [exchangeContractAddress] = await zeroEx.exchange.getAvailableContractAddressesAsync(); }); describe('#isAuthorizedAsync', () => { it('should return false if the address is not authorized', async () => { @@ -19,4 +21,13 @@ describe('ProxyWrapper', () => { expect(isAuthorized).to.be.false(); }); }); + describe('#getAuthorizedAddressesAsync', () => { + it('should return the list of authorized addresses', async () => { + const authorizedAddresses = await zeroEx.proxy.getAuthorizedAddressesAsync(exchangeContractAddress); + for (const authorizedAddress of authorizedAddresses) { + const isAuthorized = await zeroEx.proxy.isAuthorizedAsync(authorizedAddress); + expect(isAuthorized).to.be.true(); + } + }); + }); }); |