-
Notifications
You must be signed in to change notification settings - Fork 71
/
Copy pathbundle.config.js
5215 lines (5138 loc) · 461 KB
/
bundle.config.js
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
require=(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({"/config.js":[function(require,module,exports){
// some big entries are in separate files
const exContracts = require('./config/contracts'); // DEX related smart contracts
const abi = require('./config/abi'); // common ABI definitions to parse transactions
const historyConf = require('./config/history'); // config values used for trade history
const addresses = require('./config/addresses'); // wallet adresses with a name label/idenitity
const instances = require('./config/contractInstances'); //uniswap, bancor instances
module.exports = {
/* General config */
homeURL: 'https://deltabalances.github.io',
DeltaBalanceAddr: '0xbf320b8336b131e0270295c15478d91741f9fc11',
//smart contracts
exchangeContracts: exContracts,
ABIs: abi,
//history settings
blockMonths: historyConf.blockMonths,
history: historyConf.history,
//attributes on tokens for exchanges that makes tokens show up as listed
listedExchanges: ['ForkDelta', 'IDEX', 'DDEX', 'DDEX2', 'Binance', 'Radar', 'Kyber', 'OneInch'],
/* token related variables, see backuptokens.js for a full token list */
balanceTokens: [], //list of tokens used during balance loading, (appended at run-time)
// 2 legacy token lists, still used in allowances.js
tokens: [],
customTokens: [],
ethAddr: '0x0000000000000000000000000000000000000000', //address commonly used to indicate ETH as a token
wrappedETH: {
"0x0000000000000000000000000000000000000000": 1, // EtherDelta, IDEX, tokenStore, Decentrex reserved for ETH
"0xe495bcacaf29a0eb00fb67b86e9cd2a994dd55d8": 1, // 0x style ?, deprecated
"0x2956356cd2a2bf3202f771f50d3d14a367b48070": 1, // 0x WETH v1 (deprecated)
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": 1, // 0x WETH v2 (active)
"0xecf8f87f810ecf450940c9f60066b4a7a501d6a7": 1, // WETH MKR
"0xc0829421c1d260bd3cb3e0f06cfe2d52db2ce315": 1, // Bancor ether token 2
"0xd76b5c2a23ef78368d8e34288b5b65d616b746ae": 1, // Bancor ether token 1
"0xaa7427d8f17d87a28f5e1ba3adbb270badbe1011": 1, // ethfinex ETHW
"0x50cb61afa3f023d17276dcfb35abf85c710d1cff": 1, // ethfinex ETHW
"0x53b04999c1ff2d77fcdde98935bb936a67209e4c": 1, // Veil ETH
},
// currencies that take precedence to be the base pair in a trade found on the blockchain (e.g ETH<->BAT is shown as BAT-ETH)
baseToken: {
"0x6b175474e89094c44da98b954eedeac495271d0f": 1, // DAI stablecoin
"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359": 2, // SAI (DAI) stablecoin
"0xdac17f958d2ee523a2206206994597c13d831ec7": 3, // USDT
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": 4, // USDC
"0x0000000000085d4780b73119b644ae5ecd22b376": 5, //TUSD v2
"0x8dd5fbce2f6a956c3022ba3663759011dd51e73e": 6, // TUSD
"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599": 7, // WBTC
"0x8e870d67f660d95d5be530380d0ec0bd388289e1": 8, // PAX
"0xa4bdb11dc0a2bec88d24a3aa1e6bb17201112ebe": 9, // USDS
//ethfinex (diversifi) wrappers
"0x2da4f4ff3eb51bff53b66f00054d6cf8d028349f": 10, //daiw
"0xd9ebebfdab08c643c5f2837632de920c70a56247": 11, //daiw
"0x1a9b2d827f26b7d7c18fec4c1b27c1e8deeba26e": 12, //daiw
"0x243318cb80785ab92f2c39543cb58958320e64b2": 13, //tusdw
"0xeb52a95695ffa4cf411b804455287f0717884899": 14, //tusdw
"0x69391cca2e38b845720c7deb694ec837877a8e53": 15, //usdcw
"0x33d019eb137b853f0cdf555a5d5bd2749135ac31": 16, //usdtw
"0xe41d2489571d322189246dafa5ebde1f4699f498": 17, // ZRX (fee in 0x sometimes as a zrx trade)
"0x0027449bf0887ca3e431d263ffdefb244d95b555": 18, // NOT (airdrop coin openrelay)
"0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c": 19, // BNT (internal Bancor trades)
},
/* address variables */
zrxRelayers: addresses.zrxRelayers,
zrxTakers: addresses.zrxTakers,
admins: addresses.admins,
exchangeWallets: addresses.exchangeWallets,
bancorConverters: instances.bancorConverters,
uniswapContracts: instances.uniswapContracts,
uniswapNewExTopic: '0x9d42cb017eb05bd8944ab536a8b35bc68085931dd5f4356489801453923953f9',
uniswapContractsBlock: 10235031, //(uniswapV1) blocknumber up to which all newExchange events are saved (min 6627917)
/* api related */
etherscanAPIKey: 'CY1M8MIE5IJ87GKNGYF98PGQFIHVQ99V13',
infuraKey: '87ee3513fad045acb1522ef7a30bd652',
alchemyKey: 'ozV51x-gVqsq09qRjj7FQ-Y1sGJee62t',
jsonRpcUrls: [ //public rpc providers by url
"https://api.mycryptoapi.com/eth",
//"https://main-rpc.linkpool.io"
],
providerTimeout: 3000, // 3 sec
// separate API keys for ethereum logs (history)
historyUrls: [
{name:"Infura.io - Fastest", url:'https://mainnet.infura.io/v3/a7ca261d0f724bac976dfdb263cb3866', maxRequestRange: 2500, concurrent: 10},
{name:"Rivet.cloud - Alternative", url:'https://46c031f417ef4e4c81483a1e077c0ca2.eth.rpc.rivet.cloud/', maxRequestRange: 4000, concurrent: 5},
{name:"Localhost:8545 - Advanced users", url:'http://localhost:8545', maxRequestRange: 2500, concurrent: 5}
],
localNode: 'http://localhost:8545',
socketURL: 'https://api.forkdelta.com', //forkdelta order/price api
};
},{"./config/abi":1,"./config/addresses":2,"./config/contractInstances":3,"./config/contracts":4,"./config/history":5}],1:[function(require,module,exports){
//exchange & token contract ABIs
module.exports = {
DeltaBalances: [
"function depositedBalances(address exchange, address user, address[] tokens) view returns (uint256[] balances)",
"function depositedBalancesGeneric(address exchange, bytes4 selector, address user, address[] tokens, bool userFirst) view returns (uint256[] balances)",
"function depositedEtherGeneric(address exchange, bytes4 selector, address user) view returns (uint256)",
"function getFunctionSelector(string functionSignature) pure returns (bytes4)",
"function tokenAllowances(address spenderContract, address user, address[] tokens) view returns (uint256[] allowances)",
"function tokenBalances(address user, address[] tokens) view returns (uint256[] balances)"
],
/* ABIs below are stripped of functions and events not relevant to the site (only trading, tokens, etc.)
functions or events might be omitted if another ABI already contains them. (erc20 & erc721 have identical transfer, aprove, etc.)
*/
//uniswap v1 factory
UniFactory: [
"event NewExchange(address indexed token, address indexed exchange)",
"function createExchange(address token) returns (address out)",
"function getExchange(address token) view returns (address out)",
"function getToken(address exchange) view returns (address out)",
"function getTokenWithId(uint256 token_id) view returns (address out)",
"function tokenCount() view returns (uint256 out)"
],
// token interactions
// Generic ERC20, uses WETH token to also capture ETH wrapping/unwrapping (withdraw, deposit)
Erc20: [
"function approve(address guy, uint256 wad) returns (bool)",
"function transferFrom(address src, address dst, uint256 wad) returns (bool)",
"function withdraw(uint256 wad)",
"function decimals() view returns (uint8)",
"function balanceOf(address) view returns (uint256)",
"function symbol() view returns (string)",
"function transfer(address dst, uint256 wad) returns (bool)",
"function deposit() payable",
"function allowance(address, address) view returns (uint256)",
"event Approval(address indexed src, address indexed guy, uint256 wad)",
"event Transfer(address indexed src, address indexed dst, uint256 wad)",
"event Deposit(address indexed dst, uint256 wad)",
"event Withdrawal(address indexed src, uint256 wad)"
],
//Generic ERC721
Erc721: [
"function getApproved(uint256 _tokenId) view returns (address)",
"function safeTransferFrom(address _from, address _to, uint256 _tokenId) payable",
"function ownerOf(uint256 _tokenId) view returns (address _owner)",
"function setApprovalForAll(address _operator, bool _approved)",
"function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) payable",
"function isApprovedForAll(address _owner, address _operator) view returns (bool)",
"event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)"
],
//bancor ETH token for Issuance,Destruction
Erc20Bancor: [
"function withdrawTo(address _to, uint256 _amount)",
"function withdrawTokens(address _token, address _to, uint256 _amount)",
"event Issuance(uint256 _amount)",
"event Destruction(uint256 _amount)"
],
//input for wrapping/unwrapping ethfinex wrappers
EthfinexLockToken: [
"function withdraw(uint256 _value, uint8 v, bytes32 r, bytes32 s, uint256 signatureValidUntilBlock) returns (bool)",
"function withdrawDifferentToken(address _token, bool _erc20old) returns (bool)",
"function deposit(uint256 _value, uint256 _forTime) payable returns (bool success)"
],
//veil eth wrapper for depositAndApprove,withdrawAndTransfer
VeilETH: [
"function withdrawAndTransfer(uint256 _amount, address _target) returns (bool)",
"function depositAndApprove(address _spender, uint256 _allowance) payable returns (bool)"
],
//define 0x V2&3 assetData for decoding
'0xData': [
"function ERC721Token(address, uint256)",
"function MultiAsset(uint256[], bytes[])",
"function ERC1155Assets(address, uint256[], uint256[], bytes)",
"function StaticCall(address, bytes, bytes32)",
"function ERC20Bridge(address, address, bytes)",
"function ERC20Token(address)"
],
//exchanges
EtherDelta: [
"function trade(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, uint256 expires, uint256 nonce, address user, uint8 v, bytes32 r, bytes32 s, uint256 amount)",
"function order(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, uint256 expires, uint256 nonce)",
"function cancelOrder(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, uint256 expires, uint256 nonce, uint8 v, bytes32 r, bytes32 s)",
"function withdraw(uint256 amount)",
"function depositToken(address token, uint256 amount)",
"function withdrawToken(address token, uint256 amount)",
"event Order(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, uint256 expires, uint256 nonce, address user)",
"event Cancel(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, uint256 expires, uint256 nonce, address user, uint8 v, bytes32 r, bytes32 s)",
"event Trade(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, address get, address give)",
"event Deposit(address token, address user, uint256 amount, uint256 balance)",
"event Withdraw(address token, address user, uint256 amount, uint256 balance)"
],
TokenStore: [
"function depositTokenForUser(address _token, uint256 _amount, address _user)",
"function depositForUser(address _user) payable",
"function migrateFunds(address[] _tokens)",
"event Trade(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, address get, address give, uint256 nonce)"
],
Idex: [
"function adminWithdraw(address token, uint256 amount, address user, uint256 nonce, uint8 v, bytes32 r, bytes32 s, uint256 feeWithdrawal) returns (bool success)",
"function invalidateOrdersBefore(address user, uint256 nonce)",
"function trade(uint256[8] tradeValues, address[4] tradeAddresses, uint8[2] v, bytes32[4] rs) returns (bool success)",
"function withdraw(address token, uint256 amount) returns (bool success)",
"event Order(address tokenBuy, uint256 amountBuy, address tokenSell, uint256 amountSell, uint256 expires, uint256 nonce, address user, uint8 v, bytes32 r, bytes32 s)"
],
Idex2: [ //partial
"function depositEther() payable",
"function depositTokenByAddress(address tokenAddress, uint256 quantityInAssetUnits)",
"function depositTokenBySymbol(string calldata assetSymbol, uint256 quantityInAssetUnits)",
"function withdrawExit(address assetAddress)",
"function withdraw(tuple(uint8 withdrawalType, uint128 nonce, address walletAddress, string assetSymbol, address assetAddress, uint64 quantityInPips, uint64 gasFeeInPips, bool autoDispatchEnabled, bytes walletSignature) withdrawal)",
"function invalidateOrderNonce(uint128 nonce)",
"event Deposited(uint64 index, address indexed wallet, address indexed assetAddress, string indexed assetSymbolIndex, string assetSymbol, uint64 quantityInPips, uint64 newExchangeBalanceInPips, uint256 newExchangeBalanceInAssetUnits)",
"event WalletExitWithdrawn(address indexed wallet, address indexed assetAddress, string assetSymbol, uint64 quantityInPips, uint64 newExchangeBalanceInPips, uint256 newExchangeBalanceInAssetUnits)",
"event Withdrawn(address indexed wallet, address indexed assetAddress, string assetSymbol, uint64 quantityInPips, uint64 newExchangeBalanceInPips, uint256 newExchangeBalanceInAssetUnits)",
//"event TradeExecuted(address buyWallet, address sellWallet, indexed string baseAssetSymbolIndex, indexed string quoteAssetSymbolIndex, string baseAssetSymbol, string quoteAssetSymbol, uint64 baseQuantityInPips, uint64 quoteQuantityInPips, uint64 tradePriceInPips, bytes32 buyOrderHash, bytes32 sellOrderHash)",
"event OrderNonceInvalidated(address indexed wallet, uint128 nonce, uint128 timestampInMs, uint256 effectiveBlockNumber)",
],
'0x': [
"function fillOrdersUpTo(address[5][] orderAddresses, uint256[6][] orderValues, uint256 fillTakerTokenAmount, bool shouldThrowOnInsufficientBalanceOrAllowance, uint8[] v, bytes32[] r, bytes32[] s) returns (uint256)",
"function cancelOrder(address[5] orderAddresses, uint256[6] orderValues, uint256 cancelTakerTokenAmount) returns (uint256)",
"function batchFillOrKillOrders(address[5][] orderAddresses, uint256[6][] orderValues, uint256[] fillTakerTokenAmounts, uint8[] v, bytes32[] r, bytes32[] s)",
"function fillOrKillOrder(address[5] orderAddresses, uint256[6] orderValues, uint256 fillTakerTokenAmount, uint8 v, bytes32 r, bytes32 s)",
"function batchFillOrders(address[5][] orderAddresses, uint256[6][] orderValues, uint256[] fillTakerTokenAmounts, bool shouldThrowOnInsufficientBalanceOrAllowance, uint8[] v, bytes32[] r, bytes32[] s)",
"function batchCancelOrders(address[5][] orderAddresses, uint256[6][] orderValues, uint256[] cancelTakerTokenAmounts)",
"function fillOrder(address[5] orderAddresses, uint256[6] orderValues, uint256 fillTakerTokenAmount, bool shouldThrowOnInsufficientBalanceOrAllowance, uint8 v, bytes32 r, bytes32 s) returns (uint256 filledTakerTokenAmount)",
"event LogFill(address indexed maker, address taker, address indexed feeRecipient, address makerToken, address takerToken, uint256 filledMakerTokenAmount, uint256 filledTakerTokenAmount, uint256 paidMakerFee, uint256 paidTakerFee, bytes32 indexed tokens, bytes32 orderHash)",
"event LogCancel(address indexed maker, address indexed feeRecipient, address makerToken, address takerToken, uint256 cancelledMakerTokenAmount, uint256 cancelledTakerTokenAmount, bytes32 indexed tokens, bytes32 orderHash)",
"event LogError(uint8 indexed errorId, bytes32 indexed orderHash)"
],
'0x2': [
"function batchFillOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, uint256[] takerAssetFillAmounts, bytes[] signatures) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) totalFillResults)",
"function preSign(bytes32 hash, address signerAddress, bytes signature)",
"function matchOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData) leftOrder, tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData) rightOrder, bytes leftSignature, bytes rightSignature) returns (tuple(tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) left, tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) right, uint256 leftMakerAssetSpreadAmount) matchedFillResults)",
"function fillOrderNoThrow(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData) order, uint256 takerAssetFillAmount, bytes signature) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) fillResults)",
"function batchCancelOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders)",
"function batchFillOrKillOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, uint256[] takerAssetFillAmounts, bytes[] signatures) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) totalFillResults)",
"function cancelOrdersUpTo(uint256 targetOrderEpoch)",
"function batchFillOrdersNoThrow(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, uint256[] takerAssetFillAmounts, bytes[] signatures) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) totalFillResults)",
"function fillOrKillOrder(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData) order, uint256 takerAssetFillAmount, bytes signature) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) fillResults)",
"function marketSellOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, uint256 takerAssetFillAmount, bytes[] signatures) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) totalFillResults)",
"function marketBuyOrdersNoThrow(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, uint256 makerAssetFillAmount, bytes[] signatures) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) totalFillResults)",
"function fillOrder(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData) order, uint256 takerAssetFillAmount, bytes signature) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) fillResults)",
"function executeTransaction(uint256 salt, address signerAddress, bytes data, bytes signature)",
"function cancelOrder(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData) order)",
"function marketSellOrdersNoThrow(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, uint256 takerAssetFillAmount, bytes[] signatures) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) totalFillResults)",
"function marketBuyOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, uint256 makerAssetFillAmount, bytes[] signatures) returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) totalFillResults)",
"event Fill(address indexed makerAddress, address indexed feeRecipientAddress, address takerAddress, address senderAddress, uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, bytes32 indexed orderHash, bytes makerAssetData, bytes takerAssetData)",
"event Cancel(address indexed makerAddress, address indexed feeRecipientAddress, address senderAddress, bytes32 indexed orderHash, bytes makerAssetData, bytes takerAssetData)",
"event CancelUpTo(address indexed makerAddress, address indexed senderAddress, uint256 orderEpoch)"
],
'0xForwarder2': [
"function marketBuyOrdersWithEth(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, uint256 makerAssetFillAmount, bytes[] signatures, tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] feeOrders, bytes[] feeSignatures, uint256 feePercentage, address feeRecipient) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) orderFillResults, tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) feeOrderFillResults)",
"function withdrawAsset(bytes assetData, uint256 amount)",
"function marketSellOrdersWithEth(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] orders, bytes[] signatures, tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData)[] feeOrders, bytes[] feeSignatures, uint256 feePercentage, address feeRecipient) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) orderFillResults, tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid) feeOrderFillResults)"
],
'0x3': [
"event Cancel(address indexed makerAddress, address indexed feeRecipientAddress, bytes makerAssetData, bytes takerAssetData, address senderAddress, bytes32 indexed orderHash)",
"event Fill(address indexed makerAddress, address indexed feeRecipientAddress, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData, bytes32 indexed orderHash, address takerAddress, address senderAddress, uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid)",
"event TransactionExecution(bytes32 indexed transactionHash)",
"function batchCancelOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders) payable",
"function batchExecuteTransactions(tuple(uint256 salt, uint256 expirationTimeSeconds, uint256 gasPrice, address signerAddress, bytes data)[] transactions, bytes[] signatures) payable returns (bytes[])",
"function batchFillOrKillOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256[] takerAssetFillAmounts, bytes[] signatures) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid)[] fillResults)",
"function batchFillOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256[] takerAssetFillAmounts, bytes[] signatures) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid)[] fillResults)",
"function batchFillOrdersNoThrow(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256[] takerAssetFillAmounts, bytes[] signatures) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid)[] fillResults)",
"function batchMatchOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] leftOrders, tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] rightOrders, bytes[] leftSignatures, bytes[] rightSignatures) payable returns (tuple(tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid)[] left, tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid)[] right, uint256 profitInLeftMakerAsset, uint256 profitInRightMakerAsset) batchMatchedFillResults)",
"function batchMatchOrdersWithMaximalFill(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] leftOrders, tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] rightOrders, bytes[] leftSignatures, bytes[] rightSignatures) payable returns (tuple(tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid)[] left, tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid)[] right, uint256 profitInLeftMakerAsset, uint256 profitInRightMakerAsset) batchMatchedFillResults)",
"function cancelOrder(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData) order) payable",
"function executeTransaction(tuple(uint256 salt, uint256 expirationTimeSeconds, uint256 gasPrice, address signerAddress, bytes data) transaction, bytes signature) payable returns (bytes)",
"function fillOrKillOrder(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData) order, uint256 takerAssetFillAmount, bytes signature) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) fillResults)",
"function fillOrder(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData) order, uint256 takerAssetFillAmount, bytes signature) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) fillResults)",
"function marketBuyOrdersFillOrKill(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256 makerAssetFillAmount, bytes[] signatures) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) fillResults)",
"function marketBuyOrdersNoThrow(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256 makerAssetFillAmount, bytes[] signatures) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) fillResults)",
"function marketSellOrdersFillOrKill(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256 takerAssetFillAmount, bytes[] signatures) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) fillResults)",
"function marketSellOrdersNoThrow(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256 takerAssetFillAmount, bytes[] signatures) payable returns (tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) fillResults)",
"function matchOrders(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData) leftOrder, tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData) rightOrder, bytes leftSignature, bytes rightSignature) payable returns (tuple(tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) left, tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) right, uint256 profitInLeftMakerAsset, uint256 profitInRightMakerAsset) matchedFillResults)",
"function matchOrdersWithMaximalFill(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData) leftOrder, tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData) rightOrder, bytes leftSignature, bytes rightSignature) payable returns (tuple(tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) left, tuple(uint256 makerAssetFilledAmount, uint256 takerAssetFilledAmount, uint256 makerFeePaid, uint256 takerFeePaid, uint256 protocolFeePaid) right, uint256 profitInLeftMakerAsset, uint256 profitInRightMakerAsset) matchedFillResults)",
"function preSign(bytes32 hash) payable"
],
'0xForwarder3': [
"function marketBuyOrdersWithEth(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256 makerAssetBuyAmount, bytes[] signatures, uint256 feePercentage, address feeRecipient) payable returns (uint256 wethSpentAmount, uint256 makerAssetAcquiredAmount, uint256 ethFeePaid)",
"function marketSellOrdersWithEth(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, bytes[] signatures, uint256 feePercentage, address feeRecipient) payable returns (uint256 wethSpentAmount, uint256 makerAssetAcquiredAmount, uint256 ethFeePaid)"
],
'0xCoordinator': [
"function executeTransaction(tuple(uint256 salt, uint256 expirationTimeSeconds, uint256 gasPrice, address signerAddress, bytes data) transaction, address txOrigin, bytes transactionSignature, bytes[] approvalSignatures) payable"
],
'0xForwarderMatcha': [
"function marketBuyOrdersWithEth(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256 makerAssetBuyAmount, bytes[] signatures, uint256[] ethFeeAmounts, address[] feeRecipients) payable returns (uint256 wethSpentAmount, uint256 makerAssetAcquiredAmount)",
"function marketSellOrdersWithEth(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, bytes[] signatures, uint256[] ethFeeAmounts, address[] feeRecipients) payable returns (uint256 wethSpentAmount, uint256 makerAssetAcquiredAmount)",
"function marketSellAmountWithEth(tuple(address makerAddress, address takerAddress, address feeRecipientAddress, address senderAddress, uint256 makerAssetAmount, uint256 takerAssetAmount, uint256 makerFee, uint256 takerFee, uint256 expirationTimeSeconds, uint256 salt, bytes makerAssetData, bytes takerAssetData, bytes makerFeeAssetData, bytes takerFeeAssetData)[] orders, uint256 ethSellAmount, bytes[] signatures, uint256[] ethFeeAmounts, address[] feeRecipients) payable returns (uint256 wethSpentAmount, uint256 makerAssetAcquiredAmount)",
],
// matcha aggregator by 0x
'0xExchangeProxy': [
"function transformERC20(address inputToken, address outputToken, uint256 inputTokenAmount, uint256 minOutputTokenAmount, tuple(uint32 deploymentNonce, bytes data)[] transformations) payable returns (uin256 outputTokenAmount)",
"event TransformedERC20(address indexed taker, address inputToken, address outputToken, uint256 inputTokenAmount, uint256 outputTokenAmount)"
],
//DDEX post 0x protocol (hydro 1.0 and hydro 1.1)
DDEX: [
"function matchOrders(tuple(address trader, uint256 baseTokenAmount, uint256 quoteTokenAmount, uint256 gasTokenAmount, bytes32 data, tuple(bytes32 config, bytes32 r, bytes32 s) signature) takerOrderParam, tuple(address trader, uint256 baseTokenAmount, uint256 quoteTokenAmount, uint256 gasTokenAmount, bytes32 data, tuple(bytes32 config, bytes32 r, bytes32 s) signature)[] makerOrderParams, tuple(address baseToken, address quoteToken, address relayer) orderAddressSet)",
"function cancelOrder(tuple(address trader, address relayer, address baseToken, address quoteToken, uint256 baseTokenAmount, uint256 quoteTokenAmount, uint256 gasTokenAmount, bytes32 data) order)",
"event Cancel(bytes32 indexed orderHash)",
"event Match(address baseToken, address quoteToken, address relayer, address maker, address taker, uint256 baseTokenAmount, uint256 quoteTokenAmount, uint256 makerFee, uint256 takerFee, uint256 makerGasFee, uint256 makerRebate, uint256 takerGasFee)"
],
DDEX2: [
"function matchOrders(tuple(address trader, uint256 baseTokenAmount, uint256 quoteTokenAmount, uint256 gasTokenAmount, bytes32 data, tuple(bytes32 config, bytes32 r, bytes32 s) signature) takerOrderParam, tuple(address trader, uint256 baseTokenAmount, uint256 quoteTokenAmount, uint256 gasTokenAmount, bytes32 data, tuple(bytes32 config, bytes32 r, bytes32 s) signature)[] makerOrderParams, uint256[] baseTokenFilledAmounts, tuple(address baseToken, address quoteToken, address relayer) orderAddressSet)",
"event Match(tuple(address baseToken, address quoteToken, address relayer) addressSet, tuple(address maker, address taker, address buyer, uint256 makerFee, uint256 makerRebate, uint256 takerFee, uint256 makerGasFee, uint256 takerGasFee, uint256 baseTokenFilledAmount, uint256 quoteTokenFilledAmount) result)"
],
OasisDex: [
"function sellAllAmount(address pay_gem, uint256 pay_amt, address buy_gem, uint256 min_fill_amount) returns (uint256 fill_amt)",
"function make(address pay_gem, address buy_gem, uint128 pay_amt, uint128 buy_amt) returns (bytes32)",
"function offer(uint256 pay_amt, address pay_gem, uint256 buy_amt, address buy_gem, uint256 pos) returns (uint256)",
"function cancel(uint256 id) returns (bool success)",
"function take(bytes32 id, uint128 maxTakeAmount)",
"function buyAllAmount(address buy_gem, uint256 buy_amt, address pay_gem, uint256 max_fill_amount) returns (uint256 fill_amt)",
"function kill(bytes32 id)",
"function buy(uint256 id, uint256 amount) returns (bool)",
"function offer(uint256 pay_amt, address pay_gem, uint256 buy_amt, address buy_gem, uint256 pos, bool rounding) returns (uint256)",
"function offer(uint256 pay_amt, address pay_gem, uint256 buy_amt, address buy_gem) returns (uint256)",
"event LogNote(bytes4 indexed sig, address indexed guy, bytes32 indexed foo, bytes32 indexed bar, uint256 wad, bytes fax) anonymous",
"event LogItemUpdate(uint256 id)",
"event LogTrade(uint256 pay_amt, address indexed pay_gem, uint256 buy_amt, address indexed buy_gem)",
"event LogMake(bytes32 indexed id, bytes32 indexed pair, address indexed maker, address pay_gem, address buy_gem, uint128 pay_amt, uint128 buy_amt, uint64 timestamp)",
"event LogBump(bytes32 indexed id, bytes32 indexed pair, address indexed maker, address pay_gem, address buy_gem, uint128 pay_amt, uint128 buy_amt, uint64 timestamp)",
"event LogTake(bytes32 id, bytes32 indexed pair, address indexed maker, address pay_gem, address buy_gem, address indexed taker, uint128 take_amt, uint128 give_amt, uint64 timestamp)",
"event LogKill(bytes32 indexed id, bytes32 indexed pair, address indexed maker, address pay_gem, address buy_gem, uint128 pay_amt, uint128 buy_amt, uint64 timestamp)"
],
OasisDexOld3: [
"event ItemUpdate(uint256 id)",
"event Trade(uint256 sell_how_much, address indexed sell_which_token, uint256 buy_how_much, address indexed buy_which_token)"
],
OasisDirect: [
"function sellAllAmountBuyEth(address otc, address payToken, uint256 payAmt, address wethToken, uint256 minBuyAmt) returns (uint256 wethAmt)",
"function sellAllAmount(address otc, address payToken, uint256 payAmt, address buyToken, uint256 minBuyAmt) returns (uint256 buyAmt)",
"function buyAllAmount(address otc, address buyToken, uint256 buyAmt, address payToken, uint256 maxPayAmt) returns (uint256 payAmt)",
"function createAndBuyAllAmountBuyEth(address factory, address otc, uint256 wethAmt, address payToken, uint256 maxPayAmt) returns (address proxy, uint256 payAmt)",
"function createAndSellAllAmountBuyEth(address factory, address otc, address payToken, uint256 payAmt, uint256 minBuyAmt) returns (address proxy, uint256 wethAmt)",
"function createAndBuyAllAmountPayEth(address factory, address otc, address buyToken, uint256 buyAmt) payable returns (address proxy, uint256 wethAmt)",
"function createAndSellAllAmountPayEth(address factory, address otc, address buyToken, uint256 minBuyAmt) payable returns (address proxy, uint256 buyAmt)",
"function createAndBuyAllAmount(address factory, address otc, address buyToken, uint256 buyAmt, address payToken, uint256 maxPayAmt) returns (address proxy, uint256 payAmt)",
"function buyAllAmountPayEth(address otc, address buyToken, uint256 buyAmt, address wethToken) payable returns (uint256 wethAmt)",
"function createAndSellAllAmount(address factory, address otc, address payToken, uint256 payAmt, address buyToken, uint256 minBuyAmt) returns (address proxy, uint256 buyAmt)",
"function sellAllAmountPayEth(address otc, address wethToken, address buyToken, uint256 minBuyAmt) payable returns (uint256 buyAmt)",
"function buyAllAmountBuyEth(address otc, address wethToken, uint256 wethAmt, address payToken, uint256 maxPayAmt) returns (uint256 payAmt)"
],
//Proxy for delegatecalls to another OasisDirect
OasisProxy: [
"function execute(address _target, bytes _data) payable returns (bytes32 response)",
"function execute(bytes _code, bytes _data) payable returns (address target, bytes32 response)"
],
AirSwap: [
"function fill(address makerAddress, uint256 makerAmount, address makerToken, address takerAddress, uint256 takerAmount, address takerToken, uint256 expiration, uint256 nonce, uint8 v, bytes32 r, bytes32 s) payable",
"function cancel(address makerAddress, uint256 makerAmount, address makerToken, address takerAddress, uint256 takerAmount, address takerToken, uint256 expiration, uint256 nonce, uint8 v, bytes32 r, bytes32 s)",
"event Filled(address indexed makerAddress, uint256 makerAmount, address indexed makerToken, address takerAddress, uint256 takerAmount, address indexed takerToken, uint256 expiration, uint256 nonce)",
"event Canceled(address indexed makerAddress, uint256 makerAmount, address indexed makerToken, address takerAddress, uint256 takerAmount, address indexed takerToken, uint256 expiration, uint256 nonce)",
"event Failed(uint256 code, address indexed makerAddress, uint256 makerAmount, address indexed makerToken, address takerAddress, uint256 takerAmount, address indexed takerToken, uint256 expiration, uint256 nonce)"
],
Kyber: [
"function withdrawToken(address token, uint256 amount, address sendTo)",
"function trade(address src, uint256 srcAmount, address dest, address destAddress, uint256 maxDestAmount, uint256 minConversionRate, address walletId) payable returns (uint256)",
"function withdrawEther(uint256 amount, address sendTo)",
"event EtherReceival(address indexed sender, uint256 amount)",
"event ExecuteTrade(address indexed sender, address src, address dest, uint256 actualSrcAmount, uint256 actualDestAmount)",
"event TokenWithdraw(address token, uint256 amount, address sendTo)",
"event EtherWithdraw(uint256 amount, address sendTo)"
],
Kyber2: [
"function tradeWithHint(address src, uint256 srcAmount, address dest, address destAddress, uint256 maxDestAmount, uint256 minConversionRate, address walletId, bytes hint) payable returns (uint256)",
"function swapTokenToEther(address token, uint256 srcAmount, uint256 minConversionRate) returns (uint256)",
"function swapTokenToToken(address src, uint256 srcAmount, address dest, uint256 minConversionRate) returns (uint256)",
"function swapEtherToToken(address token, uint256 minConversionRate) payable returns (uint256)"
],
Kyber3: [
"function tradeWithHint(address trader, address src, uint256 srcAmount, address dest, address destAddress, uint256 maxDestAmount, uint256 minConversionRate, address walletId, bytes hint) payable returns (uint256)",
"event KyberTrade(address indexed trader, address src, address dest, uint256 srcAmount, uint256 dstAmount, address destAddress, uint256 ethWeiValue, address reserve1, address reserve2, bytes hint)"
],
Kyber4: [
"function tradeWithHintAndFee(address trader, address src, uint256 srcAmount, address dest, address destAddress, uint256 maxDestAmount, uint256 minConversionRate, address platformWallet, uint256 platformFeeBps, bytes hint)",
"function tradeWithHintAndFee(address src, uint256 srcAmount, address dest, address destAddress, uint256 maxDestAmount, uint256 minConversionRate, address platformWallet, uint256 platformFeeBps, bytes hint)",
//"event KyberTrade(address indexed src, address indexed dest, uint256 ethWeiValue, uint256 networkFeeWei, uint256 customPlatformFeeWei, bytes32[] t2eIds, bytes32[] e2tIds, uint256[] t2eSrcAmounts, uint256[] e2tSrcAmounts, uint256[] t2eRates, uint256[] e2tRates)",
],
BancorQuick: [
"function convertForPrioritized(address[] _path, uint256 _amount, uint256 _minReturn, address _for, uint256 _block, uint256 _nonce, uint8 _v, bytes32 _r, bytes32 _s) payable returns (uint256)",
"function claimAndConvertFor(address[] _path, uint256 _amount, uint256 _minReturn, address _for) returns (uint256)",
"function claimAndConvert(address[] _path, uint256 _amount, uint256 _minReturn) returns (uint256)",
"function convertFor(address[] _path, uint256 _amount, uint256 _minReturn, address _for) payable returns (uint256)",
"function convert(address[] _path, uint256 _amount, uint256 _minReturn) payable returns (uint256)"
],
// bancor network is new generation bancor quick?
BancorQuick2: [
"function convertForPrioritized2(address[] _path, uint256 _amount, uint256 _minReturn, address _for, uint256 _block, uint8 _v, bytes32 _r, bytes32 _s) payable returns (uint256)",
"function convertForMultiple(address[] _paths, uint256[] _pathStartIndex, uint256[] _amounts, uint256[] _minReturns, address _for) payable returns (uint256[])"
],
//regular bancor covertors
Bancor: [
"function withdrawFromToken(address _token, address _to, uint256 _amount)",
"function change(address _fromToken, address _toToken, uint256 _amount, uint256 _minReturn) returns (uint256)",
"function sell(address _connectorToken, uint256 _sellAmount, uint256 _minReturn) returns (uint256)",
"function convert(address _fromToken, address _toToken, uint256 _amount, uint256 _minReturn) returns (uint256)",
"function buy(address _connectorToken, uint256 _depositAmount, uint256 _minReturn) returns (uint256)",
"function quickConvert(address[] _path, uint256 _amount, uint256 _minReturn) payable returns (uint256)",
"event Conversion(address indexed _fromToken, address indexed _toToken, address indexed _trader, uint256 _amount, uint256 _return, uint256 _currentPriceN, uint256 _currentPriceD)"
],
// bancor version with different 'conversion' event including conversionFee
Bancor2: [
"function quickConvertPrioritized(address[] _path, uint256 _amount, uint256 _minReturn, uint256 _block, uint256 _nonce, uint8 _v, bytes32 _r, bytes32 _s) payable returns (uint256)",
"function convertInternal(address _fromToken, address _toToken, uint256 _amount, uint256 _minReturn) returns (uint256)",
"event Conversion(address indexed _fromToken, address indexed _toToken, address indexed _trader, uint256 _amount, uint256 _return, int256 _conversionFee, uint256 _currentPriceN, uint256 _currentPriceD)"
],
// bancor v3 changed event
Bancor3: [
"function quickConvertPrioritized(address[] _path, uint256 _amount, uint256 _minReturn, uint256 _block, uint8 _v, bytes32 _r, bytes32 _s) payable returns (uint256)",
"event Conversion(address indexed _fromToken, address indexed _toToken, address indexed _trader, uint256 _amount, uint256 _return, int256 _conversionFee)",
"event PriceDataUpdate(address indexed _connectorToken, uint256 _tokenSupply, uint256 _connectorBalance, uint32 _connectorWeight)"
],
// bancor with v3 functions & crosschain xConvert
Bancor4: [
"function xConvertPrioritized(address[] _path, uint256 _amount, uint256 _minReturn, bytes32 _toBlockchain, bytes32 _to, uint256 _conversionId, uint256 _block, uint8 _v, bytes32 _r, bytes32 _s) payable returns (uint256)",
"function convertForPrioritized3(address[] _path, uint256 _amount, uint256 _minReturn, address _for, uint256 _customVal, uint256 _block, uint8 _v, bytes32 _r, bytes32 _s) payable returns (uint256)",
"function xConvert(address[] _path, uint256 _amount, uint256 _minReturn, bytes32 _toBlockchain, bytes32 _to, uint256 _conversionId) payable returns (uint256)"
],
BancorX: [
"function xTransfer(bytes32 _toBlockchain, bytes32 _to, uint256 _amount, uint256 _id)",
"function xTransfer(bytes32 _toBlockchain, bytes32 _to, uint256 _amount)",
"function reportTx(bytes32 _fromBlockchain, uint256 _txId, address _to, uint256 _amount, uint256 _xTransferId)",
"event TokensLock(address indexed _from, uint256 _amount)",
"event TokensRelease(address indexed _to, uint256 _amount)",
"event XTransfer(address indexed _from, bytes32 _toBlockchain, bytes32 indexed _to, uint256 _amount, uint256 _id)",
"event TxReport(address indexed _reporter, bytes32 _fromBlockchain, uint256 _txId, address _to, uint256 _amount, uint256 _xTransferId)",
"event XTransferComplete(address _to, uint256 _id)"
],
//convertForPrioritized4, convert2 , xconvert3
Bancor5: [
"function claimAndConvertFor2(address[] _path, uint256 _amount, uint256 _minReturn, address _for, address _affiliateAccount, uint256 _affiliateFee) returns (uint256)",
"function convertForPrioritized4(address[] _path, uint256 _amount, uint256 _minReturn, address _for, uint256[] _signature, address _affiliateAccount, uint256 _affiliateFee) payable returns (uint256)",
"function convert2(address[] _path, uint256 _amount, uint256 _minReturn, address _affiliateAccount, uint256 _affiliateFee) payable returns (uint256)",
"function xConvertPrioritized3(address[] _path, uint256 _amount, uint256 _minReturn, bytes32 _toBlockchain, bytes32 _to, uint256 _conversionId, uint256[] _signature, address _affiliateAccount, uint256 _affiliateFee) payable returns (uint256)",
"function convertFor2(address[] _path, uint256 _amount, uint256 _minReturn, address _for, address _affiliateAccount, uint256 _affiliateFee) payable returns (uint256)",
"function xConvert2(address[] _path, uint256 _amount, uint256 _minReturn, bytes32 _toBlockchain, bytes32 _to, uint256 _conversionId, address _affiliateAccount, uint256 _affiliateFee) payable returns (uint256)",
"function xConvertPrioritized2(address[] _path, uint256 _amount, uint256 _minReturn, bytes32 _toBlockchain, bytes32 _to, uint256 _conversionId, uint256[] _signature) payable returns (uint256)",
"function claimAndConvert2(address[] _path, uint256 _amount, uint256 _minReturn, address _affiliateAccount, uint256 _affiliateFee) returns (uint256)",
"event Conversion(address indexed _smartToken, address indexed _fromToken, address indexed _toToken, uint256 _fromAmount, uint256 _toAmount, address _trader)"
],
BancorQuick3: [
"function completeXConversion2(address[] _path, uint256 _minReturn, uint256 _conversionId, uint256[] _signature) returns (uint256)",
"function liquidate(uint256 _amount)",
"function completeXConversion(address[] _path, uint256 _minReturn, uint256 _conversionId, uint256 _block, uint8 _v, bytes32 _r, bytes32 _s) returns (uint256)",
"function convert2(address _fromToken, address _toToken, uint256 _amount, uint256 _minReturn, address _affiliateAccount, uint256 _affiliateFee) returns (uint256)",
"function quickConvertPrioritized2(address[] _path, uint256 _amount, uint256 _minReturn, uint256[] _signature, address _affiliateAccount, uint256 _affiliateFee) payable returns (uint256)",
"function quickConvert2(address[] _path, uint256 _amount, uint256 _minReturn, address _affiliateAccount, uint256 _affiliateFee) payable returns (uint256)",
"function claimTokens(address _from, uint256 _amount)"
],
//legacy 2017 version 'Change' event & quickChange
BancorChanger: [
"function change(address _fromToken, address _toToken, uint256 _amount, uint256 _minReturn) returns (uint256 amount)",
"function quickBuy(uint256 _minReturn) payable returns (uint256 amount)",
"function buy(address _reserveToken, uint256 _depositAmount, uint256 _minReturn) returns (uint256 amount)",
"function quickChange(address[] _path, uint256 _amount, uint256 _minReturn) returns (uint256 amount)",
"function token() view returns (address)",
"event Change(address indexed _fromToken, address indexed _toToken, address indexed _trader, uint256 _amount, uint256 _return, uint256 _currentPriceN, uint256 _currentPriceD)"
],
BancorLegacy: [
"function fund(uint256 _amount)",
"event PriceUpdate(address indexed _fromToken, address indexed _toToken, uint256 _priceN, uint256 _priceD)"
],
Enclaves: [
"function tradeEtherDelta(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, address _user, uint8 _v, bytes32 _r, bytes32 _s, uint256 _amount, bool _withdraw) payable returns (uint256)",
"function withdrawPreSigned(address _token, uint256 _value, address _feeToken, uint256 _feeValue, uint256 _nonce, address _user, uint8 _v, bytes32 _r, bytes32 _s)",
"function depositBoth(address _token, uint256 _amount) payable",
"function withdrawBoth(address _token, uint256 _tokenAmount, uint256 _ethAmount)",
"function trade(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, address _user, uint8 _v, bytes32 _r, bytes32 _s, uint256 _amount, bool _withdraw) payable returns (uint256)",
"function withdrawTokenMulti(address[] _tokens, uint256[] _amounts)",
"event Trade(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, address indexed get, address indexed give, uint8 exchange)",
"event WithdrawPreSigned(address indexed feeToken, uint256 feeValue, address indexed feeReceiver)"
],
Ethen: [
"function trade(uint256[] _nums, address[] _addrs, bytes32[] _rss)",
"function withdrawEther(uint256 _amount)",
"function cancel(uint8 _order, address _token, uint256 _nonce, uint256 _price, uint256 _amount, uint256 _expire, uint256 _v, bytes32 _r, bytes32 _s)",
"event DepositEther(address user, uint256 amount, uint256 total)",
"event WithdrawEther(address user, uint256 amount, uint256 total)",
"event DepositToken(address user, address token, uint256 amount, uint256 total)",
"event WithdrawToken(address user, address token, uint256 amount, uint256 total)",
"event Cancel(uint8 order, address owner, uint256 nonce, address token, uint256 price, uint256 amount)",
"event Order(address orderOwner, uint256 orderNonce, uint256 orderPrice, uint256 tradeTokens, uint256 orderFilled, uint256 orderOwnerFinalTokens, uint256 orderOwnerFinalEther, uint256 fees)",
"event Trade(address trader, uint256 nonce, uint256 trade, address token, uint256 traderFinalTokens, uint256 traderFinalEther)",
"event NotEnoughTokens(address owner, address token, uint256 shouldHaveAmount, uint256 actualAmount)",
"event NotEnoughEther(address owner, uint256 shouldHaveAmount, uint256 actualAmount)"
],
/* Dexy: [
"function tokensReceived(address, address from, address, uint256 amount, bytes, bytes)",
"function withdrawOverflow(address token)",
"function deposit(address token, uint256 amount) payable",
"function transfer(address token, address from, address to, uint256 amount)",
"function withdraw(address token, uint256 amount)",
"event Deposited(address indexed user, address token, uint256 amount)",
"event Withdrawn(address indexed user, address token, uint256 amount)"
],
// Dexy2: [
"function trade(address[3] addresses, uint256[4] values, bytes signature, uint256 maxFillAmount)",
"function cancel(address[3] addresses, uint256[4] values)",
"function order(address[2] addresses, uint256[4] values)",
"function withdraw(address token, uint256 amount)",
"event Cancelled(bytes32 indexed hash)",
"event Traded(bytes32 indexed hash, address makerToken, uint256 makerTokenAmount, address takerToken, uint256 takerTokenAmount, address maker, address taker)",
"event Ordered(address maker, address makerToken, address takerToken, uint256 makerTokenAmount, uint256 takerTokenAmount, uint256 expires, uint256 nonce)"
],*/
Ethex: [
"function takeSellOrder(address token, uint256 tokenAmount, uint256 weiAmount, address seller) payable",
"function makeBuyOrder(address token, uint256 tokenAmount) payable",
"function cancelAllBuyOrders(address token, uint256 tokenAmount, uint256 weiAmount)",
"function makeSellOrder(address token, uint256 tokenAmount, uint256 weiAmount)",
"function takeBuyOrder(address token, uint256 tokenAmount, uint256 weiAmount, uint256 totalTokens, address buyer)",
"function cancelAllSellOrders(address token, uint256 tokenAmount, uint256 weiAmount)",
"event MakeBuyOrder(bytes32 orderHash, address indexed token, uint256 tokenAmount, uint256 weiAmount, address indexed buyer)",
"event MakeSellOrder(bytes32 orderHash, address indexed token, uint256 tokenAmount, uint256 weiAmount, address indexed seller)",
"event CancelBuyOrder(bytes32 orderHash, address indexed token, uint256 tokenAmount, uint256 weiAmount, address indexed buyer)",
"event CancelSellOrder(bytes32 orderHash, address indexed token, uint256 tokenAmount, uint256 weiAmount, address indexed seller)",
"event TakeBuyOrder(bytes32 orderHash, address indexed token, uint256 tokenAmount, uint256 weiAmount, uint256 totalTransactionTokens, address indexed buyer, address indexed seller)",
"event TakeSellOrder(bytes32 orderHash, address indexed token, uint256 tokenAmount, uint256 weiAmount, uint256 totalTransactionWei, address indexed buyer, address indexed seller)"
],
Etherc: [
"event Cancel(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, uint256 expires, uint256 nonce, address maker, uint8 v, bytes32 r, bytes32 s, bytes32 orderHash, uint256 amountFilled)",
"event Trade(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, address maker, address taker, bytes32 orderHash)"
],
EasyTrade: [
"function createSellOrder(address token, uint256 tokensTotal, uint256 ethersTotal, uint8[] exchanges, address[5][] orderAddresses, uint256[6][] orderValues, uint256[] exchangeFees, uint8[] v, bytes32[] r, bytes32[] s)",
"function createBuyOrder(address token, uint256 tokensTotal, uint8[] exchanges, address[5][] orderAddresses, uint256[6][] orderValues, uint256[] exchangeFees, uint8[] v, bytes32[] r, bytes32[] s) payable",
"event FillSellOrder(address account, address token, uint256 tokens, uint256 ethers, uint256 tokensSold, uint256 ethersObtained, uint256 tokensRefunded)",
"event FillBuyOrder(address account, address token, uint256 tokens, uint256 ethers, uint256 tokensObtained, uint256 ethersSpent, uint256 ethersRefunded)"
],
EasyTrade2: [
"function buy(address tradeable, uint256 volume, bytes ordersData, address destinationAddr, address affiliate) payable",
"function sell(address tradeable, uint256 volume, uint256 volumeEth, bytes ordersData, address destinationAddr, address affiliate)",
"event Sell(address account, address destinationAddr, address traedeable, uint256 volume, uint256 volumeEth, uint256 volumeEffective, uint256 volumeEthEffective)",
"event Buy(address account, address destinationAddr, address traedeable, uint256 volume, uint256 volumeEth, uint256 volumeEffective, uint256 volumeEthEffective)"
],
InstantTrade: [
"function instantTrade(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, address _user, uint8 _v, bytes32 _r, bytes32 _s, uint256 _amount, address _store) payable"
],
Switcheo: [
"function announceWithdraw(address _token, uint256 _amount)",
"function depositERC20(address _user, address _token, uint256 _amount)",
"function slowWithdraw(address _withdrawer, address _token, uint256 _amount)",
"function announceCancel(bytes32 _offerHash)",
"function withdraw(address _withdrawer, address _token, uint256 _amount, address _feeAsset, uint256 _feeAmount, uint64 _nonce, uint8 _v, bytes32 _r, bytes32 _s)",
"function spendFrom(address _from, address _to, uint256 _amount, address _token, uint8 _decreaseReason, uint8 _increaseReason)",
"function cancel(bytes32 _offerHash, uint256 _expectedAvailableAmount, address _feeAsset, uint256 _feeAmount, uint8 _v, bytes32 _r, bytes32 _s)",
"function fillOffer(address _filler, bytes32 _offerHash, uint256 _amountToTake, address _feeAsset, uint256 _feeAmount, uint64 _nonce, uint8 _v, bytes32 _r, bytes32 _s)",
"function makeOffer(address _maker, address _offerAsset, address _wantAsset, uint256 _offerAmount, uint256 _wantAmount, address _feeAsset, uint256 _feeAmount, uint64 _nonce, uint8 _v, bytes32 _r, bytes32 _s)",
"function slowCancel(bytes32 _offerHash)",
"function fastCancel(bytes32 _offerHash, uint256 _expectedAvailableAmount)",
"function emergencyCancel(bytes32 _offerHash, uint256 _expectedAvailableAmount)",
"function fillOffers(address _filler, bytes32[] _offerHashes, uint256[] _amountsToTake, address _feeAsset, uint256 _feeAmount, uint64 _nonce, uint8 _v, bytes32 _r, bytes32 _s)",
"function emergencyWithdraw(address _withdrawer, address _token, uint256 _amount)",
"event Make(address indexed maker, bytes32 indexed offerHash)",
"event Fill(address indexed filler, bytes32 indexed offerHash, uint256 amountFilled, uint256 amountTaken, address indexed maker)",
"event Cancel(address indexed maker, bytes32 indexed offerHash)",
"event BalanceIncrease(address indexed user, address indexed token, uint256 amount, uint8 indexed reason)",
"event BalanceDecrease(address indexed user, address indexed token, uint256 amount, uint8 indexed reason)",
"event WithdrawAnnounce(address indexed user, address indexed token, uint256 amount, uint256 canWithdrawAt)",
"event CancelAnnounce(address indexed user, bytes32 indexed offerHash, uint256 canCancelAt)"
],
Uniswap: [
"function tokenToEthSwapOutput(uint256 eth_bought, uint256 max_tokens, uint256 deadline) returns (uint256)",
"function ethToTokenTransferOutput(uint256 tokens_bought, uint256 deadline, address recipient) payable returns (uint256)",
"function addLiquidity(uint256 min_liquidity, uint256 max_tokens, uint256 deadline) payable returns (uint256)",
"function ethToTokenSwapOutput(uint256 tokens_bought, uint256 deadline) payable returns (uint256)",
"function tokenToEthTransferInput(uint256 tokens_sold, uint256 min_eth, uint256 deadline, address recipient) returns (uint256)",
"function tokenToEthSwapInput(uint256 tokens_sold, uint256 min_eth, uint256 deadline) returns (uint256)",
"function tokenToExchangeTransferOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address recipient, address exchange_addr) returns (uint256)",
"function tokenToTokenTransferOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address recipient, address token_addr) returns (uint256)",
"function ethToTokenTransferInput(uint256 min_tokens, uint256 deadline, address recipient) payable returns (uint256)",
"function tokenToTokenSwapOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address token_addr) returns (uint256)",
"function tokenToExchangeSwapInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address exchange_addr) returns (uint256)",
"function tokenToEthTransferOutput(uint256 eth_bought, uint256 max_tokens, uint256 deadline, address recipient) returns (uint256)",
"function tokenToTokenSwapInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address token_addr) returns (uint256)",
"function tokenToExchangeSwapOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address exchange_addr) returns (uint256)",
"function tokenToExchangeTransferInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address exchange_addr) returns (uint256)",
"function ethToTokenSwapInput(uint256 min_tokens, uint256 deadline) payable returns (uint256)",
"function tokenToTokenTransferInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address token_addr) returns (uint256)",
"function removeLiquidity(uint256 amount, uint256 min_eth, uint256 min_tokens, uint256 deadline) returns (uint256, uint256)",
"event TokenPurchase(address indexed buyer, uint256 indexed eth_sold, uint256 indexed tokens_bought)",
"event EthPurchase(address indexed buyer, uint256 indexed tokens_sold, uint256 indexed eth_bought)",
"event AddLiquidity(address indexed provider, uint256 indexed eth_amount, uint256 indexed token_amount)",
"event RemoveLiquidity(address indexed provider, uint256 indexed eth_amount, uint256 indexed token_amount)"
],
dexBlue2: [
"function executeReserveReserveTradeWithData(address makerReserve, address takerReserve, tuple(address makerToken, address takerToken, uint256 makerAmount, uint256 takerAmount, uint256 makerFee, uint256 takerFee, uint256 gasLimit) trade, bytes32[] makerData, bytes32[] takerData) returns (bool)",
"function settleReserveReserveTradeWithData(tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 packedInput3) tradeInput, bytes32[] makerData, bytes32[] takerData)",
"function settleReserveReserveTrade(tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 packedInput3) tradeInput)",
"function directWithdrawal(address token, uint256 amount) returns (bool)",
"function multiSigTransfer(address token, uint256 amount, uint64 nonce, uint8 v, bytes32 r, bytes32 s, address receiving_address)",
"function batchSettleTrades(tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 r, bytes32 s)[] orderInput, tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 packedInput3)[] tradeInput)",
"function multiSigSend(address token, uint256 amount, uint64 nonce, uint8 v, bytes32 r, bytes32 s, address receiving_address)",
"function executeReserveReserveTrade(address makerReserve, address takerReserve, tuple(address makerToken, address takerToken, uint256 makerAmount, uint256 takerAmount, uint256 makerFee, uint256 takerFee, uint256 gasLimit) trade) returns (bool)",
"function swap(address sell_token, uint256 sell_amount, address buy_token, uint256 min_output, uint256 deadline) payable returns (uint256)",
"function executeReserveTrade(address sellToken, uint256 sellAmount, address buyToken, uint256 buyAmount, address reserve) returns (bool)",
"function swapWithReserve(address sell_token, uint256 sell_amount, address buy_token, uint256 min_output, address reserve, uint256 deadline) payable returns (uint256)",
"function multiSigOrderBatchCancel(bytes32[] orderHashes, uint8 v, bytes32 r, bytes32 s)",
"function settleReserveTradeWithData(tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 r, bytes32 s) orderInput, tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 packedInput3) tradeInput, bytes32[] data)",
"function depositWrappedEther(uint256 amount)",
"function userSigWithdrawal(bytes32 packedInput1, bytes32 packedInput2, bytes32 r, bytes32 s)",
"function multiSigWithdrawal(address token, uint256 amount, uint64 nonce, uint8 v, bytes32 r, bytes32 s)",
"function initiateSingleSigWithdrawal(address token, uint256 amount)",
"function settleRingTrade(tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 r, bytes32 s)[] orderInput, tuple(bytes32 packedInput1, bytes32 packedInput2)[] tradeInput)",
"function settleTrade(tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 r, bytes32 s) makerOrderInput, tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 r, bytes32 s) takerOrderInput, tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 packedInput3) tradeInput)",
"function settleRingTradeWithData(tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 r, bytes32 s)[] orderInput, tuple(bytes32 packedInput1, bytes32 packedInput2)[] tradeInput, bytes32[][] data)",
"function executeReserveTradeWithData(address sellToken, uint256 sellAmount, address buyToken, uint256 buyAmount, address reserve, bytes32[] data) returns (bool)",
"function settleReserveTrade(tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 r, bytes32 s) orderInput, tuple(bytes32 packedInput1, bytes32 packedInput2, bytes32 packedInput3) tradeInput)",
"event LogTrade(address makerAsset, uint256 makerAmount, address takerAsset, uint256 takerAmount)",
"event LogSwap(address soldAsset, uint256 soldAmount, address boughtAsset, uint256 boughtAmount)",
"event LogTradeFailed()",
"event LogDeposit(address account, address token, uint256 amount)",
"event LogWithdrawal(address account, address token, uint256 amount)",
"event LogDirectWithdrawal(address account, address token, uint256 amount)",
"event LogSingleSigWithdrawal(address account, address token, uint256 amount)",
"event LogOrderCanceled(bytes32 hash)"
],
Loopring: [
"function withdraw(address token, uint96 amount)",
"function deposit(address token, uint96 amount)"
// function distributeWithdrawals(uint256 blockIdx, uint256 maxNumWithdrawals)
],
};
},{}],2:[function(require,module,exports){
module.exports = {
// List of addresses with a name or label attached
// feeRecipients for 0x relayers, https://github.com/0xProject/0x-relayer-registry/blob/master/relayers.json
// https://github.com/0xTracker/0x-tracker-worker/blob/master/src/relayers/relayer-registry.js
zrxRelayers: {
'0xa258b39954cef5cb142fd567a46cddb31a670124': "RadarRelay",
'0xeb71bad396acaa128aeadbc7dbd59ca32263de01': "IDT",
'0xe269e891a2ec8585a378882ffa531141205e92e9': 'DDEX',
'0x6f7ae872e995f98fcd2a7d3ba17b7ddfb884305f': 'Tokenlon',
'0xb9e29984fe50602e7a619662ebed4f90d93824c7': 'Tokenlon',
'0x55890b06f0877a01bb5349d93b202961f8e27a9b': 'Shark Relay',
'0x5e150a33ffa97a8d22f59c77ae5487b089ef62e9': 'TokenJar',
'0x5dd835a893734b8d556eccf87800b76dda5aedc5': 'BambooRelay',
'0xc898fbee1cc94c0ff077faa5449915a506eff384': 'BambooRelay',
'0xc22d5b2951db72b44cfb8089bb8cd374a3c354ea': 'OpenRelay',
'0x89db81c2dc4adaf10a93705b69289d479d576635': 'OpenRelay',
'0x4524baa98f9a3b9dec57caae7633936ef96bd708': 'LedgerDex',
'0x7219612be7036d1bfa933e16ca1246008f38c5fe': 'The Ocean',
'0x0e8ba001a821f3ce0734763d008c9d7c957f5852': 'Amadeus',
'0xab8199eba802e7e6634d4389bf23999b7ae6b253': '3xchange',
'0x66a836664adc7c525c0cc4527dee8619d4faf669': 'BoxSwap',
'0x013ec57d1237e7727f818b1a35e3506f754304e4': 'GUDecks',
'0xd9c3ed92520a2f3076a9bd5ea9d4a2c2a0cf6457': 'GUDecks',
'0xb0d7398d779ee9ffc727d2d5b045a5b441da8233': 'Emoon',
'0xdcae967431fb51aa7453ec6c06fa544c25e0f1ff': 'Emoon',
'0x5620413261751d93978c6e752f6c351d10e75238': 'Lake Project',
'0xa9274fda6d91a063f6aa0cfb172d6eb3b61ecf89': 'MetaMorph',
'0x4a821aa1affbf7ee89a245bf750d1d7374e77409': 'Tokenmom',
'0x853da5cecc1ea601ab978c2001565a0377a7dca6': 'Fordex',
'0x2a5f5f36c20d7e56358db78bbfac0bace25c1198': 'EtherBlockchain',
'0x8752d14a086cee9b8c108611ba9aefe04042c9f9': 'MARKET protocol',
'0x0d056bb17ad4df5593b93a1efc29cb35ba4aa38d': 'TokenTrove',
'0x8124071f810d533ff63de61d0c98db99eeb99d64': 'STAR BIT',
'0x0681e844593a051e2882ec897ecd5444efe19ff2': 'STAR BIT',
'0xc370d2a5920344aa6b7d8d11250e3e861434cbdd': 'STAR BIT',
"0x58a5959a6c528c5d5e03f7b9e5102350e24005f1": 'Erc Dex',
"0xa71deef328b2c40d0e6525cd248ae749e9208dbb": 'Erc Dex',
"0x5bf2c11b0aa0c752c6de6fed48dd56fed2a4286d": 'Erc Dex',
"0x1dd43bbe2264234bccfbb88aadbde331d87719ee": 'Erc Dex',
"0x3b4ce2ea700ff327c3b4fe624f328c4106fd2885": 'Erc Dex',
"0x3fa5f23d42847e49d242496ffe2a3c8fda66706c": 'Erc Dex',
"0x173a2467cece1f752eb8416e337d0f0b58cad795": 'Erc Dex',
"0x7df569a165bee41ca74374c76bd888ea02dcc4a8": 'Erc Dex',
"0x3d974ce554fec1acd8d034f13b6640b300689a37": 'Erc Dex',
"0xbd069e7ad0b7366ed1f0559dd8fe3e8efc0c4a72": 'Erc Dex',
"0x4411c446756f8ed22343e8fbe8d24607027daffd": 'Erc Dex',
"0xee2d43b8e4b57477acc2f4def265fe2887865ac0": 'Erc Dex',
"0x8bf0785306eb675e38b742f59a7fcf05fccdf2b7": 'Erc Dex',
"0x1956f5afa5d21000145e6cd2fa8ce3f52fa40875": 'Erc Dex',
"0xa5b8d094f8364a9771c7a2287ee13efa08f847a4": 'Erc Dex',
"0xc95bf3d3b4d6619119f3a8e29ec1d73ee801b9df": 'Erc Dex',
"0x28f5cf7044f509af67f473c18b1f5f4f97fb4ce9": 'Erc Dex',
"0xd592cfa56f4c443fb27008329d67ed7d4edb59c0": 'Erc Dex',
'0xaf8ae6955d07776ab690e565ba6fbc79b8de3a5d': 'DiversiFi',
"0x1000000000000000000000000000000000000011": '0x API',
"0x382310cbb159b64c2e7c5675d110202701a436dd": 'Odee',
"0x5265bde27f57e738be6c1f6ab3544e82cdc92a8f": 'VeriDex',
"0xa5004c8b2d64ad08a80d33ad000820d63aa2ccc9": 'Udex',
"0x68a17b587caf4f9329f0e372e3a78d23a46de6b5": '1inch',
"0x4d37f28d2db99e8d35a6c725a5f1749a085850a3": '1inch',
"0x9883a8b0f58b662d60847db992e66591e2ede106": '1inch',
"0x1af29de80f743be444aa195e2cae38ee9bc74c4c": "OC2 Dex",
"0x879047421625b87b5895ef1ac0d9dbd241805aa3": "OC2 Dex",
"0x584860fe460a16cd11e6fdebb2e77146d1835be8": "MerchCoins",
"0x3151e8ab9bfe754ada6682b9d75906e06a18a741": "Instex",
"0x1b38d2613698488cbac0e7d21abb2fdbbe1d6704": "Bit2MeDex",
"0x10aa8c82e3656170baae80d189b8b7dcea6865c9": "SwitchDex",
"0x86003b044f70dac0abc80ac8957305b6370893ed": "Matcha.xyz",
//TODO Metamask & defisaver affiliate via 0x API
// non zrx
'0x61b9898c9b60a159fc91ae8026563cd226b7a0c1': 'Ethfinex', //0x clone contract
'0x49497a4d914ae91d34ce80030fe620687bf333fd': 'DDEX', // DDEX hydro
},
// admin taker addresses for 0x relayers
zrxTakers: {
'0x6af9ec649821c2213dc488c36e3e3e999c3d7934': 'Tokenlon',
'0x41f8d14c9475444f30a80431c68cf24dc9a8369a': 'Toeknlon',
'0x4a821aa1affbf7ee89a245bf750d1d7374e77409': 'Tokenmom',
'0x0681e844593a051e2882ec897ecd5444efe19ff2': 'STAR BIT',
'0xdf1bc6498338135de5ffdbcb98817d81e2665912': 'Veil',
'0x4969358e80cdc3d74477d7447bffa3b2e2acbe92': 'Paradex',
'0xd2045edc40199019e221d71c0913343f7908d0d5': 'Paradex',
'0x853da5cecc1ea601ab978c2001565a0377a7dca6': 'ForDex',
'0xd3d0474124c1013ed6bfcfd9a49cfedb8c78fc44': 'Erc Dex', //indirect execution
'0xe269e891a2ec8585a378882ffa531141205e92e9': 'DDEX', //v1
'0xb04239b53806ab31141e6cd47c63fb3480cac908': 'Gods Unchained',
},
// other addresses associated with DEX admins
admins: {
'0xceceaa8edc0830c7cec497e33bb3a3c28dd55a32': 'IDEX Admin',
'0xa7a7899d944fe658c4b0a1803bab2f490bd3849e': 'IDEX Admin',
'0x5ca1e490ec572e23a63bf5a6946f09ad677b439b': 'IDEX Admin',
'0xe269e891a2ec8585a378882ffa531141205e92e9': 'DDEX Admin', //0x v1
'0x49497a4d914ae91d34ce80030fe620687bf333fd': 'DDEX Admin', // Hydro ex
'0x61b9898c9b60a159fc91ae8026563cd226b7a0c1': 'Ethfinex Admin',
'0xaf8ae6955d07776ab690e565ba6fbc79b8de3a5d': 'DiversiFi Admin', //ethfinex
'0x1f8cdd31345faa00bbdf946fa257b7feb706b535': 'Switcheo Admin',
'0x457804851eaf090dad4871f9609010c6868d99d4': 'BithumbDex Admin',
'0xdb0a49ebed788cd412744a4f9f1ce8d16d019b2e': 'Totle Admin',
'0x583d03451406d179182efc742a1d811a9e34c36b': 'Totle Admin',
'0x571037cc2748c340e3c6d9c7af589c6d65806618': 'Switcheo Admin',
'0x8ecf87fc9d7336cc0052d40abf806fb1af2ea81c': 'DINNGO Admin',
'0x004dc6cb71104f64098fe70825516d2075cfa030': 'dex.blue Admin',
'0x3d5a2fbed1b64ec88abacbd0c287461e8e8f7331': 'dex.blue Admin', //old one
},
// known (centralized) exchange wallets, (personal experience + https://etherscan.io/accounts/1?&l=Exchange )
exchangeWallets: {
'0xf73c3c65bde10bf26c2e1763104e609a41702efe': 'Bibox',
'0xd4dcd2459bb78d7a645aa7e196857d421b10d93f': 'BigOne',
'0xa30d8157911ef23c46c0eb71889efe6a648a41f7': 'BigOne',
'0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be': 'Binance',
'0xd551234ae421e3bcba99a0da6d736074f22192ff': 'Binance',
'0x564286362092d8e7936f0549571a803b203aaced': 'Binance',
'0x0681d8db095565fe8a346fa0277bffde9c0edbbf': 'Binance',
'0x00799bbc833d5b168f0410312d2a8fd9e0e3079c': 'Binance',
'0xfe9e8709d3215310075d67e3ed32a380ccf451c8': 'Binance',
'0x4e9ce36e442e55ecd9025b9a6e0d88485d628a67': 'Binance',
'0xbe0eb53f46cd790cd13851d5eff43d12404d33e8': 'Binance',
'0xf977814e90da44bfa03b6295a0616a897441acec': 'Binance',
'0xab83d182f3485cf1d6ccdd34c7cfef95b4c08da4': 'Binance JEX',
'0x1151314c646ce4e0efd76d1af4760ae66a9fe30f': 'Bitfinex',
'0x7727e5113d1d161373623e5f49fd568b4f543a9e': 'Bitfinex',
'0x4fdd5eb2fb260149a3903859043e962ab89d8ed4': 'Bitfinex',
'0x876eabf441b2ee5b5b0554fd502a8e0600950cfa': 'Bitfinex',
'0x7180eb39a6264938fdb3effd7341c4727c382153': 'Bitfinex',
'0xcafb10ee663f465f9d10588ac44ed20ed608c11e': 'Bitfinex',
'0xf7793d27a1b76cdf14db7c83e82c772cf7c92910': 'Bilaxy',
'0x4b729cf402cfcffd057e254924b32241aedc1795': 'Bit-z',
'0x8fa8af91c675452200e49b4683a33ca2e1a34e42': 'Bithumb',
'0x3052cd6bf951449a984fe4b5a38b46aef9455c8e': 'Bithumb',
'0x2140efd7ba31169c69dfff6cdc66c542f0211825': 'Bithumb',
'0x3fbe1f8fc5ddb27d428aa60f661eaaab0d2000ce': 'Bithumb',
'0x1522900b6dafac587d499a862861c0869be6e428': 'Bitstamp',
'0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98': 'Bittrex',
'0xe94b04a0fed112f3664e45adb2b8915693dd5ff3': 'Bittrex',
'0x66f820a414680b5bcda5eeca5dea238543f42054': 'Bittrex',
'0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': 'Centre USDC',
'0x96fc4553a00c117c5b0bed950dd625d1c16dc894': 'Changelly',
'0x8958618332df62af93053cb9c535e26462c959b0': 'Cobinhood',
'0xb726da4fbdc3e4dbda97bb20998cf899b0e727e0': 'Cobinhood',
'0x9539e0b14021a43cde41d9d45dc34969be9c7cb0': 'CoinBene',
'0xb6ba1931e4e74fd080587688f6db10e830f810d5': 'Coindelta',
'0xb9ee1e551f538a464e8f8c41e9904498505b49b0': 'Coinex',
'0x4b01721f0244e7c5b5f63c20942850e447f5a5ee': 'CoinExchange',
'0x1d1bd550197c7c0787b9ad0aea9c1cca66ee0e90': 'Coinhako',
'0x0d6b5a54f940bf3d52e438cab785981aaefdf40c': 'COSS',
'0xd1560b3984b7481cd9a8f40435a53c860187174d': 'COSS',
'0x521db06bf657ed1d6c98553a70319a8ddbac75a3': 'CREX24',
'0x5baeac0a0417a05733884852aa068b706967e790': 'Cryptopia',
'0xe17ee7b3c676701c66b395a35f0df4c2276a344e': 'DigiFinex',
'0x8d76166c22658a144c0211d87abf152e6a2d9d95': 'EterBase',
'0xd7b9a9b2f665849c4071ad5af77d8c76aa30fb32': 'Exmo',
'0x1fd6267f0d86f62d88172b998390afee2a1f54b6': 'Exmo',
'0x915d7915f2b469bb654a7d903a5d4417cb8ea7df': 'FCOin',
'0x0d0707963952f2fba59dd06f2b425ace40b492fe': 'Gate.io',
'0x7793cd85c11a924478d358d49b05b37e91b5810f': 'Gate.io',
'0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c': 'Gate.io',
'0xd24400ae8bfebb18ca49be86258a3c749cf46853': 'Gemini',
'0x6fc82a5fe25a5cdb58bc74600a40a69c065263f8': 'Gemini',
'0x59a5208b32e627891c389ebafc644145224006e8': 'HitBTC',
'0x9c67e141c0472115aa1b98bd0088418be68fd249': 'HitBTC',
'0xa12431d0b9db640034b0cdfceef9cce161e62be4': 'HitBTC',
'0x274f3c32c90517975e29dfc209a23f315c1e5fc7': 'Hotbit',
'0xab5c66752a9e8167967685f1450532fb96d5d24f': 'Huobi',
'0xe93381fb4c4f14bda253907b18fad305d799241a': 'Huobi',
'0xfa4b5be3f2f84f56703c42eb22142744e95a2c58': 'Huobi',
'0x46705dfff24256421a05d056c29e81bdc09723b8': 'Huobi',
'0x1b93129f05cc2e840135aab154223c75097b69bf': 'Huobi',
'0xeb6d43fe241fb2320b5a3c9be9cdfd4dd8226451': 'Huobi',
'0x956e0dbecc0e873d34a5e39b25f364b2ca036730': 'Huobi',
'0x6748f50f686bfbca6fe8ad62b22228b87f31ff2b': 'Huobi',
'0xfdb16996831753d5331ff813c29a93c76834a0ad': 'Huobi',
'0xeee28d484628d41a82d01e21d12e2e78d69920da': 'Huobi',
'0x5c985e89dde482efe97ea9f1950ad149eb73829b': 'Huobi',
'0xdc76cd25977e0a5ae17155770273ad58648900d3': 'Huobi',
'0xadb2b42f6bd96f5c65920b9ac88619dce4166f94': 'Huobi',
'0xa8660c8ffd6d578f657b72c0c811284aef0b735e': 'Huobi',
'0x1062a747393198f70f71ec65a582423dba7e5ab3': 'Huobi',
'0xeec606a66edb6f497662ea31b5eb1610da87ab5f': 'Huobi',
'0x3c11c3025ce387d76c2eddf1493ec55a8cc2a0f7': 'Idax',
'0x51836a753e344257b361519e948ffcaf5fb8d521': 'Indodax',
'0x2910543af39aba0cd09dbb2d50200b3e800a63d2': 'Kraken',
'0x0a869d79a7052c7f1b55a8ebabbea3420f0d1e13': 'Kraken',
'0xe853c56864a2ebe4576a807d26fdc4a0ada51919': 'Kraken',
'0x267be1c1d684f78cb4f6a176c4911b741e4ffdc0': 'Kraken',
'0xfa52274dd61e1643d2205169732f29114bc240b3': 'Kraken',
'0x2b5634c42055806a59e9107ed44d43c426e58258': 'KuCoin',
'0x689c56aef474df92d44a1b70850f808488f9769c': 'KuCoin',
'0x0861fca546225fbf8806986d211c8398f7457734': 'LAToken',
'0x1b6c1a0e20af81b922cb454c3e52408496ee7201': 'LAToken',
'0x5e575279bf9f4acf0a130c186861454247394c06': 'Liqui',
'0x8271b2e8cbe29396e9563229030c89679b9470db': 'Liqui',
'0xedbb72e6b3cf66a792bff7faac5ea769fe810517': 'Liquid',
'0x243bec9256c9a3469da22103891465b47583d9f1': 'Livecoin',
'0xe03c23519e18d64f144d2800e30e81b0065c48b5': 'Mercatox',
'0x6cc5f688a315f3dc28a7781717a9a798a59fda7b': 'Okex',
'0x236f9f97e0e62388479bf9e5ba4889e46b0273c3': 'Okex',
'0x32be343b94f860124dc4fee278fdcbd38c102d88': 'Poloniex',
'0xb794f5ea0ba39494ce839613fffba74279579268': 'Poloniex',
'0xab11204cfeaccffa63c2d23aef2ea9accdb0a0d5': 'Poloniex',
'0x209c4784ab1e8183cf58ca33cb740efbf3fc18ef': 'Poloniex',
'0x027beefcbad782faf69fad12dee97ed894c68549': 'QuadrigaCX',
'0xb6aac3b56ff818496b747ea57fcbe42a9aae6218': 'QuadrigaCX',
'0x70faa28a6b8d6829a4b1e649d26ec9a2a39ba413': 'ShapeShift',
'0x120a270bbc009644e35f0bb6ab13f95b8199c4ad': 'ShapeShift',
'0x9e6316f44baeeee5d41a1070516cc5fa47baf227': 'ShapeShift',
'0xd3273eba07248020bf98a8b560ec1576a612102f': 'ShapeShift',
'0x3b0bc51ab9de1e5b7b6e34e5b960285805c41736': 'ShapeShift',
'0x563b377a956c80d77a7c613a9343699ad6123911': 'ShapeShift',
'0xeed16856d551569d134530ee3967ec79995e2051': 'ShapeShift',
'0x0a73573cf2903d2d8305b1ecb9e9730186a312ae': 'Tidex',
'0x390de26d772d2e2005c6d1d24afc902bae37a4bb': 'Upbit',
'0x5e032243d507c743b061ef021e2ec7fcc6d3ab89': 'Upbit',
'0xba826fec90cefdf6706858e5fbafcb27a290fbe0': 'Upbit',
'0xf5bec430576ff1b82e44ddb5a1c93f6f9d0884f3': 'Yobit',
'0x60d0cc2ae15859f69bf74dadb8ae3bd58434976b': 'ZB',
// other service addresses that can be useful to be named.
'0x13032deb2d37556cf49301f713e9d7e1d1a8b169': 'Kyber-Uniswap', //kyber uniswap reserve
//'0x0286f920f893513c7ec9fe35ba0a4760229a243e': 'SingularFund',
'0x09678741bd50c3e74301f38fbd0136307099ae5d': 'Local Ethereum',
'0x867ffb5a3871b500f65bdfafe0136f9667deae06': 'Local Ethereum',
// Maker DAI cdp system, mark as exchange for now
'0x448a5065aebb8e423f0896e6c5d525c040f59af3': 'Maker CDP',
'0xbda109309f9fafa6dd6a9cb9f1df4085b27ee8ef': 'Maker CDP',
'0x9b0f70df76165442ca6092939132bbaea77f2d7a': 'Maker CDP',
'0x9b0ccf7c8994e19f39b2b4cf708e0a7df65fa8a3': 'Maker CDP',
'0x059550a1ca3c46a2adb803e9e3ea4585a34f004a': 'dYdX',
'0x36bf21c8e661b21e6166e4385f574941fdc6caff': 'dYdX',
'0x1e0447b19bb6ecfdae1e4ae1694b0c3659614e4e': 'dYdX',
'0xa8b39829ce2246f89b31c013b8cde15506fb9a76': 'dYdX',
'0x3a306a399085f3460bbcb5b77015ab33806a10d5': 'InstaDapp',
'0x5a4ade4f3e934a0885f42884f7077261c3f4f66f': 'Synthetix',
'0x3baa64a4401bbe18865547e916a9be8e6dd89a5a': 'Request',
'0xc692453625023c6e03fec04158ea31ab4de2650a': 'LocalCoin Dex 1',
'0x37c4bcaba4bcf3a605414236b8b108f160eb45a6': 'LocalCoin Dex 2',
'0x8d1c1571367a148e92d6ac83494b1bdf3b497d07': 'LocalCoin Dex 3',
'0x090d4613473dee047c3f2706764f49e0821d256e': 'UNI Airdrop',
// saturn network aidrop
'0x25f17d6cb23cc85bfa6c5e9b8f1d5226f5927cbc': 'Airdrop',
//disperse.app multi token transfer
'0xd152f549545093347a162dce210e7293f1452150': 'Airdrop',
//bulksender
'0x2f6321db2461f68676f42f396330a4dc4a8f49df': 'Airdrop',
'0xd1917932a7db6af687b523d5db5d7f5c2734763f': 'Airdrop',
},
};
},{}],3:[function(require,module,exports){
// instances of exchange contracts that use many instances instead of 1 main contract
module.exports = {
uniswapContracts: {
/* uniswap v1 exchange contracts exchange_addr :token_addr
events retrieved up to block defined in 'config.uniswapContractsBlock'
*/
"0x0045d5d2cac7688f7fc36313e69fb5350958936c":"0xa0872ee815b8dd0f6937386fd77134720d953581",
"0x006b6e89ee1531cfe5b6d32da0d80cc30506a339":"0xa3d58c4e56fedcae3a7c43a725aee9a71f0ece4e",
"0x017d2735eb562d0ad9abc2a91801f4ca96f6bfa9":"0x3db6ba6ab6f95efed1a6e794cad492faaabf294d",
"0x0182865fa09594e4b27496889cbf0bbc818813c6":"0x30765406d51091ed78ff13c107731daf3be5ef16",
"0x041692af7f62906cee089b77fa0e59adb63f750c":"0x9138e38a0316e25459b376e987dd270b626709b8",
"0x042dbbdc27f75d277c3d99efe327db21bc4fde75":"0xd46ba6d942050d489dbd938a2c909a5d5039a161",
"0x059ad96e38f027ccd127567dc09b164762bcd695":"0x6251583e7d997df3604bc73b9779196e94a090ce",
"0x060a0d4539623b6aa28d9fc39b9d6622ad495f41":"0x4e15361fd6b4bb609fa63c81a2be19d873717870",
"0x066198694b1db74d67007d19a7c4f2fc3a061075":"0x1d462414fe14cf489c7a21cac78509f4bf8cd7c0",
"0x069c97dba948175d10af4b2414969e0b88d44669":"0xb62132e35a6c13ee1ee0f84dc5d40bad8d815206",
"0x071002d8f0e5e210e510c68504e435c4a425df8b":"0xf5ed2dc77f0d1ea7f106ecbd1850e406adc41b51",
"0x077d52b047735976dfda76fef74d4d988ac25196":"0x960b236a07cf122663c4303350609a66a7b288c0",
"0x084f002671a5f03d5498b1e5fb15fc0cfee9a470":"0x6fb3e0a217407efff7ca062d46c26e5d60a14d69",
"0x08850bd3ce3a8f6b64d724c3dabdbf6f4f8561fc":"0x4dadf81edf74e9b1a9ad1f364d51a176be48f0ac",
"0x09cabec1ead1c0ba254b09efb3ee13841712be14":"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359",
"0x09f448c70c99124024cd9e8dcae6c2f51c0896db":"0xdf2c7238198ad8b389666574f2d8bc411a4b7428",
"0x0b5ce6f7cbe0627aa8ad2e7e69ed554c0fe79162":"0xa44e5137293e855b1b7bc7e2c6f8cd796ffcb037",
"0x0ce13e66bef17801c9f19fb763be2dd2f391d7c2":"0xb26631c6dda06ad89b93c71400d25692de89c068",
"0x0d2e1a84638bd1b6c0c260c758c39451d4587be1":"0x45804880de22913dafe09f4980848ece6ecbaf78",
"0x0e6a53b13688018a3df8c69f99afb19a3068d04f":"0x107c4504cd79c5d2696ea0030a8dd4e92601b82e",
"0x104f5ac4fdf92fd4668a08ac2e305b5bcf3de215":"0x108c05cac356d93b351375434101cfd3e14f7e44",
"0x112558c05b1e7f28daa98e48c8d7e0ced2f496c8":"0x189c05c3c191015c694032e1b09c190d5db3fb50",
"0x122327fd43b2c66dd9e4b6c91c8f071e217558ef":"0x2c537e5624e4af88a7ae4060c022609376c8d0eb",
"0x164c93580839f40609ce0250dd4c98a25da175de":"0x949bed886c739f1a3273629b3320db0c5024c719",
"0x174dfb6e6e78c95678580b553eee7f282b28c795":"0x86c8bf8532aa2601151c9dbbf4e4c4804e042571",
"0x17e5bf07d696eaf0d14caa4b44ff8a1e17b34de3":"0x8f3470a7388c05ee4e7af3d01d8c722b0ff52374",
"0x17edf686c2449ae8dbb52ac3cef105ca50baee53":"0x26a6f4a6867a71be998b80eaabf67ff87d1e59d6",
"0x17f11fca7a66e8049484ae0a74e0013c5719ec77":"0x2f141ce366a2462f02cea3d12cf93e4dca49e4fd",
"0x198da2b510e297605641f38b64e668675d778c6f":"0xf09209cc5eae846ee2cc4a493e7b962ca7bcfbbb",
"0x19cb61fe00ea29fc77d79eaeaebc94023bf7c67b":"0x64fab8aff039ed05259d1c2af729b70c8002c661",
"0x1aec8f11a7e78dc22477e91ed924fab46e3a88fd":"0x744d70fdbe2ba4cf95131626614a1763df805b9e",
"0x1c116d67e0bf0cf5cb0ad5a74a041d26e89271e7":"0xb9ef770b6a5e12e45983c5d80545258aa38f3b78",
"0x1c6c712b1f4a7c263b1dbd8f97fb447c945d3b9a":"0x41e5560054824ea6b0732e656e3ad64e20e94e45",
"0x1e0fbdaf60e1195a46e2af40a1c7b84460a13444":"0x5d60d8d7ef6d37e16ebabc324de3be57f135e0bc",
"0x20149f1672175c7118bdbf966bfb6a02bf733810":"0x0aef06dcccc531e581f0440059e6ffcc206039ee",
"0x2135d193bf81abbead93906166f2be32b2492c04":"0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b",
"0x21b8a991a203a440c83450564fdefa3db10a5004":"0xd4c435f5b09f855c3317c8524cb1f586e42795fa",
"0x225026d626e45fa662e6a71f679eff0cac3054f1":"0xa017ac5fac5941f95010b12570b812c974469c2c",
"0x2263fd7c62914ab8ec2b5e7b00bc8371a6c0d221":"0xea097a2b1db00627b2fa17460ad260c016016977",
"0x22d8432cc7aa4f8712a655fc4cdfb1baec29fca9":"0x23b608675a2b2fb1890d3abbd85c5775c51691d5",
"0x23228ec35e810569495bd0aa4d56e9fad759bb29":"0xc011a72400e58ecd99ee497cf89e3775d4bd732f",
"0x238ff2e978a7fbb59ee2636caad269a440cbd43f":"0x8377ee6d3545bc6ff1425ee3015dc648b149c7b2",
"0x23c3041a18a528a57e26623259e5caa9fb160665":"0xff4f56c14b8b59f7d766988a0e0c582e46b7f8ab",
"0x24fbcbc276854bd14f0e6e02fb7b740baa52ca26":"0x1c83501478f1320977047008496dacbd60bb15ef",
"0x255e60c9d597dcaa66006a904ed36424f7b26286":"0xb8c77482e45f1f44de1745f52c74426c631bdd52",
"0x262275a4989c96cc6ecde77eb2dda6e13d508c4e":"0x439ce375e3ee4dc203d71958beca3c0f417d65cb",
"0x26cc0eab6cb650b0db4d0d0da8cb5bf69f4ad692":"0x543ff227f64aa17ea132bf9886cab5db55dcaddf",
"0x27f99de8a71f09e9e567050192ce3005f0dcd0b3":"0xae31b85bfe62747d0836b82608b4830361a3d37a",
"0x28991ac221054bee3a38ae9ad0fb3d0c3e45d0cf":"0xe50365f5d679cb98a1dd62d6f6e58e59321bcddf",
"0x28d9353611c5a0d5a026a648c05e5d6523e41cbf":"0x09617f6fd6cf8a71278ec86e23bbab29c04353a7",
"0x28fe20afbf3450f13b803a639e19a8b0c005a5f3":"0x081f67afa0ccf8c7b17540767bbe95df2ba8d97f",
"0x2995b7f65cbc1b0ae8095eae314246508c49182a":"0x95daaab98046846bf4b2853e23cba236fa394a31",
"0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667":"0x6b175474e89094c44da98b954eedeac495271d0f",
"0x2a98460615481a456a1d763460167514dcd21f2c":"0x6671c24dd5b8e4ced34033991418e4bc0cca05af",
"0x2afbcc0bb7a78bd4d9a63c24c13042212b37f665":"0xe7049114562c759d5e9d1d25783773ccd61c0a65",
"0x2afc64cd5e64a32a363ea84b8cad1ce5239a1a3d":"0x006bea43baa3f7a6f765f14f10a1a1b08334ef45",
"0x2bf5a5ba29e60682fc56b2fcf9ce07bef4f6196f":"0x1776e1f26f98b1a5df9cd347953a26dd3cb46671",
"0x2c4bd064b998838076fa341a83d007fc2fa50957":"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
"0x2e642b8d59b45a1d8c5aef716a84ff44ea665914":"0x0d8775f648430679a709e98d2b0cb6250d2887ef",
"0x2f5b009d42917452f4f057b0998dfad4d84c7662":"0x4f7c5bd3f7d62a9c984e265d73a86f5515f3e92b",
"0x30b16fc2b530dbf991e1b15ed953cc4585f0b27c":"0x722f2f3eac7e9597c73a593f7cf3de33fbfc3308",
"0x329c9642efe33a62161dda6b4eb3821965191441":"0x87f56ee356b434187105b40f96b230f5283c0ab4",
"0x32a29c4269dee1a9e87eb75d66da71591a7aee96":"0x4b4a70cae3f7c84e36ce9aa19abc98f85db7f058",
"0x32ff139e48c05d636307f61e476bb395bd319b05":"0x89f10cead72d1ebf3e08a9378932c6f4f5a4c476",
"0x34e89740adf97c3a9d3f63cc2ce4a914382c230b":"0x5d3a536e4d6dbd6114cc1ead35777bab948e3643",
"0x37134075f5b5a0a94ac891c7b5ec5db5cfcf392c":"0xc12d099be31567add4e4e4d0d45691c3f58f5663",
"0x380fdc8bb8722915076a09479d1bbc75e69c8be0":"0x2bf91c18cd4ae9c2f2858ef9fe518180f7b5096d",
"0x38577ccec0ceffd178fd3be66e1c6f531bfa410e":"0xaa7a9ca87d3694b5755f213b5d04094b8d0f0a6f",
"0x394e524b47a3ab3d3327f7ff6629dc378c1494a3":"0x168296bb09e24a88805cb9c33356536b980d3fc5",
"0x3958b4ec427f8fa24eb60f42821760e88d485f7f":"0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f",
"0x3981932f5e17540d863868c5d7c4e617e1334acd":"0x23b75bc7aaf28e2d6628c3f424b3882f8f072a3c",
"0x39b0f27c771ad4236422af5ddc600711eefd93a3":"0xd9e5a009ec07de76616d7361ed713ef434d71325",
"0x39f70a026e6e2aac3453aeb8e563025afb542f9f":"0xc58c0fca06908e66540102356f2e91edcaeb8d81",
"0x3c3351e44d32b36bf2af97de6f40b548b00cf654":"0x84f7c44b6fed1080f647e354d552595be2cc602f",
"0x3f0c63da66457dedc2677bef6bbdd457ba7a3c0b":"0x3867ef780a3afcf1201ef4f2acc6a46e3bd1eb88",
"0x3fb2f18065926ddb33e7571475c509541d15da0e":"0xb4efd85c19999d84251304bda99e90b92300bd93",
"0x3fbc2275de71427aaebbe0e5e6bc13fe8f27fa9e":"0x02c4c78c462e32cca4a90bc499bf411fb7bc6afb",
"0x417cb32bc991fbbdcae230c7c4771cc0d69daa6b":"0xa4e8c3ec456107ea67d3075bf9e3df3a75823db0",
"0x41e48af64f8ebf24194ce323b0760ee09bbb3ac4":"0xd89c37fd7c0fa3b107b7e4a8731dd3aaec488954",
"0x4218710e520e01e3158d9bdb579002e983be176c":"0x9c3e7e016389661473ac64f4c37f5f7f2955e499",
"0x43892992b0b102459e895b88601bb2c76736942c":"0x408e41876cccdc0f92210600ef50372656052a38",
"0x4591482d0c9d0af061a42009ff1b3cd070396f87":"0x07d9e49ea402194bf48a8276dafb16e4ed633317",
"0x45a2fdfed7f7a2c791fb1bdf6075b83fad821dde":"0xf5dce57282a584d2746faf1593d3121fcac444dc",
"0x467fb51d54d7e51ee925f7f1a81ad5f2a0211169":"0x888666ca69e0f178ded6d75b5726cee99a87d698",
"0x4740c758859d4651061cc9cdefdba92bdc3a845d":"0x42456d7084eacf4083f1140d3229471bba2949a8",
"0x4785cedbd89c818d60988dc5979b029f3900b54b":"0x4805f9568bca23bef099c2a317346b42146384a1",
"0x48b04d2a05b6b604d8d5223fd1984f191ded51af":"0x1985365e9f78359a9b6ad760e32412f4a445e862",
"0x48b109a5981573d03e5becec76aa805b7640cd58":"0x98626e2c9231f03504273d55f397409defd4a093",
"0x49c4f9bc14884f6210f28342ced592a633801a8b":"0xdd974d5c2e2928dea5f71b9825b8b646686bd200",
"0x4ac2ccebac7b96f1e66fbb7049c740a8ca8ef78d":"0x08711d3b02c8758f2fb3ab4e80228418a7f8e39c",
"0x4b17685b330307c751b47f33890c8398df4fe407":"0x12b19d3e2ccc14da04fae33e63652ce469b3f2fd",
"0x4d2f5cfba55ae412221182d8475bc85799a5644b":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
"0x4da5c31ab38a496a2513843dab8721e9aeb876bf":"0xe7775a6e9bcf904eb39da2b68c5efb4f9360e08c",
"0x4e0e28d426caf318747b8e05c8b0564a580e39a7":"0x919d0131fa5f77d99fbbbbace50bcb6e62332bf2",
"0x4e395304655f0796bc3bc63709db72173b9ddf98":"0x42d6622dece394b54999fbd73d108123806f6a18",
"0x4f0d6e2179938828cff93da40a8ba1df7519ca8c":"0x0cf0ee63788a0849fe5297f3407f701e122cc023",
"0x4f30e682d0541eac91748bd38a648d759261b8f3":"0x8dd5fbce2f6a956c3022ba3663759011dd51e73e",
"0x4ff7fa493559c40abd6d157a0bfc35df68d8d0ac":"0x09fe5f0236f0ea5d930197dce254d77b04128075",
"0x5048b9d01097498fd72f3f14bc9bc74a5aac8fa7":"0x0000000000085d4780b73119b644ae5ecd22b376",
"0x505c02b4aa1286375fbdf0c390ac0fe9209dcb05":"0x0000852600ceb001e08e00bc008be620d60031f2",
"0x526353fbb4a37eddcebf63f96796a078d908f568":"0x8e3aeb75392ca824d55479cae07f7f0b765743dd",
"0x52b9c94031dee81b2c36be736fa7f6b7ca7ad84e":"0x8a3cf860eca6d8e4579bfb052488e336e0fd9eae",
"0x536956fab86774fb55cfaacf496bc25e4d2b435c":"0x3a9fff453d50d4ac52a6890647b823379ba36b9e",