From 00e34758c47b31bec4d4b0010afbfa69732a72f1 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Mon, 2 Dec 2019 17:22:07 +1100 Subject: [PATCH] Remove artifacts dep from contract-wrappers --- contracts/test-utils/src/order_utils.ts | 5 +- packages/0x.js/src/index.ts | 1 - .../templates/TypeScript/contract.handlebars | 1 + .../output/typescript/abi_gen_dummy.ts | 1 + .../test-cli/output/typescript/lib_dummy.ts | 1 + .../output/typescript/test_lib_dummy.ts | 1 + packages/contract-wrappers/package.json | 1 - .../src/contract_wrappers.ts | 37 +++++------- .../src/generated-wrappers/coordinator.ts | 1 + .../src/generated-wrappers/dev_utils.ts | 1 + .../src/generated-wrappers/erc20_token.ts | 1 + .../src/generated-wrappers/erc721_token.ts | 1 + .../src/generated-wrappers/exchange.ts | 1 + .../src/generated-wrappers/forwarder.ts | 1 + .../src/generated-wrappers/staking.ts | 1 + .../src/generated-wrappers/staking_proxy.ts | 1 + .../src/generated-wrappers/weth9.ts | 1 + packages/order-utils/package.json | 4 -- packages/order-utils/src/asset_data_utils.ts | 56 ------------------- packages/order-utils/src/crypto.ts | 47 ---------------- packages/order-utils/src/index.ts | 1 - .../order-utils/test/asset_data_utils_test.ts | 33 ----------- 22 files changed, 28 insertions(+), 170 deletions(-) delete mode 100644 packages/order-utils/src/crypto.ts diff --git a/contracts/test-utils/src/order_utils.ts b/contracts/test-utils/src/order_utils.ts index 512ac14cd6..f23e20314e 100644 --- a/contracts/test-utils/src/order_utils.ts +++ b/contracts/test-utils/src/order_utils.ts @@ -1,10 +1,10 @@ import { generatePseudoRandomSalt } from '@0x/order-utils'; -import { crypto } from '@0x/order-utils/lib/src/crypto'; import { Order, SignedOrder } from '@0x/types'; import { BigNumber } from '@0x/utils'; import * as _ from 'lodash'; import { constants } from './constants'; +import { hexHash } from './hex_utils'; import { BatchMatchOrder, CancelOrder, MatchOrder } from './types'; export const orderUtils = { @@ -59,8 +59,7 @@ export const orderUtils = { }, generatePseudoRandomOrderHash(): string { const randomBigNum = generatePseudoRandomSalt(); - const randomBuff = crypto.solSHA3([randomBigNum]); - const randomHash = `0x${randomBuff.toString('hex')}`; + const randomHash = hexHash(randomBigNum); return randomHash; }, }; diff --git a/packages/0x.js/src/index.ts b/packages/0x.js/src/index.ts index 0a7f0fd6ec..c8f586ae12 100644 --- a/packages/0x.js/src/index.ts +++ b/packages/0x.js/src/index.ts @@ -59,7 +59,6 @@ export { DecodedCalldata, BigNumber } from '@0x/utils'; export { Order, SignedOrder, - DutchAuctionData, ECSignature, AssetProxyId, AssetData, diff --git a/packages/abi-gen/templates/TypeScript/contract.handlebars b/packages/abi-gen/templates/TypeScript/contract.handlebars index 0cc88b8309..226b839277 100644 --- a/packages/abi-gen/templates/TypeScript/contract.handlebars +++ b/packages/abi-gen/templates/TypeScript/contract.handlebars @@ -65,6 +65,7 @@ export class {{contractName}}Contract extends BaseContract { {{else~}} public static deployedBytecode = '{{this.deployedBytecode}}'; {{/ifEquals~}} + public static contractName = '{{contractName}}'; private readonly _methodABIIndex: { [name: string]: number } = {}; {{#if events~}} private readonly _subscriptionManager: SubscriptionManager<{{contractName}}EventArgs, {{contractName}}Events>; diff --git a/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts b/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts index b80758edfc..ef6b852714 100644 --- a/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts +++ b/packages/abi-gen/test-cli/output/typescript/abi_gen_dummy.ts @@ -60,6 +60,7 @@ export class AbiGenDummyContract extends BaseContract { */ public static deployedBytecode = '0x608060405234801561001057600080fd5b50600436106101d95760003560e01c806376f15d5b11610104578063bb607362116100a2578063d88be12f11610071578063d88be12f1461039b578063ee8b86fb146103a3578063f408fb3114610279578063fa315f9d146103b6576101d9565b8063bb60736214610353578063bdab168814610369578063cd3c0b971461037e578063d6d7618c14610386576101d9565b80638ee52b4e116100de5780638ee52b4e146103225780639a3b618514610335578063a3c2f6b61461033d578063ae2dae1714610345576101d9565b806376f15d5b146102f25780637833bec0146102fa5780637a791e6e1461031a576101d9565b80634303a5421161017c57806359c28add1161014b57806359c28add146102b45780635ba3c7c0146102c957806363d69c88146102d1578063647341eb146102e4576101d9565b80634303a542146102875780634582eab21461028f57806345fdbdb714610297578063586f84b21461029f576101d9565b80632e1a7d4d116101b85780632e1a7d4d146102245780633687617d1461023757806336b32396146102595780633e9ef66a14610279576101d9565b806209e437146101de5780630527c28f146101e85780631310e444146101fb575b600080fd5b6101e66103c4565b005b6101e66101f6366004610c7f565b610401565b61020e610209366004610d87565b610404565b60405161021b91906113e8565b60405180910390f35b6101e6610232366004610d87565b61040b565b61024a610245366004610efc565b61045c565b60405161021b93929190611151565b61026c610267366004610d0b565b6104fc565b60405161021b9190611094565b6101e66101f6366004610d4c565b61020e6105de565b6101e66105e5565b6101e661064a565b6102a761067c565b60405161021b9190611373565b6102bc610684565b60405161021b919061137e565b6101e661068c565b61026c6102df366004610c2e565b6106f1565b6101e66101f6366004610ec9565b61020e6106fa565b61030d610308366004610d9f565b610708565b60405161021b9190611287565b6101e66107c5565b61020e610330366004610d87565b6107ca565b6101e66107d0565b61020e6107db565b6101e66101f6366004610e39565b61035b6107e0565b60405161021b9291906113f1565b610371610819565b60405161021b91906110b5565b6101e661081e565b61038e610855565b60405161021b91906113d5565b61020e6109ae565b6101e66103b1366004610d87565b6101f6565b6101e66101f6366004610d87565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f690611250565b60405180910390fd5b565b50565b506107c790565b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b658260405161045191906113e8565b60405180910390a250565b505060408051808201825260048082527f1234567800000000000000000000000000000000000000000000000000000000602080840191909152835180850185528281527f87654321000000000000000000000000000000000000000000000000000000008183015284518086019095529184527f616d657400000000000000000000000000000000000000000000000000000000908401529093909250565b600060606040518060400160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a33320000000081525090506000818760405160200161054d929190611072565b604051602081830303815290604052805190602001209050600181878787604051600081526020016040526040516105889493929190611133565b6020604051602081039080840390855afa1580156105aa573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015198975050505050505050565b6107c75b90565b604080518082018252601481527f5245564552545f574954485f434f4e5354414e54000000000000000000000000602082015290517f08c379a00000000000000000000000000000000000000000000000000000000081526103f69190600401611193565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f690611219565b6105e26109b4565b6105e26109cc565b604080518082018252601581527f524551554952455f574954485f434f4e5354414e540000000000000000000000602082015290517f08c379a00000000000000000000000000000000000000000000000000000000081526103f69190600401611193565b50929392505050565b600080546001019081905590565b6107106109ec565b50604080516080810182529182528051808201825260048082527f123456780000000000000000000000000000000000000000000000000000000060208381019190915280850192909252825180840184528181527f87654321000000000000000000000000000000000000000000000000000000008184015284840152825180840190935282527f616d65740000000000000000000000000000000000000000000000000000000090820152606082015290565b6103ff565b60010190565b600080546001019055565b600190565b60408051808201909152600581527f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152600191565b606090565b7f61a6029a4c7ddee5824d171331eecbd015d26a271310a223718b837facb5b77160405161084b906111ad565b60405180910390a1565b61085d610a1a565b6040805160028082526060828101909352816020015b60608152602001906001900390816108735790505090506040518060400160405280600581526020017f3078313233000000000000000000000000000000000000000000000000000000815250816000815181106108cd57fe5b60200260200101819052506040518060400160405280600581526020017f30783332310000000000000000000000000000000000000000000000000000008152508160018151811061091b57fe5b6020908102919091018101919091526040805160c0810182526005608082018181527f307831323300000000000000000000000000000000000000000000000000000060a0840152825281840152808201939093528051808201909152600381527f6162630000000000000000000000000000000000000000000000000000000000918101919091526060820152905090565b6104d290565b60405180602001604052806109c7610a48565b905290565b60405180604001604052806109df610a1a565b8152602001606081525090565b60405180608001604052806109ff610a5b565b81526020016060815260200160608152602001606081525090565b604051806080016040528060608152602001600063ffffffff16815260200160608152602001606081525090565b6040518060200160405280600081525090565b60405180606001604052806000815260200160608152602001606081525090565b600082601f830112610a8c578081fd5b8135610a9f610a9a82611431565b61140a565b8181529150602080830190840160005b83811015610adc57610ac78760208435890101610ae6565b83526020928301929190910190600101610aaf565b5050505092915050565b600082601f830112610af6578081fd5b813567ffffffffffffffff811115610b0c578182fd5b610b3d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161140a565b9150808252836020828501011115610b5457600080fd5b8060208401602084013760009082016020015292915050565b600060808284031215610b7e578081fd5b610b88608061140a565b9050813567ffffffffffffffff80821115610ba257600080fd5b610bae85838601610ae6565b8352610bbd8560208601610c14565b60208401526040840135915080821115610bd657600080fd5b610be285838601610a7c565b60408401526060840135915080821115610bfb57600080fd5b50610c0884828501610ae6565b60608301525092915050565b803563ffffffff81168114610c2857600080fd5b92915050565b600080600080600060a08688031215610c45578081fd5b8535610c5081611481565b945060208601359350604086013592506060860135610c6e81611481565b949793965091946080013592915050565b60006020808385031215610c91578182fd5b823567ffffffffffffffff811115610ca7578283fd5b80840185601f820112610cb8578384fd5b80359150610cc8610a9a83611431565b82815283810190828501865b85811015610cfd57610ceb8a888435880101610ae6565b84529286019290860190600101610cd4565b509098975050505050505050565b60008060008060808587031215610d20578384fd5b84359350602085013560ff81168114610d37578384fd5b93969395505050506040820135916060013590565b600060208284031215610d5d578081fd5b813567ffffffffffffffff811115610d73578182fd5b610d7f84828501610ae6565b949350505050565b600060208284031215610d98578081fd5b5035919050565b600060208284031215610db0578081fd5b813567ffffffffffffffff80821115610dc7578283fd5b81840160608187031215610dd9578384fd5b610de3606061140a565b925080358352602081013582811115610dfa578485fd5b610e0687828401610ae6565b602085015250604081013582811115610e1d578485fd5b610e2987828401610ae6565b6040850152509195945050505050565b600060208284031215610e4a578081fd5b813567ffffffffffffffff80821115610e61578283fd5b81840160408187031215610e73578384fd5b610e7d604061140a565b9250803582811115610e8d578485fd5b610e9987828401610b6d565b845250602081013582811115610ead578485fd5b610eb987828401610ae6565b6020850152509195945050505050565b600060208284031215610eda578081fd5b813567ffffffffffffffff811115610ef0578182fd5b610d7f84828501610b6d565b600080600060608486031215610f10578081fd5b83359250602084013567ffffffffffffffff80821115610f2e578283fd5b610f3a87838801610ae6565b93506040860135915080821115610f4f578283fd5b50610f5c86828701610ae6565b9150509250925092565b60008151808452610f7e816020860160208601611451565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000815160808452610fc56080850182610f66565b6020915063ffffffff828501511682860152604084015185820360408701528181518084528484019150848582028501018584018794505b8285101561104b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868303018452611037828251610f66565b600195909501949387019391508601610ffd565b506060880151955088810360608a01526110658187610f66565b9998505050505050505050565b60008351611084818460208801611451565b9190910191825250602001919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611126577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452611114858351610fb0565b945092850192908501906001016110da565b5092979650505050505050565b93845260ff9290921660208401526040830152606082015260800190565b6000606082526111646060830186610f66565b82810360208401526111768186610f66565b83810360408501526111888186610f66565b979650505050505050565b6000602082526111a66020830184610f66565b9392505050565b60408082526004908201527f123456780000000000000000000000000000000000000000000000000000000060608201526080602082018190526005908201527f6c6f72656d00000000000000000000000000000000000000000000000000000060a082015260c00190565b6020808252600d908201527f53494d504c455f52455645525400000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f53494d504c455f52455155495245000000000000000000000000000000000000604082015260600190565b600060208252825160806020840152805160a08401526020810151606060c08501526112b7610100850182610f66565b604083015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608582030160e08601526112f28183610f66565b9250505060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0808584030160408601526113308383610f66565b604087015193508186820301606087015261134b8185610f66565b92505060608601519250808583030160808601525061136a8183610f66565b95945050505050565b905151815260200190565b60006020825282516040602084015261139a6060840182610fb0565b602085015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084820301604085015261136a8183610f66565b6000602082526111a66020830184610fb0565b90815260200190565b600083825260406020830152610d7f6040830184610f66565b60405181810167ffffffffffffffff8111828210171561142957600080fd5b604052919050565b600067ffffffffffffffff821115611447578081fd5b5060209081020190565b60005b8381101561146c578181015183820152602001611454565b8381111561147b576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461040157600080fdfea365627a7a723158204f5b227587475ada330d11bfb46020f41172555bd06234eaaad1a7d10a4c2a396c6578706572696d656e74616cf564736f6c634300050c0040'; + public static contractName = 'AbiGenDummy'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( diff --git a/packages/abi-gen/test-cli/output/typescript/lib_dummy.ts b/packages/abi-gen/test-cli/output/typescript/lib_dummy.ts index 6196624f8c..091c677516 100644 --- a/packages/abi-gen/test-cli/output/typescript/lib_dummy.ts +++ b/packages/abi-gen/test-cli/output/typescript/lib_dummy.ts @@ -40,6 +40,7 @@ export class LibDummyContract extends BaseContract { * @ignore */ public static deployedBytecode: string | undefined; + public static contractName = 'LibDummy'; private readonly _methodABIIndex: { [name: string]: number } = {}; public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, diff --git a/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts b/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts index 30b24111a2..682624229f 100644 --- a/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts +++ b/packages/abi-gen/test-cli/output/typescript/test_lib_dummy.ts @@ -41,6 +41,7 @@ export class TestLibDummyContract extends BaseContract { */ public static deployedBytecode = '0x6080604052348015600f57600080fd5b506004361060325760003560e01c806322935e921460375780632b82fdf0146063575b600080fd5b605160048036036020811015604b57600080fd5b5035607d565b60408051918252519081900360200190f35b605160048036036020811015607757600080fd5b5035608c565b60006086826095565b92915050565b6000608682609c565b6104d20190565b6001019056fea265627a7a72315820863e53f0da474a1275d583d88852313fe053941e79bddd5279abd812b31e020c64736f6c634300050c0032'; + public static contractName = 'TestLibDummy'; private readonly _methodABIIndex: { [name: string]: number } = {}; public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json index 44c0fd5dd1..d579f2dcc4 100644 --- a/packages/contract-wrappers/package.json +++ b/packages/contract-wrappers/package.json @@ -53,7 +53,6 @@ "@0x/assert": "^2.2.0-beta.2", "@0x/base-contract": "^5.5.0-beta.3", "@0x/contract-addresses": "^3.3.0-beta.4", - "@0x/contract-artifacts": "^2.3.0-beta.3", "@0x/json-schemas": "^4.1.0-beta.2", "@0x/types": "^2.5.0-beta.2", "@0x/utils": "^4.6.0-beta.2", diff --git a/packages/contract-wrappers/src/contract_wrappers.ts b/packages/contract-wrappers/src/contract_wrappers.ts index 42a351caca..03889ff778 100644 --- a/packages/contract-wrappers/src/contract_wrappers.ts +++ b/packages/contract-wrappers/src/contract_wrappers.ts @@ -1,16 +1,5 @@ import { assert } from '@0x/assert'; import { ContractAddresses } from '@0x/contract-addresses'; -import { - Coordinator, - DevUtils, - ERC20Token, - ERC721Token, - Exchange, - Forwarder, - Staking, - StakingProxy, - WETH9, -} from '@0x/contract-artifacts'; import { AbiDecoder } from '@0x/utils'; import { Web3Wrapper } from '@0x/web3-wrapper'; import { SupportedProvider } from 'ethereum-types'; @@ -18,11 +7,12 @@ import { SupportedProvider } from 'ethereum-types'; import { ContractWrappersConfigSchema } from './contract_wrappers_config_schema'; import { CoordinatorContract } from './generated-wrappers/coordinator'; import { DevUtilsContract } from './generated-wrappers/dev_utils'; +import { ERC20TokenContract } from './generated-wrappers/erc20_token'; +import { ERC721TokenContract } from './generated-wrappers/erc721_token'; import { ExchangeContract } from './generated-wrappers/exchange'; import { ForwarderContract } from './generated-wrappers/forwarder'; import { StakingContract } from './generated-wrappers/staking'; import { WETH9Contract } from './generated-wrappers/weth9'; - import { ContractWrappersConfig } from './types'; import { _getDefaultContractAddresses } from './utils/contract_addresses'; @@ -74,19 +64,18 @@ export class ContractWrappers { gasPrice: config.gasPrice, }; this._web3Wrapper = new Web3Wrapper(supportedProvider, txDefaults); - const artifactsArray = [ - Coordinator, - DevUtils, - ERC20Token, - ERC721Token, - Exchange, - Forwarder, - Staking, - StakingProxy, - WETH9, + const contractsArray = [ + CoordinatorContract, + DevUtilsContract, + ERC20TokenContract, + ERC721TokenContract, + ExchangeContract, + ForwarderContract, + StakingContract, + WETH9Contract, ]; - artifactsArray.forEach(artifact => { - this._web3Wrapper.abiDecoder.addABI(artifact.compilerOutput.abi, artifact.contractName); + contractsArray.forEach(contract => { + this._web3Wrapper.abiDecoder.addABI(contract.ABI(), contract.contractName); }); const contractAddresses = config.contractAddresses === undefined diff --git a/packages/contract-wrappers/src/generated-wrappers/coordinator.ts b/packages/contract-wrappers/src/generated-wrappers/coordinator.ts index 55d2f3af2d..b829e3715c 100644 --- a/packages/contract-wrappers/src/generated-wrappers/coordinator.ts +++ b/packages/contract-wrappers/src/generated-wrappers/coordinator.ts @@ -41,6 +41,7 @@ export class CoordinatorContract extends BaseContract { */ public static deployedBytecode = '0x6080604052600436106100b15760003560e01c8063da4fe07411610069578063ee55b9681161004e578063ee55b9681461018a578063fb6961cc146101b7578063fdd059a5146101cc576100b1565b8063da4fe07414610162578063e1c7157814610175576100b1565b806389fab5b71161009a57806389fab5b714610109578063b2562b7a1461012b578063c26cfecd14610140576100b1565b80630f7d8e39146100b357806352813679146100e9575b005b3480156100bf57600080fd5b506100d36100ce3660046116c2565b6101ec565b6040516100e09190611a15565b60405180910390f35b3480156100f557600080fd5b506100b1610104366004611889565b610455565b34801561011557600080fd5b5061011e610482565b6040516100e09190611c41565b34801561013757600080fd5b5061011e6104bb565b34801561014c57600080fd5b506101556104f4565b6040516100e09190611ba2565b6100b1610170366004611889565b6104fa565b34801561018157600080fd5b506101556105e8565b34801561019657600080fd5b506101aa6101a5366004611707565b61060c565b6040516100e09190611a36565b3480156101c357600080fd5b50610155610ac0565b3480156101d857600080fd5b506101556101e7366004611775565b610ac6565b80516000908061020a5761020a61020560008686610ad9565b610b7e565b60008360018551038151811061021c57fe5b016020015160f81c90506008811061023d5761023d61020560018787610ad9565b60008160ff16600881111561024e57fe5b9050600081600881111561025e57fe5b14156102785761027361020560028888610ad9565b61043c565b600181600881111561028657fe5b141561029b5761027361020560038888610ad9565b60028160088111156102a957fe5b141561038557826042146102c6576102c661020560008888610ad9565b6000856000815181106102d557fe5b016020015160f81c905060006102f287600163ffffffff610b8616565b9050600061030788602163ffffffff610b8616565b90506001898484846040516000815260200160405260405161032c9493929190611bcf565b6020604051602081039080840390855afa15801561034e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151975061044f9650505050505050565b600381600881111561039357fe5b141561043c57826042146103b0576103b061020560008888610ad9565b6000856000815181106103bf57fe5b016020015160f81c905060006103dc87600163ffffffff610b8616565b905060006103f188602163ffffffff610b8616565b905060018960405160200161040691906119e4565b604051602081830303815290604052805190602001208484846040516000815260200160405260405161032c9493929190611bcf565b61044b61020560018888610ad9565b5050505b92915050565b6060610464856080015161060c565b80519091501561047b5761047b8582868686610bb0565b5050505050565b6040518060400160405280601781526020017f30782050726f746f636f6c20436f6f7264696e61746f7200000000000000000081525081565b6040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b61050684848484610455565b6002546040517f2280c9100000000000000000000000000000000000000000000000000000000081526201000090910473ffffffffffffffffffffffffffffffffffffffff1690632280c9109034906105659088908790600401611c54565b6000604051808303818588803b15801561057e57600080fd5b505af1158015610592573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526105d99190810190611742565b506105e2610d5d565b50505050565b7fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f850716881565b60606000610620838263ffffffff610d7316565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f9b44d5560000000000000000000000000000000000000000000000000000000014806106b357507fffffffff0000000000000000000000000000000000000000000000000000000081167fe14b58c400000000000000000000000000000000000000000000000000000000145b1561073c576106c06112e6565b83516106d690859060049063ffffffff610dbf16565b8060200190516106e991908101906117ff565b604080516001808252818301909252919250816020015b6107086112e6565b815260200190600190039081610700579050509250808360008151811061072b57fe5b602002602001018190525050610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f9694a4020000000000000000000000000000000000000000000000000000000014806107cd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f8ea8dfe400000000000000000000000000000000000000000000000000000000145b8061081957507fffffffff0000000000000000000000000000000000000000000000000000000081167fbeee2e1400000000000000000000000000000000000000000000000000000000145b8061086557507fffffffff0000000000000000000000000000000000000000000000000000000081167f78d29ac100000000000000000000000000000000000000000000000000000000145b806108b157507fffffffff0000000000000000000000000000000000000000000000000000000081167f8bc8efb300000000000000000000000000000000000000000000000000000000145b806108fd57507fffffffff0000000000000000000000000000000000000000000000000000000081167f369da09900000000000000000000000000000000000000000000000000000000145b8061094957507fffffffff0000000000000000000000000000000000000000000000000000000081167fa6c3bf3300000000000000000000000000000000000000000000000000000000145b1561097e57825161096490849060049063ffffffff610dbf16565b8060200190516109779190810190611636565b9150610aba565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f88ec79fb000000000000000000000000000000000000000000000000000000001480610a0f57507fffffffff0000000000000000000000000000000000000000000000000000000081167fb718e29200000000000000000000000000000000000000000000000000000000145b15610aba57610a1c6112e6565b610a246112e6565b8451610a3a90869060049063ffffffff610dbf16565b806020019051610a4d9190810190611832565b60408051600280825260608201909252929450909250816020015b610a706112e6565b815260200190600190039081610a685790505093508184600081518110610a9357fe5b60200260200101819052508084600181518110610aac57fe5b602002602001018190525050505b50919050565b60005481565b600061044f610ad483610e46565b610e99565b606063779c522360e01b848484604051602401610af893929190611c0f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290509392505050565b805160208201fd5b60008160200183511015610ba757610ba76102056005855185602001610ea7565b50016020015190565b3273ffffffffffffffffffffffffffffffffffffffff841614610bd957610bd961020584610ec6565b6000610be786600154610f65565b60408051600080825260208201909252845192935091905b818114610c9057610c0e6113ad565b60405180606001604052808973ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018881525090506000610c4c82610ac6565b90506000610c6d82898681518110610c6057fe5b60200260200101516101ec565b9050610c7f868263ffffffff610f7916565b95505060019092019150610bff9050565b50610ca1823263ffffffff610f7916565b875190925060005b818114610d5157600073ffffffffffffffffffffffffffffffffffffffff16898281518110610cd457fe5b60200260200101516060015173ffffffffffffffffffffffffffffffffffffffff161415610d0157610d49565b6000898281518110610d0f57fe5b60200260200101516040015190506000610d32828761101b90919063ffffffff16565b905080610d4657610d466102058884611053565b50505b600101610ca9565b50505050505050505050565b610d656110f5565b610d7157610d71611103565b565b60008160040183511015610d9457610d946102056003855185600401610ea7565b5001602001517fffffffff000000000000000000000000000000000000000000000000000000001690565b606081831115610dd857610dd861020560008585610ea7565b8351821115610df157610df16102056001848751610ea7565b8282036040519080825280601f01601f191660200182016040528015610e1e576020820181803883390190505b509050610e3f610e2d8261113d565b84610e378761113d565b018351611143565b9392505050565b604081810151825160209384015182519285019290922083517fa6511c04ca44625d50986f8c36bedc09366207a17b96e347094053a9f85071688152948501919091529183015260608201526080902090565b600061044f60005483611207565b6060632800659560e01b848484604051602401610af893929190611bed565b606063a458d7ff60e01b82604051602401610ee19190611a15565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050919050565b6000610e3f82610f7485611241565b611207565b815160405160609184906020808202808401820192910182851015610fa557610fa561020586856112c9565b82851115610fbf57610fb8858583611143565b8497508793505b60018201915060208101905080840192508294508188528460405286886001840381518110610fea57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250959695505050505050565b60006020835102602084018181018192505b8083101561044b5782518086141561104757600194508193505b5060208301925061102d565b606063d789b64060e01b8383604051602401611070929190611bab565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152905092915050565b600254610100900460ff1690565b3031801561113a57604051339082156108fc029083906000818181858888f19350505050158015611138573d6000803e3d6000fd5b505b50565b60200190565b602081101561116d576001816020036101000a038019835116818551168082178652505050611202565b8282141561117a57611202565b828211156111b45760208103905080820181840181515b828510156111ac578451865260209586019590940193611191565b905250611202565b60208103905080820181840183515b818612156111fd57825182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092830192909101906111c3565b855250505b505050565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc71541508815294850195909552908301919091529481019490945273ffffffffffffffffffffffffffffffffffffffff9091169183019190915260a082015260c0902090565b6060635fc8372260e01b8383604051602401611070929190611cca565b604051806101c00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6040805160608082018352600080835260208301529181019190915290565b803561044f81611d8d565b805161044f81611d8d565b600082601f8301126113f2578081fd5b813561140561140082611cff565b611cd8565b8181529150602080830190840160005b838110156114425761142d876020843589010161144c565b83526020928301929190910190600101611415565b5050505092915050565b600082601f83011261145c578081fd5b813561146a61140082611d1f565b915080825283602082850101111561148157600080fd5b8060208401602084013760009082016020015292915050565b600082601f8301126114aa578081fd5b81516114b861140082611d1f565b91508082528360208285010111156114cf57600080fd5b6114e0816020840160208601611d61565b5092915050565b60006101c08083850312156114fa578182fd5b61150381611cd8565b91505061151083836113d7565b815261151f83602084016113d7565b602082015261153183604084016113d7565b604082015261154383606084016113d7565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff808211156115a557600080fd5b6115b18683870161149a565b838501526101609250828501519150808211156115cd57600080fd5b6115d98683870161149a565b838501526101809250828501519150808211156115f557600080fd5b6116018683870161149a565b838501526101a092508285015191508082111561161d57600080fd5b5061162a8582860161149a565b82840152505092915050565b60006020808385031215611648578182fd5b825167ffffffffffffffff81111561165e578283fd5b80840185601f82011261166f578384fd5b8051915061167f61140083611cff565b82815283810190828501865b858110156116b4576116a28a8884518801016114e7565b8452928601929086019060010161168b565b509098975050505050505050565b600080604083850312156116d4578081fd5b82359150602083013567ffffffffffffffff8111156116f1578182fd5b6116fd8582860161144c565b9150509250929050565b600060208284031215611718578081fd5b813567ffffffffffffffff81111561172e578182fd5b61173a8482850161144c565b949350505050565b600060208284031215611753578081fd5b815167ffffffffffffffff811115611769578182fd5b61173a8482850161149a565b600060208284031215611786578081fd5b813567ffffffffffffffff8082111561179d578283fd5b818401606081870312156117af578384fd5b6117b96060611cd8565b925080356117c681611d8d565b8352602081810135908401526040810135828111156117e3578485fd5b6117ef8782840161144c565b6040850152509195945050505050565b600060208284031215611810578081fd5b815167ffffffffffffffff811115611826578182fd5b61173a848285016114e7565b60008060408385031215611844578182fd5b825167ffffffffffffffff8082111561185b578384fd5b611867868387016114e7565b9350602085015191508082111561187c578283fd5b506116fd858286016114e7565b6000806000806080858703121561189e578182fd5b843567ffffffffffffffff808211156118b5578384fd5b81870160a0818a0312156118c7578485fd5b6118d160a0611cd8565b92508035835260208101356020840152604081013560408401526118f889606083016113cc565b606084015260808101358281111561190e578586fd5b61191a8a82840161144c565b6080850152505081955061193188602089016113cc565b94506040870135915080821115611946578384fd5b6119528883890161144c565b93506060870135915080821115611967578283fd5b50611974878288016113e2565b91505092959194509250565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526119b2816020860160208601611d61565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611b95577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845281516101c0611a9a878351611980565b87820151611aaa89890182611980565b506040820151611abd6040890182611980565b506060820151611ad06060890182611980565b506080820151608088015260a082015160a088015260c082015160c088015260e082015160e08801526101008083015181890152506101208083015181890152506101408083015182828a0152611b29838a018261199a565b915050610160915081830151888203838a0152611b46828261199a565b9250505061018080830151888303828a0152611b62838261199a565b9150506101a0915081830151888203838a0152611b7f828261199a565b9850505094870194505090850190600101611a5b565b5092979650505050505050565b90815260200190565b91825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b93845260ff9290921660208401526040830152606082015260800190565b6060810160088510611bfb57fe5b938152602081019290925260409091015290565b600060048510611c1b57fe5b84825283602083015260606040830152611c38606083018461199a565b95945050505050565b600060208252610e3f602083018461199a565b60006040825283516040830152602084015160608301526040840151608083015273ffffffffffffffffffffffffffffffffffffffff60608501511660a0830152608084015160a060c0840152611cae60e084018261199a565b8381036020850152611cc0818661199a565b9695505050505050565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715611cf757600080fd5b604052919050565b600067ffffffffffffffff821115611d15578081fd5b5060209081020190565b600067ffffffffffffffff821115611d35578081fd5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611d7c578181015183820152602001611d64565b838111156105e25750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461113a57600080fd5b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a090209056fea365627a7a72315820efc81773b7912bf9e2c93c985afa2b6feee69452023986811fc84107b08ecc776c6578706572696d656e74616cf564736f6c634300050d0040'; + public static contractName = 'Coordinator'; private readonly _methodABIIndex: { [name: string]: number } = {}; public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, diff --git a/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts b/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts index 793ed00c3e..115e212abb 100644 --- a/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts +++ b/packages/contract-wrappers/src/generated-wrappers/dev_utils.ts @@ -41,6 +41,7 @@ export class DevUtilsContract extends BaseContract { */ public static deployedBytecode = '0x608060405234801561001057600080fd5b50600436106102e95760003560e01c80639a7e752611610191578063ca49f47c116100e3578063d3d862d111610097578063e4e6e7da11610071578063e4e6e7da14610760578063e77286eb14610781578063ee4f5a94146107a3576102e9565b8063d3d862d11461070b578063d46950281461071e578063e25cabf71461073e576102e9565b8063d001c5dc116100c8578063d001c5dc146106c5578063d186037f146106d8578063d3637905146106eb576102e9565b8063ca49f47c14610681578063cafd3a07146106a4576102e9565b8063a6627e9f11610145578063bbb2dcf61161011f578063bbb2dcf614610636578063bc03f96414610658578063c26cfecd14610679576102e9565b8063a6627e9f146105ed578063acaedc7414610600578063b43cffe114610623576102e9565b8063a070cac811610176578063a070cac8146105a7578063a0901e51146105ba578063a5cd62ba146105cd576102e9565b80639a7e7526146105605780639eadc83514610583576102e9565b806346eb65cb1161024a5780636f83188e116101fe5780637b66ad34116101d85780637b66ad34146105195780637d7275121461053a5780638f4ce4791461054d576102e9565b80636f83188e146104c25780637914b2ec146104e557806379c9c42614610506576102e9565b8063590aa8751161022f578063590aa8751461046d57806363eb39921461048d57806365129042146104a0576102e9565b806346eb65cb146104385780634dfdac201461044d576102e9565b8063314853ff116102a157806332aae3ad1161028657806332aae3ad146103d25780633db6dc61146103f4578063459be5e214610417576102e9565b8063314853ff1461039d578063327d3054146103bf576102e9565b80630d7b7d76116102d25780630d7b7d761461033a578063165979e11461035b5780632322cf761461037d576102e9565b806302d0aec3146102ee57806304a5618a14610318575b600080fd5b6103016102fc3660046149e0565b6107c5565b60405161030f9291906153ec565b60405180910390f35b61032b6103263660046149e0565b610821565b60405161030f939291906154e7565b61034d610348366004614511565b61089c565b60405161030f92919061539a565b61036e6103693660046149e0565b6108be565b60405161030f93929190615622565b61039061038b366004614511565b61091b565b60405161030f9190615357565b6103b06103ab3660046149e0565b610943565b60405161030f939291906153c1565b61034d6103cd3660046149e0565b61098a565b6103e56103e03660046149e0565b6109cc565b60405161030f93929190615598565b6104076104023660046149e0565b610a1f565b60405161030f9493929190615360565b61042a6104253660046149e0565b610a69565b60405161030f92919061560b565b61044b6104463660046149e0565b610abf565b005b61046061045b366004614438565b610bbb565b60405161030f91906152f1565b61048061047b3660046142b1565b610c3e565b60405161030f9190615547565b61048061049b366004614555565b610c95565b6104b36104ae3660046149e0565b610cf2565b60405161030f939291906150bf565b6104d56104d03660046149e0565b610d2c565b60405161030f9493929190615696565b6104f86104f33660046149e0565b6115e1565b60405161030f92919061541e565b610390610514366004614c3f565b611619565b61052c6105273660046149e0565b6116a2565b60405161030f9291906150a5565b610390610548366004614511565b6116da565b6104f861055b3660046149e0565b611cc1565b61057361056e3660046149e0565b611d1e565b60405161030f9493929190615652565b6105966105913660046149e0565b611d7f565b60405161030f959493929190615441565b6103906105b5366004614b3a565b611df7565b6104606105c83660046145d7565b611e78565b6105e06105db36600461463d565b611ef1565b60405161030f919061520b565b6104806105fb3660046145ac565b611fb4565b61061361060e3660046149e0565b61200d565b60405161030f9493929190615167565b610480610631366004614486565b612049565b6106496106443660046149e0565b6120a8565b60405161030f93929190615512565b61066b6106663660046149e0565b612122565b60405161030f9291906153a8565b61039061215b565b61069461068f3660046149e0565b612161565b60405161030f94939291906154a4565b6106b76106b23660046149e0565b6121df565b60405161030f929190615689565b6104606106d3366004614438565b61222d565b6103906106e6366004614511565b61229b565b6106fe6106f9366004614a8b565b612757565b60405161030f919061563d565b6104806107193660046147e5565b612cc5565b61073161072c3660046149e0565b612ce4565b60405161030f9190615409565b61075161074c3660046146c1565b612d94565b60405161030f93929190615256565b61077361076e366004614438565b612ecc565b60405161030f929190615332565b61079461078f366004614ae3565b612ee5565b60405161030f93929190615836565b6107b66107b13660046149e0565b61311f565b60405161030f939291906155e1565b6000806107d9836107d461315c565b613180565b60006107f260048551866131c09092919063ffffffff16565b8060200190516108059190810190614993565b909350905060ff8116600681111561081957fe5b915050915091565b60008080610835848263ffffffff61320316565b92506001600160e01b0319831663012b8bc960e11b146108705760405162461bcd60e51b8152600401610867906157ff565b60405180910390fd5b61088184601063ffffffff61323716565b915061089484602463ffffffff61326a16565b929491935050565b6000806108a984846116da565b91506108b5848461229b565b90509250929050565b60008060006108cf846107d4613276565b60006108e860048651876131c09092919063ffffffff16565b8060200190516108fb9190810190614e1e565b9094509250905060ff8116600281111561091157fe5b9350509193909250565b600080600061092a858561089c565b91509150610938828261329a565b925050505b92915050565b6000606080610954846107d46132b0565b835161096a90859060049063ffffffff6131c016565b80602001905161097d9190810190614933565b9196909550909350915050565b600080610999836107d46132d4565b82516109af90849060049063ffffffff6131c016565b8060200190516109c291908101906148d5565b9094909350915050565b60008060606109dd846107d46132f8565b60006109f660048651876131c09092919063ffffffff16565b806020019051610a099190810190614dd2565b9094509250905060ff8116600181111561091157fe5b600080606080610a31856107d461331c565b8451610a4790869060049063ffffffff6131c016565b806020019051610a5a9190810190614891565b92989197509550909350915050565b600080610a78836107d4613340565b6000610a9160048551866131c09092919063ffffffff16565b806020019051610aa49190810190614d10565b9250905060ff81166003811115610ab757fe5b925050915091565b6000610ad1828263ffffffff61320316565b90506001600160e01b03198116630f47261b60e41b1415610afc57610af582611cc1565b5050610bb7565b6001600160e01b0319811663012b8bc960e11b1415610b2657610b1e82610821565b505050610bb7565b6001600160e01b0319811663a7cb5fb760e01b1415610b5257610b4882611d7f565b5050505050610bb7565b6001600160e01b031981166394cfcdd760e01b1415610b7457610b1e826120a8565b6001600160e01b0319811663619ce88560e11b1415610b9f57610b9682612161565b50505050610bb7565b60405162461bcd60e51b8152600401610867906157ff565b5050565b606060008251905080604051908082528060200260200182016040528015610bed578160200160208202803883390190505b50915060005b818114610c3657610c1785858381518110610c0a57fe5b602002602001015161229b565b838281518110610c2357fe5b6020908102919091010152600101610bf3565b505092915050565b604051606090630f47261b60e41b90610c5b908490602401615091565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505b919050565b60405160609063619ce88560e11b90610cb690869086908690602401615135565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505b9392505050565b6000806000610d03846107d4613364565b8351610d1990859060049063ffffffff6131c016565b80602001905161097d9190810190614306565b60608080806000610d43868263ffffffff61320316565b90506001600160e01b0319811663dedfc1f160e01b1415610d9b576040518060400160405280601181526020017f626174636843616e63656c4f726465727300000000000000000000000000000081525094506111e3565b6001600160e01b03198116634b4a520160e11b1415610df1576040518060400160405280600f81526020017f626174636846696c6c4f7264657273000000000000000000000000000000000081525094506111e3565b6001600160e01b031981166323aa37f960e21b1415610e47576040518060400160405280601681526020017f626174636846696c6c4f72646572734e6f5468726f770000000000000000000081525094506111e3565b6001600160e01b03198116632fbb8b8560e21b1415610e9d576040518060400160405280601581526020017f626174636846696c6c4f724b696c6c4f7264657273000000000000000000000081525094506111e3565b6001600160e01b03198116632da6298760e01b1415610ef3576040518060400160405280600b81526020017f63616e63656c4f7264657200000000000000000000000000000000000000000081525094506111e3565b6001600160e01b03198116634da26aab60e11b1415610f49576040518060400160405280600981526020017f66696c6c4f72646572000000000000000000000000000000000000000000000081525094506111e3565b6001600160e01b03198116633852d63160e21b1415610f9f576040518060400160405280600f81526020017f66696c6c4f724b696c6c4f72646572000000000000000000000000000000000081525094506111e3565b6001600160e01b031981166378d29ac160e01b1415610ff5576040518060400160405280601681526020017f6d61726b65744275794f72646572734e6f5468726f770000000000000000000081525094506111e3565b6001600160e01b0319811663369da09960e01b141561104b576040518060400160405280601781526020017f6d61726b657453656c6c4f72646572734e6f5468726f7700000000000000000081525094506111e3565b6001600160e01b03198116638bc8efb360e01b14156110a1576040518060400160405280601981526020017f6d61726b65744275794f726465727346696c6c4f724b696c6c0000000000000081525094506111e3565b6001600160e01b0319811663a6c3bf3360e01b14156110f7576040518060400160405280601a81526020017f6d61726b657453656c6c4f726465727346696c6c4f724b696c6c00000000000081525094506111e3565b6001600160e01b031981166388ec79fb60e01b141561114d576040518060400160405280600b81526020017f6d617463684f726465727300000000000000000000000000000000000000000081525094506111e3565b6001600160e01b031981167f4f9559b10000000000000000000000000000000000000000000000000000000014806111ae57506001600160e01b031981167f2280c91000000000000000000000000000000000000000000000000000000000145b156111cb5760405162461bcd60e51b815260040161086790615791565b60405162461bcd60e51b81526004016108679061575a565b6001600160e01b0319811663dedfc1f160e01b141561126f57855161121290879060049063ffffffff61338816565b806020019051611225919081019061460a565b604080516000808252602082019092529195505b5060408051600080825260208201909252919450611267565b60608152602001906001900390816112525790505b5091506115d9565b6001600160e01b03198116632fbb8b8560e21b148061129e57506001600160e01b03198116634b4a520160e11b145b806112b957506001600160e01b031981166323aa37f960e21b145b156112d3576112c786613408565b919550935091506115d9565b6001600160e01b03198116632da6298760e01b14156113a25760408051600180825281830190925290816020015b611309613be4565b815260200190600190039081611301575050865190945061133490879060049063ffffffff61338816565b8060200190516113479190810190614a58565b8460008151811061135457fe5b60200260200101819052506000604051908082528060200260200182016040528015611239578160200160208202803883390190505060408051600080825260208201909252919450611267565b6001600160e01b03198116633852d63160e21b14806113d157506001600160e01b03198116634da26aab60e11b145b156113df576112c786613437565b6001600160e01b031981166378d29ac160e01b148061140e57506001600160e01b0319811663369da09960e01b145b8061142957506001600160e01b03198116638bc8efb360e01b145b8061144457506001600160e01b0319811663a6c3bf3360e01b145b15611452576112c786613531565b6001600160e01b031981166388ec79fb60e01b14156115d957611473613be4565b61147b613be4565b60608061149560048b518c6133889092919063ffffffff16565b8060200190516114a89190810190614b93565b604080516002808252606082019092529498509296509094509250816020015b6114d0613be4565b8152602001906001900390816114c857905050975083886000815181106114f357fe5b6020026020010181905250828860018151811061150c57fe5b602090810291909101015260408051600280825260608201909252908160200160208202803883390190505096508360a001518760008151811061154c57fe5b6020026020010181815250508260a001518760018151811061156a57fe5b60209081029190910101526040805160028082526060820190925290816020015b606081526020019060019003908161158b57905050955081866000815181106115b057fe5b602002602001018190525080866001815181106115c957fe5b6020026020010181905250505050505b509193509193565b6000806115f0836107d46135a5565b825161160690849060049063ffffffff6131c016565b8060200190516109c291908101906149b7565b600061169a846116956040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525087876135c9565b613620565b949350505050565b6000806116b1836107d4613634565b82516116c790849060049063ffffffff6131c016565b8060200190516109c291908101906142cd565b6000806116ed838263ffffffff61320316565b90506001600160e01b03198116630f47261b60e41b141561181f57600061171b84601063ffffffff61323716565b6040519091506060907f70a082310000000000000000000000000000000000000000000000000000000090611754908890602401615091565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006060836001600160a01b0316836040516117a59190615075565b600060405180830381855afa9150503d80600081146117e0576040519150601f19603f3d011682016040523d82523d6000602084013e6117e5565b606091505b50915091508180156117f8575080516020145b611803576000611814565b61181481600063ffffffff61326a16565b955050505050611cba565b6001600160e01b0319811663012b8bc960e11b14156119775760008061184485610821565b6040519194509250606091507f6352211e0000000000000000000000000000000000000000000000000000000090611880908490602401615357565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006060846001600160a01b0316836040516118d19190615075565b600060405180830381855afa9150503d806000811461190c576040519150601f19603f3d011682016040523d82523d6000602084013e611911565b606091505b50915091506000828015611926575081516020145b611931576000611942565b61194282600c63ffffffff61323716565b9050896001600160a01b0316816001600160a01b031614611964576000611967565b60015b60ff169750505050505050611cba565b6001600160e01b0319811663a7cb5fb760e01b1415611b1757600060608061199e86611d7f565b5081519296509094509250905060005b818114611b0d5783516060907efdd58e00000000000000000000000000000000000000000000000000000000908b908790859081106119e957fe5b6020026020010151604051602401611a0292919061519b565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006060876001600160a01b031683604051611a539190615075565b600060405180830381855afa9150503d8060008114611a8e576040519150601f19603f3d011682016040523d82523d6000602084013e611a93565b606091505b50915091506000828015611aa8575081516020145b611ab3576000611ac4565b611ac482600063ffffffff61326a16565b90506000878681518110611ad457fe5b60200260200101518281611ae457fe5b0490508b811080611af357508b155b15611afc57809b505b5050600190930192506119ae915050565b5050505050611cba565b6001600160e01b0319811663619ce88560e11b1415611c1c576040516060907fa85e59e40000000000000000000000000000000000000000000000000000000090611b6d9086906000908190819060240161555a565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925260045491519092506000916001600160a01b031690611bbf908490615075565b600060405180830381855afa9150503d8060008114611bfa576040519150601f19603f3d011682016040523d82523d6000602084013e611bff565b606091505b5050905080611c0f576000611c13565b6000195b93505050611cba565b6001600160e01b031981166394cfcdd760e01b1415611cba57606080611c41856120a8565b80519194509250905060005b818114611cb5576000611c7389858481518110611c6657fe5b60200260200101516116da565b90506000858381518110611c8357fe5b60200260200101518281611c9357fe5b04905087811080611ca2575087155b15611cab578097505b5050600101611c4d565b505050505b5092915050565b600080611cd4838263ffffffff61320316565b91506001600160e01b03198216630f47261b60e41b14611d065760405162461bcd60e51b8152600401610867906157ff565b611d1783601063ffffffff61323716565b9050915091565b60008060006060611d31856107d4613658565b6000611d4a60048751886131c09092919063ffffffff16565b806020019051611d5d9190810190614d74565b91965094509250905060ff81166006811115611d7557fe5b9450509193509193565b60008060608080611d96868563ffffffff61320316565b94506001600160e01b0319851663a7cb5fb760e01b14611dc85760405162461bcd60e51b8152600401610867906157ff565b505050506024828101516044840151606485015160848601519496929591820184019490820184019391010190565b600061169a84611e736040518060400160405280600b81526020017f30782050726f746f636f6c0000000000000000000000000000000000000000008152506040518060400160405280600581526020017f332e302e3000000000000000000000000000000000000000000000000000000081525087876135c9565b61367c565b6060808251604051908082528060200260200182016040528015611ea6578160200160208202803883390190505b50905060005b83518114611cba57838181518110611ec057fe5b60200260200101516001600160a01b031631828281518110611ede57fe5b6020908102919091010152600101611eac565b606060008451905080604051908082528060200260200182016040528015611f23578160200160208202803883390190505b50915060005b818114611fab57611f74868281518110611f3f57fe5b6020026020010151868381518110611f5357fe5b6020026020010151868481518110611f6757fe5b6020026020010151612757565b838281518110611f8057fe5b60200260200101906004811115611f9357fe5b90816004811115611fa057fe5b905250600101611f29565b50509392505050565b60405160609063012b8bc960e11b90611fd3908590859060240161519b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905092915050565b60006060806060612020856107d461368b565b845161203690869060049063ffffffff6131c016565b806020019051610a5a91908101906143a0565b60405160609063a7cb5fb760e01b9061206c9087908790879087906024016150e3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050949350505050565b60006060806120bd848463ffffffff61320316565b92506001600160e01b031983166394cfcdd760e01b146120ef5760405162461bcd60e51b8152600401610867906157ff565b835161210590859060049063ffffffff61338816565b806020019051612118919081019061481a565b9395909450915050565b60006060612132836107d46136af565b825161214890849060049063ffffffff6131c016565b8060200190516109c291908101906148f8565b60055481565b600080606081612177858263ffffffff61320316565b93506001600160e01b0319841663619ce88560e11b146121a95760405162461bcd60e51b8152600401610867906157ff565b84516121bf90869060049063ffffffff61338816565b8060200190516121d29190810190614348565b9597919650949350915050565b6000806121ee836107d46136d3565b600061220760048551866131c09092919063ffffffff16565b80602001905161221a9190810190614d10565b9250905060ff81166001811115610ab757fe5b60606000825190508060405190808252806020026020018201604052801561225f578160200160208202803883390190505b50915060005b818114610c365761227c85858381518110611c6657fe5b83828151811061228857fe5b6020908102919091010152600101612265565b6000806122ae838263ffffffff61320316565b90506001600160e01b031981166394cfcdd760e01b1415612347576060806122d5856120a8565b80519194509250905060005b81811461233c5760006122fa89858481518110610c0a57fe5b9050600085838151811061230a57fe5b6020026020010151828161231a57fe5b04905087811080612329575087155b15612332578097505b50506001016122e1565b5061093d9350505050565b6001600160e01b03198116630f47261b60e41b14156123b957600061237384601063ffffffff61323716565b6001546040519192506060917fdd62ed3e00000000000000000000000000000000000000000000000000000000916117549189916001600160a01b0316906024016150a5565b6001600160e01b0319811663012b8bc960e11b1415612605576000806123de85610821565b6002546040519295509093506060925063e985e9c560e01b91612411918a916001600160a01b03909116906024016150a5565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006060846001600160a01b0316836040516124629190615075565b600060405180830381855afa9150503d806000811461249d576040519150601f19603f3d011682016040523d82523d6000602084013e6124a2565b606091505b50915091508115806124b657508051602014155b806124d257506124cd81600063ffffffff61326a16565b600114155b156125f6576040516060907f081812fc000000000000000000000000000000000000000000000000000000009061250d908790602401615357565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050856001600160a01b03168160405161255a9190615075565b600060405180830381855afa9150503d8060008114612595576040519150601f19603f3d011682016040523d82523d6000602084013e61259a565b606091505b5090935091508280156125ae575081516020145b80156125dd57506002546001600160a01b03166125d283600c63ffffffff61323716565b6001600160a01b0316145b6125e85760006125eb565b60015b60ff16975050611b0d565b60001996505050505050611cba565b6001600160e01b0319811663a7cb5fb760e01b141561273357600061262984611d7f565b50506003546040519294506060935063e985e9c560e01b9261265a925089916001600160a01b0316906024016150a5565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006060836001600160a01b0316836040516126ab9190615075565b600060405180830381855afa9150503d80600081146126e6576040519150601f19603f3d011682016040523d82523d6000602084013e6126eb565b606091505b50915091508180156126fe575080516020145b801561271a575061271681600063ffffffff61326a16565b6001145b612725576000611814565b600019955050505050611cba565b6001600160e01b0319811663619ce88560e11b1415611cba57506000199392505050565b6000612761613c77565b6127f28584600660009054906101000a90046001600160a01b03166001600160a01b0316631ce4c78b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127b457600080fd5b505afa1580156127c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127ec9190810190614cf8565b3a6136f7565b60408051600480825260a0820190925291925060609190816020015b606081526020019060019003908161280e57505060408051600480825260a082019092529192506060919060208201608080388339505060408051600480825260a08201909252929350606092915060208201608080388339505060408051600480825260a08201909252929350606092915060208201608080388339019050509050886101600151846000815181106128a457fe5b602002602001018190525087836000815181106128bd57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508860000151826000815181106128ef57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050868160008151811061291d57fe5b6020026020010181815250508861014001518460018151811061293c57fe5b602002602001018190525088600001518360018151811061295957fe5b60200260200101906001600160a01b031690816001600160a01b031681525050878260018151811061298757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508460000151816001815181106129b957fe5b602002602001018181525050886101a00151846002815181106129d857fe5b602002602001018190525087836002815181106129f157fe5b60200260200101906001600160a01b031690816001600160a01b031681525050886040015182600281518110612a2357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050846060015181600281518110612a5557fe5b60200260200101818152505088610180015184600381518110612a7457fe5b6020026020010181905250886000015183600381518110612a9157fe5b60200260200101906001600160a01b031690816001600160a01b031681525050886040015182600381518110612ac357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050846040015181600381518110612af557fe5b60209081029190910101526040516060907fb04fbddd0000000000000000000000000000000000000000000000000000000090612b3c9087908790879087906024016151b4565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925260065491519092506060916001600160a01b031690612b8e908490615075565b6000604051808303816000865af19150503d8060008114612bcb576040519150601f19603f3d011682016040523d82523d6000602084013e612bd0565b606091505b50915060009050612be7828263ffffffff61320316565b9050612bf16132f8565b6001600160e01b031982811691161415612c33576000612c10836109cc565b5091505060ff81166004811115612c2357fe5b9950505050505050505050610ceb565b612c3b6132b0565b6001600160e01b031982811691161415612c6e576000612c5a83610943565b509091505060ff81166004811115612c2357fe5b815160208301207ff43f26ea5a94b478394a975e856464913dc1a8a1ca70939d974aa7c238aa0ce01415612cad57600498505050505050505050610ceb565b60405162461bcd60e51b815260040161086790615723565b6040516060906394cfcdd760e01b90611fd39085908590602401615304565b6000612cf6828263ffffffff61320316565b90506001600160e01b03198116630f47261b60e41b1480612d2757506001600160e01b0319811663012b8bc960e11b145b80612d4257506001600160e01b0319811663a7cb5fb760e01b145b80612d5d57506001600160e01b031981166394cfcdd760e01b145b80612d7857506001600160e01b0319811663619ce88560e11b145b610c905760405162461bcd60e51b8152600401610867906157ff565b606080606060008551905080604051908082528060200260200182016040528015612dd957816020015b612dc6613ca6565b815260200190600190039081612dbe5790505b50935080604051908082528060200260200182016040528015612e06578160200160208202803883390190505b50925080604051908082528060200260200182016040528015612e33578160200160208202803883390190505b50915060005b818114612ec357612e70878281518110612e4f57fe5b6020026020010151878381518110612e6357fe5b6020026020010151612ee5565b8751889085908110612e7e57fe5b60200260200101878581518110612e9157fe5b60200260200101878681518110612ea457fe5b9315156020948502919091019093019290925291905252600101612e39565b50509250925092565b606080612ed9848461222d565b91506108b58484610bbb565b612eed613ca6565b600080546040517f9d3fa4b900000000000000000000000000000000000000000000000000000000815282916001600160a01b031690639d3fa4b990612f3790889060040161585a565b60606040518083038186803b158015612f4f57600080fd5b505afa158015612f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f879190810190614a13565b85516000546040517fa12dcc6f00000000000000000000000000000000000000000000000000000000815292955090916001600160a01b039091169063a12dcc6f90612fd9908990899060040161586d565b60206040518083038186803b158015612ff157600080fd5b505afa158015613005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130299190810190614871565b9150600061303c8288610140015161091b565b60a088015160c08901516101808a01516101408b01519394509192909160009161306b9163ffffffff61376e16565b15613098576130918461308b848d6080015161379390919063ffffffff16565b856137af565b90506130f1565b816130ac57613091848b60800151856137af565b60006130bd868c610180015161091b565b905060006130d0868d60800151876137af565b905060006130df8386886137af565b90506130eb828261329a565b93505050505b61311161310b8960400151856137d190919063ffffffff16565b8261329a565b965050505050509250925092565b6000806000613130846107d46137f0565b600061314960048651876131c09092919063ffffffff16565b8060200190516108fb9190810190614d3d565b7ffdb6ca8d0000000000000000000000000000000000000000000000000000000090565b600061318d836000613203565b90506001600160e01b0319808216908316146131bb5760405162461bcd60e51b8152600401610867906157c8565b505050565b6060818311156131de576131de6131d960008585613814565b613833565b83518211156131f7576131f76131d96001848751613814565b50819003910190815290565b60008160040183511015613224576132246131d96003855185600401613814565b5001602001516001600160e01b03191690565b60008160140183511015613258576132586131d96004855185601401613814565b5001601401516001600160a01b031690565b6000610ceb838361383b565b7f18e4b1410000000000000000000000000000000000000000000000000000000090565b60008183106132a95781610ceb565b5090919050565b7f4678472b0000000000000000000000000000000000000000000000000000000090565b7fb6555d6f0000000000000000000000000000000000000000000000000000000090565b7f488219a60000000000000000000000000000000000000000000000000000000090565b7f1b8388f70000000000000000000000000000000000000000000000000000000090565b7fe94a7ed00000000000000000000000000000000000000000000000000000000090565b7f4ad312750000000000000000000000000000000000000000000000000000000090565b6060818311156133a1576133a16131d960008585613814565b83518211156133ba576133ba6131d96001848751613814565b8282036040519080825280601f01601f1916602001820160405280156133e7576020820181803883390190505b509050610ceb6133f682613865565b8461340087613865565b01835161386b565b606080606061342460048551866133889092919063ffffffff16565b80602001905161097d9190810190614718565b60408051600180825281830190925260609182918291816020015b61345a613be4565b8152602001906001900390816134525750506040805160018082528183019092529194506020808301908038833901905050604080516001808252818301909252919350816020015b60608152602001906001900390816134a357505084519091506134d090859060049063ffffffff61338816565b8060200190516134e39190810190614bec565b856000815181106134f057fe5b602002602001018560008151811061350457fe5b602002602001018560008151811061351857fe5b6020908102919091010192909252919052529193909250565b60408051600180825281830190925260609182918291602080830190803883395050855191935061356d9186915060049063ffffffff61338816565b8060200190516135809190810190614792565b8451859060009061358d57fe5b60209081029190910101919091529095929450925050565b7f11c7b7200000000000000000000000000000000000000000000000000000000090565b8351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b6000610ceb8261362f85613910565b61398b565b7fa15c0d060000000000000000000000000000000000000000000000000000000090565b7f7e5a23180000000000000000000000000000000000000000000000000000000090565b6000610ceb8261362f856139c5565b7f5bd0428d0000000000000000000000000000000000000000000000000000000090565b7f20d11f610000000000000000000000000000000000000000000000000000000090565b7ff59851840000000000000000000000000000000000000000000000000000000090565b6136ff613c77565b6020810184905260a0850151608086015161371b918691613a7e565b815260a085015160c0860151613732918691613a7e565b604082015260a085015160e086015161374c918691613a7e565b6060820152613761828463ffffffff613ab216565b6080820152949350505050565b600081518351148015610ceb5750508051602091820120825192909101919091201490565b600082820183811015610ceb57610ceb6131d960008686613adf565b600061169a836137c5868563ffffffff613ab216565b9063ffffffff613afe16565b6000828211156137ea576137ea6131d960028585613adf565b50900390565b7fe53c76c80000000000000000000000000000000000000000000000000000000090565b6060632800659560e01b848484604051602401610cb69392919061562f565b805160208201fd5b6000816020018351101561385c5761385c6131d96005855185602001613814565b50016020015190565b60200190565b6020811015613895576001816020036101000a0380198351168185511680821786525050506131bb565b828214156138a2576131bb565b828211156138dc5760208103905080820181840181515b828510156138d45784518652602095860195909401936138b9565b9052506131bb565b60208103905080820181840183515b818612156139075782518252601f1992830192909101906138eb565b85525050505050565b608081810151825160208085015160408087015160609788015186519685019690962082517fec69816980a3a3ca4554410e60253953e9ff375ba4536a98adfa15cc7154150881529485019590955290830191909152948101949094526001600160a01b039091169183019190915260a082015260c0902090565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6101408101516101608201516101808301516101a08401516000937ff80322eb8376aafb64eadf8f0d7623f22130fd9491a221e902b713cb984a753493909290916020871015613a1157fe5b601f1987018051610140890180516101608b0180516101808d0180516101a08f0180519d89528c5160209d8e012087528b519b8d019b909b2084528951998c01999099208152875197909a019690962088526101e085209390945290529190529252919091529050919050565b6000613a8b848484613b28565b15613a9e57613a9e6131d9858585613b8e565b61169a836137c5868563ffffffff613ab216565b600082613ac15750600061093d565b82820282848281613ace57fe5b0414610ceb57610ceb6131d9600186865b606063e946c1bb60e01b848484604051602401610cb6939291906155c0565b600081613b1457613b146131d960038585613adf565b6000828481613b1f57fe5b04949350505050565b600082613b3a57613b3a6131d9613bad565b811580613b45575083155b15613b5257506000610ceb565b60008380613b5c57fe5b8584099050613b71858463ffffffff613ab216565b613b83826103e863ffffffff613ab216565b101595945050505050565b606063339f3de260e01b848484604051602401610cb693929190615892565b60408051808201909152600481527fa791837c00000000000000000000000000000000000000000000000000000000602082015290565b604051806101c0016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081526020016060815260200160608152602001606081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b803561093d81615979565b805161093d81615979565b600082601f830112613cec578081fd5b8135613cff613cfa826158cf565b6158a8565b818152915060208083019084810181840286018201871015613d2057600080fd5b60005b84811015611cb5578135613d3681615979565b84529282019290820190600101613d23565b600082601f830112613d58578081fd5b8151613d66613cfa826158cf565b8181529150602080830190840160005b83811015613da357613d8e8760208451890101613fc8565b83526020928301929190910190600101613d76565b5050505092915050565b600082601f830112613dbd578081fd5b8135613dcb613cfa826158cf565b8181529150602080830190840160005b83811015613da357613df38760208435890101613f7a565b83526020928301929190910190600101613ddb565b600082601f830112613e18578081fd5b8151613e26613cfa826158cf565b8181529150602080830190840160005b83811015613da357613e4e876020845189010161415d565b83526020928301929190910190600101613e36565b600082601f830112613e73578081fd5b8135613e81613cfa826158cf565b8181529150602080830190840160005b83811015613da357613ea9876020843589010161400e565b83526020928301929190910190600101613e91565b600082601f830112613ece578081fd5b8151613edc613cfa826158cf565b818152915060208083019084810181840286018201871015613efd57600080fd5b60005b84811015611cb557815184529282019290820190600101613f00565b600082601f830112613f2c578081fd5b8135613f3a613cfa826158cf565b818152915060208083019084810181840286018201871015613f5b57600080fd5b60005b84811015611cb557813584529282019290820190600101613f5e565b600082601f830112613f8a578081fd5b8135613f98613cfa826158ef565b9150808252836020828501011115613faf57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613fd8578081fd5b8151613fe6613cfa826158ef565b9150808252836020828501011115613ffd57600080fd5b611cba81602084016020860161591e565b60006101c0808385031215614021578182fd5b61402a816158a8565b9150506140378383613cc6565b81526140468360208401613cc6565b60208201526140588360408401613cc6565b604082015261406a8360608401613cc6565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013581830152506101408083013567ffffffffffffffff808211156140cc57600080fd5b6140d886838701613f7a565b838501526101609250828501359150808211156140f457600080fd5b61410086838701613f7a565b8385015261018092508285013591508082111561411c57600080fd5b61412886838701613f7a565b838501526101a092508285013591508082111561414457600080fd5b5061415185828601613f7a565b82840152505092915050565b60006101c0808385031215614170578182fd5b614179816158a8565b9150506141868383613cd1565b81526141958360208401613cd1565b60208201526141a78360408401613cd1565b60408201526141b98360608401613cd1565b60608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e08201526101008083015181830152506101208083015181830152506101408083015167ffffffffffffffff8082111561421b57600080fd5b61422786838701613fc8565b8385015261016092508285015191508082111561424357600080fd5b61424f86838701613fc8565b8385015261018092508285015191508082111561426b57600080fd5b61427786838701613fc8565b838501526101a092508285015191508082111561429357600080fd5b5061415185828601613fc8565b805160ff8116811461093d57600080fd5b6000602082840312156142c2578081fd5b8135610ceb81615979565b600080604083850312156142df578081fd5b82516142ea81615979565b60208401519092506142fb81615979565b809150509250929050565b60008060006060848603121561431a578081fd5b835161432581615979565b602085015190935061433681615979565b80925050604084015190509250925092565b60008060006060848603121561435c578081fd5b835161436781615979565b602085015190935067ffffffffffffffff811115614383578182fd5b61438f86828701613fc8565b925050604084015190509250925092565b600080600080608085870312156143b5578182fd5b84516143c081615979565b602086015190945067ffffffffffffffff808211156143dd578384fd5b6143e988838901613fc8565b945060408701519150808211156143fe578384fd5b61440a88838901613fc8565b9350606087015191508082111561441f578283fd5b5061442c87828801613fc8565b91505092959194509250565b6000806040838503121561444a578182fd5b823561445581615979565b9150602083013567ffffffffffffffff811115614470578182fd5b61447c85828601613dad565b9150509250929050565b6000806000806080858703121561449b578182fd5b84356144a681615979565b9350602085013567ffffffffffffffff808211156144c2578384fd5b6144ce88838901613f1c565b945060408701359150808211156144e3578384fd5b6144ef88838901613f1c565b93506060870135915080821115614504578283fd5b5061442c87828801613f7a565b60008060408385031215614523578182fd5b823561452e81615979565b9150602083013567ffffffffffffffff811115614549578182fd5b61447c85828601613f7a565b600080600060608486031215614569578081fd5b833561457481615979565b9250602084013567ffffffffffffffff81111561458f578182fd5b61459b86828701613f7a565b925050604084013590509250925092565b600080604083850312156145be578182fd5b82356145c981615979565b946020939093013593505050565b6000602082840312156145e8578081fd5b813567ffffffffffffffff8111156145fe578182fd5b61169a84828501613cdc565b60006020828403121561461b578081fd5b815167ffffffffffffffff811115614631578182fd5b61169a84828501613e08565b600080600060608486031215614651578081fd5b833567ffffffffffffffff80821115614668578283fd5b61467487838801613e63565b94506020860135915080821115614689578283fd5b61469587838801613cdc565b935060408601359150808211156146aa578283fd5b506146b786828701613f1c565b9150509250925092565b600080604083850312156146d3578182fd5b823567ffffffffffffffff808211156146ea578384fd5b6146f686838701613e63565b9350602085013591508082111561470b578283fd5b5061447c85828601613dad565b60008060006060848603121561472c578081fd5b835167ffffffffffffffff80821115614743578283fd5b61474f87838801613e08565b94506020860151915080821115614764578283fd5b61477087838801613ebe565b93506040860151915080821115614785578283fd5b506146b786828701613d48565b6000806000606084860312156147a6578081fd5b835167ffffffffffffffff808211156147bd578283fd5b6147c987838801613e08565b9450602086015193506040860151915080821115614785578283fd5b600080604083850312156147f7578182fd5b823567ffffffffffffffff8082111561480e578384fd5b6146f686838701613f1c565b6000806040838503121561482c578182fd5b825167ffffffffffffffff80821115614843578384fd5b61484f86838701613ebe565b93506020850151915080821115614864578283fd5b5061447c85828601613d48565b600060208284031215614882578081fd5b81518015158114610ceb578182fd5b600080600080608085870312156148a6578182fd5b8451935060208501516148b881615979565b604086015190935067ffffffffffffffff808211156143fe578384fd5b600080604083850312156148e7578182fd5b505080516020909101519092909150565b6000806040838503121561490a578182fd5b82519150602083015167ffffffffffffffff811115614927578182fd5b61447c85828601613fc8565b600080600060608486031215614947578081fd5b83519250602084015167ffffffffffffffff80821115614965578283fd5b61497187838801613fc8565b93506040860151915080821115614986578283fd5b506146b786828701613fc8565b600080604083850312156149a5578182fd5b8251915060208301516142fb8161598e565b600080604083850312156149c9578182fd5b82516001600160e01b0319811681146142ea578283fd5b6000602082840312156149f1578081fd5b813567ffffffffffffffff811115614a07578182fd5b61169a84828501613f7a565b600060608284031215614a24578081fd5b614a2e60606158a8565b614a3884846142a0565b815260208301516020820152604083015160408201528091505092915050565b600060208284031215614a69578081fd5b815167ffffffffffffffff811115614a7f578182fd5b61169a8482850161415d565b600080600060608486031215614a9f578081fd5b833567ffffffffffffffff811115614ab5578182fd5b614ac18682870161400e565b9350506020840135614ad281615979565b929592945050506040919091013590565b60008060408385031215614af5578182fd5b823567ffffffffffffffff80821115614b0c578384fd5b614b188683870161400e565b93506020850135915080821115614b2d578283fd5b5061447c85828601613f7a565b600080600060608486031215614b4e578081fd5b833567ffffffffffffffff811115614b64578182fd5b614b708682870161400e565b935050602084013591506040840135614b8881615979565b809150509250925092565b60008060008060808587031215614ba8578182fd5b845167ffffffffffffffff80821115614bbf578384fd5b614bcb8883890161415d565b95506020870151915080821115614be0578384fd5b6143e98883890161415d565b600080600060608486031215614c00578081fd5b835167ffffffffffffffff80821115614c17578283fd5b614c238783880161415d565b9450602086015193506040860151915080821115614986578283fd5b600080600060608486031215614c53578081fd5b833567ffffffffffffffff80821115614c6a578283fd5b81860160a08189031215614c7c578384fd5b614c8660a06158a8565b92508035835260208101356020840152604081013560408401526060810135614cae81615979565b6060840152608081013582811115614cc4578485fd5b614cd089828401613f7a565b608085015250919450505060208401359150614cef8560408601613cc6565b90509250925092565b600060208284031215614d09578081fd5b5051919050565b60008060408385031215614d22578182fd5b8251614d2d8161598e565b6020939093015192949293505050565b600080600060608486031215614d51578081fd5b8351614d5c8161598e565b602085015160408601519194509250614b8881615979565b60008060008060808587031215614d89578182fd5b614d9386866142a0565b9350602085015192506040850151614daa81615979565b606086015190925067ffffffffffffffff811115614dc6578182fd5b61442c87828801613fc8565b600080600060608486031215614de6578081fd5b614df085856142a0565b925060208401519150604084015167ffffffffffffffff811115614e12578182fd5b6146b786828701613fc8565b600080600060608486031215614e32578081fd5b614e3c85856142a0565b925060208401519150604084015190509250925092565b6001600160a01b03169052565b6000815180845260208401935060208301825b82811015614e9a5781516001600160a01b0316865260209586019590910190600101614e73565b5093949350505050565b600081518084526020840180819550602083028101915060208501845b84811015614eef578284038852614ed9848351614f2c565b6020988901989094509190910190600101614ec1565b50919695505050505050565b6000815180845260208401935060208301825b82811015614e9a578151865260209586019590910190600101614f0e565b60008151808452614f4481602086016020860161591e565b601f01601f19169290920160200192915050565b805160ff16825260208082015190830152604090810151910152565b60006101c0614f84848451614e53565b6020830151614f966020860182614e53565b506040830151614fa96040860182614e53565b506060830151614fbc6060860182614e53565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e085015261010080840151818601525061012080840151818601525061014080840151828287015261501583870182614f2c565b915050610160915081840151858203838701526150328282614f2c565b92505050610180808401518583038287015261504e8382614f2c565b9150506101a09150818401518582038387015261506b8282614f2c565b9695505050505050565b6000825161508781846020870161591e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006001600160a01b0386168252608060208301526151056080830186614efb565b82810360408401526151178186614efb565b83810360608501526151298186614f2c565b98975050505050505050565b60006001600160a01b0385168252606060208301526151576060830185614f2c565b9050826040830152949350505050565b60006001600160a01b0386168252608060208301526151896080830186614f2c565b82810360408401526151178186614f2c565b6001600160a01b03929092168252602082015260400190565b6000608082526151c76080830187614ea4565b82810360208401526151d98187614e60565b83810360408501526151eb8187614e60565b91505082810360608401526152008185614efb565b979650505050505050565b602080825282518282018190526000918401906040840190835b8181101561524b576152378451615913565b835260209384019390920191600101615225565b509095945050505050565b606080825284519082018190526000906020906080840190828801845b8281101561529957615286848351614f58565b6060939093019290840190600101615273565b505050838103828501526152ad8187614efb565b84810360408601528551808252908301915082860190845b818110156152e35782511515845292840192918401916001016152c5565b509198975050505050505050565b600060208252610ceb6020830184614efb565b6000604082526153176040830185614efb565b82810360208401526153298185614ea4565b95945050505050565b6000604082526153456040830185614efb565b82810360208401526153298185614efb565b90815260200190565b60008582526001600160a01b0385166020830152608060408301526153886080830185614f2c565b82810360608401526152008185614f2c565b918252602082015260400190565b60008382526040602083015261169a6040830184614f2c565b6000848252606060208301526153da6060830185614f2c565b828103604084015261506b8185614f2c565b828152604081016153fc8361596f565b8260208301529392505050565b6001600160e01b031991909116815260200190565b6001600160e01b03199290921682526001600160a01b0316602082015260400190565b60006001600160e01b0319871682526001600160a01b038616602083015260a0604083015261547360a0830186614efb565b82810360608401526154858186614efb565b83810360808501526154978186614f2c565b9998505050505050505050565b60006001600160e01b0319861682526001600160a01b0385166020830152608060408301526154d66080830185614f2c565b905082606083015295945050505050565b6001600160e01b03199390931683526001600160a01b03919091166020830152604082015260600190565b60006001600160e01b031985168252606060208301526155356060830185614efb565b828103604084015261506b8185614ea4565b600060208252610ceb6020830184614f2c565b60006080825261556d6080830187614f2c565b6001600160a01b03958616602084015293909416604082015260ff9190911660609091015292915050565b60006155a38561594e565b848252836020830152606060408301526153296060830184614f2c565b606081016155cd8561595b565b938152602081019290925260409091015290565b606081016155ee85615965565b93815260208101929092526001600160a01b031660409091015290565b604081016156188461595b565b9281526020015290565b606081016155cd85615965565b60608101600885106155cd57fe5b6020810161564a83615913565b825292915050565b600061565d8661596f565b8582528460208301526001600160a01b03841660408301526080606083015261506b6080830184614f2c565b604081016156188461594e565b6000608082526156a96080830187614f2c565b602083820381850152818751808452828401915082838202850101838a01865b838110156156f757601f198784030185526156e5838351614f74565b948601949250908501906001016156c9565b5050868103604088015261570b818a614efb565b94505050505082810360608401526152008185614ea4565b60208082526013908201527f554e4b4e4f574e5f52455455524e5f4441544100000000000000000000000000604082015260600190565b60208082526019908201527f554e4b4e4f574e5f46554e4354494f4e5f53454c4543544f5200000000000000604082015260600190565b6020808252600d908201527f554e494d504c454d454e54454400000000000000000000000000000000000000604082015260600190565b6020808252600c908201527f4241445f53454c4543544f520000000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f57524f4e475f50524f58595f4944000000000000000000000000000000000000604082015260600190565b60a081016158448286614f58565b8360608301528215156080830152949350505050565b600060208252610ceb6020830184614f74565b6000604082526158806040830185614f74565b82810360208401526153298185614f2c565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff811182821017156158c757600080fd5b604052919050565b600067ffffffffffffffff8211156158e5578081fd5b5060209081020190565b600067ffffffffffffffff821115615905578081fd5b50601f01601f191660200190565b8060058110610c9057fe5b60005b83811015615939578181015183820152602001615921565b83811115615948576000848401525b50505050565b6002811061595857fe5b50565b6004811061595857fe5b6003811061595857fe5b6007811061595857fe5b6001600160a01b038116811461595857600080fd5b60ff8116811461595857600080fdfea365627a7a72315820a6e2caf6b8cfb25159763e34dd839685d57e0d8a74ab5a72d4f2913f3fbccc436c6578706572696d656e74616cf564736f6c634300050d0040'; + public static contractName = 'DevUtils'; private readonly _methodABIIndex: { [name: string]: number } = {}; public static async deployFrom0xArtifactAsync( artifact: ContractArtifact | SimpleContractArtifact, diff --git a/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts b/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts index 5aec763f06..7655224d21 100644 --- a/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts +++ b/packages/contract-wrappers/src/generated-wrappers/erc20_token.ts @@ -61,6 +61,7 @@ export class ERC20TokenContract extends BaseContract { * @ignore */ public static deployedBytecode: string | undefined; + public static contractName = 'ERC20Token'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( diff --git a/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts b/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts index cebc74b735..8487cf0da3 100644 --- a/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts +++ b/packages/contract-wrappers/src/generated-wrappers/erc721_token.ts @@ -71,6 +71,7 @@ export class ERC721TokenContract extends BaseContract { * @ignore */ public static deployedBytecode: string | undefined; + public static contractName = 'ERC721Token'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( diff --git a/packages/contract-wrappers/src/generated-wrappers/exchange.ts b/packages/contract-wrappers/src/generated-wrappers/exchange.ts index 3863204eba..e1374ed94d 100644 --- a/packages/contract-wrappers/src/generated-wrappers/exchange.ts +++ b/packages/contract-wrappers/src/generated-wrappers/exchange.ts @@ -120,6 +120,7 @@ export class ExchangeContract extends BaseContract { * @ignore */ public static deployedBytecode: string | undefined; + public static contractName = 'Exchange'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( diff --git a/packages/contract-wrappers/src/generated-wrappers/forwarder.ts b/packages/contract-wrappers/src/generated-wrappers/forwarder.ts index ba99e19d60..418ead6dcd 100644 --- a/packages/contract-wrappers/src/generated-wrappers/forwarder.ts +++ b/packages/contract-wrappers/src/generated-wrappers/forwarder.ts @@ -53,6 +53,7 @@ export class ForwarderContract extends BaseContract { * @ignore */ public static deployedBytecode: string | undefined; + public static contractName = 'Forwarder'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( diff --git a/packages/contract-wrappers/src/generated-wrappers/staking.ts b/packages/contract-wrappers/src/generated-wrappers/staking.ts index 7031228a7e..6af75ce79b 100644 --- a/packages/contract-wrappers/src/generated-wrappers/staking.ts +++ b/packages/contract-wrappers/src/generated-wrappers/staking.ts @@ -172,6 +172,7 @@ export class StakingContract extends BaseContract { * @ignore */ public static deployedBytecode: string | undefined; + public static contractName = 'Staking'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( diff --git a/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts b/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts index 8ebbef8792..52dadcb7ec 100644 --- a/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts +++ b/packages/contract-wrappers/src/generated-wrappers/staking_proxy.ts @@ -78,6 +78,7 @@ export class StakingProxyContract extends BaseContract { * @ignore */ public static deployedBytecode: string | undefined; + public static contractName = 'StakingProxy'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( diff --git a/packages/contract-wrappers/src/generated-wrappers/weth9.ts b/packages/contract-wrappers/src/generated-wrappers/weth9.ts index 889af3dd01..4953081067 100644 --- a/packages/contract-wrappers/src/generated-wrappers/weth9.ts +++ b/packages/contract-wrappers/src/generated-wrappers/weth9.ts @@ -77,6 +77,7 @@ export class WETH9Contract extends BaseContract { * @ignore */ public static deployedBytecode: string | undefined; + public static contractName = 'WETH9'; private readonly _methodABIIndex: { [name: string]: number } = {}; private readonly _subscriptionManager: SubscriptionManager; public static async deployFrom0xArtifactAsync( diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json index 5eb281d4ae..c4b2656ec5 100644 --- a/packages/order-utils/package.json +++ b/packages/order-utils/package.json @@ -64,14 +64,10 @@ }, "dependencies": { "@0x/assert": "^2.2.0-beta.2", - "@0x/contract-addresses": "^3.3.0-beta.4", - "@0x/contract-artifacts": "^2.3.0-beta.3", "@0x/contract-wrappers": "^12.2.0-beta.3", "@0x/json-schemas": "^4.1.0-beta.2", "@0x/utils": "^4.6.0-beta.2", "@0x/web3-wrapper": "^6.1.0-beta.2", - "bn.js": "^4.11.8", - "ethereumjs-abi": "0.6.5", "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", "lodash": "^4.17.11" diff --git a/packages/order-utils/src/asset_data_utils.ts b/packages/order-utils/src/asset_data_utils.ts index 67423836c6..712d37dfb4 100644 --- a/packages/order-utils/src/asset_data_utils.ts +++ b/packages/order-utils/src/asset_data_utils.ts @@ -1,6 +1,5 @@ import { AssetProxyId, - DutchAuctionData, ERC1155AssetData, ERC1155AssetDataNoProxyId, ERC20AssetData, @@ -11,8 +10,6 @@ import { StaticCallAssetData, } from '@0x/types'; import { AbiEncoder, BigNumber } from '@0x/utils'; -import * as ethAbi from 'ethereumjs-abi'; -import * as ethUtil from 'ethereumjs-util'; import * as _ from 'lodash'; import { constants } from './constants'; @@ -233,59 +230,6 @@ export const assetDataUtils = { staticCallData: decodedAssetData.staticCallData, }; }, - /** - * Dutch auction details are encoded with the asset data for a 0x order. This function produces a hex - * encoded assetData string, containing information both about the asset being traded and the - * dutch auction; which is usable in the makerAssetData or takerAssetData fields in a 0x order. - * @param assetData Hex encoded assetData string for the asset being auctioned. - * @param beginTimeSeconds Begin time of the dutch auction. - * @param beginAmount Starting amount being sold in the dutch auction. - * @return The hex encoded assetData string. - */ - encodeDutchAuctionAssetData(assetData: string, beginTimeSeconds: BigNumber, beginAmount: BigNumber): string { - const assetDataBuffer = ethUtil.toBuffer(assetData); - const abiEncodedAuctionData = (ethAbi as any).rawEncode( - ['uint256', 'uint256'], - [beginTimeSeconds.toString(), beginAmount.toString()], - ); - const abiEncodedAuctionDataBuffer = ethUtil.toBuffer(abiEncodedAuctionData); - const dutchAuctionDataBuffer = Buffer.concat([assetDataBuffer, abiEncodedAuctionDataBuffer]); - const dutchAuctionData = ethUtil.bufferToHex(dutchAuctionDataBuffer); - return dutchAuctionData; - }, - /** - * Dutch auction details are encoded with the asset data for a 0x order. This function decodes a hex - * encoded assetData string, containing information both about the asset being traded and the - * dutch auction. - * @param dutchAuctionData Hex encoded assetData string for the asset being auctioned. - * @return An object containing the auction asset, auction begin time and auction begin amount. - */ - decodeDutchAuctionData(dutchAuctionData: string): DutchAuctionData { - const dutchAuctionDataBuffer = ethUtil.toBuffer(dutchAuctionData); - // Decode asset data - const dutchAuctionDataLengthInBytes = 64; - const assetDataBuffer = dutchAuctionDataBuffer.slice( - 0, - dutchAuctionDataBuffer.byteLength - dutchAuctionDataLengthInBytes, - ); - const assetDataHex = ethUtil.bufferToHex(assetDataBuffer); - const assetData = assetDataUtils.decodeAssetDataOrThrow(assetDataHex); - // Decode auction details - const dutchAuctionDetailsBuffer = dutchAuctionDataBuffer.slice( - dutchAuctionDataBuffer.byteLength - dutchAuctionDataLengthInBytes, - ); - const [beginTimeSecondsAsBN, beginAmountAsBN] = ethAbi.rawDecode( - ['uint256', 'uint256'], - dutchAuctionDetailsBuffer, - ); - const beginTimeSeconds = new BigNumber(beginTimeSecondsAsBN.toString()); - const beginAmount = new BigNumber(beginAmountAsBN.toString()); - return { - assetData, - beginTimeSeconds, - beginAmount, - }; - }, /** * Decode and return the assetProxyId from the assetData * @param assetData Hex encoded assetData string to decode diff --git a/packages/order-utils/src/crypto.ts b/packages/order-utils/src/crypto.ts deleted file mode 100644 index 8b835ff488..0000000000 --- a/packages/order-utils/src/crypto.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { BigNumber } from '@0x/utils'; -import BN = require('bn.js'); -import ABI = require('ethereumjs-abi'); -import ethUtil = require('ethereumjs-util'); -import * as _ from 'lodash'; - -export const crypto = { - /** - * We convert types from JS to Solidity as follows: - * BigNumber -> uint256 - * number -> uint8 - * string -> string - * boolean -> bool - * valid Ethereum address -> address - */ - solSHA3(args: any[]): Buffer { - return crypto._solHash(args, ABI.soliditySHA3); - }, - solSHA256(args: any[]): Buffer { - return crypto._solHash(args, ABI.soliditySHA256); - }, - _solHash(args: any[], hashFunction: (types: string[], values: any[]) => Buffer): Buffer { - const argTypes: string[] = []; - _.each(args, (arg, i) => { - const isNumber = _.isFinite(arg); - if (isNumber) { - argTypes.push('uint8'); - } else if (BigNumber.isBigNumber(arg)) { - argTypes.push('uint256'); - const base = 10; - args[i] = new BN(arg.toString(base), base); - } else if (ethUtil.isValidAddress(arg)) { - argTypes.push('address'); - } else if (_.isString(arg)) { - argTypes.push('string'); - } else if (_.isBuffer(arg) || _.isTypedArray(arg)) { - argTypes.push('bytes'); - } else if (_.isBoolean(arg)) { - argTypes.push('bool'); - } else { - throw new Error(`Unable to guess arg type: ${arg}`); - } - }); - const hash = hashFunction(argTypes, args); - return hash; - }, -}; diff --git a/packages/order-utils/src/index.ts b/packages/order-utils/src/index.ts index 1186270d4a..970f2c0276 100644 --- a/packages/order-utils/src/index.ts +++ b/packages/order-utils/src/index.ts @@ -31,7 +31,6 @@ export { ECSignature, AssetData, SingleAssetData, - DutchAuctionData, ERC20AssetData, ERC721AssetData, ERC1155AssetData, diff --git a/packages/order-utils/test/asset_data_utils_test.ts b/packages/order-utils/test/asset_data_utils_test.ts index f876fed308..ab168e9fa9 100644 --- a/packages/order-utils/test/asset_data_utils_test.ts +++ b/packages/order-utils/test/asset_data_utils_test.ts @@ -40,15 +40,6 @@ const KNOWN_MULTI_ASSET_ENCODING = { '0x94cfcdd7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000024f47261b00000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000204a7cb5fb70000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000003e90000000000000000000000000000000000000000000000000000000000002711000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000007d10000000000000000000000000000000000000000000000000000000000004e210000000000000000000000000000000000000000000000000000000000000044025717920000000000000000000000001dc4c1cefef38a777b15aa20260a54e584b16c4800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', }; -const KNOWN_DUTCH_AUCTION_ENCODING = { - tokenAddress: '0x34d402f14d58e001d8efbe6585051bf9706aa064', - assetData: '0xf47261b000000000000000000000000034d402f14d58e001d8efbe6585051bf9706aa064', // ERC20 - beginTimeSeconds: new BigNumber(1562807905), - beginAmount: new BigNumber(5), - dutchAuctionAssetData: - '0xf47261b000000000000000000000000034d402f14d58e001d8efbe6585051bf9706aa064000000000000000000000000000000000000000000000000000000005d268e610000000000000000000000000000000000000000000000000000000000000005', -}; - describe('assetDataUtils', () => { it('should encode ERC20', () => { const assetData = assetDataUtils.encodeERC20AssetData(KNOWN_ERC20_ENCODING.address); @@ -184,28 +175,4 @@ describe('assetDataUtils', () => { expect(decodedErc1155AssetData2.tokenIds).to.be.deep.equal(KNOWN_ERC1155_ENCODING.tokenIds); expect(decodedErc1155AssetData2.callbackData).to.be.equal(KNOWN_ERC1155_ENCODING.callbackData); }); - it('should encode Dutch Auction', async () => { - const encodedAssetData = assetDataUtils.encodeDutchAuctionAssetData( - KNOWN_DUTCH_AUCTION_ENCODING.assetData, - KNOWN_DUTCH_AUCTION_ENCODING.beginTimeSeconds, - KNOWN_DUTCH_AUCTION_ENCODING.beginAmount, - ); - expect(encodedAssetData).to.be.equal(KNOWN_DUTCH_AUCTION_ENCODING.dutchAuctionAssetData); - }); - it('should decode Dutch Auction', async () => { - const { assetData, beginTimeSeconds, beginAmount } = assetDataUtils.decodeDutchAuctionData( - KNOWN_DUTCH_AUCTION_ENCODING.dutchAuctionAssetData, - ); - - const { assetProxyId, tokenAddress } = assetDataUtils.decodeERC20AssetData( - KNOWN_DUTCH_AUCTION_ENCODING.assetData, - ); - - // tslint:disable:no-unnecessary-type-assertion - expect((assetData as ERC20AssetData).assetProxyId).to.be.equal(assetProxyId); - expect((assetData as ERC20AssetData).tokenAddress).to.be.equal(tokenAddress); - // tslint:enable:no-unnecessary-type-assertion - expect(beginTimeSeconds).to.deep.equal(KNOWN_DUTCH_AUCTION_ENCODING.beginTimeSeconds); - expect(beginAmount).to.deep.equal(KNOWN_DUTCH_AUCTION_ENCODING.beginAmount); - }); });