Introduce new contract-addresses package and use it everywhere
This commit is contained in:
parent
fa346d9461
commit
1e9ea09f08
@ -37,6 +37,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@0xproject/assert": "^1.0.13",
|
"@0xproject/assert": "^1.0.13",
|
||||||
"@0xproject/connect": "^3.0.1",
|
"@0xproject/connect": "^3.0.1",
|
||||||
|
"@0xproject/contract-addresses": "^1.0.0",
|
||||||
"@0xproject/contract-wrappers": "^2.0.2",
|
"@0xproject/contract-wrappers": "^2.0.2",
|
||||||
"@0xproject/json-schemas": "^1.0.7",
|
"@0xproject/json-schemas": "^1.0.7",
|
||||||
"@0xproject/order-utils": "^1.0.7",
|
"@0xproject/order-utils": "^1.0.7",
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { getContractAddressesForNetwork } from '@0xproject/contract-addresses';
|
||||||
import { ContractWrappers } from '@0xproject/contract-wrappers';
|
import { ContractWrappers } from '@0xproject/contract-wrappers';
|
||||||
import { schemas } from '@0xproject/json-schemas';
|
import { schemas } from '@0xproject/json-schemas';
|
||||||
import { SignedOrder } from '@0xproject/order-utils';
|
import { SignedOrder } from '@0xproject/order-utils';
|
||||||
@ -109,17 +110,7 @@ export class AssetBuyer {
|
|||||||
this.expiryBufferSeconds = expiryBufferSeconds;
|
this.expiryBufferSeconds = expiryBufferSeconds;
|
||||||
this._contractWrappers = new ContractWrappers(this.provider, {
|
this._contractWrappers = new ContractWrappers(this.provider, {
|
||||||
networkId,
|
networkId,
|
||||||
// TODO(albrow): Load in real contract addresses here.
|
contractAddresses: getContractAddressesForNetwork(networkId),
|
||||||
contractAddresses: {
|
|
||||||
erc20Proxy: '',
|
|
||||||
erc721Proxy: '',
|
|
||||||
zrxToken: '',
|
|
||||||
etherToken: '',
|
|
||||||
exchange: '',
|
|
||||||
assetProxyOwner: '',
|
|
||||||
forwarder: '',
|
|
||||||
orderValidator: '',
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
37
packages/contract-addresses/package.json
Normal file
37
packages/contract-addresses/package.json
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"name": "@0xproject/contract-addresses",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.12"
|
||||||
|
},
|
||||||
|
"description": "Addresses of deployed 0x contracts on Ethereum mainnet and testnets",
|
||||||
|
"main": "lib/src/index.js",
|
||||||
|
"directories": {
|
||||||
|
"test": "test"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "yarn tsc -b",
|
||||||
|
"build:ci": "yarn build",
|
||||||
|
"clean": "shx rm -rf lib"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/0xProject/0x-monorepo.git"
|
||||||
|
},
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/0xProject/0x-monorepo/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/0xProject/0x-monorepo/packages/contract-addresses/README.md",
|
||||||
|
"devDependencies": {
|
||||||
|
"typescript": "3.0.1",
|
||||||
|
"shx": "^0.2.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@0xproject/types": "1.1.4",
|
||||||
|
"lodash": "^4.17.5"
|
||||||
|
},
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public"
|
||||||
|
}
|
||||||
|
}
|
64
packages/contract-addresses/src/index.ts
Normal file
64
packages/contract-addresses/src/index.ts
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
|
export interface ContractAddresses {
|
||||||
|
erc20Proxy: string;
|
||||||
|
erc721Proxy: string;
|
||||||
|
zrxToken: string;
|
||||||
|
etherToken: string;
|
||||||
|
exchange: string;
|
||||||
|
assetProxyOwner: string;
|
||||||
|
forwarder: string;
|
||||||
|
orderValidator: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum NetworkId {
|
||||||
|
Mainnet = 1,
|
||||||
|
Ropsten = 3,
|
||||||
|
Kovan = 42,
|
||||||
|
}
|
||||||
|
|
||||||
|
const networkToAddresses: { [networkId: number]: ContractAddresses } = {
|
||||||
|
1: {
|
||||||
|
erc20Proxy: '0x2240dab907db71e64d3e0dba4800c83b5c502d4e',
|
||||||
|
erc721Proxy: '0x208e41fb445f1bb1b6780d58356e81405f3e6127',
|
||||||
|
zrxToken: '0xe41d2489571d322189246dafa5ebde1f4699f498',
|
||||||
|
etherToken: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
||||||
|
exchange: '0x4f833a24e1f95d70f028921e27040ca56e09ab0b',
|
||||||
|
assetProxyOwner: '0x17992e4ffb22730138e4b62aaa6367fa9d3699a6',
|
||||||
|
forwarder: '0x7afc2d5107af94c462a194d2c21b5bdd238709d6',
|
||||||
|
orderValidator: '0x9463e518dea6810309563c81d5266c1b1d149138',
|
||||||
|
},
|
||||||
|
3: {
|
||||||
|
erc20Proxy: '0xb1408f4c245a23c31b98d2c626777d4c0d766caa',
|
||||||
|
erc721Proxy: '0xe654aac058bfbf9f83fcaee7793311dd82f6ddb4',
|
||||||
|
zrxToken: '0xff67881f8d12f372d91baae9752eb3631ff0ed00',
|
||||||
|
etherToken: '0xc778417e063141139fce010982780140aa0cd5ab',
|
||||||
|
exchange: '0x4530c0483a1633c7a1c97d2c53721caff2caaaaf',
|
||||||
|
assetProxyOwner: '0xf5fa5b5fed2727a0e44ac67f6772e97977aa358b',
|
||||||
|
forwarder: '0x3983e204b12b3c02fb0638caf2cd406a62e0ead3',
|
||||||
|
orderValidator: '0x90431a90516ab49af23a0530e04e8c7836e7122f',
|
||||||
|
},
|
||||||
|
42: {
|
||||||
|
erc20Proxy: '0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e',
|
||||||
|
erc721Proxy: '0x2a9127c745688a165106c11cd4d647d2220af821',
|
||||||
|
zrxToken: '0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa',
|
||||||
|
etherToken: '0xd0a1e359811322d97991e03f863a0c30c2cf029c',
|
||||||
|
exchange: '0x35dd2932454449b14cee11a94d3674a936d5d7b2',
|
||||||
|
assetProxyOwner: '0x2c824d2882baa668e0d5202b1e7f2922278703f8',
|
||||||
|
forwarder: '0xd85e2fa7e7e252b27b01bf0d65c946959d2f45b8',
|
||||||
|
orderValidator: '0xb389da3d204b412df2f75c6afb3d0a7ce0bc283d',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to get addresses of contracts that have been deployed to either the
|
||||||
|
* Ethereum mainnet or a supported testnet.
|
||||||
|
* @returns The set of addresses for contracts which have been deployed on the
|
||||||
|
* given networkId.
|
||||||
|
*/
|
||||||
|
export function getContractAddressesForNetwork(networkId: NetworkId): ContractAddresses {
|
||||||
|
if (_.isUndefined(networkToAddresses[networkId])) {
|
||||||
|
throw new Error(`Unknown network id (${networkId}). No known 0x contracts have been deployed on this network.`);
|
||||||
|
}
|
||||||
|
return networkToAddresses[networkId];
|
||||||
|
}
|
8
packages/contract-addresses/tsconfig.json
Normal file
8
packages/contract-addresses/tsconfig.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"extends": "../../tsconfig",
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "lib",
|
||||||
|
"rootDir": "."
|
||||||
|
},
|
||||||
|
"include": ["./src/**/*"]
|
||||||
|
}
|
3
packages/contract-addresses/tslint.json
Normal file
3
packages/contract-addresses/tslint.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": ["@0xproject/tslint-config"]
|
||||||
|
}
|
@ -68,6 +68,7 @@
|
|||||||
"@0xproject/abi-gen-wrappers": "^1.0.0",
|
"@0xproject/abi-gen-wrappers": "^1.0.0",
|
||||||
"@0xproject/assert": "^1.0.13",
|
"@0xproject/assert": "^1.0.13",
|
||||||
"@0xproject/base-contract": "^3.0.1",
|
"@0xproject/base-contract": "^3.0.1",
|
||||||
|
"@0xproject/contract-addresses": "^1.0.0",
|
||||||
"@0xproject/contract-artifacts": "^1.0.0",
|
"@0xproject/contract-artifacts": "^1.0.0",
|
||||||
"@0xproject/fill-scenarios": "^1.0.7",
|
"@0xproject/fill-scenarios": "^1.0.7",
|
||||||
"@0xproject/json-schemas": "^1.0.7",
|
"@0xproject/json-schemas": "^1.0.7",
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { getContractAddressesForNetwork } from '@0xproject/contract-addresses';
|
||||||
import {
|
import {
|
||||||
ERC20Proxy,
|
ERC20Proxy,
|
||||||
ERC20Token,
|
ERC20Token,
|
||||||
@ -100,29 +101,50 @@ export class ContractWrappers {
|
|||||||
const blockPollingIntervalMs = _.isUndefined(config.blockPollingIntervalMs)
|
const blockPollingIntervalMs = _.isUndefined(config.blockPollingIntervalMs)
|
||||||
? constants.DEFAULT_BLOCK_POLLING_INTERVAL
|
? constants.DEFAULT_BLOCK_POLLING_INTERVAL
|
||||||
: config.blockPollingIntervalMs;
|
: config.blockPollingIntervalMs;
|
||||||
if (_.isUndefined(config.contractAddresses.erc20Proxy)) {
|
const contractAddresses = _.isUndefined(config.contractAddresses)
|
||||||
throw new Error('config.contractAddresses.erc20Proxy is required for testing');
|
? getContractAddressesForNetwork(config.networkId)
|
||||||
}
|
: config.contractAddresses;
|
||||||
this.erc20Proxy = new ERC20ProxyWrapper(this._web3Wrapper, config.contractAddresses.erc20Proxy);
|
this.erc20Proxy = new ERC20ProxyWrapper(this._web3Wrapper, config.networkId, contractAddresses.erc20Proxy);
|
||||||
this.erc721Proxy = new ERC721ProxyWrapper(this._web3Wrapper, config.contractAddresses.erc721Proxy);
|
this.erc721Proxy = new ERC721ProxyWrapper(this._web3Wrapper, config.networkId, contractAddresses.erc721Proxy);
|
||||||
this.erc20Token = new ERC20TokenWrapper(this._web3Wrapper, this.erc20Proxy, blockPollingIntervalMs);
|
this.erc20Token = new ERC20TokenWrapper(
|
||||||
this.erc721Token = new ERC721TokenWrapper(this._web3Wrapper, this.erc721Proxy, blockPollingIntervalMs);
|
this._web3Wrapper,
|
||||||
this.etherToken = new EtherTokenWrapper(this._web3Wrapper, this.erc20Token, blockPollingIntervalMs);
|
config.networkId,
|
||||||
|
this.erc20Proxy,
|
||||||
|
blockPollingIntervalMs,
|
||||||
|
);
|
||||||
|
this.erc721Token = new ERC721TokenWrapper(
|
||||||
|
this._web3Wrapper,
|
||||||
|
config.networkId,
|
||||||
|
this.erc721Proxy,
|
||||||
|
blockPollingIntervalMs,
|
||||||
|
);
|
||||||
|
this.etherToken = new EtherTokenWrapper(
|
||||||
|
this._web3Wrapper,
|
||||||
|
config.networkId,
|
||||||
|
this.erc20Token,
|
||||||
|
blockPollingIntervalMs,
|
||||||
|
);
|
||||||
this.exchange = new ExchangeWrapper(
|
this.exchange = new ExchangeWrapper(
|
||||||
this._web3Wrapper,
|
this._web3Wrapper,
|
||||||
|
config.networkId,
|
||||||
this.erc20Token,
|
this.erc20Token,
|
||||||
this.erc721Token,
|
this.erc721Token,
|
||||||
config.contractAddresses.exchange,
|
contractAddresses.exchange,
|
||||||
config.contractAddresses.zrxToken,
|
contractAddresses.zrxToken,
|
||||||
blockPollingIntervalMs,
|
blockPollingIntervalMs,
|
||||||
);
|
);
|
||||||
this.forwarder = new ForwarderWrapper(
|
this.forwarder = new ForwarderWrapper(
|
||||||
this._web3Wrapper,
|
this._web3Wrapper,
|
||||||
config.contractAddresses.forwarder,
|
config.networkId,
|
||||||
config.contractAddresses.zrxToken,
|
contractAddresses.forwarder,
|
||||||
config.contractAddresses.etherToken,
|
contractAddresses.zrxToken,
|
||||||
|
contractAddresses.etherToken,
|
||||||
|
);
|
||||||
|
this.orderValidator = new OrderValidatorWrapper(
|
||||||
|
this._web3Wrapper,
|
||||||
|
config.networkId,
|
||||||
|
contractAddresses.orderValidator,
|
||||||
);
|
);
|
||||||
this.orderValidator = new OrderValidatorWrapper(this._web3Wrapper, config.contractAddresses.orderValidator);
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Sets a new web3 provider for 0x.js. Updating the provider will stop all
|
* Sets a new web3 provider for 0x.js. Updating the provider will stop all
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { ContractAddresses, getContractAddressesForNetwork } from '@0xproject/contract-addresses';
|
||||||
import { AbiDecoder, intervalUtils, logUtils } from '@0xproject/utils';
|
import { AbiDecoder, intervalUtils, logUtils } from '@0xproject/utils';
|
||||||
import { marshaller, Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { marshaller, Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import {
|
import {
|
||||||
@ -25,6 +26,7 @@ import { filterUtils } from '../utils/filter_utils';
|
|||||||
|
|
||||||
export abstract class ContractWrapper {
|
export abstract class ContractWrapper {
|
||||||
public abstract abi: ContractAbi;
|
public abstract abi: ContractAbi;
|
||||||
|
protected _networkId: number;
|
||||||
protected _web3Wrapper: Web3Wrapper;
|
protected _web3Wrapper: Web3Wrapper;
|
||||||
private _blockAndLogStreamerIfExists: BlockAndLogStreamer<Block, Log> | undefined;
|
private _blockAndLogStreamerIfExists: BlockAndLogStreamer<Block, Log> | undefined;
|
||||||
private _blockPollingIntervalMs: number;
|
private _blockPollingIntervalMs: number;
|
||||||
@ -42,8 +44,9 @@ export abstract class ContractWrapper {
|
|||||||
logUtils.warn(err);
|
logUtils.warn(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
constructor(web3Wrapper: Web3Wrapper, blockPollingIntervalMs?: number) {
|
constructor(web3Wrapper: Web3Wrapper, networkId: number, blockPollingIntervalMs?: number) {
|
||||||
this._web3Wrapper = web3Wrapper;
|
this._web3Wrapper = web3Wrapper;
|
||||||
|
this._networkId = networkId;
|
||||||
this._blockPollingIntervalMs = _.isUndefined(blockPollingIntervalMs)
|
this._blockPollingIntervalMs = _.isUndefined(blockPollingIntervalMs)
|
||||||
? constants.DEFAULT_BLOCK_POLLING_INTERVAL
|
? constants.DEFAULT_BLOCK_POLLING_INTERVAL
|
||||||
: blockPollingIntervalMs;
|
: blockPollingIntervalMs;
|
||||||
@ -109,6 +112,9 @@ export abstract class ContractWrapper {
|
|||||||
const logWithDecodedArgs = abiDecoder.tryToDecodeLogOrNoop(log);
|
const logWithDecodedArgs = abiDecoder.tryToDecodeLogOrNoop(log);
|
||||||
return logWithDecodedArgs;
|
return logWithDecodedArgs;
|
||||||
}
|
}
|
||||||
|
protected _getDefaultContractAddresses(): ContractAddresses {
|
||||||
|
return getContractAddressesForNetwork(this._networkId);
|
||||||
|
}
|
||||||
private _onLogStateChanged<ArgsType extends ContractEventArgs>(isRemoved: boolean, rawLog: RawLogEntry): void {
|
private _onLogStateChanged<ArgsType extends ContractEventArgs>(isRemoved: boolean, rawLog: RawLogEntry): void {
|
||||||
const log: LogEntry = marshaller.unmarshalLog(rawLog);
|
const log: LogEntry = marshaller.unmarshalLog(rawLog);
|
||||||
_.forEach(this._filters, (filter: FilterObject, filterToken: string) => {
|
_.forEach(this._filters, (filter: FilterObject, filterToken: string) => {
|
||||||
|
@ -19,13 +19,14 @@ export class ERC20ProxyWrapper extends ContractWrapper {
|
|||||||
/**
|
/**
|
||||||
* Instantiate ERC20ProxyWrapper
|
* Instantiate ERC20ProxyWrapper
|
||||||
* @param web3Wrapper Web3Wrapper instance to use
|
* @param web3Wrapper Web3Wrapper instance to use
|
||||||
* @param address The address of the ERC20Proxy contract
|
* @param networkId Desired networkId
|
||||||
|
* @param address (Optional) The address of the ERC20Proxy contract. If
|
||||||
|
* undefined, will default to the known address corresponding to the
|
||||||
|
* networkId.
|
||||||
*/
|
*/
|
||||||
// TODO(albrow): Make address optional and default to looking up the address
|
constructor(web3Wrapper: Web3Wrapper, networkId: number, address?: string) {
|
||||||
// based in a hard-coded mapping based on web3Wrapper network id.
|
super(web3Wrapper, networkId);
|
||||||
constructor(web3Wrapper: Web3Wrapper, address: string) {
|
this.address = _.isUndefined(address) ? this._getDefaultContractAddresses().erc20Proxy : address;
|
||||||
super(web3Wrapper);
|
|
||||||
this.address = address;
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Get the 4 bytes ID of this asset proxy
|
* Get the 4 bytes ID of this asset proxy
|
||||||
|
@ -37,11 +37,17 @@ export class ERC20TokenWrapper extends ContractWrapper {
|
|||||||
/**
|
/**
|
||||||
* Instantiate ERC20TokenWrapper
|
* Instantiate ERC20TokenWrapper
|
||||||
* @param web3Wrapper Web3Wrapper instance to use
|
* @param web3Wrapper Web3Wrapper instance to use
|
||||||
|
* @param networkId Desired networkId
|
||||||
* @param erc20ProxyWrapper The ERC20ProxyWrapper instance to use
|
* @param erc20ProxyWrapper The ERC20ProxyWrapper instance to use
|
||||||
* @param blockPollingIntervalMs The block polling interval to use for active subscriptions
|
* @param blockPollingIntervalMs The block polling interval to use for active subscriptions
|
||||||
*/
|
*/
|
||||||
constructor(web3Wrapper: Web3Wrapper, erc20ProxyWrapper: ERC20ProxyWrapper, blockPollingIntervalMs?: number) {
|
constructor(
|
||||||
super(web3Wrapper, blockPollingIntervalMs);
|
web3Wrapper: Web3Wrapper,
|
||||||
|
networkId: number,
|
||||||
|
erc20ProxyWrapper: ERC20ProxyWrapper,
|
||||||
|
blockPollingIntervalMs?: number,
|
||||||
|
) {
|
||||||
|
super(web3Wrapper, networkId, blockPollingIntervalMs);
|
||||||
this._tokenContractsByAddress = {};
|
this._tokenContractsByAddress = {};
|
||||||
this._erc20ProxyWrapper = erc20ProxyWrapper;
|
this._erc20ProxyWrapper = erc20ProxyWrapper;
|
||||||
}
|
}
|
||||||
|
@ -19,13 +19,14 @@ export class ERC721ProxyWrapper extends ContractWrapper {
|
|||||||
/**
|
/**
|
||||||
* Instantiate ERC721ProxyWrapper
|
* Instantiate ERC721ProxyWrapper
|
||||||
* @param web3Wrapper Web3Wrapper instance to use
|
* @param web3Wrapper Web3Wrapper instance to use
|
||||||
* @param address The address of the ERC721Proxy contract
|
* @param networkId Desired networkId
|
||||||
|
* @param address (Optional) The address of the ERC721Proxy contract. If
|
||||||
|
* undefined, will default to the known address corresponding to the
|
||||||
|
* networkId.
|
||||||
*/
|
*/
|
||||||
// TODO(albrow): Make address optional and default to looking up the address
|
constructor(web3Wrapper: Web3Wrapper, networkId: number, address?: string) {
|
||||||
// based in a hard-coded mapping based on web3Wrapper network id.
|
super(web3Wrapper, networkId);
|
||||||
constructor(web3Wrapper: Web3Wrapper, address: string) {
|
this.address = _.isUndefined(address) ? this._getDefaultContractAddresses().erc721Proxy : address;
|
||||||
super(web3Wrapper);
|
|
||||||
this.address = address;
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Get the 4 bytes ID of this asset proxy
|
* Get the 4 bytes ID of this asset proxy
|
||||||
|
@ -36,11 +36,17 @@ export class ERC721TokenWrapper extends ContractWrapper {
|
|||||||
/**
|
/**
|
||||||
* Instantiate ERC721TokenWrapper
|
* Instantiate ERC721TokenWrapper
|
||||||
* @param web3Wrapper Web3Wrapper instance to use
|
* @param web3Wrapper Web3Wrapper instance to use
|
||||||
|
* @param networkId Desired networkId
|
||||||
* @param erc721ProxyWrapper The ERC721ProxyWrapper instance to use
|
* @param erc721ProxyWrapper The ERC721ProxyWrapper instance to use
|
||||||
* @param blockPollingIntervalMs The block polling interval to use for active subscriptions
|
* @param blockPollingIntervalMs The block polling interval to use for active subscriptions
|
||||||
*/
|
*/
|
||||||
constructor(web3Wrapper: Web3Wrapper, erc721ProxyWrapper: ERC721ProxyWrapper, blockPollingIntervalMs?: number) {
|
constructor(
|
||||||
super(web3Wrapper, blockPollingIntervalMs);
|
web3Wrapper: Web3Wrapper,
|
||||||
|
networkId: number,
|
||||||
|
erc721ProxyWrapper: ERC721ProxyWrapper,
|
||||||
|
blockPollingIntervalMs?: number,
|
||||||
|
) {
|
||||||
|
super(web3Wrapper, networkId, blockPollingIntervalMs);
|
||||||
this._tokenContractsByAddress = {};
|
this._tokenContractsByAddress = {};
|
||||||
this._erc721ProxyWrapper = erc721ProxyWrapper;
|
this._erc721ProxyWrapper = erc721ProxyWrapper;
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,13 @@ export class EtherTokenWrapper extends ContractWrapper {
|
|||||||
* @param erc20TokenWrapper The ERC20TokenWrapper instance to use
|
* @param erc20TokenWrapper The ERC20TokenWrapper instance to use
|
||||||
* @param blockPollingIntervalMs The block polling interval to use for active subscriptions
|
* @param blockPollingIntervalMs The block polling interval to use for active subscriptions
|
||||||
*/
|
*/
|
||||||
constructor(web3Wrapper: Web3Wrapper, erc20TokenWrapper: ERC20TokenWrapper, blockPollingIntervalMs?: number) {
|
constructor(
|
||||||
super(web3Wrapper, blockPollingIntervalMs);
|
web3Wrapper: Web3Wrapper,
|
||||||
|
networkId: number,
|
||||||
|
erc20TokenWrapper: ERC20TokenWrapper,
|
||||||
|
blockPollingIntervalMs?: number,
|
||||||
|
) {
|
||||||
|
super(web3Wrapper, networkId, blockPollingIntervalMs);
|
||||||
this._erc20TokenWrapper = erc20TokenWrapper;
|
this._erc20TokenWrapper = erc20TokenWrapper;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -50,26 +50,33 @@ export class ExchangeWrapper extends ContractWrapper {
|
|||||||
/**
|
/**
|
||||||
* Instantiate ExchangeWrapper
|
* Instantiate ExchangeWrapper
|
||||||
* @param web3Wrapper Web3Wrapper instance to use.
|
* @param web3Wrapper Web3Wrapper instance to use.
|
||||||
|
* @param networkId Desired networkId.
|
||||||
* @param erc20TokenWrapper ERC20TokenWrapper instance to use.
|
* @param erc20TokenWrapper ERC20TokenWrapper instance to use.
|
||||||
* @param erc721TokenWrapper ERC721TokenWrapper instance to use.
|
* @param erc721TokenWrapper ERC721TokenWrapper instance to use.
|
||||||
* @param address The address of the Exchange contract.
|
* @param address (Optional) The address of the Exchange contract. If
|
||||||
* @param zrxTokenAddress The address of the ZRX Token contract.
|
* undefined, will default to the known address corresponding to the
|
||||||
|
* networkId.
|
||||||
|
* @param zrxTokenAddress (Optional) The address of the ZRXToken contract.
|
||||||
|
* If undefined, will default to the known address corresponding to the
|
||||||
|
* networkId.
|
||||||
* @param blockPollingIntervalMs The block polling interval to use for active subscriptions.
|
* @param blockPollingIntervalMs The block polling interval to use for active subscriptions.
|
||||||
*/
|
*/
|
||||||
constructor(
|
constructor(
|
||||||
web3Wrapper: Web3Wrapper,
|
web3Wrapper: Web3Wrapper,
|
||||||
|
networkId: number,
|
||||||
erc20TokenWrapper: ERC20TokenWrapper,
|
erc20TokenWrapper: ERC20TokenWrapper,
|
||||||
erc721TokenWrapper: ERC721TokenWrapper,
|
erc721TokenWrapper: ERC721TokenWrapper,
|
||||||
// TODO(albrow): Make address optional?
|
address?: string,
|
||||||
address: string,
|
zrxTokenAddress?: string,
|
||||||
zrxTokenAddress: string,
|
|
||||||
blockPollingIntervalMs?: number,
|
blockPollingIntervalMs?: number,
|
||||||
) {
|
) {
|
||||||
super(web3Wrapper, blockPollingIntervalMs);
|
super(web3Wrapper, networkId, blockPollingIntervalMs);
|
||||||
this._erc20TokenWrapper = erc20TokenWrapper;
|
this._erc20TokenWrapper = erc20TokenWrapper;
|
||||||
this._erc721TokenWrapper = erc721TokenWrapper;
|
this._erc721TokenWrapper = erc721TokenWrapper;
|
||||||
this.address = address;
|
this.address = _.isUndefined(address) ? this._getDefaultContractAddresses().exchange : address;
|
||||||
this.zrxTokenAddress = zrxTokenAddress;
|
this.zrxTokenAddress = _.isUndefined(zrxTokenAddress)
|
||||||
|
? this._getDefaultContractAddresses().zrxToken
|
||||||
|
: zrxTokenAddress;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Retrieve the address of an asset proxy by signature.
|
* Retrieve the address of an asset proxy by signature.
|
||||||
|
@ -27,12 +27,36 @@ export class ForwarderWrapper extends ContractWrapper {
|
|||||||
public zrxTokenAddress: string;
|
public zrxTokenAddress: string;
|
||||||
public etherTokenAddress: string;
|
public etherTokenAddress: string;
|
||||||
private _forwarderContractIfExists?: ForwarderContract;
|
private _forwarderContractIfExists?: ForwarderContract;
|
||||||
// TODO(albrow): Make addresses optional?
|
|
||||||
constructor(web3Wrapper: Web3Wrapper, address: string, zrxTokenAddress: string, etherTokenAddress: string) {
|
/**
|
||||||
super(web3Wrapper);
|
* Instantiate ForwarderWrapper
|
||||||
this.address = address;
|
* @param web3Wrapper Web3Wrapper instance to use.
|
||||||
this.zrxTokenAddress = zrxTokenAddress;
|
* @param networkId Desired networkId.
|
||||||
this.etherTokenAddress = etherTokenAddress;
|
* @param address (Optional) The address of the Exchange contract. If
|
||||||
|
* undefined, will default to the known address corresponding to the
|
||||||
|
* networkId.
|
||||||
|
* @param zrxTokenAddress (Optional) The address of the ZRXToken contract.
|
||||||
|
* If undefined, will default to the known address corresponding to the
|
||||||
|
* networkId.
|
||||||
|
* @param etherTokenAddress (Optional) The address of a WETH (Ether token)
|
||||||
|
* contract. If undefined, will default to the known address corresponding
|
||||||
|
* to the networkId.
|
||||||
|
*/
|
||||||
|
constructor(
|
||||||
|
web3Wrapper: Web3Wrapper,
|
||||||
|
networkId: number,
|
||||||
|
address?: string,
|
||||||
|
zrxTokenAddress?: string,
|
||||||
|
etherTokenAddress?: string,
|
||||||
|
) {
|
||||||
|
super(web3Wrapper, networkId);
|
||||||
|
this.address = _.isUndefined(address) ? this._getDefaultContractAddresses().exchange : address;
|
||||||
|
this.zrxTokenAddress = _.isUndefined(zrxTokenAddress)
|
||||||
|
? this._getDefaultContractAddresses().zrxToken
|
||||||
|
: zrxTokenAddress;
|
||||||
|
this.etherTokenAddress = _.isUndefined(etherTokenAddress)
|
||||||
|
? this._getDefaultContractAddresses().etherToken
|
||||||
|
: etherTokenAddress;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Purchases as much of orders' makerAssets as possible by selling up to 95% of transaction's ETH value.
|
* Purchases as much of orders' makerAssets as possible by selling up to 95% of transaction's ETH value.
|
||||||
|
@ -22,12 +22,14 @@ export class OrderValidatorWrapper extends ContractWrapper {
|
|||||||
/**
|
/**
|
||||||
* Instantiate OrderValidatorWrapper
|
* Instantiate OrderValidatorWrapper
|
||||||
* @param web3Wrapper Web3Wrapper instance to use.
|
* @param web3Wrapper Web3Wrapper instance to use.
|
||||||
* @param address The address of the OrderValidator contract.
|
* @param networkId Desired networkId.
|
||||||
|
* @param address (Optional) The address of the OrderValidator contract. If
|
||||||
|
* undefined, will default to the known address corresponding to the
|
||||||
|
* networkId.
|
||||||
*/
|
*/
|
||||||
// TODO(albrow): Make address optional?
|
constructor(web3Wrapper: Web3Wrapper, networkId: number, address?: string) {
|
||||||
constructor(web3Wrapper: Web3Wrapper, address: string) {
|
super(web3Wrapper, networkId);
|
||||||
super(web3Wrapper);
|
this.address = _.isUndefined(address) ? this._getDefaultContractAddresses().exchange : address;
|
||||||
this.address = address;
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Get an object conforming to OrderAndTraderInfo containing on-chain information of the provided order and address
|
* Get an object conforming to OrderAndTraderInfo containing on-chain information of the provided order and address
|
||||||
|
@ -8,7 +8,8 @@ import {
|
|||||||
WETH9EventArgs,
|
WETH9EventArgs,
|
||||||
WETH9Events,
|
WETH9Events,
|
||||||
} from '@0xproject/abi-gen-wrappers';
|
} from '@0xproject/abi-gen-wrappers';
|
||||||
import { ContractAddresses, OrderState, SignedOrder } from '@0xproject/types';
|
import { ContractAddresses } from '@0xproject/contract-addresses';
|
||||||
|
import { OrderState, SignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
|
||||||
import { BlockParam, ContractEventArg, DecodedLogArgs, LogEntryEvent, LogWithDecodedArgs } from 'ethereum-types';
|
import { BlockParam, ContractEventArg, DecodedLogArgs, LogEntryEvent, LogWithDecodedArgs } from 'ethereum-types';
|
||||||
@ -110,18 +111,13 @@ export type SyncMethod = (...args: any[]) => any;
|
|||||||
/**
|
/**
|
||||||
* networkId: The id of the underlying ethereum network your provider is connected to. (1-mainnet, 3-ropsten, 4-rinkeby, 42-kovan, 50-testrpc)
|
* networkId: The id of the underlying ethereum network your provider is connected to. (1-mainnet, 3-ropsten, 4-rinkeby, 42-kovan, 50-testrpc)
|
||||||
* gasPrice: Gas price to use with every transaction
|
* gasPrice: Gas price to use with every transaction
|
||||||
* exchangeContractAddress: The address of an exchange contract to use
|
* contractAddresses: The address of all contracts to use. Defaults to the known addresses based on networkId.
|
||||||
* zrxContractAddress: The address of the ZRX contract to use
|
|
||||||
* erc20ProxyContractAddress: The address of the erc20 token transfer proxy contract to use
|
|
||||||
* erc721ProxyContractAddress: The address of the erc721 token transfer proxy contract to use
|
|
||||||
* forwarderContractAddress: The address of the forwarder contract to use
|
|
||||||
* orderWatcherConfig: All the configs related to the orderWatcher
|
|
||||||
* blockPollingIntervalMs: The interval to use for block polling in event watching methods (defaults to 1000)
|
* blockPollingIntervalMs: The interval to use for block polling in event watching methods (defaults to 1000)
|
||||||
*/
|
*/
|
||||||
export interface ContractWrappersConfig {
|
export interface ContractWrappersConfig {
|
||||||
networkId: number;
|
networkId: number;
|
||||||
gasPrice?: BigNumber;
|
gasPrice?: BigNumber;
|
||||||
contractAddresses: ContractAddresses;
|
contractAddresses?: ContractAddresses;
|
||||||
blockPollingIntervalMs?: number;
|
blockPollingIntervalMs?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
import { ContractAddresses } from '@0xproject/contract-addresses';
|
||||||
import { BlockchainLifecycle, callbackErrorReporter } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle, callbackErrorReporter } from '@0xproject/dev-utils';
|
||||||
import { EmptyWalletSubprovider, Web3ProviderEngine } from '@0xproject/subproviders';
|
import { EmptyWalletSubprovider, Web3ProviderEngine } from '@0xproject/subproviders';
|
||||||
import { ContractAddresses, DoneCallback } from '@0xproject/types';
|
import { DoneCallback } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
import { Provider } from 'ethereum-types';
|
import { Provider } from 'ethereum-types';
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
import { ContractAddresses } from '@0xproject/contract-addresses';
|
||||||
import { BlockchainLifecycle, callbackErrorReporter } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle, callbackErrorReporter } from '@0xproject/dev-utils';
|
||||||
import { ContractAddresses, DoneCallback } from '@0xproject/types';
|
import { DoneCallback } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
@ -16,7 +17,6 @@ import {
|
|||||||
WETH9TransferEventArgs,
|
WETH9TransferEventArgs,
|
||||||
WETH9WithdrawalEventArgs,
|
WETH9WithdrawalEventArgs,
|
||||||
} from '../src';
|
} from '../src';
|
||||||
|
|
||||||
import { DecodedLogEvent } from '../src/types';
|
import { DecodedLogEvent } from '../src/types';
|
||||||
|
|
||||||
import { chaiSetup } from './utils/chai_setup';
|
import { chaiSetup } from './utils/chai_setup';
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
import { ContractAddresses } from '@0xproject/contract-addresses';
|
||||||
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
||||||
import { FillScenarios } from '@0xproject/fill-scenarios';
|
import { FillScenarios } from '@0xproject/fill-scenarios';
|
||||||
import { assetDataUtils } from '@0xproject/order-utils';
|
import { assetDataUtils } from '@0xproject/order-utils';
|
||||||
import { ContractAddresses, SignedOrder } from '@0xproject/types';
|
import { SignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
import { ContractAddresses } from '@0xproject/contract-addresses';
|
||||||
import { devConstants } from '@0xproject/dev-utils';
|
import { devConstants } from '@0xproject/dev-utils';
|
||||||
import { runMigrationsOnceAsync } from '@0xproject/migrations';
|
import { runMigrationsOnceAsync } from '@0xproject/migrations';
|
||||||
import { ContractAddresses } from '@0xproject/types';
|
|
||||||
|
|
||||||
import { provider } from './web3_wrapper';
|
import { provider } from './web3_wrapper';
|
||||||
|
|
||||||
|
@ -37,7 +37,6 @@ import * as WETH9 from '../../generated-artifacts/WETH9.json';
|
|||||||
import * as Whitelist from '../../generated-artifacts/Whitelist.json';
|
import * as Whitelist from '../../generated-artifacts/Whitelist.json';
|
||||||
import * as ZRXToken from '../../generated-artifacts/ZRXToken.json';
|
import * as ZRXToken from '../../generated-artifacts/ZRXToken.json';
|
||||||
|
|
||||||
// TODO(albrow): Do we need to export all of these?
|
|
||||||
export const artifacts = {
|
export const artifacts = {
|
||||||
AssetProxyOwner: (AssetProxyOwner as any) as ContractArtifact,
|
AssetProxyOwner: (AssetProxyOwner as any) as ContractArtifact,
|
||||||
DummyERC20Token: (DummyERC20Token as any) as ContractArtifact,
|
DummyERC20Token: (DummyERC20Token as any) as ContractArtifact,
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
// TODO(albrow): Do we need to export all of these?
|
|
||||||
export * from '../../generated-wrappers/asset_proxy_owner';
|
export * from '../../generated-wrappers/asset_proxy_owner';
|
||||||
export * from '../../generated-wrappers/dummy_erc20_token';
|
export * from '../../generated-wrappers/dummy_erc20_token';
|
||||||
export * from '../../generated-wrappers/dummy_erc721_receiver';
|
export * from '../../generated-wrappers/dummy_erc721_receiver';
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@0xproject/abi-gen-wrappers": "^1.0.0",
|
"@0xproject/abi-gen-wrappers": "^1.0.0",
|
||||||
"@0xproject/base-contract": "^3.0.1",
|
"@0xproject/base-contract": "^3.0.1",
|
||||||
|
"@0xproject/contract-addresses": "^1.0.0",
|
||||||
"@0xproject/contract-artifacts": "^1.0.0",
|
"@0xproject/contract-artifacts": "^1.0.0",
|
||||||
"@0xproject/order-utils": "^1.0.7",
|
"@0xproject/order-utils": "^1.0.7",
|
||||||
"@0xproject/sol-compiler": "^1.1.7",
|
"@0xproject/sol-compiler": "^1.1.7",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import * as wrappers from '@0xproject/abi-gen-wrappers';
|
import * as wrappers from '@0xproject/abi-gen-wrappers';
|
||||||
|
import { ContractAddresses } from '@0xproject/contract-addresses';
|
||||||
import * as artifacts from '@0xproject/contract-artifacts';
|
import * as artifacts from '@0xproject/contract-artifacts';
|
||||||
import { assetDataUtils } from '@0xproject/order-utils';
|
import { assetDataUtils } from '@0xproject/order-utils';
|
||||||
import { ContractAddresses } from '@0xproject/types';
|
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import { Provider, TxData } from 'ethereum-types';
|
import { Provider, TxData } from 'ethereum-types';
|
||||||
|
@ -60,6 +60,7 @@
|
|||||||
"@0xproject/abi-gen-wrappers": "^1.0.0",
|
"@0xproject/abi-gen-wrappers": "^1.0.0",
|
||||||
"@0xproject/assert": "^1.0.13",
|
"@0xproject/assert": "^1.0.13",
|
||||||
"@0xproject/base-contract": "^3.0.1",
|
"@0xproject/base-contract": "^3.0.1",
|
||||||
|
"@0xproject/contract-addresses": "^1.0.0",
|
||||||
"@0xproject/contract-artifacts": "^1.0.0",
|
"@0xproject/contract-artifacts": "^1.0.0",
|
||||||
"@0xproject/contract-wrappers": "^2.0.2",
|
"@0xproject/contract-wrappers": "^2.0.2",
|
||||||
"@0xproject/fill-scenarios": "^1.0.7",
|
"@0xproject/fill-scenarios": "^1.0.7",
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
// tslint:disable:no-unnecessary-type-assertion
|
// tslint:disable:no-unnecessary-type-assertion
|
||||||
|
import { ContractAddresses } from '@0xproject/contract-addresses';
|
||||||
import * as artifacts from '@0xproject/contract-artifacts';
|
import * as artifacts from '@0xproject/contract-artifacts';
|
||||||
import {
|
import {
|
||||||
AssetBalanceAndProxyAllowanceFetcher,
|
AssetBalanceAndProxyAllowanceFetcher,
|
||||||
@ -31,14 +32,7 @@ import {
|
|||||||
orderHashUtils,
|
orderHashUtils,
|
||||||
OrderStateUtils,
|
OrderStateUtils,
|
||||||
} from '@0xproject/order-utils';
|
} from '@0xproject/order-utils';
|
||||||
import {
|
import { AssetProxyId, ExchangeContractErrs, OrderState, SignedOrder, Stats } from '@0xproject/types';
|
||||||
AssetProxyId,
|
|
||||||
ContractAddresses,
|
|
||||||
ExchangeContractErrs,
|
|
||||||
OrderState,
|
|
||||||
SignedOrder,
|
|
||||||
Stats,
|
|
||||||
} from '@0xproject/types';
|
|
||||||
import { errorUtils, intervalUtils } from '@0xproject/utils';
|
import { errorUtils, intervalUtils } from '@0xproject/utils';
|
||||||
import { BlockParamLiteral, LogEntryEvent, LogWithDecodedArgs, Provider } from 'ethereum-types';
|
import { BlockParamLiteral, LogEntryEvent, LogWithDecodedArgs, Provider } from 'ethereum-types';
|
||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
@ -98,12 +92,14 @@ export class OrderWatcher {
|
|||||||
* Instantiate a new OrderWatcher
|
* Instantiate a new OrderWatcher
|
||||||
* @param provider Web3 provider to use for JSON RPC calls
|
* @param provider Web3 provider to use for JSON RPC calls
|
||||||
* @param networkId NetworkId to watch orders on
|
* @param networkId NetworkId to watch orders on
|
||||||
|
* @param contractAddresses Optional contract addresses. Defaults to known
|
||||||
|
* addresses based on networkId.
|
||||||
* @param partialConfig Optional configurations
|
* @param partialConfig Optional configurations
|
||||||
*/
|
*/
|
||||||
constructor(
|
constructor(
|
||||||
provider: Provider,
|
provider: Provider,
|
||||||
networkId: number,
|
networkId: number,
|
||||||
contractAddresses: ContractAddresses,
|
contractAddresses?: ContractAddresses,
|
||||||
partialConfig: Partial<OrderWatcherConfig> = DEFAULT_ORDER_WATCHER_CONFIG,
|
partialConfig: Partial<OrderWatcherConfig> = DEFAULT_ORDER_WATCHER_CONFIG,
|
||||||
) {
|
) {
|
||||||
assert.isWeb3Provider('provider', provider);
|
assert.isWeb3Provider('provider', provider);
|
||||||
@ -122,7 +118,8 @@ export class OrderWatcher {
|
|||||||
);
|
);
|
||||||
const contractWrappers = new ContractWrappers(provider, {
|
const contractWrappers = new ContractWrappers(provider, {
|
||||||
networkId,
|
networkId,
|
||||||
// TODO(albrow): Make contract addresses optional.
|
// Note(albrow): We let the contract-wrappers package handle
|
||||||
|
// default values for contractAddresses.
|
||||||
contractAddresses,
|
contractAddresses,
|
||||||
});
|
});
|
||||||
this._eventWatcher = new EventWatcher(provider, config.eventPollingIntervalMs, STATE_LAYER, config.isVerbose);
|
this._eventWatcher = new EventWatcher(provider, config.eventPollingIntervalMs, STATE_LAYER, config.isVerbose);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
import { ContractAddresses } from '@0xproject/contract-addresses';
|
||||||
import { devConstants } from '@0xproject/dev-utils';
|
import { devConstants } from '@0xproject/dev-utils';
|
||||||
import { runMigrationsOnceAsync } from '@0xproject/migrations';
|
import { runMigrationsOnceAsync } from '@0xproject/migrations';
|
||||||
import { ContractAddresses } from '@0xproject/types';
|
|
||||||
|
|
||||||
import { provider } from './web3_wrapper';
|
import { provider } from './web3_wrapper';
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"0x.js": "^1.0.8",
|
"0x.js": "^1.0.8",
|
||||||
|
"@0xproject/contract-addresses": "^1.0.0",
|
||||||
"@0xproject/subproviders": "^2.0.7",
|
"@0xproject/subproviders": "^2.0.7",
|
||||||
"@0xproject/typescript-typings": "^3.0.2",
|
"@0xproject/typescript-typings": "^3.0.2",
|
||||||
"@0xproject/utils": "^2.0.2",
|
"@0xproject/utils": "^2.0.2",
|
||||||
|
@ -11,6 +11,7 @@ import {
|
|||||||
SignedOrder,
|
SignedOrder,
|
||||||
Web3ProviderEngine,
|
Web3ProviderEngine,
|
||||||
} from '0x.js';
|
} from '0x.js';
|
||||||
|
import { getContractAddressesForNetwork } from '@0xproject/contract-addresses';
|
||||||
import { NonceTrackerSubprovider, PrivateKeyWalletSubprovider } from '@0xproject/subproviders';
|
import { NonceTrackerSubprovider, PrivateKeyWalletSubprovider } from '@0xproject/subproviders';
|
||||||
import { logUtils } from '@0xproject/utils';
|
import { logUtils } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
@ -67,17 +68,7 @@ export class Handler {
|
|||||||
const networkId = parseInt(networkIdString, 10);
|
const networkId = parseInt(networkIdString, 10);
|
||||||
const contractWrappersConfig = {
|
const contractWrappersConfig = {
|
||||||
networkId,
|
networkId,
|
||||||
// TODO(albrow): Load in real contract addresses here.
|
contractAddresses: getContractAddressesForNetwork(networkId),
|
||||||
contractAddresses: {
|
|
||||||
erc20Proxy: '',
|
|
||||||
erc721Proxy: '',
|
|
||||||
zrxToken: '',
|
|
||||||
etherToken: '',
|
|
||||||
exchange: '',
|
|
||||||
assetProxyOwner: '',
|
|
||||||
forwarder: '',
|
|
||||||
orderValidator: '',
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
const contractWrappers = new ContractWrappers(providerObj, contractWrappersConfig);
|
const contractWrappers = new ContractWrappers(providerObj, contractWrappersConfig);
|
||||||
const dispatchQueue = new DispatchQueue();
|
const dispatchQueue = new DispatchQueue();
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"0x.js": "^0.38.6",
|
"0x.js": "^0.38.6",
|
||||||
|
"@0xproject/contract-addresses": "^1.0.0",
|
||||||
"@0xproject/contract-wrappers": "^2.0.2",
|
"@0xproject/contract-wrappers": "^2.0.2",
|
||||||
"@0xproject/json-schemas": "^1.0.7",
|
"@0xproject/json-schemas": "^1.0.7",
|
||||||
"@0xproject/order-utils": "^1.0.7",
|
"@0xproject/order-utils": "^1.0.7",
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { ZeroEx } from '0x.js';
|
import { ZeroEx } from '0x.js';
|
||||||
|
import { getContractAddressesForNetwork } from '@0xproject/contract-addresses';
|
||||||
import {
|
import {
|
||||||
BlockRange,
|
BlockRange,
|
||||||
ContractWrappers,
|
ContractWrappers,
|
||||||
@ -863,17 +864,7 @@ export class Blockchain {
|
|||||||
} else {
|
} else {
|
||||||
const contractWrappersConfig = {
|
const contractWrappersConfig = {
|
||||||
networkId,
|
networkId,
|
||||||
// TODO(albrow): Load in real contract addresses here.
|
contractAddresses: getContractAddressesForNetwork(networkId),
|
||||||
contractAddresses: {
|
|
||||||
erc20Proxy: '',
|
|
||||||
erc721Proxy: '',
|
|
||||||
zrxToken: '',
|
|
||||||
etherToken: '',
|
|
||||||
exchange: '',
|
|
||||||
assetProxyOwner: '',
|
|
||||||
forwarder: '',
|
|
||||||
orderValidator: '',
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
this._contractWrappers = new ContractWrappers(provider, contractWrappersConfig);
|
this._contractWrappers = new ContractWrappers(provider, contractWrappersConfig);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user