aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/util/types.ts
blob: 2e16fac7add0a1d65d7de5721a2cf6cafb15d177 (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,
}