aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeonid <logvinov.leon@gmail.com>2017-07-04 07:24:22 +0800
committerGitHub <noreply@github.com>2017-07-04 07:24:22 +0800
commit2892f45ab7fd4b2b3d57a3ce7775a738a00026cb (patch)
treefb5b7fd517985f905159ffd7ec5f3e5a197ef710 /src
parent997964f3e24eda9287a6d4a9c56d8e90b72f0789 (diff)
parente6fcf9cdbf8b6159a6af2ecc7dfcf8a65ee2d638 (diff)
downloaddexon-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.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>;
};