aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeonid <logvinov.leon@gmail.com>2017-07-04 07:37:15 +0800
committerGitHub <noreply@github.com>2017-07-04 07:37:15 +0800
commit6d234c09afca0efd37a7e4f27d7881e09465b86d (patch)
tree7d5091d68bc1d12194b24f7a5b940deaddfd4199 /src
parent5a8eb77ff0a6b00e4df5d933426e451c8ef09f7b (diff)
parent2892f45ab7fd4b2b3d57a3ce7775a738a00026cb (diff)
downloaddexon-sol-tools-6d234c09afca0efd37a7e4f27d7881e09465b86d.tar
dexon-sol-tools-6d234c09afca0efd37a7e4f27d7881e09465b86d.tar.gz
dexon-sol-tools-6d234c09afca0efd37a7e4f27d7881e09465b86d.tar.bz2
dexon-sol-tools-6d234c09afca0efd37a7e4f27d7881e09465b86d.tar.lz
dexon-sol-tools-6d234c09afca0efd37a7e4f27d7881e09465b86d.tar.xz
dexon-sol-tools-6d234c09afca0efd37a7e4f27d7881e09465b86d.tar.zst
dexon-sol-tools-6d234c09afca0efd37a7e4f27d7881e09465b86d.zip
Merge branch 'master' into subscribe-token
Diffstat (limited to 'src')
-rw-r--r--src/0x.ts12
-rw-r--r--src/contract_wrappers/exchange_wrapper.ts8
-rw-r--r--src/contract_wrappers/proxy_wrapper.ts12
-rw-r--r--src/types.ts3
4 files changed, 26 insertions, 9 deletions
diff --git a/src/0x.ts b/src/0x.ts
index e266eff7d..1b9334942 100644
--- a/src/0x.ts
+++ b/src/0x.ts
@@ -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);
}
@@ -164,8 +168,8 @@ export class ZeroEx {
this._web3Wrapper.setProvider(provider);
await this.exchange.invalidateContractInstancesAsync();
this.tokenRegistry.invalidateContractInstance();
- this._proxyWrapper.invalidateContractInstance();
await this.token.invalidateContractInstancesAsync();
+ 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 722910a61..c249248f6 100644
--- a/src/contract_wrappers/exchange_wrapper.ts
+++ b/src/contract_wrappers/exchange_wrapper.ts
@@ -100,7 +100,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,
@@ -116,7 +116,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,
@@ -133,7 +133,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,
@@ -579,7 +579,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 21352648a..fbd450eeb 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -151,6 +151,9 @@ export interface EtherTokenContract extends ContractInstance {
}
export interface ProxyContract extends ContractInstance {
+ getAuthorizedAddresses: {
+ call: () => Promise<string[]>;
+ };
authorized: {
call: (address: string) => Promise<boolean>;
};