317 lines
25 KiB
TypeScript
317 lines
25 KiB
TypeScript
import { ContractAddresses, getContractAddressesForChainOrThrow } from '@0x/contract-addresses';
|
|
import { web3Factory } from 'dev-utils-deprecated';
|
|
import { ETH_TOKEN_ADDRESS, MetaTransaction, MetaTransactionV2 } from '@0x/protocol-utils';
|
|
import { ObjectMap } from '@0x/types';
|
|
import { BigNumber } from '@0x/utils';
|
|
import { providers } from 'ethersv5';
|
|
import { ZeroExFeeConfiguration } from '../src/config';
|
|
|
|
import {
|
|
EXECUTE_META_TRANSACTION_EIP_712_TYPES,
|
|
META_TRANSACTION_V1_EIP_712_TYPES,
|
|
PERMIT_EIP_712_TYPES,
|
|
} from '../src/core/constants';
|
|
import { toPairString } from '../src/core/pair_utils';
|
|
import {
|
|
ExecuteMetaTransactionApproval,
|
|
Fee,
|
|
GaslessApprovalTypes,
|
|
GaslessTypes,
|
|
PermitApproval,
|
|
} from '../src/core/types';
|
|
|
|
export const CHAIN_ID = 1337;
|
|
export const RPC_URL = 'http://localhost:12000';
|
|
export const POSTGRES_PORT = 12001;
|
|
export const REDIS_PORT = 12002;
|
|
|
|
export const MAX_INT = new BigNumber(2).pow(256).minus(1);
|
|
export const MAX_MINT_AMOUNT = new BigNumber('10000000000000000000000');
|
|
export const CONTRACT_ADDRESSES: ContractAddresses = getContractAddressesForChainOrThrow(CHAIN_ID);
|
|
export { ETH_TOKEN_ADDRESS };
|
|
export const ZRX_TOKEN_ADDRESS = CONTRACT_ADDRESSES.zrxToken;
|
|
export const WETH_TOKEN_ADDRESS = CONTRACT_ADDRESSES.etherToken;
|
|
export const UNKNOWN_TOKEN_ADDRESS = '0xbe0037eaf2d64fe5529bca93c18c9702d3930376';
|
|
export const SYMBOL_TO_ADDRESS: ObjectMap<string> = {
|
|
ZRX: ZRX_TOKEN_ADDRESS,
|
|
WETH: WETH_TOKEN_ADDRESS,
|
|
ETH: ETH_TOKEN_ADDRESS,
|
|
};
|
|
export const NULL_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
export const AFFILIATE_DATA_SELECTOR = '869584cd';
|
|
|
|
export const MATCHA_AFFILIATE_ADDRESS = '0x86003b044f70dac0abc80ac8957305b6370893ed';
|
|
export const MATCHA_AFFILIATE_ENCODED_PARTIAL_ORDER_DATA =
|
|
'869584cd00000000000000000000000086003b044f70dac0abc80ac8957305b6370893ed0000000000000000000000000000000000000000000000';
|
|
|
|
export const WORKER_TEST_ADDRESS = '0xE834EC434DABA538cd1b9Fe1582052B880BD7e63';
|
|
export const WORKER_TEST_PRIVATE_KEY = '0xff12e391b79415e941a94de3bf3a9aee577aed0731e297d5cfa0b8a1e02fa1d0';
|
|
|
|
const ganacheConfigs = {
|
|
rpcUrl: RPC_URL,
|
|
shouldAllowUnlimitedContractSize: true,
|
|
shouldUseFakeGasEstimate: false,
|
|
shouldUseInProcessGanache: false,
|
|
};
|
|
|
|
export const getProvider = () => {
|
|
return web3Factory.getRpcProvider(ganacheConfigs);
|
|
};
|
|
export const TEST_RFQ_ORDER_FILLED_EVENT_LOG: providers.Log = {
|
|
address: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
|
|
blockHash: '0x4c9f6904bd33f57204a8451de0891b448a7be065c1704e5b6905f382cb31b040',
|
|
blockNumber: 11598119,
|
|
data: '0xf70ec34e807d08cb83757ec62fffd9e0d22db6b4b97f46b78adcf47682c4cccb000000000000000000000000e89bc18cee87c9af8b472635a152704b96dafb8f0000000000000000000000009016cc2122b52ff5d9937c0c1422b78d7e81ceea0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000e44a075a36f7e7010000000000000000000000000000000000000000000000000000000000000000',
|
|
logIndex: 74,
|
|
removed: false,
|
|
topics: ['0x829fa99d94dc4636925b38632e625736a614c154d55006b7ab6bea979c210c32'],
|
|
transactionHash: '0x2b723137d9328fbe5e64bc2729ef5b1d846bb1d242ae2f3c016b9f70715aa818',
|
|
transactionIndex: 70,
|
|
};
|
|
export const TEST_RFQ_ORDER_FILLED_EVENT_TAKER_AMOUNT = new BigNumber('10000000000000000');
|
|
export const MOCK_EXECUTE_META_TRANSACTION_APPROVAL: ExecuteMetaTransactionApproval = {
|
|
kind: GaslessApprovalTypes.ExecuteMetaTransaction,
|
|
eip712: {
|
|
types: {
|
|
EIP712Domain: [
|
|
{ name: 'name', type: 'string' },
|
|
{ name: 'version', type: 'string' },
|
|
{ name: 'verifyingContract', type: 'address' },
|
|
{ name: 'salt', type: 'bytes32' },
|
|
],
|
|
...EXECUTE_META_TRANSACTION_EIP_712_TYPES,
|
|
},
|
|
primaryType: 'MetaTransaction',
|
|
domain: {
|
|
name: '(PoS) Tether USD',
|
|
version: '1',
|
|
verifyingContract: '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',
|
|
salt: '0x0000000000000000000000000000000000000000000000000000000000000089',
|
|
},
|
|
message: {
|
|
nonce: 1,
|
|
from: WORKER_TEST_ADDRESS,
|
|
functionSignature:
|
|
'0x095ea7b3000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
|
|
},
|
|
},
|
|
};
|
|
export const MOCK_EXECUTE_META_TRANSACTION_CALLDATA =
|
|
'0x0c53c51c000000000000000000000000e834ec434daba538cd1b9fe1582052b880bd7e6300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000044095ea7b3000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000';
|
|
export const MOCK_EXECUTE_META_TRANSACTION_HASH = '0xd5d4c8bc4d7e2cad306a43ebed4d8234dd3b2b8ca5b8d39bb94d21876bbe763a';
|
|
|
|
export const MOCK_PERMIT_APPROVAL: PermitApproval = {
|
|
kind: GaslessApprovalTypes.Permit,
|
|
eip712: {
|
|
types: {
|
|
EIP712Domain: [
|
|
{ name: 'name', type: 'string' },
|
|
{ name: 'version', type: 'string' },
|
|
{ name: 'verifyingContract', type: 'address' },
|
|
{ name: 'salt', type: 'bytes32' },
|
|
],
|
|
...PERMIT_EIP_712_TYPES,
|
|
},
|
|
primaryType: 'Permit',
|
|
domain: {
|
|
name: 'Fake Token',
|
|
version: '1',
|
|
verifyingContract: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
|
|
salt: '0x5a17000000000000000000000000000000000000000000000000000000000000',
|
|
},
|
|
message: {
|
|
owner: '0x9016cc2122b52ff5d9937c0c1422b78d7e81ceea',
|
|
spender: '0xdef1c0ded9bec7f1a1670819833240f027b25eff',
|
|
value: '115792089237316195423570985008687907853269984665640564039457584007913129639935',
|
|
nonce: 1,
|
|
deadline: '123456789',
|
|
},
|
|
},
|
|
};
|
|
|
|
export const MOCK_PERMIT_CALLDATA =
|
|
'0xd505accf0000000000000000000000009016cc2122b52ff5d9937c0c1422b78d7e81ceea000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000075bcd15000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
|
|
export const MOCK_PERMIT_HASH = '0x7b53f9afd28b4efb5b26f7c96e10628264c5c361a5a08313875ee01cdf5fc0c7';
|
|
|
|
export const MOCK_META_TRANSACTION = new MetaTransaction({
|
|
signer: '0xabcdef',
|
|
sender: '0xabcdef',
|
|
minGasPrice: new BigNumber(0),
|
|
maxGasPrice: new BigNumber(1),
|
|
expirationTimeSeconds: new BigNumber(2),
|
|
salt: new BigNumber(3),
|
|
callData: '0x1234567890',
|
|
value: new BigNumber(4),
|
|
feeToken: '0xdef',
|
|
feeAmount: new BigNumber(5),
|
|
chainId: 1,
|
|
verifyingContract: '0xdef1',
|
|
});
|
|
|
|
export const MOCK_META_TRANSACTION_V2 = new MetaTransactionV2({
|
|
signer: '0xabcdef',
|
|
sender: '0xabcdef',
|
|
expirationTimeSeconds: new BigNumber(2),
|
|
salt: new BigNumber(3),
|
|
callData: '0x1234567890',
|
|
feeToken: '0xdef',
|
|
fees: [
|
|
{
|
|
recipient: '0x1',
|
|
amount: new BigNumber(100),
|
|
},
|
|
{
|
|
recipient: '0x2',
|
|
amount: new BigNumber(10),
|
|
},
|
|
],
|
|
chainId: 1,
|
|
verifyingContract: '0xdef1',
|
|
});
|
|
|
|
export const MOCK_STORED_META_TRANSACTION = {
|
|
signer: '0xabcdef',
|
|
sender: '0xabcdef',
|
|
minGasPrice: '0',
|
|
maxGasPrice: '1',
|
|
expirationTimeSeconds: '2',
|
|
salt: '3',
|
|
callData: '0x1234567890',
|
|
value: '4',
|
|
feeToken: '0xdef',
|
|
feeAmount: '5',
|
|
chainId: '1',
|
|
verifyingContract: '0xdef1',
|
|
};
|
|
|
|
export const MOCK_FEE: Fee = {
|
|
type: 'fixed',
|
|
token: '0xtoken',
|
|
amount: new BigNumber(0),
|
|
};
|
|
|
|
export const MOCK_STORED_FEE = {
|
|
type: 'fixed',
|
|
token: '0xtoken',
|
|
amount: '0',
|
|
details: undefined,
|
|
};
|
|
|
|
export const MOCK_META_TRANSACTION_TRADE = {
|
|
kind: GaslessTypes.MetaTransaction,
|
|
eip712: {
|
|
types: {
|
|
EIP712Domain: [
|
|
{ name: 'chainId', type: 'uint256' },
|
|
{ name: 'name', type: 'string' },
|
|
{ name: 'version', type: 'string' },
|
|
{ name: 'verifyingContract', type: 'address' },
|
|
],
|
|
...META_TRANSACTION_V1_EIP_712_TYPES,
|
|
},
|
|
primaryType: 'MetaTransactionData' as unknown as 'MetaTransactionData',
|
|
domain: {
|
|
chainId: 1337,
|
|
name: 'ZeroEx',
|
|
version: '1.0.0',
|
|
verifyingContract: '0x5315e44798395d4a952530d131249fe00f554565',
|
|
},
|
|
message: {
|
|
signer: '0x4c42a706410f1190f97d26fe3c999c90070aa40f',
|
|
sender: '0x0000000000000000000000000000000000000000',
|
|
minGasPrice: new BigNumber('1'),
|
|
maxGasPrice: new BigNumber('4294967296'),
|
|
expirationTimeSeconds: new BigNumber('9990868679'),
|
|
salt: new BigNumber('32606650794224190000000000000000000000000000000000000000000000000000000000000'),
|
|
callData:
|
|
'0x415565b00000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000017b9e2a304f00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000860000000000000000000000000000000000000000000000000000000000000086000000000000000000000000000000000000000000000000000000000000007c000000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000052000000000000000000000000000000002517569636b5377617000000000000000000000000000000000000000000000000000000000000008570b55cfac18858000000000000000000000000000000000000000000000000000000039d0b9efd1000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000002517569636b53776170000000000000000000000000000000000000000000000000000000000000042b85aae7d60c42c00000000000000000000000000000000000000000000000000000001c94ebec37000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12700000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa841740000000000000000000000000000000b446f646f5632000000000000000000000000000000000000000000000000000000000000000000042b85aae7d60c42c00000000000000000000000000000000000000000000000000000001db5156c13000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000005333eb1e32522f1893b7c9fea3c263807a02d561000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000012556e69737761705633000000000000000000000000000000000000000000000000000000000000190522016f044a05b0000000000000000000000000000000000000000000000000000000b08217af9400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e592427a0aece92de3edee1f18e0157c058615640000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012556e697377617056330000000000000000000000000000000000000000000000000000000000000c829100b78224ef50000000000000000000000000000000000000000000000000000000570157389f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000427ceb23fd6bc0add59e62ac25578270cff1b9f6190001f41bfd67037b42cf73acf2047067bd4f2c47d9bfd6000bb82791bca1f2de4661ed88a30c99a7a9449aa841740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f619000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000869584cd0000000000000000000000008c611defbd838a13de3a5923693c58a7c1807c6300000000000000000000000000000000000000000000005b89d96b4863067a6b',
|
|
value: new BigNumber('0'),
|
|
feeToken: '0x0000000000000000000000000000000000000000',
|
|
feeAmount: new BigNumber('0'),
|
|
},
|
|
},
|
|
trade: new MetaTransaction({
|
|
signer: '0x4c42a706410f1190f97d26fe3c999c90070aa40f',
|
|
sender: '0x0000000000000000000000000000000000000000',
|
|
minGasPrice: new BigNumber('1'),
|
|
maxGasPrice: new BigNumber('4294967296'),
|
|
expirationTimeSeconds: new BigNumber('9990868679'),
|
|
salt: new BigNumber('32606650794224190000000000000000000000000000000000000000000000000000000000000'),
|
|
callData:
|
|
'0x415565b00000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000017b9e2a304f00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000860000000000000000000000000000000000000000000000000000000000000086000000000000000000000000000000000000000000000000000000000000007c000000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000052000000000000000000000000000000002517569636b5377617000000000000000000000000000000000000000000000000000000000000008570b55cfac18858000000000000000000000000000000000000000000000000000000039d0b9efd1000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa8417400000000000000000000000000000002517569636b53776170000000000000000000000000000000000000000000000000000000000000042b85aae7d60c42c00000000000000000000000000000000000000000000000000000001c94ebec37000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f6190000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12700000000000000000000000002791bca1f2de4661ed88a30c99a7a9449aa841740000000000000000000000000000000b446f646f5632000000000000000000000000000000000000000000000000000000000000000000042b85aae7d60c42c00000000000000000000000000000000000000000000000000000001db5156c13000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000400000000000000000000000005333eb1e32522f1893b7c9fea3c263807a02d561000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000012556e69737761705633000000000000000000000000000000000000000000000000000000000000190522016f044a05b0000000000000000000000000000000000000000000000000000000b08217af9400000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000060000000000000000000000000e592427a0aece92de3edee1f18e0157c058615640000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012556e697377617056330000000000000000000000000000000000000000000000000000000000000c829100b78224ef50000000000000000000000000000000000000000000000000000000570157389f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000427ceb23fd6bc0add59e62ac25578270cff1b9f6190001f41bfd67037b42cf73acf2047067bd4f2c47d9bfd6000bb82791bca1f2de4661ed88a30c99a7a9449aa841740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007ceb23fd6bc0add59e62ac25578270cff1b9f619000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000869584cd0000000000000000000000008c611defbd838a13de3a5923693c58a7c1807c6300000000000000000000000000000000000000000000005b89d96b4863067a6b',
|
|
value: new BigNumber('0'),
|
|
feeToken: '0x0000000000000000000000000000000000000000',
|
|
feeAmount: new BigNumber('0'),
|
|
}),
|
|
};
|
|
|
|
export const MAINET_TOKEN_ADDRESSES = {
|
|
USDC: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
WETH: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
USDT: '0xdac17f958d2ee523a2206206994597c13d831ec7',
|
|
DAI: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
WBTC: '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',
|
|
SHIB: '0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce',
|
|
AAVE: '0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9',
|
|
};
|
|
|
|
export const ZERO_EX_FEE_CONFIGURATIONS = (() => {
|
|
const zeroExFeeConfigurations: Map<string, Map<number, ZeroExFeeConfiguration>> = new Map();
|
|
const coinbaseMainnetConfiguration: ZeroExFeeConfiguration = {
|
|
name: 'Coinbase',
|
|
feeOn: 'volume',
|
|
zeroEx: {
|
|
feeRecipient: '0x4ea754349ace5303c82f0d1d491041e042f2ad22',
|
|
billingType: 'on-chain',
|
|
},
|
|
gas: {
|
|
feeRecipient: null,
|
|
billingType: 'off-chain',
|
|
},
|
|
pairsFeeEntries: new Map([
|
|
[toPairString(MAINET_TOKEN_ADDRESSES.USDC, MAINET_TOKEN_ADDRESSES.WETH), new BigNumber(0.5)],
|
|
[toPairString(MAINET_TOKEN_ADDRESSES.USDT, MAINET_TOKEN_ADDRESSES.WETH), new BigNumber(0.5)],
|
|
]),
|
|
cartesianProductFeeEntries: [
|
|
{
|
|
setA: new Set([MAINET_TOKEN_ADDRESSES.USDC, MAINET_TOKEN_ADDRESSES.USDT, MAINET_TOKEN_ADDRESSES.DAI]),
|
|
setB: new Set([MAINET_TOKEN_ADDRESSES.WETH, MAINET_TOKEN_ADDRESSES.WBTC]),
|
|
parameter: new BigNumber(0.7),
|
|
},
|
|
{
|
|
setA: new Set([MAINET_TOKEN_ADDRESSES.USDC, MAINET_TOKEN_ADDRESSES.USDT, MAINET_TOKEN_ADDRESSES.DAI]),
|
|
setB: new Set([MAINET_TOKEN_ADDRESSES.USDC, MAINET_TOKEN_ADDRESSES.USDT, MAINET_TOKEN_ADDRESSES.DAI]),
|
|
parameter: new BigNumber(0.1),
|
|
},
|
|
],
|
|
tokensEntries: new Map([
|
|
[MAINET_TOKEN_ADDRESSES.WBTC, new BigNumber(1.5)],
|
|
['*', new BigNumber(0.05)],
|
|
]),
|
|
};
|
|
const defaultMainnetConfiguration: ZeroExFeeConfiguration = {
|
|
name: 'All',
|
|
feeOn: 'integrator_share',
|
|
zeroEx: {
|
|
feeRecipient: '0x4ea754349ace5303c82f0d1d491041e042f2ad22',
|
|
billingType: 'on-chain',
|
|
},
|
|
gas: {
|
|
feeRecipient: null,
|
|
billingType: 'off-chain',
|
|
},
|
|
pairsFeeEntries: new Map(),
|
|
cartesianProductFeeEntries: [],
|
|
tokensEntries: new Map([
|
|
[MAINET_TOKEN_ADDRESSES.WBTC, new BigNumber(1.2)],
|
|
['*', new BigNumber(0.03)],
|
|
]),
|
|
};
|
|
zeroExFeeConfigurations.set('5062340f-87bb-4e1b-8029-eb8c03a9989c', new Map());
|
|
zeroExFeeConfigurations.get('5062340f-87bb-4e1b-8029-eb8c03a9989c')?.set(1, coinbaseMainnetConfiguration);
|
|
zeroExFeeConfigurations.set('*', new Map());
|
|
zeroExFeeConfigurations.get('*')?.set(1, defaultMainnetConfiguration);
|
|
|
|
return zeroExFeeConfigurations;
|
|
})();
|