@avalabs/bridge-unified 1.0.1 → 2.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.
Files changed (76) hide show
  1. package/.turbo/turbo-build.log +10 -10
  2. package/.turbo/turbo-lint.log +1 -1
  3. package/.turbo/turbo-test.log +25 -0
  4. package/CHANGELOG.md +12 -0
  5. package/README.md +137 -71
  6. package/dist/index.cjs +11 -3
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.d.cts +207 -34
  9. package/dist/index.d.ts +207 -34
  10. package/dist/index.js +4 -3
  11. package/dist/index.js.map +1 -1
  12. package/jest.config.js +9 -0
  13. package/package.json +15 -9
  14. package/src/bridges/cctp/__mocks__/asset.mock.ts +15 -0
  15. package/src/bridges/cctp/__mocks__/bridge-transfer.mock.ts +48 -0
  16. package/src/bridges/cctp/__mocks__/chain.mocks.ts +31 -0
  17. package/src/bridges/cctp/__mocks__/config.mock.ts +42 -0
  18. package/src/bridges/cctp/abis/erc20.ts +117 -0
  19. package/src/bridges/cctp/abis/message-transmitter.ts +318 -0
  20. package/src/bridges/cctp/abis/token-router.ts +843 -0
  21. package/src/bridges/cctp/factory.test.ts +73 -0
  22. package/src/bridges/cctp/factory.ts +32 -0
  23. package/src/bridges/cctp/handlers/get-assets.test.ts +47 -0
  24. package/src/bridges/cctp/handlers/get-assets.ts +27 -0
  25. package/src/bridges/cctp/handlers/get-fees.test.ts +61 -0
  26. package/src/bridges/cctp/handlers/get-fees.ts +26 -0
  27. package/src/bridges/cctp/handlers/track-transfer.test.ts +775 -0
  28. package/src/bridges/cctp/handlers/track-transfer.ts +365 -0
  29. package/src/bridges/cctp/handlers/transfer-asset.test.ts +429 -0
  30. package/src/bridges/cctp/handlers/transfer-asset.ts +179 -0
  31. package/src/bridges/cctp/index.ts +1 -0
  32. package/src/bridges/cctp/types/chain.ts +4 -0
  33. package/src/bridges/cctp/types/config.ts +19 -0
  34. package/src/bridges/cctp/utils/config.test.ts +49 -0
  35. package/src/bridges/cctp/utils/config.ts +36 -0
  36. package/src/bridges/cctp/utils/transfer-data.test.ts +83 -0
  37. package/src/bridges/cctp/utils/transfer-data.ts +48 -0
  38. package/src/errors/bridge-error.ts +11 -0
  39. package/src/errors/bridge-initialization-error.ts +9 -0
  40. package/src/errors/bridge-unavailable-error.ts +9 -0
  41. package/src/errors/index.ts +4 -20
  42. package/src/errors/invalid-params-error.ts +9 -0
  43. package/src/index.ts +3 -1
  44. package/src/types/asset.ts +26 -0
  45. package/src/types/bridge.ts +63 -0
  46. package/src/types/chain.ts +10 -0
  47. package/src/types/config.ts +10 -0
  48. package/src/types/environment.ts +4 -0
  49. package/src/types/error.ts +19 -0
  50. package/src/types/index.ts +9 -0
  51. package/src/types/provider.ts +12 -0
  52. package/src/types/signer.ts +18 -0
  53. package/src/types/transfer.ts +35 -0
  54. package/src/unified-bridge-service.test.ts +208 -0
  55. package/src/unified-bridge-service.ts +90 -0
  56. package/src/utils/bridge-types.test.ts +103 -0
  57. package/src/utils/bridge-types.ts +32 -0
  58. package/src/utils/caip2.test.ts +44 -0
  59. package/src/utils/caip2.ts +41 -0
  60. package/src/utils/client.test.ts +97 -0
  61. package/src/utils/client.ts +44 -0
  62. package/src/utils/ensure-config.test.ts +43 -0
  63. package/src/utils/ensure-config.ts +12 -0
  64. package/src/utils/index.ts +2 -0
  65. package/src/utils/network-fee.test.ts +24 -0
  66. package/src/utils/network-fee.ts +6 -0
  67. package/src/utils/retry-promise.test.ts +115 -0
  68. package/src/utils/retry-promise.ts +72 -0
  69. package/src/utils/wait.test.ts +33 -0
  70. package/src/utils/wait.ts +4 -0
  71. package/tsconfig.jest.json +7 -0
  72. package/tsconfig.json +2 -1
  73. package/src/bridge-service.ts +0 -18
  74. package/src/handlers/get-bridge-router.ts +0 -25
  75. package/src/handlers/submit-and-watch-bridge-transaction.ts +0 -1
  76. package/src/handlers/submit-bridge-transaction-step.ts +0 -22
@@ -0,0 +1,843 @@
1
+ export const TOKEN_ROUTER_ABI = [
2
+ {
3
+ inputs: [
4
+ {
5
+ internalType: 'address',
6
+ name: 'circleTokenMessenger_',
7
+ type: 'address',
8
+ },
9
+ {
10
+ internalType: 'address',
11
+ name: 'burnToken_',
12
+ type: 'address',
13
+ },
14
+ ],
15
+ stateMutability: 'nonpayable',
16
+ type: 'constructor',
17
+ },
18
+ {
19
+ inputs: [],
20
+ name: 'AlreadyAdmin',
21
+ type: 'error',
22
+ },
23
+ {
24
+ inputs: [],
25
+ name: 'AlreadyFeeCollector',
26
+ type: 'error',
27
+ },
28
+ {
29
+ inputs: [],
30
+ name: 'AlreadySupportedBurnToken',
31
+ type: 'error',
32
+ },
33
+ {
34
+ inputs: [],
35
+ name: 'AmountLessThanFee',
36
+ type: 'error',
37
+ },
38
+ {
39
+ inputs: [],
40
+ name: 'BalanceNotIncreased',
41
+ type: 'error',
42
+ },
43
+ {
44
+ inputs: [],
45
+ name: 'CannotRemoveLastAdmin',
46
+ type: 'error',
47
+ },
48
+ {
49
+ inputs: [],
50
+ name: 'FeePercentageGreaterThanMax',
51
+ type: 'error',
52
+ },
53
+ {
54
+ inputs: [],
55
+ name: 'InvalidAdminAddress',
56
+ type: 'error',
57
+ },
58
+ {
59
+ inputs: [],
60
+ name: 'InvalidFeeCollector',
61
+ type: 'error',
62
+ },
63
+ {
64
+ inputs: [],
65
+ name: 'InvalidMintRecipientAddress',
66
+ type: 'error',
67
+ },
68
+ {
69
+ inputs: [],
70
+ name: 'InvalidTokenAddress',
71
+ type: 'error',
72
+ },
73
+ {
74
+ inputs: [],
75
+ name: 'InvalidTokenMessengerAddress',
76
+ type: 'error',
77
+ },
78
+ {
79
+ inputs: [],
80
+ name: 'MaxFeeLessThanMinFee',
81
+ type: 'error',
82
+ },
83
+ {
84
+ inputs: [],
85
+ name: 'NotAdmin',
86
+ type: 'error',
87
+ },
88
+ {
89
+ inputs: [],
90
+ name: 'NotFeeCollector',
91
+ type: 'error',
92
+ },
93
+ {
94
+ inputs: [],
95
+ name: 'UnSupportedBurnToken',
96
+ type: 'error',
97
+ },
98
+ {
99
+ inputs: [],
100
+ name: 'UnsupportedDomain',
101
+ type: 'error',
102
+ },
103
+ {
104
+ anonymous: false,
105
+ inputs: [
106
+ {
107
+ indexed: false,
108
+ internalType: 'address',
109
+ name: 'admin',
110
+ type: 'address',
111
+ },
112
+ ],
113
+ name: 'AdminAdded',
114
+ type: 'event',
115
+ },
116
+ {
117
+ anonymous: false,
118
+ inputs: [
119
+ {
120
+ indexed: false,
121
+ internalType: 'address',
122
+ name: 'admin',
123
+ type: 'address',
124
+ },
125
+ ],
126
+ name: 'AdminRemoved',
127
+ type: 'event',
128
+ },
129
+ {
130
+ anonymous: false,
131
+ inputs: [
132
+ {
133
+ indexed: false,
134
+ internalType: 'address',
135
+ name: 'token',
136
+ type: 'address',
137
+ },
138
+ ],
139
+ name: 'BurnTokenAdded',
140
+ type: 'event',
141
+ },
142
+ {
143
+ anonymous: false,
144
+ inputs: [
145
+ {
146
+ indexed: false,
147
+ internalType: 'address',
148
+ name: 'token',
149
+ type: 'address',
150
+ },
151
+ ],
152
+ name: 'BurnTokenRemoved',
153
+ type: 'event',
154
+ },
155
+ {
156
+ anonymous: false,
157
+ inputs: [
158
+ {
159
+ indexed: false,
160
+ internalType: 'address',
161
+ name: 'feeCollector',
162
+ type: 'address',
163
+ },
164
+ ],
165
+ name: 'FeeCollectorAdded',
166
+ type: 'event',
167
+ },
168
+ {
169
+ anonymous: false,
170
+ inputs: [
171
+ {
172
+ indexed: false,
173
+ internalType: 'address',
174
+ name: 'feeCollector',
175
+ type: 'address',
176
+ },
177
+ ],
178
+ name: 'FeeCollectorRemoved',
179
+ type: 'event',
180
+ },
181
+ {
182
+ anonymous: false,
183
+ inputs: [
184
+ {
185
+ indexed: false,
186
+ internalType: 'uint32',
187
+ name: 'domain',
188
+ type: 'uint32',
189
+ },
190
+ {
191
+ components: [
192
+ {
193
+ internalType: 'uint256',
194
+ name: 'maxFee',
195
+ type: 'uint256',
196
+ },
197
+ {
198
+ internalType: 'uint256',
199
+ name: 'minFee',
200
+ type: 'uint256',
201
+ },
202
+ {
203
+ internalType: 'uint32',
204
+ name: 'feePercentage',
205
+ type: 'uint32',
206
+ },
207
+ {
208
+ internalType: 'uint256',
209
+ name: 'txnFee',
210
+ type: 'uint256',
211
+ },
212
+ {
213
+ internalType: 'bool',
214
+ name: 'supported',
215
+ type: 'bool',
216
+ },
217
+ ],
218
+ indexed: false,
219
+ internalType: 'struct FeeCalculator.FeeConfiguration',
220
+ name: 'feeConfiguration',
221
+ type: 'tuple',
222
+ },
223
+ ],
224
+ name: 'FeeConfigurationUpdated',
225
+ type: 'event',
226
+ },
227
+ {
228
+ anonymous: false,
229
+ inputs: [
230
+ {
231
+ indexed: true,
232
+ internalType: 'address',
233
+ name: 'previousOwner',
234
+ type: 'address',
235
+ },
236
+ {
237
+ indexed: true,
238
+ internalType: 'address',
239
+ name: 'newOwner',
240
+ type: 'address',
241
+ },
242
+ ],
243
+ name: 'OwnershipTransferred',
244
+ type: 'event',
245
+ },
246
+ {
247
+ anonymous: false,
248
+ inputs: [
249
+ {
250
+ indexed: false,
251
+ internalType: 'address',
252
+ name: 'account',
253
+ type: 'address',
254
+ },
255
+ ],
256
+ name: 'Paused',
257
+ type: 'event',
258
+ },
259
+ {
260
+ anonymous: false,
261
+ inputs: [
262
+ {
263
+ indexed: false,
264
+ internalType: 'uint64',
265
+ name: 'nonce',
266
+ type: 'uint64',
267
+ },
268
+ {
269
+ indexed: false,
270
+ internalType: 'address',
271
+ name: 'burnToken',
272
+ type: 'address',
273
+ },
274
+ {
275
+ indexed: false,
276
+ internalType: 'uint256',
277
+ name: 'amount',
278
+ type: 'uint256',
279
+ },
280
+ {
281
+ indexed: false,
282
+ internalType: 'address',
283
+ name: 'depositor',
284
+ type: 'address',
285
+ },
286
+ {
287
+ indexed: false,
288
+ internalType: 'address',
289
+ name: 'mintRecipient',
290
+ type: 'address',
291
+ },
292
+ {
293
+ indexed: false,
294
+ internalType: 'uint32',
295
+ name: 'destinationDomain',
296
+ type: 'uint32',
297
+ },
298
+ {
299
+ indexed: false,
300
+ internalType: 'uint256',
301
+ name: 'totalFee',
302
+ type: 'uint256',
303
+ },
304
+ ],
305
+ name: 'TransferTokens',
306
+ type: 'event',
307
+ },
308
+ {
309
+ anonymous: false,
310
+ inputs: [
311
+ {
312
+ indexed: false,
313
+ internalType: 'address',
314
+ name: 'account',
315
+ type: 'address',
316
+ },
317
+ ],
318
+ name: 'Unpaused',
319
+ type: 'event',
320
+ },
321
+ {
322
+ inputs: [
323
+ {
324
+ internalType: 'address',
325
+ name: 'account',
326
+ type: 'address',
327
+ },
328
+ ],
329
+ name: 'addAdmin',
330
+ outputs: [],
331
+ stateMutability: 'nonpayable',
332
+ type: 'function',
333
+ },
334
+ {
335
+ inputs: [
336
+ {
337
+ internalType: 'address',
338
+ name: 'feeCollector',
339
+ type: 'address',
340
+ },
341
+ ],
342
+ name: 'addFeeCollector',
343
+ outputs: [],
344
+ stateMutability: 'nonpayable',
345
+ type: 'function',
346
+ },
347
+ {
348
+ inputs: [
349
+ {
350
+ internalType: 'address',
351
+ name: 'token',
352
+ type: 'address',
353
+ },
354
+ ],
355
+ name: 'addSupportedBurnToken',
356
+ outputs: [],
357
+ stateMutability: 'nonpayable',
358
+ type: 'function',
359
+ },
360
+ {
361
+ inputs: [
362
+ {
363
+ internalType: 'uint256',
364
+ name: 'amount',
365
+ type: 'uint256',
366
+ },
367
+ {
368
+ internalType: 'uint32',
369
+ name: 'destinationDomain',
370
+ type: 'uint32',
371
+ },
372
+ ],
373
+ name: 'calculateFee',
374
+ outputs: [
375
+ {
376
+ internalType: 'uint256',
377
+ name: '',
378
+ type: 'uint256',
379
+ },
380
+ ],
381
+ stateMutability: 'view',
382
+ type: 'function',
383
+ },
384
+ {
385
+ inputs: [],
386
+ name: 'circleTokenMessenger',
387
+ outputs: [
388
+ {
389
+ internalType: 'contract ICircleTokenMessenger',
390
+ name: '',
391
+ type: 'address',
392
+ },
393
+ ],
394
+ stateMutability: 'view',
395
+ type: 'function',
396
+ },
397
+ {
398
+ inputs: [],
399
+ name: 'circleTokenMessengerAddress',
400
+ outputs: [
401
+ {
402
+ internalType: 'address',
403
+ name: '',
404
+ type: 'address',
405
+ },
406
+ ],
407
+ stateMutability: 'view',
408
+ type: 'function',
409
+ },
410
+ {
411
+ inputs: [
412
+ {
413
+ internalType: 'address',
414
+ name: 'token',
415
+ type: 'address',
416
+ },
417
+ ],
418
+ name: 'collectFees',
419
+ outputs: [
420
+ {
421
+ internalType: 'bool',
422
+ name: '',
423
+ type: 'bool',
424
+ },
425
+ ],
426
+ stateMutability: 'nonpayable',
427
+ type: 'function',
428
+ },
429
+ {
430
+ inputs: [
431
+ {
432
+ internalType: 'address',
433
+ name: 'token',
434
+ type: 'address',
435
+ },
436
+ ],
437
+ name: 'getFeeAmounts',
438
+ outputs: [
439
+ {
440
+ internalType: 'uint256',
441
+ name: '',
442
+ type: 'uint256',
443
+ },
444
+ ],
445
+ stateMutability: 'view',
446
+ type: 'function',
447
+ },
448
+ {
449
+ inputs: [
450
+ {
451
+ internalType: 'uint32',
452
+ name: 'domain',
453
+ type: 'uint32',
454
+ },
455
+ ],
456
+ name: 'getFeeConfiguration',
457
+ outputs: [
458
+ {
459
+ components: [
460
+ {
461
+ internalType: 'uint256',
462
+ name: 'maxFee',
463
+ type: 'uint256',
464
+ },
465
+ {
466
+ internalType: 'uint256',
467
+ name: 'minFee',
468
+ type: 'uint256',
469
+ },
470
+ {
471
+ internalType: 'uint32',
472
+ name: 'feePercentage',
473
+ type: 'uint32',
474
+ },
475
+ {
476
+ internalType: 'uint256',
477
+ name: 'txnFee',
478
+ type: 'uint256',
479
+ },
480
+ {
481
+ internalType: 'bool',
482
+ name: 'supported',
483
+ type: 'bool',
484
+ },
485
+ ],
486
+ internalType: 'struct FeeCalculator.FeeConfiguration',
487
+ name: '',
488
+ type: 'tuple',
489
+ },
490
+ ],
491
+ stateMutability: 'view',
492
+ type: 'function',
493
+ },
494
+ {
495
+ inputs: [
496
+ {
497
+ internalType: 'uint32',
498
+ name: 'domain',
499
+ type: 'uint32',
500
+ },
501
+ ],
502
+ name: 'getFeePercentage',
503
+ outputs: [
504
+ {
505
+ internalType: 'uint32',
506
+ name: '',
507
+ type: 'uint32',
508
+ },
509
+ ],
510
+ stateMutability: 'view',
511
+ type: 'function',
512
+ },
513
+ {
514
+ inputs: [
515
+ {
516
+ internalType: 'uint32',
517
+ name: 'domain',
518
+ type: 'uint32',
519
+ },
520
+ ],
521
+ name: 'getMaxFee',
522
+ outputs: [
523
+ {
524
+ internalType: 'uint256',
525
+ name: '',
526
+ type: 'uint256',
527
+ },
528
+ ],
529
+ stateMutability: 'view',
530
+ type: 'function',
531
+ },
532
+ {
533
+ inputs: [
534
+ {
535
+ internalType: 'uint32',
536
+ name: 'domain',
537
+ type: 'uint32',
538
+ },
539
+ ],
540
+ name: 'getMinFee',
541
+ outputs: [
542
+ {
543
+ internalType: 'uint256',
544
+ name: '',
545
+ type: 'uint256',
546
+ },
547
+ ],
548
+ stateMutability: 'view',
549
+ type: 'function',
550
+ },
551
+ {
552
+ inputs: [
553
+ {
554
+ internalType: 'uint32',
555
+ name: 'domain',
556
+ type: 'uint32',
557
+ },
558
+ ],
559
+ name: 'getTxnFee',
560
+ outputs: [
561
+ {
562
+ internalType: 'uint256',
563
+ name: '',
564
+ type: 'uint256',
565
+ },
566
+ ],
567
+ stateMutability: 'view',
568
+ type: 'function',
569
+ },
570
+ {
571
+ inputs: [
572
+ {
573
+ internalType: 'address',
574
+ name: 'account',
575
+ type: 'address',
576
+ },
577
+ ],
578
+ name: 'isAdmin',
579
+ outputs: [
580
+ {
581
+ internalType: 'bool',
582
+ name: '',
583
+ type: 'bool',
584
+ },
585
+ ],
586
+ stateMutability: 'view',
587
+ type: 'function',
588
+ },
589
+ {
590
+ inputs: [
591
+ {
592
+ internalType: 'address',
593
+ name: 'account',
594
+ type: 'address',
595
+ },
596
+ ],
597
+ name: 'isFeeCollector',
598
+ outputs: [
599
+ {
600
+ internalType: 'bool',
601
+ name: '',
602
+ type: 'bool',
603
+ },
604
+ ],
605
+ stateMutability: 'view',
606
+ type: 'function',
607
+ },
608
+ {
609
+ inputs: [
610
+ {
611
+ internalType: 'address',
612
+ name: 'token',
613
+ type: 'address',
614
+ },
615
+ ],
616
+ name: 'isSupportedBurnToken',
617
+ outputs: [
618
+ {
619
+ internalType: 'bool',
620
+ name: '',
621
+ type: 'bool',
622
+ },
623
+ ],
624
+ stateMutability: 'view',
625
+ type: 'function',
626
+ },
627
+ {
628
+ inputs: [
629
+ {
630
+ internalType: 'uint32',
631
+ name: 'domain',
632
+ type: 'uint32',
633
+ },
634
+ ],
635
+ name: 'isSupportedDomain',
636
+ outputs: [
637
+ {
638
+ internalType: 'bool',
639
+ name: '',
640
+ type: 'bool',
641
+ },
642
+ ],
643
+ stateMutability: 'view',
644
+ type: 'function',
645
+ },
646
+ {
647
+ inputs: [],
648
+ name: 'owner',
649
+ outputs: [
650
+ {
651
+ internalType: 'address',
652
+ name: '',
653
+ type: 'address',
654
+ },
655
+ ],
656
+ stateMutability: 'view',
657
+ type: 'function',
658
+ },
659
+ {
660
+ inputs: [],
661
+ name: 'pause',
662
+ outputs: [],
663
+ stateMutability: 'nonpayable',
664
+ type: 'function',
665
+ },
666
+ {
667
+ inputs: [],
668
+ name: 'paused',
669
+ outputs: [
670
+ {
671
+ internalType: 'bool',
672
+ name: '',
673
+ type: 'bool',
674
+ },
675
+ ],
676
+ stateMutability: 'view',
677
+ type: 'function',
678
+ },
679
+ {
680
+ inputs: [
681
+ {
682
+ internalType: 'address',
683
+ name: 'account',
684
+ type: 'address',
685
+ },
686
+ ],
687
+ name: 'removeAdmin',
688
+ outputs: [],
689
+ stateMutability: 'nonpayable',
690
+ type: 'function',
691
+ },
692
+ {
693
+ inputs: [
694
+ {
695
+ internalType: 'address',
696
+ name: 'feeCollector',
697
+ type: 'address',
698
+ },
699
+ ],
700
+ name: 'removeFeeCollector',
701
+ outputs: [],
702
+ stateMutability: 'nonpayable',
703
+ type: 'function',
704
+ },
705
+ {
706
+ inputs: [
707
+ {
708
+ internalType: 'address',
709
+ name: 'token',
710
+ type: 'address',
711
+ },
712
+ ],
713
+ name: 'removeSupportedBurnToken',
714
+ outputs: [],
715
+ stateMutability: 'nonpayable',
716
+ type: 'function',
717
+ },
718
+ {
719
+ inputs: [],
720
+ name: 'renounceOwnership',
721
+ outputs: [],
722
+ stateMutability: 'nonpayable',
723
+ type: 'function',
724
+ },
725
+ {
726
+ inputs: [
727
+ {
728
+ internalType: 'uint32',
729
+ name: 'domain',
730
+ type: 'uint32',
731
+ },
732
+ {
733
+ components: [
734
+ {
735
+ internalType: 'uint256',
736
+ name: 'maxFee',
737
+ type: 'uint256',
738
+ },
739
+ {
740
+ internalType: 'uint256',
741
+ name: 'minFee',
742
+ type: 'uint256',
743
+ },
744
+ {
745
+ internalType: 'uint32',
746
+ name: 'feePercentage',
747
+ type: 'uint32',
748
+ },
749
+ {
750
+ internalType: 'uint256',
751
+ name: 'txnFee',
752
+ type: 'uint256',
753
+ },
754
+ {
755
+ internalType: 'bool',
756
+ name: 'supported',
757
+ type: 'bool',
758
+ },
759
+ ],
760
+ internalType: 'struct FeeCalculator.FeeConfiguration',
761
+ name: 'feeConfiguration',
762
+ type: 'tuple',
763
+ },
764
+ ],
765
+ name: 'setFeeConfiguration',
766
+ outputs: [],
767
+ stateMutability: 'nonpayable',
768
+ type: 'function',
769
+ },
770
+ {
771
+ inputs: [
772
+ {
773
+ internalType: 'address',
774
+ name: '',
775
+ type: 'address',
776
+ },
777
+ ],
778
+ name: 'supportedBurnTokens',
779
+ outputs: [
780
+ {
781
+ internalType: 'bool',
782
+ name: '',
783
+ type: 'bool',
784
+ },
785
+ ],
786
+ stateMutability: 'view',
787
+ type: 'function',
788
+ },
789
+ {
790
+ inputs: [
791
+ {
792
+ internalType: 'address',
793
+ name: 'newOwner',
794
+ type: 'address',
795
+ },
796
+ ],
797
+ name: 'transferOwnership',
798
+ outputs: [],
799
+ stateMutability: 'nonpayable',
800
+ type: 'function',
801
+ },
802
+ {
803
+ inputs: [
804
+ {
805
+ internalType: 'uint256',
806
+ name: 'amount',
807
+ type: 'uint256',
808
+ },
809
+ {
810
+ internalType: 'uint32',
811
+ name: 'destinationDomain',
812
+ type: 'uint32',
813
+ },
814
+ {
815
+ internalType: 'address',
816
+ name: 'mintRecipient',
817
+ type: 'address',
818
+ },
819
+ {
820
+ internalType: 'address',
821
+ name: 'burnToken',
822
+ type: 'address',
823
+ },
824
+ ],
825
+ name: 'transferTokens',
826
+ outputs: [
827
+ {
828
+ internalType: 'uint64',
829
+ name: 'nonce',
830
+ type: 'uint64',
831
+ },
832
+ ],
833
+ stateMutability: 'nonpayable',
834
+ type: 'function',
835
+ },
836
+ {
837
+ inputs: [],
838
+ name: 'unpause',
839
+ outputs: [],
840
+ stateMutability: 'nonpayable',
841
+ type: 'function',
842
+ },
843
+ ] as const;