@optimex-xyz/market-maker-sdk 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,4000 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ ERC20__factory: () => ERC20__factory,
34
+ Payment__factory: () => Payment__factory,
35
+ RouterService: () => RouterService,
36
+ Router__factory: () => Router__factory,
37
+ SignatureType: () => SignatureType,
38
+ SignerService: () => SignerService,
39
+ Signer__factory: () => Signer__factory,
40
+ SolverService: () => SolverService,
41
+ TokenSchema: () => TokenSchema,
42
+ TokenService: () => TokenService,
43
+ camelToSnakeCase: () => camelToSnakeCase,
44
+ config: () => config,
45
+ confirmDepositType: () => confirmDepositType,
46
+ confirmPaymentType: () => confirmPaymentType,
47
+ confirmSettlementType: () => confirmSettlementType,
48
+ convertToCamelCase: () => convertToCamelCase,
49
+ convertToSnakeCase: () => convertToSnakeCase,
50
+ ensureHexPrefix: () => ensureHexPrefix,
51
+ factories: () => factories_exports,
52
+ getBTCEVMConfirmPaymentHash: () => getBTCEVMConfirmPaymentHash,
53
+ getBTCEVMConfirmSettlementHash: () => getBTCEVMConfirmSettlementHash,
54
+ getCommitInfoHash: () => getCommitInfoHash,
55
+ getDepositConfirmationHash: () => getDepositConfirmationHash,
56
+ getEVMBTCConfirmPaymentHash: () => getEVMBTCConfirmPaymentHash,
57
+ getEVMBTCConfirmSettlementHash: () => getEVMBTCConfirmSettlementHash,
58
+ getMakePaymentHash: () => getMakePaymentHash,
59
+ getPresignHash: () => getPresignHash,
60
+ getRFQHash: () => getRFQHash,
61
+ getSelectPMMHash: () => getSelectPMMHash,
62
+ getSignature: () => getSignature,
63
+ getSigner: () => getSigner,
64
+ getTradeIdsHash: () => getTradeIdsHash,
65
+ makePaymentType: () => makePaymentType,
66
+ presignType: () => presignType,
67
+ removeHexPrefix: () => removeHexPrefix,
68
+ rfqAuthenticationTypes: () => rfqAuthenticationTypes,
69
+ routerService: () => routerService,
70
+ selectionType: () => selectionType,
71
+ signerService: () => signerService,
72
+ snakeToCamelCase: () => snakeToCamelCase,
73
+ solverService: () => solverService,
74
+ tokenService: () => tokenService
75
+ });
76
+ module.exports = __toCommonJS(index_exports);
77
+
78
+ // src/config/config.ts
79
+ var environments = {
80
+ dev: {
81
+ solverUrl: "https://pre-bitfi-solver.kyberengineering.io",
82
+ backendUrl: "https://api-stg.bitdex.xyz",
83
+ rpcUrl: "https://rpc-bitfi-p00c4t1rul.t.conduit.xyz",
84
+ routerAddress: "0xc0B01A53B15bacAF6f81aF1F6B001E8c8130256e",
85
+ paymentAddressMap: {
86
+ ethereum_sepolia: "0x7387DcCfE2f1D5F80b4ECDF91eF58541517e90D2"
87
+ }
88
+ },
89
+ production: {
90
+ solverUrl: "https://bitfi-solver.kyberengineering.io",
91
+ backendUrl: "https://api.petafi.xyz",
92
+ rpcUrl: "https://bitfi-ledger-testnet.alt.technology",
93
+ routerAddress: "0x07468dF194817257e73cA71E938C1ef977Be032F",
94
+ paymentAddressMap: {
95
+ ethereum: "0x05d60d78ec4896c041268b68fcef2294b16123c3"
96
+ }
97
+ }
98
+ };
99
+ var Config = class {
100
+ constructor() {
101
+ this.env = process.env.SDK_ENV || "production";
102
+ if (!environments[this.env]) {
103
+ throw new Error(`Unsupported environment: ${this.env}`);
104
+ }
105
+ this.config = environments[this.env];
106
+ }
107
+ get() {
108
+ return {
109
+ env: this.env,
110
+ ...this.config
111
+ };
112
+ }
113
+ getSolverUrl() {
114
+ return this.config.solverUrl;
115
+ }
116
+ getBackendUrl() {
117
+ return this.config.backendUrl;
118
+ }
119
+ getRpcUrl() {
120
+ return this.config.rpcUrl;
121
+ }
122
+ getRouterAddress() {
123
+ return this.config.routerAddress;
124
+ }
125
+ getPaymentAddress(networkId) {
126
+ return this.config.paymentAddressMap[networkId];
127
+ }
128
+ };
129
+ var config = new Config();
130
+
131
+ // src/contracts/contract/factories/index.ts
132
+ var factories_exports = {};
133
+ __export(factories_exports, {
134
+ ERC20__factory: () => ERC20__factory,
135
+ Payment__factory: () => Payment__factory,
136
+ Router__factory: () => Router__factory,
137
+ Signer__factory: () => Signer__factory
138
+ });
139
+
140
+ // src/contracts/contract/factories/ERC20__factory.ts
141
+ var import_ethers = require("ethers");
142
+ var _abi = [
143
+ {
144
+ anonymous: false,
145
+ inputs: [
146
+ {
147
+ indexed: true,
148
+ internalType: "address",
149
+ name: "owner",
150
+ type: "address"
151
+ },
152
+ {
153
+ indexed: true,
154
+ internalType: "address",
155
+ name: "spender",
156
+ type: "address"
157
+ },
158
+ {
159
+ indexed: false,
160
+ internalType: "uint256",
161
+ name: "value",
162
+ type: "uint256"
163
+ }
164
+ ],
165
+ name: "Approval",
166
+ type: "event"
167
+ },
168
+ {
169
+ anonymous: false,
170
+ inputs: [
171
+ {
172
+ indexed: true,
173
+ internalType: "address",
174
+ name: "authorizer",
175
+ type: "address"
176
+ },
177
+ {
178
+ indexed: true,
179
+ internalType: "bytes32",
180
+ name: "nonce",
181
+ type: "bytes32"
182
+ }
183
+ ],
184
+ name: "AuthorizationCanceled",
185
+ type: "event"
186
+ },
187
+ {
188
+ anonymous: false,
189
+ inputs: [
190
+ {
191
+ indexed: true,
192
+ internalType: "address",
193
+ name: "authorizer",
194
+ type: "address"
195
+ },
196
+ {
197
+ indexed: true,
198
+ internalType: "bytes32",
199
+ name: "nonce",
200
+ type: "bytes32"
201
+ }
202
+ ],
203
+ name: "AuthorizationUsed",
204
+ type: "event"
205
+ },
206
+ {
207
+ anonymous: false,
208
+ inputs: [
209
+ {
210
+ indexed: true,
211
+ internalType: "address",
212
+ name: "_account",
213
+ type: "address"
214
+ }
215
+ ],
216
+ name: "Blacklisted",
217
+ type: "event"
218
+ },
219
+ {
220
+ anonymous: false,
221
+ inputs: [
222
+ {
223
+ indexed: true,
224
+ internalType: "address",
225
+ name: "newBlacklister",
226
+ type: "address"
227
+ }
228
+ ],
229
+ name: "BlacklisterChanged",
230
+ type: "event"
231
+ },
232
+ {
233
+ anonymous: false,
234
+ inputs: [
235
+ {
236
+ indexed: true,
237
+ internalType: "address",
238
+ name: "burner",
239
+ type: "address"
240
+ },
241
+ {
242
+ indexed: false,
243
+ internalType: "uint256",
244
+ name: "amount",
245
+ type: "uint256"
246
+ }
247
+ ],
248
+ name: "Burn",
249
+ type: "event"
250
+ },
251
+ {
252
+ anonymous: false,
253
+ inputs: [
254
+ {
255
+ indexed: true,
256
+ internalType: "address",
257
+ name: "newMasterMinter",
258
+ type: "address"
259
+ }
260
+ ],
261
+ name: "MasterMinterChanged",
262
+ type: "event"
263
+ },
264
+ {
265
+ anonymous: false,
266
+ inputs: [
267
+ {
268
+ indexed: true,
269
+ internalType: "address",
270
+ name: "minter",
271
+ type: "address"
272
+ },
273
+ {
274
+ indexed: true,
275
+ internalType: "address",
276
+ name: "to",
277
+ type: "address"
278
+ },
279
+ {
280
+ indexed: false,
281
+ internalType: "uint256",
282
+ name: "amount",
283
+ type: "uint256"
284
+ }
285
+ ],
286
+ name: "Mint",
287
+ type: "event"
288
+ },
289
+ {
290
+ anonymous: false,
291
+ inputs: [
292
+ {
293
+ indexed: true,
294
+ internalType: "address",
295
+ name: "minter",
296
+ type: "address"
297
+ },
298
+ {
299
+ indexed: false,
300
+ internalType: "uint256",
301
+ name: "minterAllowedAmount",
302
+ type: "uint256"
303
+ }
304
+ ],
305
+ name: "MinterConfigured",
306
+ type: "event"
307
+ },
308
+ {
309
+ anonymous: false,
310
+ inputs: [
311
+ {
312
+ indexed: true,
313
+ internalType: "address",
314
+ name: "oldMinter",
315
+ type: "address"
316
+ }
317
+ ],
318
+ name: "MinterRemoved",
319
+ type: "event"
320
+ },
321
+ {
322
+ anonymous: false,
323
+ inputs: [
324
+ {
325
+ indexed: false,
326
+ internalType: "address",
327
+ name: "previousOwner",
328
+ type: "address"
329
+ },
330
+ {
331
+ indexed: false,
332
+ internalType: "address",
333
+ name: "newOwner",
334
+ type: "address"
335
+ }
336
+ ],
337
+ name: "OwnershipTransferred",
338
+ type: "event"
339
+ },
340
+ {
341
+ anonymous: false,
342
+ inputs: [],
343
+ name: "Pause",
344
+ type: "event"
345
+ },
346
+ {
347
+ anonymous: false,
348
+ inputs: [
349
+ {
350
+ indexed: true,
351
+ internalType: "address",
352
+ name: "newAddress",
353
+ type: "address"
354
+ }
355
+ ],
356
+ name: "PauserChanged",
357
+ type: "event"
358
+ },
359
+ {
360
+ anonymous: false,
361
+ inputs: [
362
+ {
363
+ indexed: true,
364
+ internalType: "address",
365
+ name: "newRescuer",
366
+ type: "address"
367
+ }
368
+ ],
369
+ name: "RescuerChanged",
370
+ type: "event"
371
+ },
372
+ {
373
+ anonymous: false,
374
+ inputs: [
375
+ {
376
+ indexed: true,
377
+ internalType: "address",
378
+ name: "from",
379
+ type: "address"
380
+ },
381
+ {
382
+ indexed: true,
383
+ internalType: "address",
384
+ name: "to",
385
+ type: "address"
386
+ },
387
+ {
388
+ indexed: false,
389
+ internalType: "uint256",
390
+ name: "value",
391
+ type: "uint256"
392
+ }
393
+ ],
394
+ name: "Transfer",
395
+ type: "event"
396
+ },
397
+ {
398
+ anonymous: false,
399
+ inputs: [
400
+ {
401
+ indexed: true,
402
+ internalType: "address",
403
+ name: "_account",
404
+ type: "address"
405
+ }
406
+ ],
407
+ name: "UnBlacklisted",
408
+ type: "event"
409
+ },
410
+ {
411
+ anonymous: false,
412
+ inputs: [],
413
+ name: "Unpause",
414
+ type: "event"
415
+ },
416
+ {
417
+ inputs: [],
418
+ name: "CANCEL_AUTHORIZATION_TYPEHASH",
419
+ outputs: [
420
+ {
421
+ internalType: "bytes32",
422
+ name: "",
423
+ type: "bytes32"
424
+ }
425
+ ],
426
+ stateMutability: "view",
427
+ type: "function"
428
+ },
429
+ {
430
+ inputs: [],
431
+ name: "DOMAIN_SEPARATOR",
432
+ outputs: [
433
+ {
434
+ internalType: "bytes32",
435
+ name: "",
436
+ type: "bytes32"
437
+ }
438
+ ],
439
+ stateMutability: "view",
440
+ type: "function"
441
+ },
442
+ {
443
+ inputs: [],
444
+ name: "PERMIT_TYPEHASH",
445
+ outputs: [
446
+ {
447
+ internalType: "bytes32",
448
+ name: "",
449
+ type: "bytes32"
450
+ }
451
+ ],
452
+ stateMutability: "view",
453
+ type: "function"
454
+ },
455
+ {
456
+ inputs: [],
457
+ name: "RECEIVE_WITH_AUTHORIZATION_TYPEHASH",
458
+ outputs: [
459
+ {
460
+ internalType: "bytes32",
461
+ name: "",
462
+ type: "bytes32"
463
+ }
464
+ ],
465
+ stateMutability: "view",
466
+ type: "function"
467
+ },
468
+ {
469
+ inputs: [],
470
+ name: "TRANSFER_WITH_AUTHORIZATION_TYPEHASH",
471
+ outputs: [
472
+ {
473
+ internalType: "bytes32",
474
+ name: "",
475
+ type: "bytes32"
476
+ }
477
+ ],
478
+ stateMutability: "view",
479
+ type: "function"
480
+ },
481
+ {
482
+ inputs: [
483
+ {
484
+ internalType: "address",
485
+ name: "owner",
486
+ type: "address"
487
+ },
488
+ {
489
+ internalType: "address",
490
+ name: "spender",
491
+ type: "address"
492
+ }
493
+ ],
494
+ name: "allowance",
495
+ outputs: [
496
+ {
497
+ internalType: "uint256",
498
+ name: "",
499
+ type: "uint256"
500
+ }
501
+ ],
502
+ stateMutability: "view",
503
+ type: "function"
504
+ },
505
+ {
506
+ inputs: [
507
+ {
508
+ internalType: "address",
509
+ name: "spender",
510
+ type: "address"
511
+ },
512
+ {
513
+ internalType: "uint256",
514
+ name: "value",
515
+ type: "uint256"
516
+ }
517
+ ],
518
+ name: "approve",
519
+ outputs: [
520
+ {
521
+ internalType: "bool",
522
+ name: "",
523
+ type: "bool"
524
+ }
525
+ ],
526
+ stateMutability: "nonpayable",
527
+ type: "function"
528
+ },
529
+ {
530
+ inputs: [
531
+ {
532
+ internalType: "address",
533
+ name: "authorizer",
534
+ type: "address"
535
+ },
536
+ {
537
+ internalType: "bytes32",
538
+ name: "nonce",
539
+ type: "bytes32"
540
+ }
541
+ ],
542
+ name: "authorizationState",
543
+ outputs: [
544
+ {
545
+ internalType: "bool",
546
+ name: "",
547
+ type: "bool"
548
+ }
549
+ ],
550
+ stateMutability: "view",
551
+ type: "function"
552
+ },
553
+ {
554
+ inputs: [
555
+ {
556
+ internalType: "address",
557
+ name: "account",
558
+ type: "address"
559
+ }
560
+ ],
561
+ name: "balanceOf",
562
+ outputs: [
563
+ {
564
+ internalType: "uint256",
565
+ name: "",
566
+ type: "uint256"
567
+ }
568
+ ],
569
+ stateMutability: "view",
570
+ type: "function"
571
+ },
572
+ {
573
+ inputs: [
574
+ {
575
+ internalType: "address",
576
+ name: "_account",
577
+ type: "address"
578
+ }
579
+ ],
580
+ name: "blacklist",
581
+ outputs: [],
582
+ stateMutability: "nonpayable",
583
+ type: "function"
584
+ },
585
+ {
586
+ inputs: [],
587
+ name: "blacklister",
588
+ outputs: [
589
+ {
590
+ internalType: "address",
591
+ name: "",
592
+ type: "address"
593
+ }
594
+ ],
595
+ stateMutability: "view",
596
+ type: "function"
597
+ },
598
+ {
599
+ inputs: [
600
+ {
601
+ internalType: "uint256",
602
+ name: "_amount",
603
+ type: "uint256"
604
+ }
605
+ ],
606
+ name: "burn",
607
+ outputs: [],
608
+ stateMutability: "nonpayable",
609
+ type: "function"
610
+ },
611
+ {
612
+ inputs: [
613
+ {
614
+ internalType: "address",
615
+ name: "authorizer",
616
+ type: "address"
617
+ },
618
+ {
619
+ internalType: "bytes32",
620
+ name: "nonce",
621
+ type: "bytes32"
622
+ },
623
+ {
624
+ internalType: "uint8",
625
+ name: "v",
626
+ type: "uint8"
627
+ },
628
+ {
629
+ internalType: "bytes32",
630
+ name: "r",
631
+ type: "bytes32"
632
+ },
633
+ {
634
+ internalType: "bytes32",
635
+ name: "s",
636
+ type: "bytes32"
637
+ }
638
+ ],
639
+ name: "cancelAuthorization",
640
+ outputs: [],
641
+ stateMutability: "nonpayable",
642
+ type: "function"
643
+ },
644
+ {
645
+ inputs: [
646
+ {
647
+ internalType: "address",
648
+ name: "authorizer",
649
+ type: "address"
650
+ },
651
+ {
652
+ internalType: "bytes32",
653
+ name: "nonce",
654
+ type: "bytes32"
655
+ },
656
+ {
657
+ internalType: "bytes",
658
+ name: "signature",
659
+ type: "bytes"
660
+ }
661
+ ],
662
+ name: "cancelAuthorization",
663
+ outputs: [],
664
+ stateMutability: "nonpayable",
665
+ type: "function"
666
+ },
667
+ {
668
+ inputs: [
669
+ {
670
+ internalType: "address",
671
+ name: "minter",
672
+ type: "address"
673
+ },
674
+ {
675
+ internalType: "uint256",
676
+ name: "minterAllowedAmount",
677
+ type: "uint256"
678
+ }
679
+ ],
680
+ name: "configureMinter",
681
+ outputs: [
682
+ {
683
+ internalType: "bool",
684
+ name: "",
685
+ type: "bool"
686
+ }
687
+ ],
688
+ stateMutability: "nonpayable",
689
+ type: "function"
690
+ },
691
+ {
692
+ inputs: [],
693
+ name: "currency",
694
+ outputs: [
695
+ {
696
+ internalType: "string",
697
+ name: "",
698
+ type: "string"
699
+ }
700
+ ],
701
+ stateMutability: "view",
702
+ type: "function"
703
+ },
704
+ {
705
+ inputs: [],
706
+ name: "decimals",
707
+ outputs: [
708
+ {
709
+ internalType: "uint8",
710
+ name: "",
711
+ type: "uint8"
712
+ }
713
+ ],
714
+ stateMutability: "view",
715
+ type: "function"
716
+ },
717
+ {
718
+ inputs: [
719
+ {
720
+ internalType: "address",
721
+ name: "spender",
722
+ type: "address"
723
+ },
724
+ {
725
+ internalType: "uint256",
726
+ name: "decrement",
727
+ type: "uint256"
728
+ }
729
+ ],
730
+ name: "decreaseAllowance",
731
+ outputs: [
732
+ {
733
+ internalType: "bool",
734
+ name: "",
735
+ type: "bool"
736
+ }
737
+ ],
738
+ stateMutability: "nonpayable",
739
+ type: "function"
740
+ },
741
+ {
742
+ inputs: [
743
+ {
744
+ internalType: "address",
745
+ name: "spender",
746
+ type: "address"
747
+ },
748
+ {
749
+ internalType: "uint256",
750
+ name: "increment",
751
+ type: "uint256"
752
+ }
753
+ ],
754
+ name: "increaseAllowance",
755
+ outputs: [
756
+ {
757
+ internalType: "bool",
758
+ name: "",
759
+ type: "bool"
760
+ }
761
+ ],
762
+ stateMutability: "nonpayable",
763
+ type: "function"
764
+ },
765
+ {
766
+ inputs: [
767
+ {
768
+ internalType: "string",
769
+ name: "tokenName",
770
+ type: "string"
771
+ },
772
+ {
773
+ internalType: "string",
774
+ name: "tokenSymbol",
775
+ type: "string"
776
+ },
777
+ {
778
+ internalType: "string",
779
+ name: "tokenCurrency",
780
+ type: "string"
781
+ },
782
+ {
783
+ internalType: "uint8",
784
+ name: "tokenDecimals",
785
+ type: "uint8"
786
+ },
787
+ {
788
+ internalType: "address",
789
+ name: "newMasterMinter",
790
+ type: "address"
791
+ },
792
+ {
793
+ internalType: "address",
794
+ name: "newPauser",
795
+ type: "address"
796
+ },
797
+ {
798
+ internalType: "address",
799
+ name: "newBlacklister",
800
+ type: "address"
801
+ },
802
+ {
803
+ internalType: "address",
804
+ name: "newOwner",
805
+ type: "address"
806
+ }
807
+ ],
808
+ name: "initialize",
809
+ outputs: [],
810
+ stateMutability: "nonpayable",
811
+ type: "function"
812
+ },
813
+ {
814
+ inputs: [
815
+ {
816
+ internalType: "string",
817
+ name: "newName",
818
+ type: "string"
819
+ }
820
+ ],
821
+ name: "initializeV2",
822
+ outputs: [],
823
+ stateMutability: "nonpayable",
824
+ type: "function"
825
+ },
826
+ {
827
+ inputs: [
828
+ {
829
+ internalType: "address",
830
+ name: "lostAndFound",
831
+ type: "address"
832
+ }
833
+ ],
834
+ name: "initializeV2_1",
835
+ outputs: [],
836
+ stateMutability: "nonpayable",
837
+ type: "function"
838
+ },
839
+ {
840
+ inputs: [
841
+ {
842
+ internalType: "address[]",
843
+ name: "accountsToBlacklist",
844
+ type: "address[]"
845
+ },
846
+ {
847
+ internalType: "string",
848
+ name: "newSymbol",
849
+ type: "string"
850
+ }
851
+ ],
852
+ name: "initializeV2_2",
853
+ outputs: [],
854
+ stateMutability: "nonpayable",
855
+ type: "function"
856
+ },
857
+ {
858
+ inputs: [
859
+ {
860
+ internalType: "address",
861
+ name: "_account",
862
+ type: "address"
863
+ }
864
+ ],
865
+ name: "isBlacklisted",
866
+ outputs: [
867
+ {
868
+ internalType: "bool",
869
+ name: "",
870
+ type: "bool"
871
+ }
872
+ ],
873
+ stateMutability: "view",
874
+ type: "function"
875
+ },
876
+ {
877
+ inputs: [
878
+ {
879
+ internalType: "address",
880
+ name: "account",
881
+ type: "address"
882
+ }
883
+ ],
884
+ name: "isMinter",
885
+ outputs: [
886
+ {
887
+ internalType: "bool",
888
+ name: "",
889
+ type: "bool"
890
+ }
891
+ ],
892
+ stateMutability: "view",
893
+ type: "function"
894
+ },
895
+ {
896
+ inputs: [],
897
+ name: "masterMinter",
898
+ outputs: [
899
+ {
900
+ internalType: "address",
901
+ name: "",
902
+ type: "address"
903
+ }
904
+ ],
905
+ stateMutability: "view",
906
+ type: "function"
907
+ },
908
+ {
909
+ inputs: [
910
+ {
911
+ internalType: "address",
912
+ name: "_to",
913
+ type: "address"
914
+ },
915
+ {
916
+ internalType: "uint256",
917
+ name: "_amount",
918
+ type: "uint256"
919
+ }
920
+ ],
921
+ name: "mint",
922
+ outputs: [
923
+ {
924
+ internalType: "bool",
925
+ name: "",
926
+ type: "bool"
927
+ }
928
+ ],
929
+ stateMutability: "nonpayable",
930
+ type: "function"
931
+ },
932
+ {
933
+ inputs: [
934
+ {
935
+ internalType: "address",
936
+ name: "minter",
937
+ type: "address"
938
+ }
939
+ ],
940
+ name: "minterAllowance",
941
+ outputs: [
942
+ {
943
+ internalType: "uint256",
944
+ name: "",
945
+ type: "uint256"
946
+ }
947
+ ],
948
+ stateMutability: "view",
949
+ type: "function"
950
+ },
951
+ {
952
+ inputs: [],
953
+ name: "name",
954
+ outputs: [
955
+ {
956
+ internalType: "string",
957
+ name: "",
958
+ type: "string"
959
+ }
960
+ ],
961
+ stateMutability: "view",
962
+ type: "function"
963
+ },
964
+ {
965
+ inputs: [
966
+ {
967
+ internalType: "address",
968
+ name: "owner",
969
+ type: "address"
970
+ }
971
+ ],
972
+ name: "nonces",
973
+ outputs: [
974
+ {
975
+ internalType: "uint256",
976
+ name: "",
977
+ type: "uint256"
978
+ }
979
+ ],
980
+ stateMutability: "view",
981
+ type: "function"
982
+ },
983
+ {
984
+ inputs: [],
985
+ name: "owner",
986
+ outputs: [
987
+ {
988
+ internalType: "address",
989
+ name: "",
990
+ type: "address"
991
+ }
992
+ ],
993
+ stateMutability: "view",
994
+ type: "function"
995
+ },
996
+ {
997
+ inputs: [],
998
+ name: "pause",
999
+ outputs: [],
1000
+ stateMutability: "nonpayable",
1001
+ type: "function"
1002
+ },
1003
+ {
1004
+ inputs: [],
1005
+ name: "paused",
1006
+ outputs: [
1007
+ {
1008
+ internalType: "bool",
1009
+ name: "",
1010
+ type: "bool"
1011
+ }
1012
+ ],
1013
+ stateMutability: "view",
1014
+ type: "function"
1015
+ },
1016
+ {
1017
+ inputs: [],
1018
+ name: "pauser",
1019
+ outputs: [
1020
+ {
1021
+ internalType: "address",
1022
+ name: "",
1023
+ type: "address"
1024
+ }
1025
+ ],
1026
+ stateMutability: "view",
1027
+ type: "function"
1028
+ },
1029
+ {
1030
+ inputs: [
1031
+ {
1032
+ internalType: "address",
1033
+ name: "owner",
1034
+ type: "address"
1035
+ },
1036
+ {
1037
+ internalType: "address",
1038
+ name: "spender",
1039
+ type: "address"
1040
+ },
1041
+ {
1042
+ internalType: "uint256",
1043
+ name: "value",
1044
+ type: "uint256"
1045
+ },
1046
+ {
1047
+ internalType: "uint256",
1048
+ name: "deadline",
1049
+ type: "uint256"
1050
+ },
1051
+ {
1052
+ internalType: "bytes",
1053
+ name: "signature",
1054
+ type: "bytes"
1055
+ }
1056
+ ],
1057
+ name: "permit",
1058
+ outputs: [],
1059
+ stateMutability: "nonpayable",
1060
+ type: "function"
1061
+ },
1062
+ {
1063
+ inputs: [
1064
+ {
1065
+ internalType: "address",
1066
+ name: "owner",
1067
+ type: "address"
1068
+ },
1069
+ {
1070
+ internalType: "address",
1071
+ name: "spender",
1072
+ type: "address"
1073
+ },
1074
+ {
1075
+ internalType: "uint256",
1076
+ name: "value",
1077
+ type: "uint256"
1078
+ },
1079
+ {
1080
+ internalType: "uint256",
1081
+ name: "deadline",
1082
+ type: "uint256"
1083
+ },
1084
+ {
1085
+ internalType: "uint8",
1086
+ name: "v",
1087
+ type: "uint8"
1088
+ },
1089
+ {
1090
+ internalType: "bytes32",
1091
+ name: "r",
1092
+ type: "bytes32"
1093
+ },
1094
+ {
1095
+ internalType: "bytes32",
1096
+ name: "s",
1097
+ type: "bytes32"
1098
+ }
1099
+ ],
1100
+ name: "permit",
1101
+ outputs: [],
1102
+ stateMutability: "nonpayable",
1103
+ type: "function"
1104
+ },
1105
+ {
1106
+ inputs: [
1107
+ {
1108
+ internalType: "address",
1109
+ name: "from",
1110
+ type: "address"
1111
+ },
1112
+ {
1113
+ internalType: "address",
1114
+ name: "to",
1115
+ type: "address"
1116
+ },
1117
+ {
1118
+ internalType: "uint256",
1119
+ name: "value",
1120
+ type: "uint256"
1121
+ },
1122
+ {
1123
+ internalType: "uint256",
1124
+ name: "validAfter",
1125
+ type: "uint256"
1126
+ },
1127
+ {
1128
+ internalType: "uint256",
1129
+ name: "validBefore",
1130
+ type: "uint256"
1131
+ },
1132
+ {
1133
+ internalType: "bytes32",
1134
+ name: "nonce",
1135
+ type: "bytes32"
1136
+ },
1137
+ {
1138
+ internalType: "bytes",
1139
+ name: "signature",
1140
+ type: "bytes"
1141
+ }
1142
+ ],
1143
+ name: "receiveWithAuthorization",
1144
+ outputs: [],
1145
+ stateMutability: "nonpayable",
1146
+ type: "function"
1147
+ },
1148
+ {
1149
+ inputs: [
1150
+ {
1151
+ internalType: "address",
1152
+ name: "from",
1153
+ type: "address"
1154
+ },
1155
+ {
1156
+ internalType: "address",
1157
+ name: "to",
1158
+ type: "address"
1159
+ },
1160
+ {
1161
+ internalType: "uint256",
1162
+ name: "value",
1163
+ type: "uint256"
1164
+ },
1165
+ {
1166
+ internalType: "uint256",
1167
+ name: "validAfter",
1168
+ type: "uint256"
1169
+ },
1170
+ {
1171
+ internalType: "uint256",
1172
+ name: "validBefore",
1173
+ type: "uint256"
1174
+ },
1175
+ {
1176
+ internalType: "bytes32",
1177
+ name: "nonce",
1178
+ type: "bytes32"
1179
+ },
1180
+ {
1181
+ internalType: "uint8",
1182
+ name: "v",
1183
+ type: "uint8"
1184
+ },
1185
+ {
1186
+ internalType: "bytes32",
1187
+ name: "r",
1188
+ type: "bytes32"
1189
+ },
1190
+ {
1191
+ internalType: "bytes32",
1192
+ name: "s",
1193
+ type: "bytes32"
1194
+ }
1195
+ ],
1196
+ name: "receiveWithAuthorization",
1197
+ outputs: [],
1198
+ stateMutability: "nonpayable",
1199
+ type: "function"
1200
+ },
1201
+ {
1202
+ inputs: [
1203
+ {
1204
+ internalType: "address",
1205
+ name: "minter",
1206
+ type: "address"
1207
+ }
1208
+ ],
1209
+ name: "removeMinter",
1210
+ outputs: [
1211
+ {
1212
+ internalType: "bool",
1213
+ name: "",
1214
+ type: "bool"
1215
+ }
1216
+ ],
1217
+ stateMutability: "nonpayable",
1218
+ type: "function"
1219
+ },
1220
+ {
1221
+ inputs: [
1222
+ {
1223
+ internalType: "contract IERC20",
1224
+ name: "tokenContract",
1225
+ type: "address"
1226
+ },
1227
+ {
1228
+ internalType: "address",
1229
+ name: "to",
1230
+ type: "address"
1231
+ },
1232
+ {
1233
+ internalType: "uint256",
1234
+ name: "amount",
1235
+ type: "uint256"
1236
+ }
1237
+ ],
1238
+ name: "rescueERC20",
1239
+ outputs: [],
1240
+ stateMutability: "nonpayable",
1241
+ type: "function"
1242
+ },
1243
+ {
1244
+ inputs: [],
1245
+ name: "rescuer",
1246
+ outputs: [
1247
+ {
1248
+ internalType: "address",
1249
+ name: "",
1250
+ type: "address"
1251
+ }
1252
+ ],
1253
+ stateMutability: "view",
1254
+ type: "function"
1255
+ },
1256
+ {
1257
+ inputs: [],
1258
+ name: "symbol",
1259
+ outputs: [
1260
+ {
1261
+ internalType: "string",
1262
+ name: "",
1263
+ type: "string"
1264
+ }
1265
+ ],
1266
+ stateMutability: "view",
1267
+ type: "function"
1268
+ },
1269
+ {
1270
+ inputs: [],
1271
+ name: "totalSupply",
1272
+ outputs: [
1273
+ {
1274
+ internalType: "uint256",
1275
+ name: "",
1276
+ type: "uint256"
1277
+ }
1278
+ ],
1279
+ stateMutability: "view",
1280
+ type: "function"
1281
+ },
1282
+ {
1283
+ inputs: [
1284
+ {
1285
+ internalType: "address",
1286
+ name: "to",
1287
+ type: "address"
1288
+ },
1289
+ {
1290
+ internalType: "uint256",
1291
+ name: "value",
1292
+ type: "uint256"
1293
+ }
1294
+ ],
1295
+ name: "transfer",
1296
+ outputs: [
1297
+ {
1298
+ internalType: "bool",
1299
+ name: "",
1300
+ type: "bool"
1301
+ }
1302
+ ],
1303
+ stateMutability: "nonpayable",
1304
+ type: "function"
1305
+ },
1306
+ {
1307
+ inputs: [
1308
+ {
1309
+ internalType: "address",
1310
+ name: "from",
1311
+ type: "address"
1312
+ },
1313
+ {
1314
+ internalType: "address",
1315
+ name: "to",
1316
+ type: "address"
1317
+ },
1318
+ {
1319
+ internalType: "uint256",
1320
+ name: "value",
1321
+ type: "uint256"
1322
+ }
1323
+ ],
1324
+ name: "transferFrom",
1325
+ outputs: [
1326
+ {
1327
+ internalType: "bool",
1328
+ name: "",
1329
+ type: "bool"
1330
+ }
1331
+ ],
1332
+ stateMutability: "nonpayable",
1333
+ type: "function"
1334
+ },
1335
+ {
1336
+ inputs: [
1337
+ {
1338
+ internalType: "address",
1339
+ name: "newOwner",
1340
+ type: "address"
1341
+ }
1342
+ ],
1343
+ name: "transferOwnership",
1344
+ outputs: [],
1345
+ stateMutability: "nonpayable",
1346
+ type: "function"
1347
+ },
1348
+ {
1349
+ inputs: [
1350
+ {
1351
+ internalType: "address",
1352
+ name: "from",
1353
+ type: "address"
1354
+ },
1355
+ {
1356
+ internalType: "address",
1357
+ name: "to",
1358
+ type: "address"
1359
+ },
1360
+ {
1361
+ internalType: "uint256",
1362
+ name: "value",
1363
+ type: "uint256"
1364
+ },
1365
+ {
1366
+ internalType: "uint256",
1367
+ name: "validAfter",
1368
+ type: "uint256"
1369
+ },
1370
+ {
1371
+ internalType: "uint256",
1372
+ name: "validBefore",
1373
+ type: "uint256"
1374
+ },
1375
+ {
1376
+ internalType: "bytes32",
1377
+ name: "nonce",
1378
+ type: "bytes32"
1379
+ },
1380
+ {
1381
+ internalType: "bytes",
1382
+ name: "signature",
1383
+ type: "bytes"
1384
+ }
1385
+ ],
1386
+ name: "transferWithAuthorization",
1387
+ outputs: [],
1388
+ stateMutability: "nonpayable",
1389
+ type: "function"
1390
+ },
1391
+ {
1392
+ inputs: [
1393
+ {
1394
+ internalType: "address",
1395
+ name: "from",
1396
+ type: "address"
1397
+ },
1398
+ {
1399
+ internalType: "address",
1400
+ name: "to",
1401
+ type: "address"
1402
+ },
1403
+ {
1404
+ internalType: "uint256",
1405
+ name: "value",
1406
+ type: "uint256"
1407
+ },
1408
+ {
1409
+ internalType: "uint256",
1410
+ name: "validAfter",
1411
+ type: "uint256"
1412
+ },
1413
+ {
1414
+ internalType: "uint256",
1415
+ name: "validBefore",
1416
+ type: "uint256"
1417
+ },
1418
+ {
1419
+ internalType: "bytes32",
1420
+ name: "nonce",
1421
+ type: "bytes32"
1422
+ },
1423
+ {
1424
+ internalType: "uint8",
1425
+ name: "v",
1426
+ type: "uint8"
1427
+ },
1428
+ {
1429
+ internalType: "bytes32",
1430
+ name: "r",
1431
+ type: "bytes32"
1432
+ },
1433
+ {
1434
+ internalType: "bytes32",
1435
+ name: "s",
1436
+ type: "bytes32"
1437
+ }
1438
+ ],
1439
+ name: "transferWithAuthorization",
1440
+ outputs: [],
1441
+ stateMutability: "nonpayable",
1442
+ type: "function"
1443
+ },
1444
+ {
1445
+ inputs: [
1446
+ {
1447
+ internalType: "address",
1448
+ name: "_account",
1449
+ type: "address"
1450
+ }
1451
+ ],
1452
+ name: "unBlacklist",
1453
+ outputs: [],
1454
+ stateMutability: "nonpayable",
1455
+ type: "function"
1456
+ },
1457
+ {
1458
+ inputs: [],
1459
+ name: "unpause",
1460
+ outputs: [],
1461
+ stateMutability: "nonpayable",
1462
+ type: "function"
1463
+ },
1464
+ {
1465
+ inputs: [
1466
+ {
1467
+ internalType: "address",
1468
+ name: "_newBlacklister",
1469
+ type: "address"
1470
+ }
1471
+ ],
1472
+ name: "updateBlacklister",
1473
+ outputs: [],
1474
+ stateMutability: "nonpayable",
1475
+ type: "function"
1476
+ },
1477
+ {
1478
+ inputs: [
1479
+ {
1480
+ internalType: "address",
1481
+ name: "_newMasterMinter",
1482
+ type: "address"
1483
+ }
1484
+ ],
1485
+ name: "updateMasterMinter",
1486
+ outputs: [],
1487
+ stateMutability: "nonpayable",
1488
+ type: "function"
1489
+ },
1490
+ {
1491
+ inputs: [
1492
+ {
1493
+ internalType: "address",
1494
+ name: "_newPauser",
1495
+ type: "address"
1496
+ }
1497
+ ],
1498
+ name: "updatePauser",
1499
+ outputs: [],
1500
+ stateMutability: "nonpayable",
1501
+ type: "function"
1502
+ },
1503
+ {
1504
+ inputs: [
1505
+ {
1506
+ internalType: "address",
1507
+ name: "newRescuer",
1508
+ type: "address"
1509
+ }
1510
+ ],
1511
+ name: "updateRescuer",
1512
+ outputs: [],
1513
+ stateMutability: "nonpayable",
1514
+ type: "function"
1515
+ },
1516
+ {
1517
+ inputs: [],
1518
+ name: "version",
1519
+ outputs: [
1520
+ {
1521
+ internalType: "string",
1522
+ name: "",
1523
+ type: "string"
1524
+ }
1525
+ ],
1526
+ stateMutability: "pure",
1527
+ type: "function"
1528
+ }
1529
+ ];
1530
+ var ERC20__factory = class {
1531
+ static createInterface() {
1532
+ return new import_ethers.Interface(_abi);
1533
+ }
1534
+ static connect(address, runner) {
1535
+ return new import_ethers.Contract(address, _abi, runner);
1536
+ }
1537
+ };
1538
+ ERC20__factory.abi = _abi;
1539
+
1540
+ // src/contracts/contract/factories/Payment__factory.ts
1541
+ var import_ethers2 = require("ethers");
1542
+ var _abi2 = [
1543
+ {
1544
+ inputs: [
1545
+ {
1546
+ internalType: "address",
1547
+ name: "pAddress",
1548
+ type: "address"
1549
+ }
1550
+ ],
1551
+ stateMutability: "nonpayable",
1552
+ type: "constructor"
1553
+ },
1554
+ {
1555
+ inputs: [],
1556
+ name: "AddressZero",
1557
+ type: "error"
1558
+ },
1559
+ {
1560
+ inputs: [],
1561
+ name: "DeadlineExceeded",
1562
+ type: "error"
1563
+ },
1564
+ {
1565
+ inputs: [],
1566
+ name: "FailedCall",
1567
+ type: "error"
1568
+ },
1569
+ {
1570
+ inputs: [
1571
+ {
1572
+ internalType: "uint256",
1573
+ name: "balance",
1574
+ type: "uint256"
1575
+ },
1576
+ {
1577
+ internalType: "uint256",
1578
+ name: "needed",
1579
+ type: "uint256"
1580
+ }
1581
+ ],
1582
+ name: "InsufficientBalance",
1583
+ type: "error"
1584
+ },
1585
+ {
1586
+ inputs: [],
1587
+ name: "InvalidPaymentAmount",
1588
+ type: "error"
1589
+ },
1590
+ {
1591
+ inputs: [],
1592
+ name: "NativeCoinNotMatched",
1593
+ type: "error"
1594
+ },
1595
+ {
1596
+ inputs: [],
1597
+ name: "ReentrancyGuardReentrantCall",
1598
+ type: "error"
1599
+ },
1600
+ {
1601
+ inputs: [
1602
+ {
1603
+ internalType: "address",
1604
+ name: "token",
1605
+ type: "address"
1606
+ }
1607
+ ],
1608
+ name: "SafeERC20FailedOperation",
1609
+ type: "error"
1610
+ },
1611
+ {
1612
+ inputs: [],
1613
+ name: "Unauthorized",
1614
+ type: "error"
1615
+ },
1616
+ {
1617
+ anonymous: false,
1618
+ inputs: [
1619
+ {
1620
+ indexed: true,
1621
+ internalType: "bytes32",
1622
+ name: "tradeId",
1623
+ type: "bytes32"
1624
+ },
1625
+ {
1626
+ indexed: true,
1627
+ internalType: "address",
1628
+ name: "from",
1629
+ type: "address"
1630
+ },
1631
+ {
1632
+ indexed: true,
1633
+ internalType: "address",
1634
+ name: "to",
1635
+ type: "address"
1636
+ },
1637
+ {
1638
+ indexed: false,
1639
+ internalType: "address",
1640
+ name: "pFeeAddr",
1641
+ type: "address"
1642
+ },
1643
+ {
1644
+ indexed: false,
1645
+ internalType: "address",
1646
+ name: "token",
1647
+ type: "address"
1648
+ },
1649
+ {
1650
+ indexed: false,
1651
+ internalType: "uint256",
1652
+ name: "payToUser",
1653
+ type: "uint256"
1654
+ },
1655
+ {
1656
+ indexed: false,
1657
+ internalType: "uint256",
1658
+ name: "totalFee",
1659
+ type: "uint256"
1660
+ }
1661
+ ],
1662
+ name: "PaymentTransferred",
1663
+ type: "event"
1664
+ },
1665
+ {
1666
+ anonymous: false,
1667
+ inputs: [
1668
+ {
1669
+ indexed: true,
1670
+ internalType: "address",
1671
+ name: "owner",
1672
+ type: "address"
1673
+ },
1674
+ {
1675
+ indexed: true,
1676
+ internalType: "address",
1677
+ name: "newProtocol",
1678
+ type: "address"
1679
+ }
1680
+ ],
1681
+ name: "ProtocolUpdated",
1682
+ type: "event"
1683
+ },
1684
+ {
1685
+ inputs: [
1686
+ {
1687
+ internalType: "bytes32",
1688
+ name: "tradeId",
1689
+ type: "bytes32"
1690
+ },
1691
+ {
1692
+ internalType: "address",
1693
+ name: "token",
1694
+ type: "address"
1695
+ },
1696
+ {
1697
+ internalType: "address",
1698
+ name: "toUser",
1699
+ type: "address"
1700
+ },
1701
+ {
1702
+ internalType: "uint256",
1703
+ name: "amount",
1704
+ type: "uint256"
1705
+ },
1706
+ {
1707
+ internalType: "uint256",
1708
+ name: "totalFee",
1709
+ type: "uint256"
1710
+ },
1711
+ {
1712
+ internalType: "uint256",
1713
+ name: "deadline",
1714
+ type: "uint256"
1715
+ }
1716
+ ],
1717
+ name: "payment",
1718
+ outputs: [],
1719
+ stateMutability: "payable",
1720
+ type: "function"
1721
+ },
1722
+ {
1723
+ inputs: [],
1724
+ name: "protocol",
1725
+ outputs: [
1726
+ {
1727
+ internalType: "contract IProtocol",
1728
+ name: "",
1729
+ type: "address"
1730
+ }
1731
+ ],
1732
+ stateMutability: "view",
1733
+ type: "function"
1734
+ },
1735
+ {
1736
+ inputs: [
1737
+ {
1738
+ internalType: "address",
1739
+ name: "newProtocol",
1740
+ type: "address"
1741
+ }
1742
+ ],
1743
+ name: "setProtocol",
1744
+ outputs: [],
1745
+ stateMutability: "nonpayable",
1746
+ type: "function"
1747
+ }
1748
+ ];
1749
+ var Payment__factory = class {
1750
+ static createInterface() {
1751
+ return new import_ethers2.Interface(_abi2);
1752
+ }
1753
+ static connect(address, runner) {
1754
+ return new import_ethers2.Contract(address, _abi2, runner);
1755
+ }
1756
+ };
1757
+ Payment__factory.abi = _abi2;
1758
+
1759
+ // src/contracts/contract/factories/Router__factory.ts
1760
+ var import_ethers3 = require("ethers");
1761
+ var _abi3 = [
1762
+ {
1763
+ inputs: [
1764
+ {
1765
+ internalType: "contract IManagement",
1766
+ name: "management_",
1767
+ type: "address"
1768
+ },
1769
+ {
1770
+ internalType: "address",
1771
+ name: "signer",
1772
+ type: "address"
1773
+ }
1774
+ ],
1775
+ stateMutability: "nonpayable",
1776
+ type: "constructor"
1777
+ },
1778
+ {
1779
+ inputs: [],
1780
+ name: "AddressZero",
1781
+ type: "error"
1782
+ },
1783
+ {
1784
+ inputs: [],
1785
+ name: "BundlePaymentEmpty",
1786
+ type: "error"
1787
+ },
1788
+ {
1789
+ inputs: [],
1790
+ name: "InconsistentCoreType",
1791
+ type: "error"
1792
+ },
1793
+ {
1794
+ inputs: [],
1795
+ name: "InconsistentPMM",
1796
+ type: "error"
1797
+ },
1798
+ {
1799
+ inputs: [],
1800
+ name: "RegisteredAlready",
1801
+ type: "error"
1802
+ },
1803
+ {
1804
+ inputs: [],
1805
+ name: "RouteNotFound",
1806
+ type: "error"
1807
+ },
1808
+ {
1809
+ inputs: [],
1810
+ name: "RouteNotSupported",
1811
+ type: "error"
1812
+ },
1813
+ {
1814
+ inputs: [],
1815
+ name: "Unauthorized",
1816
+ type: "error"
1817
+ },
1818
+ {
1819
+ anonymous: false,
1820
+ inputs: [
1821
+ {
1822
+ indexed: true,
1823
+ internalType: "address",
1824
+ name: "mpc",
1825
+ type: "address"
1826
+ },
1827
+ {
1828
+ indexed: true,
1829
+ internalType: "bytes32",
1830
+ name: "tradeId",
1831
+ type: "bytes32"
1832
+ },
1833
+ {
1834
+ indexed: false,
1835
+ internalType: "uint256",
1836
+ name: "pFeeRate",
1837
+ type: "uint256"
1838
+ },
1839
+ {
1840
+ indexed: false,
1841
+ internalType: "uint256",
1842
+ name: "aFeeRate",
1843
+ type: "uint256"
1844
+ },
1845
+ {
1846
+ indexed: false,
1847
+ internalType: "bytes[]",
1848
+ name: "list",
1849
+ type: "bytes[]"
1850
+ }
1851
+ ],
1852
+ name: "ConfirmDeposit",
1853
+ type: "event"
1854
+ },
1855
+ {
1856
+ anonymous: false,
1857
+ inputs: [
1858
+ {
1859
+ indexed: true,
1860
+ internalType: "address",
1861
+ name: "mpc",
1862
+ type: "address"
1863
+ },
1864
+ {
1865
+ indexed: true,
1866
+ internalType: "bytes32",
1867
+ name: "tradeId",
1868
+ type: "bytes32"
1869
+ }
1870
+ ],
1871
+ name: "ConfirmPayment",
1872
+ type: "event"
1873
+ },
1874
+ {
1875
+ anonymous: false,
1876
+ inputs: [
1877
+ {
1878
+ indexed: true,
1879
+ internalType: "address",
1880
+ name: "mpc",
1881
+ type: "address"
1882
+ },
1883
+ {
1884
+ indexed: true,
1885
+ internalType: "bytes32",
1886
+ name: "tradeId",
1887
+ type: "bytes32"
1888
+ }
1889
+ ],
1890
+ name: "ConfirmSettlement",
1891
+ type: "event"
1892
+ },
1893
+ {
1894
+ anonymous: false,
1895
+ inputs: [
1896
+ {
1897
+ indexed: true,
1898
+ internalType: "address",
1899
+ name: "operator",
1900
+ type: "address"
1901
+ },
1902
+ {
1903
+ indexed: true,
1904
+ internalType: "bytes32",
1905
+ name: "tradeId",
1906
+ type: "bytes32"
1907
+ }
1908
+ ],
1909
+ name: "MakePayment",
1910
+ type: "event"
1911
+ },
1912
+ {
1913
+ anonymous: false,
1914
+ inputs: [
1915
+ {
1916
+ indexed: true,
1917
+ internalType: "address",
1918
+ name: "solver",
1919
+ type: "address"
1920
+ },
1921
+ {
1922
+ indexed: true,
1923
+ internalType: "bytes32",
1924
+ name: "tradeId",
1925
+ type: "bytes32"
1926
+ }
1927
+ ],
1928
+ name: "SelectPMM",
1929
+ type: "event"
1930
+ },
1931
+ {
1932
+ anonymous: false,
1933
+ inputs: [
1934
+ {
1935
+ indexed: true,
1936
+ internalType: "address",
1937
+ name: "solver",
1938
+ type: "address"
1939
+ },
1940
+ {
1941
+ indexed: true,
1942
+ internalType: "bytes32",
1943
+ name: "tradeId",
1944
+ type: "bytes32"
1945
+ }
1946
+ ],
1947
+ name: "SubmitTradeInfo",
1948
+ type: "event"
1949
+ },
1950
+ {
1951
+ anonymous: false,
1952
+ inputs: [
1953
+ {
1954
+ indexed: true,
1955
+ internalType: "address",
1956
+ name: "core",
1957
+ type: "address"
1958
+ },
1959
+ {
1960
+ indexed: true,
1961
+ internalType: "uint256",
1962
+ name: "version",
1963
+ type: "uint256"
1964
+ },
1965
+ {
1966
+ indexed: false,
1967
+ internalType: "bytes",
1968
+ name: "fromChain",
1969
+ type: "bytes"
1970
+ },
1971
+ {
1972
+ indexed: false,
1973
+ internalType: "bytes",
1974
+ name: "toChain",
1975
+ type: "bytes"
1976
+ }
1977
+ ],
1978
+ name: "UpdatedRoute",
1979
+ type: "event"
1980
+ },
1981
+ {
1982
+ inputs: [],
1983
+ name: "SIGNER",
1984
+ outputs: [
1985
+ {
1986
+ internalType: "address",
1987
+ name: "",
1988
+ type: "address"
1989
+ }
1990
+ ],
1991
+ stateMutability: "view",
1992
+ type: "function"
1993
+ },
1994
+ {
1995
+ inputs: [
1996
+ {
1997
+ components: [
1998
+ {
1999
+ internalType: "bytes32[]",
2000
+ name: "tradeIds",
2001
+ type: "bytes32[]"
2002
+ },
2003
+ {
2004
+ internalType: "uint64",
2005
+ name: "signedAt",
2006
+ type: "uint64"
2007
+ },
2008
+ {
2009
+ internalType: "uint64",
2010
+ name: "startIdx",
2011
+ type: "uint64"
2012
+ },
2013
+ {
2014
+ internalType: "bytes",
2015
+ name: "paymentTxId",
2016
+ type: "bytes"
2017
+ },
2018
+ {
2019
+ internalType: "bytes",
2020
+ name: "signature",
2021
+ type: "bytes"
2022
+ }
2023
+ ],
2024
+ internalType: "struct ITypes.BundlePayment",
2025
+ name: "bundle",
2026
+ type: "tuple"
2027
+ }
2028
+ ],
2029
+ name: "bundlePayment",
2030
+ outputs: [],
2031
+ stateMutability: "nonpayable",
2032
+ type: "function"
2033
+ },
2034
+ {
2035
+ inputs: [
2036
+ {
2037
+ internalType: "bytes32",
2038
+ name: "tradeId",
2039
+ type: "bytes32"
2040
+ },
2041
+ {
2042
+ internalType: "bytes",
2043
+ name: "signature",
2044
+ type: "bytes"
2045
+ },
2046
+ {
2047
+ internalType: "bytes[]",
2048
+ name: "depositFromList",
2049
+ type: "bytes[]"
2050
+ }
2051
+ ],
2052
+ name: "confirmDeposit",
2053
+ outputs: [],
2054
+ stateMutability: "nonpayable",
2055
+ type: "function"
2056
+ },
2057
+ {
2058
+ inputs: [
2059
+ {
2060
+ internalType: "bytes32",
2061
+ name: "tradeId",
2062
+ type: "bytes32"
2063
+ },
2064
+ {
2065
+ internalType: "bytes",
2066
+ name: "signature",
2067
+ type: "bytes"
2068
+ }
2069
+ ],
2070
+ name: "confirmPayment",
2071
+ outputs: [],
2072
+ stateMutability: "nonpayable",
2073
+ type: "function"
2074
+ },
2075
+ {
2076
+ inputs: [
2077
+ {
2078
+ internalType: "bytes32",
2079
+ name: "tradeId",
2080
+ type: "bytes32"
2081
+ },
2082
+ {
2083
+ internalType: "bytes",
2084
+ name: "releaseTxId",
2085
+ type: "bytes"
2086
+ },
2087
+ {
2088
+ internalType: "bytes",
2089
+ name: "signature",
2090
+ type: "bytes"
2091
+ }
2092
+ ],
2093
+ name: "confirmSettlement",
2094
+ outputs: [],
2095
+ stateMutability: "nonpayable",
2096
+ type: "function"
2097
+ },
2098
+ {
2099
+ inputs: [
2100
+ {
2101
+ internalType: "bytes32",
2102
+ name: "tradeId",
2103
+ type: "bytes32"
2104
+ }
2105
+ ],
2106
+ name: "getAffiliateInfo",
2107
+ outputs: [
2108
+ {
2109
+ components: [
2110
+ {
2111
+ internalType: "uint256",
2112
+ name: "aggregatedValue",
2113
+ type: "uint256"
2114
+ },
2115
+ {
2116
+ internalType: "string",
2117
+ name: "schema",
2118
+ type: "string"
2119
+ },
2120
+ {
2121
+ internalType: "bytes",
2122
+ name: "data",
2123
+ type: "bytes"
2124
+ }
2125
+ ],
2126
+ internalType: "struct ITypes.Affiliate",
2127
+ name: "",
2128
+ type: "tuple"
2129
+ }
2130
+ ],
2131
+ stateMutability: "view",
2132
+ type: "function"
2133
+ },
2134
+ {
2135
+ inputs: [
2136
+ {
2137
+ internalType: "bytes32",
2138
+ name: "tradeId",
2139
+ type: "bytes32"
2140
+ }
2141
+ ],
2142
+ name: "getCurrentStage",
2143
+ outputs: [
2144
+ {
2145
+ internalType: "uint256",
2146
+ name: "",
2147
+ type: "uint256"
2148
+ }
2149
+ ],
2150
+ stateMutability: "view",
2151
+ type: "function"
2152
+ },
2153
+ {
2154
+ inputs: [
2155
+ {
2156
+ internalType: "bytes32",
2157
+ name: "tradeId",
2158
+ type: "bytes32"
2159
+ }
2160
+ ],
2161
+ name: "getDepositAddressList",
2162
+ outputs: [
2163
+ {
2164
+ internalType: "bytes[]",
2165
+ name: "",
2166
+ type: "bytes[]"
2167
+ }
2168
+ ],
2169
+ stateMutability: "view",
2170
+ type: "function"
2171
+ },
2172
+ {
2173
+ inputs: [
2174
+ {
2175
+ internalType: "bytes32",
2176
+ name: "tradeId",
2177
+ type: "bytes32"
2178
+ }
2179
+ ],
2180
+ name: "getFeeDetails",
2181
+ outputs: [
2182
+ {
2183
+ components: [
2184
+ {
2185
+ internalType: "uint256",
2186
+ name: "totalAmount",
2187
+ type: "uint256"
2188
+ },
2189
+ {
2190
+ internalType: "uint256",
2191
+ name: "pFeeAmount",
2192
+ type: "uint256"
2193
+ },
2194
+ {
2195
+ internalType: "uint256",
2196
+ name: "aFeeAmount",
2197
+ type: "uint256"
2198
+ },
2199
+ {
2200
+ internalType: "uint128",
2201
+ name: "pFeeRate",
2202
+ type: "uint128"
2203
+ },
2204
+ {
2205
+ internalType: "uint128",
2206
+ name: "aFeeRate",
2207
+ type: "uint128"
2208
+ }
2209
+ ],
2210
+ internalType: "struct ITypes.FeeDetails",
2211
+ name: "",
2212
+ type: "tuple"
2213
+ }
2214
+ ],
2215
+ stateMutability: "view",
2216
+ type: "function"
2217
+ },
2218
+ {
2219
+ inputs: [
2220
+ {
2221
+ internalType: "bytes",
2222
+ name: "fromChain",
2223
+ type: "bytes"
2224
+ },
2225
+ {
2226
+ internalType: "bytes",
2227
+ name: "toChain",
2228
+ type: "bytes"
2229
+ }
2230
+ ],
2231
+ name: "getHandler",
2232
+ outputs: [
2233
+ {
2234
+ internalType: "address",
2235
+ name: "handler",
2236
+ type: "address"
2237
+ },
2238
+ {
2239
+ internalType: "string",
2240
+ name: "handlerType",
2241
+ type: "string"
2242
+ }
2243
+ ],
2244
+ stateMutability: "view",
2245
+ type: "function"
2246
+ },
2247
+ {
2248
+ inputs: [
2249
+ {
2250
+ internalType: "bytes32",
2251
+ name: "tradeId",
2252
+ type: "bytes32"
2253
+ }
2254
+ ],
2255
+ name: "getHandlerOf",
2256
+ outputs: [
2257
+ {
2258
+ internalType: "address",
2259
+ name: "handler",
2260
+ type: "address"
2261
+ },
2262
+ {
2263
+ internalType: "string",
2264
+ name: "handlerType",
2265
+ type: "string"
2266
+ }
2267
+ ],
2268
+ stateMutability: "view",
2269
+ type: "function"
2270
+ },
2271
+ {
2272
+ inputs: [
2273
+ {
2274
+ internalType: "bytes32",
2275
+ name: "tradeId",
2276
+ type: "bytes32"
2277
+ }
2278
+ ],
2279
+ name: "getLastSignedPayment",
2280
+ outputs: [
2281
+ {
2282
+ internalType: "uint64",
2283
+ name: "",
2284
+ type: "uint64"
2285
+ }
2286
+ ],
2287
+ stateMutability: "view",
2288
+ type: "function"
2289
+ },
2290
+ {
2291
+ inputs: [
2292
+ {
2293
+ internalType: "bytes",
2294
+ name: "networkId",
2295
+ type: "bytes"
2296
+ }
2297
+ ],
2298
+ name: "getLatestMPCInfo",
2299
+ outputs: [
2300
+ {
2301
+ components: [
2302
+ {
2303
+ internalType: "address",
2304
+ name: "mpcL2Address",
2305
+ type: "address"
2306
+ },
2307
+ {
2308
+ internalType: "uint64",
2309
+ name: "expireTime",
2310
+ type: "uint64"
2311
+ },
2312
+ {
2313
+ internalType: "bytes",
2314
+ name: "mpcL2Pubkey",
2315
+ type: "bytes"
2316
+ },
2317
+ {
2318
+ internalType: "bytes",
2319
+ name: "mpcAssetPubkey",
2320
+ type: "bytes"
2321
+ }
2322
+ ],
2323
+ internalType: "struct ITypes.MPCInfo",
2324
+ name: "",
2325
+ type: "tuple"
2326
+ }
2327
+ ],
2328
+ stateMutability: "view",
2329
+ type: "function"
2330
+ },
2331
+ {
2332
+ inputs: [
2333
+ {
2334
+ internalType: "bytes",
2335
+ name: "networkId",
2336
+ type: "bytes"
2337
+ },
2338
+ {
2339
+ internalType: "bytes",
2340
+ name: "pubkey",
2341
+ type: "bytes"
2342
+ }
2343
+ ],
2344
+ name: "getMPCInfo",
2345
+ outputs: [
2346
+ {
2347
+ components: [
2348
+ {
2349
+ internalType: "address",
2350
+ name: "mpcL2Address",
2351
+ type: "address"
2352
+ },
2353
+ {
2354
+ internalType: "uint64",
2355
+ name: "expireTime",
2356
+ type: "uint64"
2357
+ },
2358
+ {
2359
+ internalType: "bytes",
2360
+ name: "mpcL2Pubkey",
2361
+ type: "bytes"
2362
+ },
2363
+ {
2364
+ internalType: "bytes",
2365
+ name: "mpcAssetPubkey",
2366
+ type: "bytes"
2367
+ }
2368
+ ],
2369
+ internalType: "struct ITypes.MPCInfo",
2370
+ name: "info",
2371
+ type: "tuple"
2372
+ }
2373
+ ],
2374
+ stateMutability: "view",
2375
+ type: "function"
2376
+ },
2377
+ {
2378
+ inputs: [],
2379
+ name: "getManagementOwner",
2380
+ outputs: [
2381
+ {
2382
+ internalType: "address",
2383
+ name: "",
2384
+ type: "address"
2385
+ }
2386
+ ],
2387
+ stateMutability: "view",
2388
+ type: "function"
2389
+ },
2390
+ {
2391
+ inputs: [
2392
+ {
2393
+ internalType: "bytes",
2394
+ name: "fromChain",
2395
+ type: "bytes"
2396
+ },
2397
+ {
2398
+ internalType: "bytes",
2399
+ name: "toChain",
2400
+ type: "bytes"
2401
+ }
2402
+ ],
2403
+ name: "getMaxAffiliateFeeRate",
2404
+ outputs: [
2405
+ {
2406
+ internalType: "uint256",
2407
+ name: "",
2408
+ type: "uint256"
2409
+ }
2410
+ ],
2411
+ stateMutability: "view",
2412
+ type: "function"
2413
+ },
2414
+ {
2415
+ inputs: [],
2416
+ name: "getPFeeRate",
2417
+ outputs: [
2418
+ {
2419
+ internalType: "uint256",
2420
+ name: "",
2421
+ type: "uint256"
2422
+ }
2423
+ ],
2424
+ stateMutability: "view",
2425
+ type: "function"
2426
+ },
2427
+ {
2428
+ inputs: [
2429
+ {
2430
+ internalType: "bytes32",
2431
+ name: "pmmId",
2432
+ type: "bytes32"
2433
+ },
2434
+ {
2435
+ internalType: "uint256",
2436
+ name: "fromIdx",
2437
+ type: "uint256"
2438
+ },
2439
+ {
2440
+ internalType: "uint256",
2441
+ name: "toIdx",
2442
+ type: "uint256"
2443
+ }
2444
+ ],
2445
+ name: "getPMMAccounts",
2446
+ outputs: [
2447
+ {
2448
+ internalType: "address[]",
2449
+ name: "list",
2450
+ type: "address[]"
2451
+ }
2452
+ ],
2453
+ stateMutability: "view",
2454
+ type: "function"
2455
+ },
2456
+ {
2457
+ inputs: [
2458
+ {
2459
+ internalType: "bytes32",
2460
+ name: "tradeId",
2461
+ type: "bytes32"
2462
+ }
2463
+ ],
2464
+ name: "getPMMSelection",
2465
+ outputs: [
2466
+ {
2467
+ components: [
2468
+ {
2469
+ components: [
2470
+ {
2471
+ internalType: "uint256",
2472
+ name: "minAmountOut",
2473
+ type: "uint256"
2474
+ },
2475
+ {
2476
+ internalType: "uint64",
2477
+ name: "tradeTimeout",
2478
+ type: "uint64"
2479
+ },
2480
+ {
2481
+ internalType: "bytes",
2482
+ name: "rfqInfoSignature",
2483
+ type: "bytes"
2484
+ }
2485
+ ],
2486
+ internalType: "struct ITypes.RFQInfo",
2487
+ name: "rfqInfo",
2488
+ type: "tuple"
2489
+ },
2490
+ {
2491
+ components: [
2492
+ {
2493
+ internalType: "uint256",
2494
+ name: "amountOut",
2495
+ type: "uint256"
2496
+ },
2497
+ {
2498
+ internalType: "bytes32",
2499
+ name: "selectedPMMId",
2500
+ type: "bytes32"
2501
+ },
2502
+ {
2503
+ internalType: "bytes[2]",
2504
+ name: "info",
2505
+ type: "bytes[2]"
2506
+ },
2507
+ {
2508
+ internalType: "uint64",
2509
+ name: "sigExpiry",
2510
+ type: "uint64"
2511
+ }
2512
+ ],
2513
+ internalType: "struct ITypes.SelectedPMMInfo",
2514
+ name: "pmmInfo",
2515
+ type: "tuple"
2516
+ }
2517
+ ],
2518
+ internalType: "struct ITypes.PMMSelection",
2519
+ name: "",
2520
+ type: "tuple"
2521
+ }
2522
+ ],
2523
+ stateMutability: "view",
2524
+ type: "function"
2525
+ },
2526
+ {
2527
+ inputs: [
2528
+ {
2529
+ internalType: "bytes32",
2530
+ name: "tradeId",
2531
+ type: "bytes32"
2532
+ }
2533
+ ],
2534
+ name: "getPresigns",
2535
+ outputs: [
2536
+ {
2537
+ components: [
2538
+ {
2539
+ internalType: "bytes32",
2540
+ name: "pmmId",
2541
+ type: "bytes32"
2542
+ },
2543
+ {
2544
+ internalType: "bytes",
2545
+ name: "pmmRecvAddress",
2546
+ type: "bytes"
2547
+ },
2548
+ {
2549
+ internalType: "bytes[]",
2550
+ name: "presigns",
2551
+ type: "bytes[]"
2552
+ }
2553
+ ],
2554
+ internalType: "struct ITypes.Presign[]",
2555
+ name: "",
2556
+ type: "tuple[]"
2557
+ }
2558
+ ],
2559
+ stateMutability: "view",
2560
+ type: "function"
2561
+ },
2562
+ {
2563
+ inputs: [],
2564
+ name: "getProtocolState",
2565
+ outputs: [
2566
+ {
2567
+ internalType: "uint256",
2568
+ name: "",
2569
+ type: "uint256"
2570
+ }
2571
+ ],
2572
+ stateMutability: "view",
2573
+ type: "function"
2574
+ },
2575
+ {
2576
+ inputs: [
2577
+ {
2578
+ internalType: "bytes32",
2579
+ name: "tradeId",
2580
+ type: "bytes32"
2581
+ }
2582
+ ],
2583
+ name: "getSettledPayment",
2584
+ outputs: [
2585
+ {
2586
+ components: [
2587
+ {
2588
+ internalType: "bytes32",
2589
+ name: "bundlerHash",
2590
+ type: "bytes32"
2591
+ },
2592
+ {
2593
+ internalType: "bytes",
2594
+ name: "paymentTxId",
2595
+ type: "bytes"
2596
+ },
2597
+ {
2598
+ internalType: "bytes",
2599
+ name: "releaseTxId",
2600
+ type: "bytes"
2601
+ },
2602
+ {
2603
+ internalType: "bool",
2604
+ name: "isConfirmed",
2605
+ type: "bool"
2606
+ }
2607
+ ],
2608
+ internalType: "struct ITypes.SettledPayment",
2609
+ name: "",
2610
+ type: "tuple"
2611
+ }
2612
+ ],
2613
+ stateMutability: "view",
2614
+ type: "function"
2615
+ },
2616
+ {
2617
+ inputs: [
2618
+ {
2619
+ internalType: "uint256",
2620
+ name: "fromIdx",
2621
+ type: "uint256"
2622
+ },
2623
+ {
2624
+ internalType: "uint256",
2625
+ name: "toIdx",
2626
+ type: "uint256"
2627
+ }
2628
+ ],
2629
+ name: "getTokens",
2630
+ outputs: [
2631
+ {
2632
+ components: [
2633
+ {
2634
+ internalType: "bytes[5]",
2635
+ name: "info",
2636
+ type: "bytes[5]"
2637
+ },
2638
+ {
2639
+ internalType: "uint256",
2640
+ name: "decimals",
2641
+ type: "uint256"
2642
+ }
2643
+ ],
2644
+ internalType: "struct ITypes.TokenInfo[]",
2645
+ name: "list",
2646
+ type: "tuple[]"
2647
+ }
2648
+ ],
2649
+ stateMutability: "view",
2650
+ type: "function"
2651
+ },
2652
+ {
2653
+ inputs: [
2654
+ {
2655
+ internalType: "bytes32",
2656
+ name: "tradeId",
2657
+ type: "bytes32"
2658
+ }
2659
+ ],
2660
+ name: "getTradeData",
2661
+ outputs: [
2662
+ {
2663
+ components: [
2664
+ {
2665
+ internalType: "uint256",
2666
+ name: "sessionId",
2667
+ type: "uint256"
2668
+ },
2669
+ {
2670
+ components: [
2671
+ {
2672
+ internalType: "uint256",
2673
+ name: "amountIn",
2674
+ type: "uint256"
2675
+ },
2676
+ {
2677
+ internalType: "bytes[3]",
2678
+ name: "fromChain",
2679
+ type: "bytes[3]"
2680
+ },
2681
+ {
2682
+ internalType: "bytes[3]",
2683
+ name: "toChain",
2684
+ type: "bytes[3]"
2685
+ }
2686
+ ],
2687
+ internalType: "struct ITypes.TradeInfo",
2688
+ name: "tradeInfo",
2689
+ type: "tuple"
2690
+ },
2691
+ {
2692
+ components: [
2693
+ {
2694
+ internalType: "bytes[5]",
2695
+ name: "depositInfo",
2696
+ type: "bytes[5]"
2697
+ },
2698
+ {
2699
+ internalType: "address",
2700
+ name: "userEphemeralL2Address",
2701
+ type: "address"
2702
+ },
2703
+ {
2704
+ internalType: "uint64",
2705
+ name: "scriptTimeout",
2706
+ type: "uint64"
2707
+ }
2708
+ ],
2709
+ internalType: "struct ITypes.ScriptInfo",
2710
+ name: "scriptInfo",
2711
+ type: "tuple"
2712
+ }
2713
+ ],
2714
+ internalType: "struct ITypes.TradeData",
2715
+ name: "",
2716
+ type: "tuple"
2717
+ }
2718
+ ],
2719
+ stateMutability: "view",
2720
+ type: "function"
2721
+ },
2722
+ {
2723
+ inputs: [
2724
+ {
2725
+ internalType: "address",
2726
+ name: "account",
2727
+ type: "address"
2728
+ }
2729
+ ],
2730
+ name: "isMPCNode",
2731
+ outputs: [
2732
+ {
2733
+ internalType: "bool",
2734
+ name: "",
2735
+ type: "bool"
2736
+ }
2737
+ ],
2738
+ stateMutability: "view",
2739
+ type: "function"
2740
+ },
2741
+ {
2742
+ inputs: [
2743
+ {
2744
+ internalType: "address",
2745
+ name: "account",
2746
+ type: "address"
2747
+ }
2748
+ ],
2749
+ name: "isSolver",
2750
+ outputs: [
2751
+ {
2752
+ internalType: "bool",
2753
+ name: "",
2754
+ type: "bool"
2755
+ }
2756
+ ],
2757
+ stateMutability: "view",
2758
+ type: "function"
2759
+ },
2760
+ {
2761
+ inputs: [
2762
+ {
2763
+ internalType: "enum ITypes.STAGE",
2764
+ name: "stage",
2765
+ type: "uint8"
2766
+ }
2767
+ ],
2768
+ name: "isSuspended",
2769
+ outputs: [
2770
+ {
2771
+ internalType: "bool",
2772
+ name: "",
2773
+ type: "bool"
2774
+ }
2775
+ ],
2776
+ stateMutability: "view",
2777
+ type: "function"
2778
+ },
2779
+ {
2780
+ inputs: [
2781
+ {
2782
+ internalType: "bytes",
2783
+ name: "networkId",
2784
+ type: "bytes"
2785
+ }
2786
+ ],
2787
+ name: "isValidNetwork",
2788
+ outputs: [
2789
+ {
2790
+ internalType: "bool",
2791
+ name: "",
2792
+ type: "bool"
2793
+ }
2794
+ ],
2795
+ stateMutability: "view",
2796
+ type: "function"
2797
+ },
2798
+ {
2799
+ inputs: [
2800
+ {
2801
+ internalType: "bytes32",
2802
+ name: "pmmId",
2803
+ type: "bytes32"
2804
+ }
2805
+ ],
2806
+ name: "isValidPMM",
2807
+ outputs: [
2808
+ {
2809
+ internalType: "bool",
2810
+ name: "",
2811
+ type: "bool"
2812
+ }
2813
+ ],
2814
+ stateMutability: "view",
2815
+ type: "function"
2816
+ },
2817
+ {
2818
+ inputs: [
2819
+ {
2820
+ internalType: "bytes32",
2821
+ name: "pmmId",
2822
+ type: "bytes32"
2823
+ },
2824
+ {
2825
+ internalType: "address",
2826
+ name: "account",
2827
+ type: "address"
2828
+ }
2829
+ ],
2830
+ name: "isValidPMMAccount",
2831
+ outputs: [
2832
+ {
2833
+ internalType: "bool",
2834
+ name: "",
2835
+ type: "bool"
2836
+ }
2837
+ ],
2838
+ stateMutability: "view",
2839
+ type: "function"
2840
+ },
2841
+ {
2842
+ inputs: [
2843
+ {
2844
+ internalType: "bytes",
2845
+ name: "networkId",
2846
+ type: "bytes"
2847
+ },
2848
+ {
2849
+ internalType: "bytes",
2850
+ name: "pubkey",
2851
+ type: "bytes"
2852
+ }
2853
+ ],
2854
+ name: "isValidPubkey",
2855
+ outputs: [
2856
+ {
2857
+ internalType: "bool",
2858
+ name: "",
2859
+ type: "bool"
2860
+ }
2861
+ ],
2862
+ stateMutability: "view",
2863
+ type: "function"
2864
+ },
2865
+ {
2866
+ inputs: [
2867
+ {
2868
+ internalType: "bytes",
2869
+ name: "networkId",
2870
+ type: "bytes"
2871
+ },
2872
+ {
2873
+ internalType: "bytes",
2874
+ name: "tokenId",
2875
+ type: "bytes"
2876
+ }
2877
+ ],
2878
+ name: "isValidToken",
2879
+ outputs: [
2880
+ {
2881
+ internalType: "bool",
2882
+ name: "",
2883
+ type: "bool"
2884
+ }
2885
+ ],
2886
+ stateMutability: "view",
2887
+ type: "function"
2888
+ },
2889
+ {
2890
+ inputs: [],
2891
+ name: "management",
2892
+ outputs: [
2893
+ {
2894
+ internalType: "contract IManagement",
2895
+ name: "",
2896
+ type: "address"
2897
+ }
2898
+ ],
2899
+ stateMutability: "view",
2900
+ type: "function"
2901
+ },
2902
+ {
2903
+ inputs: [
2904
+ {
2905
+ internalType: "bytes32",
2906
+ name: "pmmId",
2907
+ type: "bytes32"
2908
+ }
2909
+ ],
2910
+ name: "numOfPMMAccounts",
2911
+ outputs: [
2912
+ {
2913
+ internalType: "uint256",
2914
+ name: "",
2915
+ type: "uint256"
2916
+ }
2917
+ ],
2918
+ stateMutability: "view",
2919
+ type: "function"
2920
+ },
2921
+ {
2922
+ inputs: [],
2923
+ name: "numOfSupportedTokens",
2924
+ outputs: [
2925
+ {
2926
+ internalType: "uint256",
2927
+ name: "",
2928
+ type: "uint256"
2929
+ }
2930
+ ],
2931
+ stateMutability: "view",
2932
+ type: "function"
2933
+ },
2934
+ {
2935
+ inputs: [
2936
+ {
2937
+ internalType: "bytes32",
2938
+ name: "tradeId",
2939
+ type: "bytes32"
2940
+ },
2941
+ {
2942
+ components: [
2943
+ {
2944
+ components: [
2945
+ {
2946
+ internalType: "uint256",
2947
+ name: "minAmountOut",
2948
+ type: "uint256"
2949
+ },
2950
+ {
2951
+ internalType: "uint64",
2952
+ name: "tradeTimeout",
2953
+ type: "uint64"
2954
+ },
2955
+ {
2956
+ internalType: "bytes",
2957
+ name: "rfqInfoSignature",
2958
+ type: "bytes"
2959
+ }
2960
+ ],
2961
+ internalType: "struct ITypes.RFQInfo",
2962
+ name: "rfqInfo",
2963
+ type: "tuple"
2964
+ },
2965
+ {
2966
+ components: [
2967
+ {
2968
+ internalType: "uint256",
2969
+ name: "amountOut",
2970
+ type: "uint256"
2971
+ },
2972
+ {
2973
+ internalType: "bytes32",
2974
+ name: "selectedPMMId",
2975
+ type: "bytes32"
2976
+ },
2977
+ {
2978
+ internalType: "bytes[2]",
2979
+ name: "info",
2980
+ type: "bytes[2]"
2981
+ },
2982
+ {
2983
+ internalType: "uint64",
2984
+ name: "sigExpiry",
2985
+ type: "uint64"
2986
+ }
2987
+ ],
2988
+ internalType: "struct ITypes.SelectedPMMInfo",
2989
+ name: "pmmInfo",
2990
+ type: "tuple"
2991
+ }
2992
+ ],
2993
+ internalType: "struct ITypes.PMMSelection",
2994
+ name: "info",
2995
+ type: "tuple"
2996
+ }
2997
+ ],
2998
+ name: "selectPMM",
2999
+ outputs: [],
3000
+ stateMutability: "nonpayable",
3001
+ type: "function"
3002
+ },
3003
+ {
3004
+ inputs: [
3005
+ {
3006
+ internalType: "address",
3007
+ name: "newManagement",
3008
+ type: "address"
3009
+ }
3010
+ ],
3011
+ name: "setManagement",
3012
+ outputs: [],
3013
+ stateMutability: "nonpayable",
3014
+ type: "function"
3015
+ },
3016
+ {
3017
+ inputs: [
3018
+ {
3019
+ internalType: "address",
3020
+ name: "core",
3021
+ type: "address"
3022
+ },
3023
+ {
3024
+ internalType: "bytes",
3025
+ name: "fromChain",
3026
+ type: "bytes"
3027
+ },
3028
+ {
3029
+ internalType: "bytes",
3030
+ name: "toChain",
3031
+ type: "bytes"
3032
+ }
3033
+ ],
3034
+ name: "setRoute",
3035
+ outputs: [],
3036
+ stateMutability: "nonpayable",
3037
+ type: "function"
3038
+ },
3039
+ {
3040
+ inputs: [
3041
+ {
3042
+ internalType: "bytes32",
3043
+ name: "tradeId",
3044
+ type: "bytes32"
3045
+ },
3046
+ {
3047
+ components: [
3048
+ {
3049
+ internalType: "uint256",
3050
+ name: "sessionId",
3051
+ type: "uint256"
3052
+ },
3053
+ {
3054
+ components: [
3055
+ {
3056
+ internalType: "uint256",
3057
+ name: "amountIn",
3058
+ type: "uint256"
3059
+ },
3060
+ {
3061
+ internalType: "bytes[3]",
3062
+ name: "fromChain",
3063
+ type: "bytes[3]"
3064
+ },
3065
+ {
3066
+ internalType: "bytes[3]",
3067
+ name: "toChain",
3068
+ type: "bytes[3]"
3069
+ }
3070
+ ],
3071
+ internalType: "struct ITypes.TradeInfo",
3072
+ name: "tradeInfo",
3073
+ type: "tuple"
3074
+ },
3075
+ {
3076
+ components: [
3077
+ {
3078
+ internalType: "bytes[5]",
3079
+ name: "depositInfo",
3080
+ type: "bytes[5]"
3081
+ },
3082
+ {
3083
+ internalType: "address",
3084
+ name: "userEphemeralL2Address",
3085
+ type: "address"
3086
+ },
3087
+ {
3088
+ internalType: "uint64",
3089
+ name: "scriptTimeout",
3090
+ type: "uint64"
3091
+ }
3092
+ ],
3093
+ internalType: "struct ITypes.ScriptInfo",
3094
+ name: "scriptInfo",
3095
+ type: "tuple"
3096
+ }
3097
+ ],
3098
+ internalType: "struct ITypes.TradeData",
3099
+ name: "tradeData",
3100
+ type: "tuple"
3101
+ },
3102
+ {
3103
+ components: [
3104
+ {
3105
+ internalType: "uint256",
3106
+ name: "aggregatedValue",
3107
+ type: "uint256"
3108
+ },
3109
+ {
3110
+ internalType: "string",
3111
+ name: "schema",
3112
+ type: "string"
3113
+ },
3114
+ {
3115
+ internalType: "bytes",
3116
+ name: "data",
3117
+ type: "bytes"
3118
+ }
3119
+ ],
3120
+ internalType: "struct ITypes.Affiliate",
3121
+ name: "affiliateInfo",
3122
+ type: "tuple"
3123
+ },
3124
+ {
3125
+ components: [
3126
+ {
3127
+ internalType: "bytes32",
3128
+ name: "pmmId",
3129
+ type: "bytes32"
3130
+ },
3131
+ {
3132
+ internalType: "bytes",
3133
+ name: "pmmRecvAddress",
3134
+ type: "bytes"
3135
+ },
3136
+ {
3137
+ internalType: "bytes[]",
3138
+ name: "presigns",
3139
+ type: "bytes[]"
3140
+ }
3141
+ ],
3142
+ internalType: "struct ITypes.Presign[]",
3143
+ name: "presignList",
3144
+ type: "tuple[]"
3145
+ }
3146
+ ],
3147
+ name: "submitTrade",
3148
+ outputs: [],
3149
+ stateMutability: "nonpayable",
3150
+ type: "function"
3151
+ },
3152
+ {
3153
+ inputs: [
3154
+ {
3155
+ internalType: "address",
3156
+ name: "",
3157
+ type: "address"
3158
+ }
3159
+ ],
3160
+ name: "version",
3161
+ outputs: [
3162
+ {
3163
+ internalType: "uint256",
3164
+ name: "",
3165
+ type: "uint256"
3166
+ }
3167
+ ],
3168
+ stateMutability: "view",
3169
+ type: "function"
3170
+ }
3171
+ ];
3172
+ var Router__factory = class {
3173
+ static createInterface() {
3174
+ return new import_ethers3.Interface(_abi3);
3175
+ }
3176
+ static connect(address, runner) {
3177
+ return new import_ethers3.Contract(address, _abi3, runner);
3178
+ }
3179
+ };
3180
+ Router__factory.abi = _abi3;
3181
+
3182
+ // src/contracts/contract/factories/Signer__factory.ts
3183
+ var import_ethers4 = require("ethers");
3184
+ var _abi4 = [
3185
+ {
3186
+ inputs: [],
3187
+ stateMutability: "nonpayable",
3188
+ type: "constructor"
3189
+ },
3190
+ {
3191
+ inputs: [],
3192
+ name: "ECDSAInvalidSignature",
3193
+ type: "error"
3194
+ },
3195
+ {
3196
+ inputs: [
3197
+ {
3198
+ internalType: "uint256",
3199
+ name: "length",
3200
+ type: "uint256"
3201
+ }
3202
+ ],
3203
+ name: "ECDSAInvalidSignatureLength",
3204
+ type: "error"
3205
+ },
3206
+ {
3207
+ inputs: [
3208
+ {
3209
+ internalType: "bytes32",
3210
+ name: "s",
3211
+ type: "bytes32"
3212
+ }
3213
+ ],
3214
+ name: "ECDSAInvalidSignatureS",
3215
+ type: "error"
3216
+ },
3217
+ {
3218
+ inputs: [],
3219
+ name: "InvalidShortString",
3220
+ type: "error"
3221
+ },
3222
+ {
3223
+ inputs: [
3224
+ {
3225
+ internalType: "string",
3226
+ name: "str",
3227
+ type: "string"
3228
+ }
3229
+ ],
3230
+ name: "StringTooLong",
3231
+ type: "error"
3232
+ },
3233
+ {
3234
+ anonymous: false,
3235
+ inputs: [],
3236
+ name: "EIP712DomainChanged",
3237
+ type: "event"
3238
+ },
3239
+ {
3240
+ inputs: [],
3241
+ name: "eip712Domain",
3242
+ outputs: [
3243
+ {
3244
+ internalType: "bytes1",
3245
+ name: "fields",
3246
+ type: "bytes1"
3247
+ },
3248
+ {
3249
+ internalType: "string",
3250
+ name: "name",
3251
+ type: "string"
3252
+ },
3253
+ {
3254
+ internalType: "string",
3255
+ name: "version",
3256
+ type: "string"
3257
+ },
3258
+ {
3259
+ internalType: "uint256",
3260
+ name: "chainId",
3261
+ type: "uint256"
3262
+ },
3263
+ {
3264
+ internalType: "address",
3265
+ name: "verifyingContract",
3266
+ type: "address"
3267
+ },
3268
+ {
3269
+ internalType: "bytes32",
3270
+ name: "salt",
3271
+ type: "bytes32"
3272
+ },
3273
+ {
3274
+ internalType: "uint256[]",
3275
+ name: "extensions",
3276
+ type: "uint256[]"
3277
+ }
3278
+ ],
3279
+ stateMutability: "view",
3280
+ type: "function"
3281
+ },
3282
+ {
3283
+ inputs: [
3284
+ {
3285
+ internalType: "bytes32",
3286
+ name: "tradeId",
3287
+ type: "bytes32"
3288
+ },
3289
+ {
3290
+ internalType: "bytes32",
3291
+ name: "infoHash",
3292
+ type: "bytes32"
3293
+ },
3294
+ {
3295
+ internalType: "bytes",
3296
+ name: "signature",
3297
+ type: "bytes"
3298
+ }
3299
+ ],
3300
+ name: "getDepositConfirmationSigner",
3301
+ outputs: [
3302
+ {
3303
+ internalType: "address",
3304
+ name: "signer",
3305
+ type: "address"
3306
+ }
3307
+ ],
3308
+ stateMutability: "view",
3309
+ type: "function"
3310
+ },
3311
+ {
3312
+ inputs: [
3313
+ {
3314
+ internalType: "bytes32",
3315
+ name: "infoHash",
3316
+ type: "bytes32"
3317
+ },
3318
+ {
3319
+ internalType: "bytes",
3320
+ name: "signature",
3321
+ type: "bytes"
3322
+ }
3323
+ ],
3324
+ name: "getMakePaymentSigner",
3325
+ outputs: [
3326
+ {
3327
+ internalType: "address",
3328
+ name: "signer",
3329
+ type: "address"
3330
+ }
3331
+ ],
3332
+ stateMutability: "view",
3333
+ type: "function"
3334
+ },
3335
+ {
3336
+ inputs: [
3337
+ {
3338
+ internalType: "bytes32",
3339
+ name: "tradeId",
3340
+ type: "bytes32"
3341
+ },
3342
+ {
3343
+ internalType: "bytes32",
3344
+ name: "infoHash",
3345
+ type: "bytes32"
3346
+ },
3347
+ {
3348
+ internalType: "bytes",
3349
+ name: "signature",
3350
+ type: "bytes"
3351
+ }
3352
+ ],
3353
+ name: "getPMMSelectionSigner",
3354
+ outputs: [
3355
+ {
3356
+ internalType: "address",
3357
+ name: "signer",
3358
+ type: "address"
3359
+ }
3360
+ ],
3361
+ stateMutability: "view",
3362
+ type: "function"
3363
+ },
3364
+ {
3365
+ inputs: [
3366
+ {
3367
+ internalType: "bytes32",
3368
+ name: "tradeId",
3369
+ type: "bytes32"
3370
+ },
3371
+ {
3372
+ internalType: "bytes32",
3373
+ name: "infoHash",
3374
+ type: "bytes32"
3375
+ },
3376
+ {
3377
+ internalType: "bytes",
3378
+ name: "signature",
3379
+ type: "bytes"
3380
+ }
3381
+ ],
3382
+ name: "getPaymentConfirmationSigner",
3383
+ outputs: [
3384
+ {
3385
+ internalType: "address",
3386
+ name: "signer",
3387
+ type: "address"
3388
+ }
3389
+ ],
3390
+ stateMutability: "view",
3391
+ type: "function"
3392
+ },
3393
+ {
3394
+ inputs: [
3395
+ {
3396
+ internalType: "bytes32",
3397
+ name: "tradeId",
3398
+ type: "bytes32"
3399
+ },
3400
+ {
3401
+ internalType: "bytes32",
3402
+ name: "infoHash",
3403
+ type: "bytes32"
3404
+ },
3405
+ {
3406
+ internalType: "bytes",
3407
+ name: "signature",
3408
+ type: "bytes"
3409
+ }
3410
+ ],
3411
+ name: "getRFQSigner",
3412
+ outputs: [
3413
+ {
3414
+ internalType: "address",
3415
+ name: "signer",
3416
+ type: "address"
3417
+ }
3418
+ ],
3419
+ stateMutability: "view",
3420
+ type: "function"
3421
+ },
3422
+ {
3423
+ inputs: [
3424
+ {
3425
+ internalType: "bytes32",
3426
+ name: "tradeId",
3427
+ type: "bytes32"
3428
+ },
3429
+ {
3430
+ internalType: "bytes32",
3431
+ name: "infoHash",
3432
+ type: "bytes32"
3433
+ },
3434
+ {
3435
+ internalType: "bytes",
3436
+ name: "signature",
3437
+ type: "bytes"
3438
+ }
3439
+ ],
3440
+ name: "getSettlementConfirmationSigner",
3441
+ outputs: [
3442
+ {
3443
+ internalType: "address",
3444
+ name: "signer",
3445
+ type: "address"
3446
+ }
3447
+ ],
3448
+ stateMutability: "view",
3449
+ type: "function"
3450
+ }
3451
+ ];
3452
+ var Signer__factory = class {
3453
+ static createInterface() {
3454
+ return new import_ethers4.Interface(_abi4);
3455
+ }
3456
+ static connect(address, runner) {
3457
+ return new import_ethers4.Contract(address, _abi4, runner);
3458
+ }
3459
+ };
3460
+ Signer__factory.abi = _abi4;
3461
+
3462
+ // src/services/router.service.ts
3463
+ var import_ethers5 = require("ethers");
3464
+ var RouterService = class {
3465
+ constructor() {
3466
+ this.provider = new import_ethers5.JsonRpcProvider(config.getRpcUrl());
3467
+ this.contract = Router__factory.connect(config.getRouterAddress(), this.provider);
3468
+ }
3469
+ async getSigner() {
3470
+ return await this.contract.SIGNER();
3471
+ }
3472
+ async getCurrentPubkey(network) {
3473
+ return this.contract.getLatestMPCInfo(import_ethers5.ethers.toUtf8Bytes(network));
3474
+ }
3475
+ async getCurrentStage(tradeId) {
3476
+ return await this.contract.getCurrentStage(tradeId);
3477
+ }
3478
+ async getDepositAddressList(tradeId) {
3479
+ return await this.contract.getDepositAddressList(tradeId);
3480
+ }
3481
+ async getHandler(fromChain, toChain) {
3482
+ return await this.contract.getHandler(fromChain, toChain);
3483
+ }
3484
+ async getPFeeRate() {
3485
+ return await this.contract.getPFeeRate();
3486
+ }
3487
+ async getPMMSelection(tradeId) {
3488
+ return await this.contract.getPMMSelection(tradeId);
3489
+ }
3490
+ async getPresigns(tradeId) {
3491
+ return await this.contract.getPresigns(tradeId);
3492
+ }
3493
+ async getProtocolState() {
3494
+ return await this.contract.getProtocolState();
3495
+ }
3496
+ async getFeeDetails(tradeId) {
3497
+ return await this.contract.getFeeDetails(tradeId);
3498
+ }
3499
+ async getSettledPayment(tradeId) {
3500
+ return await this.contract.getSettledPayment(tradeId);
3501
+ }
3502
+ async getTokens(fromIdx, toIdx) {
3503
+ return await this.contract.getTokens(fromIdx, toIdx);
3504
+ }
3505
+ async getTradeData(tradeId) {
3506
+ return await this.contract.getTradeData(tradeId);
3507
+ }
3508
+ async isMPCNode(account) {
3509
+ return await this.contract.isMPCNode(account);
3510
+ }
3511
+ async isSolver(account) {
3512
+ return await this.contract.isSolver(account);
3513
+ }
3514
+ async isSuspended(stage) {
3515
+ return await this.contract.isSuspended(stage);
3516
+ }
3517
+ async isValidNetwork(networkId) {
3518
+ return await this.contract.isValidNetwork(networkId);
3519
+ }
3520
+ async isValidPMM(pmmId) {
3521
+ return await this.contract.isValidPMM(pmmId);
3522
+ }
3523
+ async isValidPMMAccount(pmmId, account) {
3524
+ return await this.contract.isValidPMMAccount(pmmId, account);
3525
+ }
3526
+ async isValidToken(networkId, tokenId) {
3527
+ return await this.contract.isValidToken(networkId, tokenId);
3528
+ }
3529
+ async getManagement() {
3530
+ return await this.contract.management();
3531
+ }
3532
+ async getNumOfSupportedTokens() {
3533
+ return await this.contract.numOfSupportedTokens();
3534
+ }
3535
+ async getVersion(address) {
3536
+ return await this.contract.version(address);
3537
+ }
3538
+ };
3539
+ var routerService = new RouterService();
3540
+
3541
+ // src/services/signer.service.ts
3542
+ var import_ethers6 = require("ethers");
3543
+ var SignerService = class {
3544
+ constructor() {
3545
+ this.routerService = routerService;
3546
+ this.provider = new import_ethers6.JsonRpcProvider(config.getRpcUrl());
3547
+ }
3548
+ async getDomain() {
3549
+ const signerAddress = await this.routerService.getSigner();
3550
+ const contract = Signer__factory.connect(signerAddress, this.provider);
3551
+ const domain = await contract.eip712Domain();
3552
+ return {
3553
+ name: domain.name,
3554
+ version: domain.version,
3555
+ chainId: domain.chainId,
3556
+ verifyingContract: domain.verifyingContract
3557
+ };
3558
+ }
3559
+ };
3560
+ var signerService = new SignerService();
3561
+
3562
+ // src/services/solver.service.ts
3563
+ var import_axios = __toESM(require("axios"));
3564
+ var import_zod = require("zod");
3565
+
3566
+ // src/utils/casing.ts
3567
+ function convertToCamelCase(obj) {
3568
+ if (Array.isArray(obj)) {
3569
+ return obj.map((v) => convertToCamelCase(v));
3570
+ } else if (obj !== null && obj.constructor === Object) {
3571
+ return Object.keys(obj).reduce(
3572
+ (result, key) => ({
3573
+ ...result,
3574
+ [snakeToCamelCase(key)]: convertToCamelCase(obj[key])
3575
+ }),
3576
+ {}
3577
+ );
3578
+ }
3579
+ return obj;
3580
+ }
3581
+ function convertToSnakeCase(obj) {
3582
+ if (Array.isArray(obj)) {
3583
+ return obj.map((v) => convertToSnakeCase(v));
3584
+ } else if (obj !== null && obj.constructor === Object) {
3585
+ return Object.keys(obj).reduce(
3586
+ (result, key) => ({
3587
+ ...result,
3588
+ [camelToSnakeCase(key)]: convertToSnakeCase(obj[key])
3589
+ }),
3590
+ {}
3591
+ );
3592
+ }
3593
+ return obj;
3594
+ }
3595
+ function snakeToCamelCase(str) {
3596
+ return str.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace("-", "").replace("_", ""));
3597
+ }
3598
+ function camelToSnakeCase(str) {
3599
+ return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
3600
+ }
3601
+
3602
+ // src/utils/hex.ts
3603
+ var ensureHexPrefix = (value) => {
3604
+ return value.startsWith("0x") ? value : `0x${value}`;
3605
+ };
3606
+ var removeHexPrefix = (value) => {
3607
+ return value.startsWith("0x") ? value.slice(2) : value;
3608
+ };
3609
+
3610
+ // src/services/solver.service.ts
3611
+ var SubmitSettlementRequestSchema = import_zod.z.object({
3612
+ tradeIds: import_zod.z.array(import_zod.z.string()),
3613
+ pmmId: import_zod.z.string(),
3614
+ settlementTx: import_zod.z.string(),
3615
+ signature: import_zod.z.string(),
3616
+ startIndex: import_zod.z.number(),
3617
+ signedAt: import_zod.z.number()
3618
+ });
3619
+ var SubmitSettlementResponseSchema = import_zod.z.object({
3620
+ message: import_zod.z.string()
3621
+ });
3622
+ var SolverService = class {
3623
+ constructor() {
3624
+ this.baseURL = config.getSolverUrl();
3625
+ }
3626
+ /**
3627
+ * Submits a settlement transaction to the solver backend
3628
+ * @param params Settlement transaction parameters
3629
+ * @returns Promise with the response message
3630
+ * @throws Error if the request fails or validation fails
3631
+ */
3632
+ async submitSettlementTx(params) {
3633
+ try {
3634
+ SubmitSettlementRequestSchema.parse(params);
3635
+ const snakeCaseParams = convertToSnakeCase(params);
3636
+ const response = await import_axios.default.post(
3637
+ `${this.baseURL}/submit-settlement-tx`,
3638
+ snakeCaseParams,
3639
+ {
3640
+ headers: {
3641
+ "Content-Type": "application/json",
3642
+ Accept: "application/json"
3643
+ }
3644
+ }
3645
+ );
3646
+ return SubmitSettlementResponseSchema.parse(response.data);
3647
+ } catch (error) {
3648
+ if (import_axios.default.isAxiosError(error)) {
3649
+ throw new Error(`Failed to submit settlement transaction: ${error.message}`);
3650
+ }
3651
+ if (error instanceof import_zod.z.ZodError) {
3652
+ throw new Error(`Invalid data: ${error.message}`);
3653
+ }
3654
+ throw error;
3655
+ }
3656
+ }
3657
+ /**
3658
+ * Helper function to format and submit a single trade settlement
3659
+ * @param tradeId The ID of the trade to settle
3660
+ * @param pmmId The PMM's identifier
3661
+ * @param settlementTx The settlement transaction data
3662
+ * @param signature The PMM's signature
3663
+ */
3664
+ async submitSingleSettlement(tradeId, pmmId, settlementTx, signature, signedAt) {
3665
+ return this.submitSettlementTx({
3666
+ tradeIds: [tradeId],
3667
+ pmmId,
3668
+ settlementTx,
3669
+ signature,
3670
+ startIndex: 0,
3671
+ signedAt
3672
+ });
3673
+ }
3674
+ /**
3675
+ * Helper function to submit multiple trade settlements in one transaction
3676
+ * @param tradeIds Array of trade IDs to settle
3677
+ * @param pmmId The PMM's identifier
3678
+ * @param settlementTx The settlement transaction data
3679
+ * @param signature The PMM's signature
3680
+ * @param startIndex Starting index for batch processing
3681
+ */
3682
+ async submitBatchSettlement(tradeIds, pmmId, settlementTx, signature, signedAt, startIndex = 0) {
3683
+ return this.submitSettlementTx({
3684
+ tradeIds,
3685
+ pmmId,
3686
+ settlementTx,
3687
+ signature,
3688
+ startIndex,
3689
+ signedAt
3690
+ });
3691
+ }
3692
+ };
3693
+ var solverService = new SolverService();
3694
+
3695
+ // src/services/token.service.ts
3696
+ var import_axios2 = __toESM(require("axios"));
3697
+ var import_zod3 = require("zod");
3698
+
3699
+ // src/types/token.ts
3700
+ var import_zod2 = require("zod");
3701
+ var TokenSchema = import_zod2.z.object({
3702
+ networkId: import_zod2.z.string(),
3703
+ tokenId: import_zod2.z.string(),
3704
+ networkName: import_zod2.z.string(),
3705
+ networkSymbol: import_zod2.z.string(),
3706
+ networkType: import_zod2.z.string(),
3707
+ tokenName: import_zod2.z.string(),
3708
+ tokenSymbol: import_zod2.z.string(),
3709
+ tokenAddress: import_zod2.z.string(),
3710
+ tokenDecimals: import_zod2.z.number(),
3711
+ tokenLogoUri: import_zod2.z.string(),
3712
+ networkLogoUri: import_zod2.z.string()
3713
+ });
3714
+
3715
+ // src/services/token.service.ts
3716
+ var TokenResponseSchema = import_zod3.z.object({
3717
+ data: import_zod3.z.object({
3718
+ tokens: import_zod3.z.array(TokenSchema)
3719
+ }),
3720
+ traceId: import_zod3.z.string()
3721
+ });
3722
+ var TokenService = class {
3723
+ constructor() {
3724
+ this.baseURL = config.getBackendUrl();
3725
+ }
3726
+ /**
3727
+ * Fetches all available tokens from the API
3728
+ * @returns Promise<Token[]> Array of tokens
3729
+ * @throws Error if the API request fails or response validation fails
3730
+ */
3731
+ async getTokens() {
3732
+ try {
3733
+ const response = await import_axios2.default.get(`${this.baseURL}/v1/tokens`, {
3734
+ headers: {
3735
+ Accept: "application/json"
3736
+ }
3737
+ });
3738
+ const camelCaseData = convertToCamelCase(response.data);
3739
+ const validatedResponse = TokenResponseSchema.parse(camelCaseData);
3740
+ return validatedResponse.data.tokens;
3741
+ } catch (error) {
3742
+ if (import_axios2.default.isAxiosError(error)) {
3743
+ throw new Error(`Failed to fetch tokens: ${error.message}`);
3744
+ }
3745
+ if (error instanceof import_zod3.z.ZodError) {
3746
+ throw new Error(`Invalid token data received: ${error.message}`);
3747
+ }
3748
+ throw error;
3749
+ }
3750
+ }
3751
+ /**
3752
+ * Fetches a specific token by its token ID
3753
+ * @param tokenId Token ID to fetch
3754
+ * @returns Promise<Token> Token if found, null otherwise
3755
+ */
3756
+ async getTokenByTokenId(tokenId) {
3757
+ const tokens = await this.getTokens();
3758
+ const token = tokens.find((token2) => token2.tokenId === tokenId);
3759
+ if (!token) {
3760
+ throw new Error(`Token with tokenId ${tokenId} not found`);
3761
+ }
3762
+ return token;
3763
+ }
3764
+ /**
3765
+ * Fetches tokens by network ID
3766
+ * @param networkId Network ID to filter by
3767
+ * @returns Promise<Token[]> Array of tokens for the specified network
3768
+ */
3769
+ async getTokensByNetwork(networkId) {
3770
+ const tokens = await this.getTokens();
3771
+ return tokens.filter((token) => token.networkId === networkId);
3772
+ }
3773
+ /**
3774
+ * Finds a specific token by network ID and token address
3775
+ * @param networkId Network ID to search for
3776
+ * @param tokenAddress Token address to search for (use 'native' for native tokens)
3777
+ * @returns Promise<Token> Token if found
3778
+ * @throws Error if token is not found
3779
+ */
3780
+ async getToken(networkId, tokenAddress) {
3781
+ try {
3782
+ const tokens = await this.getTokens();
3783
+ const token = tokens.find(
3784
+ (t) => t.networkId === networkId && t.tokenAddress.toLowerCase() === tokenAddress.toLowerCase()
3785
+ );
3786
+ if (!token) {
3787
+ throw new Error(`Token not found for networkId: ${networkId} and address: ${tokenAddress}`);
3788
+ }
3789
+ return token;
3790
+ } catch (error) {
3791
+ if (error instanceof Error) {
3792
+ throw error;
3793
+ }
3794
+ throw new Error(`Failed to get token: ${error}`);
3795
+ }
3796
+ }
3797
+ };
3798
+ var tokenService = new TokenService();
3799
+
3800
+ // src/signatures/domain.ts
3801
+ async function defaultDomain(signerHelper, provider) {
3802
+ const chainId = (await provider.getNetwork()).chainId;
3803
+ const domainContract = {
3804
+ name: "BitFi",
3805
+ version: "Version 1",
3806
+ chainId,
3807
+ verifyingContract: signerHelper
3808
+ };
3809
+ return domainContract;
3810
+ }
3811
+
3812
+ // src/signatures/getInfoHash.ts
3813
+ var import_ethers7 = require("ethers");
3814
+ var abiCoder = import_ethers7.AbiCoder.defaultAbiCoder();
3815
+ function getPresignHash(pmmRecvAddress, amountIn) {
3816
+ const infoHash = (0, import_ethers7.keccak256)(abiCoder.encode(["address", "uint256"], [pmmRecvAddress, amountIn]));
3817
+ return infoHash;
3818
+ }
3819
+ function getDepositConfirmationHash(amountIn, fromChain, depositTxId, depositFromList) {
3820
+ const depositHash = (0, import_ethers7.keccak256)(
3821
+ abiCoder.encode(["uint256", "bytes[3]", "bytes[]"], [amountIn, fromChain, depositFromList])
3822
+ );
3823
+ const infoHash = (0, import_ethers7.keccak256)(abiCoder.encode(["bytes32", "bytes"], [depositHash, depositTxId]));
3824
+ return infoHash;
3825
+ }
3826
+ function getSelectPMMHash(pmmId, pmmRecvAddress, toChain, toToken, amountOut, expiry) {
3827
+ const infoHash = (0, import_ethers7.keccak256)(
3828
+ abiCoder.encode(
3829
+ ["bytes32", "bytes", "bytes", "bytes", "uint256", "uint256"],
3830
+ [pmmId, pmmRecvAddress, toChain, toToken, amountOut, expiry]
3831
+ )
3832
+ );
3833
+ return infoHash;
3834
+ }
3835
+ function getRFQHash(minAmountOut, tradeTimeout) {
3836
+ const infoHash = (0, import_ethers7.keccak256)(abiCoder.encode(["uint256", "uint256"], [minAmountOut, tradeTimeout]));
3837
+ return infoHash;
3838
+ }
3839
+ function getTradeIdsHash(tradeIds) {
3840
+ return (0, import_ethers7.keccak256)(abiCoder.encode(["bytes32[]"], [tradeIds]));
3841
+ }
3842
+ function getMakePaymentHash(tradeIds, signedAt, startIdx, paymentTxId) {
3843
+ const bundlerHash = (0, import_ethers7.keccak256)(abiCoder.encode(["bytes32[]"], [tradeIds]));
3844
+ const infoHash = (0, import_ethers7.keccak256)(
3845
+ abiCoder.encode(["uint64", "uint256", "bytes32", "bytes"], [signedAt, startIdx, bundlerHash, paymentTxId])
3846
+ );
3847
+ return infoHash;
3848
+ }
3849
+ function getBTCEVMConfirmPaymentHash(protocolFee, paymentAmount, toChain, paymentTxId) {
3850
+ const paymentHash = (0, import_ethers7.keccak256)(
3851
+ abiCoder.encode(["uint256", "uint256", "bytes[3]"], [protocolFee, paymentAmount, toChain])
3852
+ );
3853
+ const infoHash = (0, import_ethers7.keccak256)(abiCoder.encode(["bytes32", "bytes"], [paymentHash, paymentTxId]));
3854
+ return infoHash;
3855
+ }
3856
+ function getEVMBTCConfirmPaymentHash(paymentAmount, toChain, paymentTxId) {
3857
+ const paymentHash = (0, import_ethers7.keccak256)(abiCoder.encode(["uint256", "bytes[3]"], [paymentAmount, toChain]));
3858
+ const infoHash = (0, import_ethers7.keccak256)(abiCoder.encode(["bytes32", "bytes"], [paymentHash, paymentTxId]));
3859
+ return infoHash;
3860
+ }
3861
+ function getBTCEVMConfirmSettlementHash(releaseTxId) {
3862
+ const infoHash = (0, import_ethers7.keccak256)(releaseTxId);
3863
+ return infoHash;
3864
+ }
3865
+ function getEVMBTCConfirmSettlementHash(protocolFee, releaseTxId) {
3866
+ const infoHash = (0, import_ethers7.keccak256)(abiCoder.encode(["uint256", "bytes"], [protocolFee, releaseTxId]));
3867
+ return infoHash;
3868
+ }
3869
+ function getCommitInfoHash(pmmId, pmmRecvAddr, toChain, toToken, amountOut, expiry) {
3870
+ const infoHash = (0, import_ethers7.keccak256)(
3871
+ abiCoder.encode(
3872
+ ["bytes32", "bytes", "bytes", "bytes", "uint256", "uint64"],
3873
+ [pmmId, pmmRecvAddr, toChain, toToken, amountOut, expiry]
3874
+ )
3875
+ );
3876
+ return infoHash;
3877
+ }
3878
+
3879
+ // src/signatures/getSignature.ts
3880
+ var import_ethers8 = require("ethers");
3881
+
3882
+ // src/signatures/types.ts
3883
+ var presignType = {
3884
+ Presign: [
3885
+ { name: "tradeId", type: "bytes32" },
3886
+ { name: "infoHash", type: "bytes32" }
3887
+ ]
3888
+ };
3889
+ var confirmDepositType = {
3890
+ ConfirmDeposit: [
3891
+ { name: "tradeId", type: "bytes32" },
3892
+ { name: "infoHash", type: "bytes32" }
3893
+ ]
3894
+ };
3895
+ var selectionType = {
3896
+ Selection: [
3897
+ { name: "tradeId", type: "bytes32" },
3898
+ { name: "infoHash", type: "bytes32" }
3899
+ ]
3900
+ };
3901
+ var rfqAuthenticationTypes = {
3902
+ Authentication: [
3903
+ { name: "tradeId", type: "bytes32" },
3904
+ { name: "infoHash", type: "bytes32" }
3905
+ ]
3906
+ };
3907
+ var makePaymentType = {
3908
+ MakePayment: [{ name: "infoHash", type: "bytes32" }]
3909
+ };
3910
+ var confirmPaymentType = {
3911
+ ConfirmPayment: [
3912
+ { name: "tradeId", type: "bytes32" },
3913
+ { name: "infoHash", type: "bytes32" }
3914
+ ]
3915
+ };
3916
+ var confirmSettlementType = {
3917
+ ConfirmSettlement: [
3918
+ { name: "tradeId", type: "bytes32" },
3919
+ { name: "infoHash", type: "bytes32" }
3920
+ ]
3921
+ };
3922
+
3923
+ // src/signatures/getSignature.ts
3924
+ var SignatureType = /* @__PURE__ */ ((SignatureType2) => {
3925
+ SignatureType2[SignatureType2["ConfirmDeposit"] = 0] = "ConfirmDeposit";
3926
+ SignatureType2[SignatureType2["SelectPMM"] = 1] = "SelectPMM";
3927
+ SignatureType2[SignatureType2["RFQ"] = 2] = "RFQ";
3928
+ SignatureType2[SignatureType2["MakePayment"] = 3] = "MakePayment";
3929
+ SignatureType2[SignatureType2["ConfirmPayment"] = 4] = "ConfirmPayment";
3930
+ SignatureType2[SignatureType2["ConfirmSettlement"] = 5] = "ConfirmSettlement";
3931
+ SignatureType2[SignatureType2["VerifyingContract"] = 6] = "VerifyingContract";
3932
+ return SignatureType2;
3933
+ })(SignatureType || {});
3934
+ function getSignatureType(type) {
3935
+ if (type === 0 /* ConfirmDeposit */) return confirmDepositType;
3936
+ else if (type === 1 /* SelectPMM */) return selectionType;
3937
+ else if (type === 6 /* VerifyingContract */) return selectionType;
3938
+ else if (type === 2 /* RFQ */) return rfqAuthenticationTypes;
3939
+ else if (type === 3 /* MakePayment */) return makePaymentType;
3940
+ else if (type === 4 /* ConfirmPayment */) return confirmPaymentType;
3941
+ else if (type === 5 /* ConfirmSettlement */) return confirmSettlementType;
3942
+ else throw new Error("Invalid signature type!");
3943
+ }
3944
+ async function getSigner(provider, signerHelper, tradeId, infoHash, type, signature) {
3945
+ const values = { tradeId, infoHash };
3946
+ const contractDomain = await defaultDomain(signerHelper, provider);
3947
+ return (0, import_ethers8.verifyTypedData)(contractDomain, getSignatureType(type), values, signature);
3948
+ }
3949
+ async function getSignature(Signer2, provider, signerHelper, tradeId, infoHash, type, domain) {
3950
+ const contractDomain = await defaultDomain(signerHelper, provider);
3951
+ let values;
3952
+ if (type === 3 /* MakePayment */) values = { infoHash };
3953
+ else values = { tradeId, infoHash };
3954
+ return await Signer2.signTypedData(domain ?? contractDomain, getSignatureType(type), values);
3955
+ }
3956
+ // Annotate the CommonJS export names for ESM import in node:
3957
+ 0 && (module.exports = {
3958
+ ERC20__factory,
3959
+ Payment__factory,
3960
+ RouterService,
3961
+ Router__factory,
3962
+ SignatureType,
3963
+ SignerService,
3964
+ Signer__factory,
3965
+ SolverService,
3966
+ TokenSchema,
3967
+ TokenService,
3968
+ camelToSnakeCase,
3969
+ config,
3970
+ confirmDepositType,
3971
+ confirmPaymentType,
3972
+ confirmSettlementType,
3973
+ convertToCamelCase,
3974
+ convertToSnakeCase,
3975
+ ensureHexPrefix,
3976
+ factories,
3977
+ getBTCEVMConfirmPaymentHash,
3978
+ getBTCEVMConfirmSettlementHash,
3979
+ getCommitInfoHash,
3980
+ getDepositConfirmationHash,
3981
+ getEVMBTCConfirmPaymentHash,
3982
+ getEVMBTCConfirmSettlementHash,
3983
+ getMakePaymentHash,
3984
+ getPresignHash,
3985
+ getRFQHash,
3986
+ getSelectPMMHash,
3987
+ getSignature,
3988
+ getSigner,
3989
+ getTradeIdsHash,
3990
+ makePaymentType,
3991
+ presignType,
3992
+ removeHexPrefix,
3993
+ rfqAuthenticationTypes,
3994
+ routerService,
3995
+ selectionType,
3996
+ signerService,
3997
+ snakeToCamelCase,
3998
+ solverService,
3999
+ tokenService
4000
+ });