aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/util/types.ts
blob: 9b225cb0ba859fe1dfc8fc7d037149e3ba0e18e7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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,
}