diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-02-28 04:01:12 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-02-28 04:07:58 +0800 |
commit | 8fe844bcc9e4298cc3ced58c1abcee78de4193b3 (patch) | |
tree | 6b3fb63fb53fd6d51287b9b8a599c3eae5f46057 /packages/contracts | |
parent | a0390956a91b2e15052d1b5ca43ef6d85d64234e (diff) | |
download | dexon-0x-contracts-8fe844bcc9e4298cc3ced58c1abcee78de4193b3.tar dexon-0x-contracts-8fe844bcc9e4298cc3ced58c1abcee78de4193b3.tar.gz dexon-0x-contracts-8fe844bcc9e4298cc3ced58c1abcee78de4193b3.tar.bz2 dexon-0x-contracts-8fe844bcc9e4298cc3ced58c1abcee78de4193b3.tar.lz dexon-0x-contracts-8fe844bcc9e4298cc3ced58c1abcee78de4193b3.tar.xz dexon-0x-contracts-8fe844bcc9e4298cc3ced58c1abcee78de4193b3.tar.zst dexon-0x-contracts-8fe844bcc9e4298cc3ced58c1abcee78de4193b3.zip |
Move BaseContract to web3Wrapper
Diffstat (limited to 'packages/contracts')
-rw-r--r-- | packages/contracts/src/contract_wrappers/generated/.gitignore | 9 | ||||
-rw-r--r-- | packages/contracts/src/contract_wrappers/generated/base_contract.ts | 70 |
2 files changed, 1 insertions, 78 deletions
diff --git a/packages/contracts/src/contract_wrappers/generated/.gitignore b/packages/contracts/src/contract_wrappers/generated/.gitignore index b976a8737..72e8ffc0d 100644 --- a/packages/contracts/src/contract_wrappers/generated/.gitignore +++ b/packages/contracts/src/contract_wrappers/generated/.gitignore @@ -1,8 +1 @@ -dummy_token.ts -exchange.ts -multi_sig_wallet_with_time_lock_except_remove_authorized_address.ts -multi_sig_wallet_with_time_lock.ts -multi_sig_wallet.ts -token_registry.ts -token_transfer_proxy.ts -zrx_token.ts +* diff --git a/packages/contracts/src/contract_wrappers/generated/base_contract.ts b/packages/contracts/src/contract_wrappers/generated/base_contract.ts deleted file mode 100644 index a465ddc38..000000000 --- a/packages/contracts/src/contract_wrappers/generated/base_contract.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { TxData, TxDataPayable } from '@0xproject/types'; -import { Web3Wrapper } from '@0xproject/web3-wrapper'; -import * as ethersContracts from 'ethers-contracts'; -import * as _ from 'lodash'; -import * as Web3 from 'web3'; - -export class BaseContract { - protected _ethersInterface: ethersContracts.Interface; - protected _web3Wrapper: Web3Wrapper; - public abi: Web3.ContractAbi; - public address: string; - protected static _transformABIData( - abis: Web3.DataItem[], - values: any[], - transformation: (type: string, value: any) => any, - ): any { - return _.map(values, (value: any, i: number) => - BaseContract._transformTypedData(abis[i].type, value, transformation), - ); - } - protected static _lowercaseAddress(type: string, value: string): string { - return type === 'address' ? value.toLowerCase() : value; - } - protected static _bigNumberToString(type: string, value: string): string { - return _.isObject(value) && (value as any).isBigNumber ? value.toString() : value; - } - private static _transformTypedData( - type: string, - values: any, - transformation: (type: string, value: any) => any, - ): any { - const trailingArrayRegex = /\[\d*\]$/; - if (type.match(trailingArrayRegex)) { - const arrayItemType = type.replace(trailingArrayRegex, ''); - return _.map(values, (value: any, i: number) => - this._transformTypedData(arrayItemType, value, transformation), - ); - } else { - return transformation(type, values); - } - } - protected async _applyDefaultsToTxDataAsync<T extends Partial<TxData | TxDataPayable>>( - txData: T, - estimateGasAsync?: (txData: T) => Promise<number>, - ): Promise<TxData> { - // Gas amount sourced with the following priorities: - // 1. Optional param passed in to public method call - // 2. Global config passed in at library instantiation - // 3. Gas estimate calculation + safety margin - const removeUndefinedProperties = _.pickBy; - const txDataWithDefaults = { - to: this.address, - ...removeUndefinedProperties(this._web3Wrapper.getContractDefaults()), - ...removeUndefinedProperties(txData as any), - // HACK: TS can't prove that T is spreadable. - // Awaiting https://github.com/Microsoft/TypeScript/pull/13288 to be merged - }; - if (_.isUndefined(txDataWithDefaults.gas) && !_.isUndefined(estimateGasAsync)) { - const estimatedGas = await estimateGasAsync(txData); - txDataWithDefaults.gas = estimatedGas; - } - return txDataWithDefaults; - } - constructor(web3Wrapper: Web3Wrapper, abi: Web3.ContractAbi, address: string) { - this._web3Wrapper = web3Wrapper; - this.abi = abi; - this.address = address; - this._ethersInterface = new ethersContracts.Interface(abi); - } -} |