aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-utils/src/types.ts
blob: f44e94349966553cff9550ac10bf70e4556984a0 (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
import { BigNumber } from '@0xproject/utils';

export enum OrderError {
    InvalidSignature = 'INVALID_SIGNATURE',
}

/**
 * The requisite message prefix (is any) to add to an `eth_sign` request.
 */
export enum MessagePrefixType {
    None = 'NONE',
    EthSign = 'ETH_SIGN',
    Trezor = 'TREZOR',
}

/**
 * Options related to message prefixing of messages sent to `eth_sign`
 * Some signers prepend a message prefix (e.g Parity Signer, Ledger, TestRPC), while
 * others require it already be prepended (e.g Metamask). In addition, different signers
 * expect slightly different prefixes (See: https://github.com/ethereum/go-ethereum/issues/14794).
 * Depending on the signer that will receive your signing request, you must specify the
 * desired prefix and whether it should be added before making the `eth_sign` request.
 */
export interface MessagePrefixOpts {
    prefixType: MessagePrefixType;
    shouldAddPrefixBeforeCallingEthSign: boolean;
}

export enum TradeSide {
    Maker = 'maker',
    Taker = 'taker',
}

export enum TransferType {
    Trade = 'trade',
    Fee = 'fee',
}

export interface EIP712Parameter {
    name: string;
    type: EIP712Types;
}

export interface EIP712Schema {
    name: string;
    parameters: EIP712Parameter[];
}

export enum EIP712Types {
    Address = 'address',
    Bytes = 'bytes',
    Bytes32 = 'bytes32',
    String = 'string',
    Uint256 = 'uint256',
}

export interface CreateOrderOpts {
    takerAddress?: string;
    senderAddress?: string;
    makerFee?: BigNumber;
    takerFee?: BigNumber;
    feeRecipientAddress?: string;
    salt?: BigNumber;
    expirationTimeSeconds?: BigNumber;
}