aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-07-04 05:57:40 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-07-04 06:03:33 +0800
commit1275f243a3d2e790919d8dfe09b970d7bce8a0c5 (patch)
treedfb6e0bd08f26ee824c97070d3ddb67c0caa33b7
parentdacf19ecaeb6a31c2f7d6b19aa6a517328e5d15f (diff)
downloaddexon-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.ts10
-rw-r--r--src/types.ts3
-rw-r--r--test/proxy_wrapper_test.ts11
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();
+ }
+ });
+ });
});