aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
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 b56a2f949..938e61805 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);
}
@@ -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>;
};