aboutsummaryrefslogblamecommitdiffstats
path: root/packages/contracts/util/types.ts
blob: 9b225cb0ba859fe1dfc8fc7d037149e3ba0e18e7 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                         


                                  


                                          


                                  






                                                         


                                 






                                                         


                                    


                                         


                                     








                                    


                                      










                                         


                              















                                        


                                        


                              


                        





                      


                                 


                                  


                                          
                                          


                                     

                         





                                            



                                            
 
import { BigNumber } from 'bignumber.js';
import * as Web3 from 'web3';

export interface BalancesByOwner {
    [ownerAddress: string]: {
        [tokenAddress: string]: BigNumber;
    };
}

export interface BatchFillOrders {
    orderAddresses: string[][];
    orderValues: BigNumber[][];
    fillTakerTokenAmounts: BigNumber[];
    shouldThrowOnInsufficientBalanceOrAllowance: boolean;
    v: number[];
    r: string[];
    s: string[];
}

export interface FillOrdersUpTo {
    orderAddresses: string[][];
    orderValues: BigNumber[][];
    fillTakerTokenAmount: BigNumber;
    shouldThrowOnInsufficientBalanceOrAllowance: boolean;
    v: number[];
    r: string[];
    s: string[];
}

export interface BatchCancelOrders {
    orderAddresses: string[][];
    orderValues: BigNumber[][];
    cancelTakerTokenAmounts: BigNumber[];
}

export interface DefaultOrderParams {
    exchangeContractAddress: string;
    maker: string;
    feeRecipient: string;
    makerToken: string;
    takerToken: string;
    makerTokenAmount: BigNumber;
    takerTokenAmount: BigNumber;
    makerFee: BigNumber;
    takerFee: BigNumber;
}

export interface OptionalOrderParams {
    exchangeContractAddress?: string;
    maker?: string;
    taker?: string;
    feeRecipient?: string;
    makerToken?: string;
    takerToken?: string;
    makerTokenAmount?: BigNumber;
    takerTokenAmount?: BigNumber;
    makerFee?: BigNumber;
    takerFee?: BigNumber;
    expirationTimestampInSec?: BigNumber;
}

export interface OrderParams {
    exchangeContractAddress: string;
    maker: string;
    taker: string;
    feeRecipient: string;
    makerToken: string;
    takerToken: string;
    makerTokenAmount: BigNumber;
    takerTokenAmount: BigNumber;
    makerFee: BigNumber;
    takerFee: BigNumber;
    expirationTimestampInSec: BigNumber;
    salt: BigNumber;
    orderHashHex?: string;
    v?: number;
    r?: string;
    s?: string;
}

export interface TransactionDataParams {
    name: string;
    abi: Web3.AbiDefinition[];
    args: any[];
}

export interface Token {
    address?: string;
    name: string;
    symbol: string;
    decimals: number;
    ipfsHash: string;
    swarmHash: string;
}

export interface MultiSigConfig {
    owners: string[];
    confirmationsRequired: number;
    secondsRequired: number;
}

export interface MultiSigConfigByNetwork {
    [networkName: string]: MultiSigConfig;
}

export interface TokenInfoByNetwork {
    development: Token[];
    live: Token[];
}

// Named type aliases to improve readability
export type ContractInstance = any;

export enum ExchangeContractErrs {
    ERROR_ORDER_EXPIRED,
    ERROR_ORDER_FULLY_FILLED_OR_CANCELLED,
    ERROR_ROUNDING_ERROR_TOO_LARGE,
    ERROR_INSUFFICIENT_BALANCE_OR_ALLOWANCE,
}