From 919fc66b9d45db8da9f67d4ed48c3374462c0bc8 Mon Sep 17 00:00:00 2001 From: Xianny <8582774+xianny@users.noreply.github.com> Date: Tue, 4 Feb 2020 15:49:45 +0800 Subject: [PATCH] Stop hardcoding contract addresses (#2461) * stop hardcoding contract addresses * update changelog * export ContractAddresses for docs --- packages/asset-swapper/CHANGELOG.json | 9 +++++++++ packages/asset-swapper/src/index.ts | 1 + .../src/quote_consumers/swap_quote_consumer.ts | 2 +- packages/asset-swapper/src/swap_quoter.ts | 2 +- packages/asset-swapper/src/types.ts | 3 +++ 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/asset-swapper/CHANGELOG.json b/packages/asset-swapper/CHANGELOG.json index c17b9f831c..a0b92836e5 100644 --- a/packages/asset-swapper/CHANGELOG.json +++ b/packages/asset-swapper/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "4.0.2", + "changes": [ + { + "note": "Allow contract addresses to be passed as optional constructor ags instead of hardcoding", + "pr": 2461 + } + ] + }, { "version": "4.0.1", "changes": [ diff --git a/packages/asset-swapper/src/index.ts b/packages/asset-swapper/src/index.ts index cc0746c41a..8e0dbd9f7f 100644 --- a/packages/asset-swapper/src/index.ts +++ b/packages/asset-swapper/src/index.ts @@ -1,3 +1,4 @@ +export { ContractAddresses } from '@0x/contract-addresses'; export { WSOpts } from '@0x/mesh-rpc-client'; export { AcceptedRejectedOrders, diff --git a/packages/asset-swapper/src/quote_consumers/swap_quote_consumer.ts b/packages/asset-swapper/src/quote_consumers/swap_quote_consumer.ts index eb1e94dd81..be11f56270 100644 --- a/packages/asset-swapper/src/quote_consumers/swap_quote_consumer.ts +++ b/packages/asset-swapper/src/quote_consumers/swap_quote_consumer.ts @@ -42,7 +42,7 @@ export class SwapQuoteConsumer implements SwapQuoteConsumerBase { const provider = providerUtils.standardizeOrThrow(supportedProvider); this.provider = provider; this.chainId = chainId; - this._contractAddresses = getContractAddressesForChainOrThrow(chainId); + this._contractAddresses = options.contractAddresses || getContractAddressesForChainOrThrow(chainId); this._exchangeConsumer = new ExchangeSwapQuoteConsumer(supportedProvider, this._contractAddresses, options); this._forwarderConsumer = new ForwarderSwapQuoteConsumer(supportedProvider, this._contractAddresses, options); } diff --git a/packages/asset-swapper/src/swap_quoter.ts b/packages/asset-swapper/src/swap_quoter.ts index f80408f60e..579744b5aa 100644 --- a/packages/asset-swapper/src/swap_quoter.ts +++ b/packages/asset-swapper/src/swap_quoter.ts @@ -159,7 +159,7 @@ export class SwapQuoter { this.orderbook = orderbook; this.expiryBufferMs = expiryBufferMs; this.permittedOrderFeeTypes = permittedOrderFeeTypes; - this._contractAddresses = getContractAddressesForChainOrThrow(chainId); + this._contractAddresses = options.contractAddresses || getContractAddressesForChainOrThrow(chainId); this._devUtilsContract = new DevUtilsContract(this._contractAddresses.devUtils, provider); this._protocolFeeUtils = new ProtocolFeeUtils(constants.PROTOCOL_FEE_UTILS_POLLING_INTERVAL_IN_MS); this._orderStateUtils = new OrderStateUtils(this._devUtilsContract); diff --git a/packages/asset-swapper/src/types.ts b/packages/asset-swapper/src/types.ts index f2497980f7..68120224ff 100644 --- a/packages/asset-swapper/src/types.ts +++ b/packages/asset-swapper/src/types.ts @@ -1,3 +1,4 @@ +import { ContractAddresses } from '@0x/migrations'; import { SignedOrder } from '@0x/types'; import { BigNumber } from '@0x/utils'; @@ -87,6 +88,7 @@ export interface SwapQuoteConsumerBase { */ export interface SwapQuoteConsumerOpts { chainId: number; + contractAddresses?: ContractAddresses; } /** @@ -198,6 +200,7 @@ export interface SwapQuoterOpts extends OrderPrunerOpts { chainId: number; orderRefreshIntervalMs: number; expiryBufferMs: number; + contractAddresses?: ContractAddresses; } /**