diff options
author | Fabio Berger <me@fabioberger.com> | 2017-06-03 01:45:57 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2017-06-03 01:45:57 +0800 |
commit | 1443c0838cbd795ae8e6273b1d7659c8e449f2eb (patch) | |
tree | 531df9d489dd4c5ce15623bee0beeae3ad58ccd4 /src/types.ts | |
parent | 3de655954743db4e2b9d02f5ac1243855b909236 (diff) | |
parent | d4320fec724c5bf34e7dcd006cba8ffe7a3c76d1 (diff) | |
download | dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.gz dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.bz2 dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.lz dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.xz dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.tar.zst dexon-sol-tools-1443c0838cbd795ae8e6273b1d7659c8e449f2eb.zip |
Merge branch 'master' into remainingTokenMethods
# Conflicts:
# src/types.ts
# src/web3_wrapper.ts
Diffstat (limited to 'src/types.ts')
-rw-r--r-- | src/types.ts | 87 |
1 files changed, 80 insertions, 7 deletions
diff --git a/src/types.ts b/src/types.ts index d20a0d638..d17dadf29 100644 --- a/src/types.ts +++ b/src/types.ts @@ -10,13 +10,14 @@ function strEnum(values: string[]): {[key: string]: string} { } export const ZeroExError = strEnum([ - 'CONTRACT_DOES_NOT_EXIST', - 'UNHANDLED_ERROR', - 'USER_HAS_NO_ASSOCIATED_ADDRESSES', - 'INVALID_SIGNATURE', - 'CONTRACT_NOT_DEPLOYED_ON_NETWORK', - 'INSUFFICIENT_ALLOWANCE_FOR_TRANSFER', - 'INSUFFICIENT_BALANCE_FOR_TRANSFER', + 'CONTRACT_DOES_NOT_EXIST', + 'UNHANDLED_ERROR', + 'USER_HAS_NO_ASSOCIATED_ADDRESSES', + 'INVALID_SIGNATURE', + 'CONTRACT_NOT_DEPLOYED_ON_NETWORK', + 'ZRX_NOT_IN_TOKEN_REGISTRY', + 'INSUFFICIENT_ALLOWANCE_FOR_TRANSFER', + 'INSUFFICIENT_BALANCE_FOR_TRANSFER', ]); export type ZeroExError = keyof typeof ZeroExError; @@ -29,8 +30,26 @@ export interface ECSignature { s: string; } +export type OrderAddresses = [string, string, string, string, string]; + +export type OrderValues = [BigNumber.BigNumber, BigNumber.BigNumber, BigNumber.BigNumber, + BigNumber.BigNumber, BigNumber.BigNumber, BigNumber.BigNumber]; + export interface ExchangeContract { isValidSignature: any; + isRoundingError: { + call: (takerTokenAmount: BigNumber.BigNumber, fillTakerAmount: BigNumber.BigNumber, + makerTokenAmount: BigNumber.BigNumber, txOpts: TxOpts) => Promise<boolean>; + }; + fill: { + (orderAddresses: OrderAddresses, orderValues: OrderValues, fillAmount: BigNumber.BigNumber, + shouldCheckTransfer: boolean, v: number, r: string, s: string, txOpts: TxOpts): ContractResponse; + estimateGas: (orderAddresses: OrderAddresses, orderValues: OrderValues, fillAmount: BigNumber.BigNumber, + shouldCheckTransfer: boolean, v: number, r: string, s: string, txOpts: TxOpts) => number; + }; + ZRX: { + call: () => Promise<string>; + }; } export interface TokenContract { @@ -61,6 +80,60 @@ export const SolidityTypes = strEnum([ ]); export type SolidityTypes = keyof typeof SolidityTypes; +export enum ExchangeContractErrCodes { + ERROR_FILL_EXPIRED, // Order has already expired + ERROR_FILL_NO_VALUE, // Order has already been fully filled or cancelled + ERROR_FILL_TRUNCATION, // Rounding error too large + ERROR_FILL_BALANCE_ALLOWANCE, // Insufficient balance or allowance for token transfer + ERROR_CANCEL_EXPIRED, // Order has already expired + ERROR_CANCEL_NO_VALUE, // Order has already been fully filled or cancelled +} + +export const ExchangeContractErrs = strEnum([ + 'ORDER_FILL_EXPIRED', + 'ORDER_REMAINING_FILL_AMOUNT_ZERO', + 'ORDER_FILL_ROUNDING_ERROR', + 'FILL_BALANCE_ALLOWANCE_ERROR', + 'INSUFFICIENT_TAKER_BALANCE', + 'INSUFFICIENT_TAKER_ALLOWANCE', + 'INSUFFICIENT_MAKER_BALANCE', + 'INSUFFICIENT_MAKER_ALLOWANCE', + 'INSUFFICIENT_TAKER_FEE_BALANCE', + 'INSUFFICIENT_TAKER_FEE_ALLOWANCE', + 'INSUFFICIENT_MAKER_FEE_BALANCE', + 'INSUFFICIENT_MAKER_FEE_ALLOWANCE', + 'TRANSACTION_SENDER_IS_NOT_FILL_ORDER_TAKER', + +]); +export type ExchangeContractErrs = keyof typeof ExchangeContractErrs; + +export interface ContractResponse { + logs: ContractEvent[]; +} + +export interface ContractEvent { + event: string; + args: any; +} + +export interface Order { + maker: string; + taker: string; + makerFee: BigNumber.BigNumber; + takerFee: BigNumber.BigNumber; + makerTokenAmount: BigNumber.BigNumber; + takerTokenAmount: BigNumber.BigNumber; + makerTokenAddress: string; + takerTokenAddress: string; + salt: BigNumber.BigNumber; + feeRecipient: string; + expirationUnixTimestampSec: BigNumber.BigNumber; +} + +export interface SignedOrder extends Order { + ecSignature: ECSignature; +} + // [address, name, symbol, projectUrl, decimals, ipfsHash, swarmHash] export type TokenMetadata = [string, string, string, string, BigNumber.BigNumber, string, string]; |