@uniswap/universal-router-sdk 4.23.0 → 4.24.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.
@@ -94,6 +94,8 @@ var CommandType;
94
94
  CommandType[CommandType["V4_INITIALIZE_POOL"] = 19] = "V4_INITIALIZE_POOL";
95
95
  CommandType[CommandType["V4_POSITION_MANAGER_CALL"] = 20] = "V4_POSITION_MANAGER_CALL";
96
96
  CommandType[CommandType["EXECUTE_SUB_PLAN"] = 33] = "EXECUTE_SUB_PLAN";
97
+ // 3rd party integrations (0x40-0x5f range)
98
+ CommandType[CommandType["ACROSS_V4_DEPOSIT_V3"] = 64] = "ACROSS_V4_DEPOSIT_V3";
97
99
  })(CommandType || (CommandType = {}));
98
100
  var Subparser;
99
101
  (function (Subparser) {
@@ -315,6 +317,48 @@ var COMMAND_DEFINITION = (_COMMAND_DEFINITION = {}, _COMMAND_DEFINITION[CommandT
315
317
  parser: Parser.V3Actions
316
318
  }, _COMMAND_DEFINITION[CommandType.V4_POSITION_MANAGER_CALL] = {
317
319
  parser: Parser.V4Actions
320
+ }, _COMMAND_DEFINITION[CommandType.ACROSS_V4_DEPOSIT_V3] = {
321
+ parser: Parser.Abi,
322
+ params: [{
323
+ name: 'depositor',
324
+ type: 'address'
325
+ }, {
326
+ name: 'recipient',
327
+ type: 'address'
328
+ }, {
329
+ name: 'inputToken',
330
+ type: 'address'
331
+ }, {
332
+ name: 'outputToken',
333
+ type: 'address'
334
+ }, {
335
+ name: 'inputAmount',
336
+ type: 'uint256'
337
+ }, {
338
+ name: 'outputAmount',
339
+ type: 'uint256'
340
+ }, {
341
+ name: 'destinationChainId',
342
+ type: 'uint256'
343
+ }, {
344
+ name: 'exclusiveRelayer',
345
+ type: 'address'
346
+ }, {
347
+ name: 'quoteTimestamp',
348
+ type: 'uint32'
349
+ }, {
350
+ name: 'fillDeadline',
351
+ type: 'uint32'
352
+ }, {
353
+ name: 'exclusivityDeadline',
354
+ type: 'uint32'
355
+ }, {
356
+ name: 'message',
357
+ type: 'bytes'
358
+ }, {
359
+ name: 'useNative',
360
+ type: 'bool'
361
+ }]
318
362
  }, _COMMAND_DEFINITION);
319
363
  var RoutePlanner = /*#__PURE__*/function () {
320
364
  function RoutePlanner() {
@@ -340,6 +384,15 @@ var RoutePlanner = /*#__PURE__*/function () {
340
384
  }
341
385
  this.commands = this.commands.concat(command.type.toString(16).padStart(2, '0'));
342
386
  return this;
387
+ }
388
+ /**
389
+ * Add Across bridge deposit command for cross-chain bridging
390
+ * @param params AcrossV4DepositV3Params containing bridge parameters
391
+ * @returns RoutePlanner instance for chaining
392
+ */;
393
+ _proto.addAcrossBridge = function addAcrossBridge(params) {
394
+ this.addCommand(CommandType.ACROSS_V4_DEPOSIT_V3, [params.depositor, params.recipient, params.inputToken, params.outputToken, params.inputAmount, params.outputAmount, params.destinationChainId, params.exclusiveRelayer, params.quoteTimestamp, params.fillDeadline, params.exclusivityDeadline, params.message, params.useNative]);
395
+ return this;
343
396
  };
344
397
  return RoutePlanner;
345
398
  }();
@@ -397,6 +450,7 @@ var UniversalRouterVersion;
397
450
  (function (UniversalRouterVersion) {
398
451
  UniversalRouterVersion["V1_2"] = "1.2";
399
452
  UniversalRouterVersion["V2_0"] = "2.0";
453
+ UniversalRouterVersion["V2_1"] = "2.1";
400
454
  })(UniversalRouterVersion || (UniversalRouterVersion = {}));
401
455
  var WETH_NOT_SUPPORTED_ON_CHAIN = '0x0000000000000000000000000000000000000000';
402
456
  // Todo: Change `CHAIN_CONFIGS` to pull the UR address with v4
@@ -407,7 +461,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
407
461
  creationBlock: 17143817
408
462
  }, _routerConfigs[UniversalRouterVersion.V2_0] = {
409
463
  address: '0x66a9893cc07d91d95644aedd05d03f95e1dba8af',
410
- creationBlock: 1737658355
464
+ creationBlock: 21689092
465
+ }, _routerConfigs[UniversalRouterVersion.V2_1] = {
466
+ address: '0xd92a36b0000531ef3063ded4de20a0783308446c',
467
+ creationBlock: 23836348
411
468
  }, _routerConfigs)
412
469
  }, _CHAIN_CONFIGS[5] = {
413
470
  weth: '0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6',
@@ -417,6 +474,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
417
474
  }, _routerConfigs2[UniversalRouterVersion.V2_0] = {
418
475
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
419
476
  creationBlock: 8940568
477
+ }, _routerConfigs2[UniversalRouterVersion.V2_1] = {
478
+ address: '0x0000000000000000000000000000000000000000',
479
+ creationBlock: 1
420
480
  }, _routerConfigs2)
421
481
  }, _CHAIN_CONFIGS[11155111] = {
422
482
  weth: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',
@@ -426,6 +486,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
426
486
  }, _routerConfigs3[UniversalRouterVersion.V2_0] = {
427
487
  address: '0x3a9d48ab9751398bbfa63ad67599bb04e4bdf98b',
428
488
  creationBlock: 7259601
489
+ }, _routerConfigs3[UniversalRouterVersion.V2_1] = {
490
+ address: '0x470FFC67b1feEEC31D16C46AC7545C98716a194c',
491
+ creationBlock: 9664766
429
492
  }, _routerConfigs3)
430
493
  }, _CHAIN_CONFIGS[137] = {
431
494
  weth: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
@@ -434,7 +497,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
434
497
  creationBlock: 52210153
435
498
  }, _routerConfigs4[UniversalRouterVersion.V2_0] = {
436
499
  address: '0x1095692a6237d83c6a72f3f5efedb9a670c49223',
437
- creationBlock: 1737492197
500
+ creationBlock: 66980401
501
+ }, _routerConfigs4[UniversalRouterVersion.V2_1] = {
502
+ address: '0xE27610fD9dD05FC061366bc9dA414CA6F948f204',
503
+ creationBlock: 79245524
438
504
  }, _routerConfigs4)
439
505
  }, _CHAIN_CONFIGS[80001] = {
440
506
  weth: '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889',
@@ -444,6 +510,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
444
510
  }, _routerConfigs5[UniversalRouterVersion.V2_0] = {
445
511
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
446
512
  creationBlock: 35176052
513
+ }, _routerConfigs5[UniversalRouterVersion.V2_1] = {
514
+ address: '0x0000000000000000000000000000000000000000',
515
+ creationBlock: 1
447
516
  }, _routerConfigs5)
448
517
  }, _CHAIN_CONFIGS[10] = {
449
518
  weth: '0x4200000000000000000000000000000000000006',
@@ -452,7 +521,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
452
521
  creationBlock: 114702266
453
522
  }, _routerConfigs6[UniversalRouterVersion.V2_0] = {
454
523
  address: '0x851116d9223fabed8e56c0e6b8ad0c31d98b3507',
455
- creationBlock: 1737494278
524
+ creationBlock: 130947687
525
+ }, _routerConfigs6[UniversalRouterVersion.V2_1] = {
526
+ address: '0xde20EEE5398D3790a4D356e8925bD21Ea65D99Af',
527
+ creationBlock: 143998769
456
528
  }, _routerConfigs6)
457
529
  }, _CHAIN_CONFIGS[420] = {
458
530
  weth: '0x4200000000000000000000000000000000000006',
@@ -462,6 +534,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
462
534
  }, _routerConfigs7[UniversalRouterVersion.V2_0] = {
463
535
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
464
536
  creationBlock: 8887728
537
+ }, _routerConfigs7[UniversalRouterVersion.V2_1] = {
538
+ address: '0x0000000000000000000000000000000000000000',
539
+ creationBlock: 1
465
540
  }, _routerConfigs7)
466
541
  }, _CHAIN_CONFIGS[42161] = {
467
542
  weth: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
@@ -470,7 +545,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
470
545
  creationBlock: 169472836
471
546
  }, _routerConfigs8[UniversalRouterVersion.V2_0] = {
472
547
  address: '0xa51afafe0263b40edaef0df8781ea9aa03e381a3',
473
- creationBlock: 1737487458
548
+ creationBlock: 297842906
549
+ }, _routerConfigs8[UniversalRouterVersion.V2_1] = {
550
+ address: '0x96b2FD2F80e9428Daa65d859653117D453981AB4',
551
+ creationBlock: 402060097
474
552
  }, _routerConfigs8)
475
553
  }, _CHAIN_CONFIGS[421613] = {
476
554
  weth: '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3',
@@ -480,6 +558,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
480
558
  }, _routerConfigs9[UniversalRouterVersion.V2_0] = {
481
559
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
482
560
  creationBlock: 18815277
561
+ }, _routerConfigs9[UniversalRouterVersion.V2_1] = {
562
+ address: '0x0000000000000000000000000000000000000000',
563
+ creationBlock: 1
483
564
  }, _routerConfigs9)
484
565
  }, _CHAIN_CONFIGS[42220] = {
485
566
  weth: WETH_NOT_SUPPORTED_ON_CHAIN,
@@ -489,6 +570,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
489
570
  }, _routerConfigs0[UniversalRouterVersion.V2_0] = {
490
571
  address: '0xcb695bc5D3Aa22cAD1E6DF07801b061a05A0233A',
491
572
  creationBlock: 47387857
573
+ }, _routerConfigs0[UniversalRouterVersion.V2_1] = {
574
+ address: '0xBB8Ed9bF0BFF210652AE5f473a849F82e990DDf6',
575
+ creationBlock: 51696199
492
576
  }, _routerConfigs0)
493
577
  }, _CHAIN_CONFIGS[44787] = {
494
578
  weth: WETH_NOT_SUPPORTED_ON_CHAIN,
@@ -498,6 +582,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
498
582
  }, _routerConfigs1[UniversalRouterVersion.V2_0] = {
499
583
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
500
584
  creationBlock: 17566658
585
+ }, _routerConfigs1[UniversalRouterVersion.V2_1] = {
586
+ address: '0x0000000000000000000000000000000000000000',
587
+ creationBlock: 1
501
588
  }, _routerConfigs1)
502
589
  }, _CHAIN_CONFIGS[56] = {
503
590
  weth: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
@@ -506,7 +593,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
506
593
  creationBlock: 35160263
507
594
  }, _routerConfigs10[UniversalRouterVersion.V2_0] = {
508
595
  address: '0x1906c1d672b88cd1b9ac7593301ca990f94eae07',
509
- creationBlock: 1737493275
596
+ creationBlock: 45970616
597
+ }, _routerConfigs10[UniversalRouterVersion.V2_1] = {
598
+ address: '0x91BF3bfAEf8D771A74E1A8fE460b3EE646b2e588',
599
+ creationBlock: 68794488
510
600
  }, _routerConfigs10)
511
601
  }, _CHAIN_CONFIGS[43114] = {
512
602
  weth: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',
@@ -515,7 +605,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
515
605
  creationBlock: 40237257
516
606
  }, _routerConfigs11[UniversalRouterVersion.V2_0] = {
517
607
  address: '0x94b75331ae8d42c1b61065089b7d48fe14aa73b7',
518
- creationBlock: 1737558236
608
+ creationBlock: 56195395
609
+ }, _routerConfigs11[UniversalRouterVersion.V2_1] = {
610
+ address: '0x0Cf1f86B331A03179646341D10A2A87515087221',
611
+ creationBlock: 72254439
519
612
  }, _routerConfigs11)
520
613
  }, _CHAIN_CONFIGS[84531] = {
521
614
  weth: '0x4200000000000000000000000000000000000006',
@@ -525,6 +618,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
525
618
  }, _routerConfigs12[UniversalRouterVersion.V2_0] = {
526
619
  address: '0xd0872d928672ae2ff74bdb2f5130ac12229cafaf',
527
620
  creationBlock: 6915289
621
+ }, _routerConfigs12[UniversalRouterVersion.V2_1] = {
622
+ address: '0x0000000000000000000000000000000000000000',
623
+ creationBlock: 1
528
624
  }, _routerConfigs12)
529
625
  }, _CHAIN_CONFIGS[8453] = {
530
626
  weth: '0x4200000000000000000000000000000000000006',
@@ -533,7 +629,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
533
629
  creationBlock: 9107268
534
630
  }, _routerConfigs13[UniversalRouterVersion.V2_0] = {
535
631
  address: '0x6ff5693b99212da76ad316178a184ab56d299b43',
536
- creationBlock: 1737491485
632
+ creationBlock: 25350999
633
+ }, _routerConfigs13[UniversalRouterVersion.V2_1] = {
634
+ address: '0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259',
635
+ creationBlock: 38404211
537
636
  }, _routerConfigs13)
538
637
  }, _CHAIN_CONFIGS[81457] = {
539
638
  weth: '0x4300000000000000000000000000000000000004',
@@ -542,7 +641,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
542
641
  creationBlock: 1116444
543
642
  }, _routerConfigs14[UniversalRouterVersion.V2_0] = {
544
643
  address: '0xeabbcb3e8e415306207ef514f660a3f820025be3',
545
- creationBlock: 1737564586
644
+ creationBlock: 14377319
645
+ }, _routerConfigs14[UniversalRouterVersion.V2_1] = {
646
+ address: '0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7',
647
+ creationBlock: 27394047
546
648
  }, _routerConfigs14)
547
649
  }, _CHAIN_CONFIGS[7777777] = {
548
650
  weth: '0x4200000000000000000000000000000000000006',
@@ -551,7 +653,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
551
653
  creationBlock: 11832155
552
654
  }, _routerConfigs15[UniversalRouterVersion.V2_0] = {
553
655
  address: '0x3315ef7ca28db74abadc6c44570efdf06b04b020',
554
- creationBlock: 1737562927
656
+ creationBlock: 25434544
657
+ }, _routerConfigs15[UniversalRouterVersion.V2_1] = {
658
+ address: '0x880853091b60f80301a0c1d2f9893c4993041295',
659
+ creationBlock: 38452170
555
660
  }, _routerConfigs15)
556
661
  }, _CHAIN_CONFIGS[324] = {
557
662
  weth: '0x5aea5775959fbc2557cc8789bc1bf90a239d9a91',
@@ -561,6 +666,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
561
666
  }, _routerConfigs16[UniversalRouterVersion.V2_0] = {
562
667
  address: '0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06',
563
668
  creationBlock: 12640979
669
+ }, _routerConfigs16[UniversalRouterVersion.V2_1] = {
670
+ address: '0x0000000000000000000000000000000000000000',
671
+ creationBlock: 1
564
672
  }, _routerConfigs16)
565
673
  }, _CHAIN_CONFIGS[480] = {
566
674
  weth: '0x4200000000000000000000000000000000000006',
@@ -569,7 +677,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
569
677
  creationBlock: 4063979
570
678
  }, _routerConfigs17[UniversalRouterVersion.V2_0] = {
571
679
  address: '0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743',
572
- creationBlock: 1737559557
680
+ creationBlock: 9111895
681
+ }, _routerConfigs17[UniversalRouterVersion.V2_1] = {
682
+ address: '0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60',
683
+ creationBlock: 22131418
573
684
  }, _routerConfigs17)
574
685
  }, _CHAIN_CONFIGS[1301] = {
575
686
  weth: '0x4200000000000000000000000000000000000006',
@@ -579,6 +690,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
579
690
  }, _routerConfigs18[UniversalRouterVersion.V2_0] = {
580
691
  address: '0xf70536b3bcc1bd1a972dc186a2cf84cc6da6be5d',
581
692
  creationBlock: 7100543
693
+ }, _routerConfigs18[UniversalRouterVersion.V2_1] = {
694
+ address: '0x7F9B8D606E0F35E5073ABf93695814530b28a37b',
695
+ creationBlock: 36746405
582
696
  }, _routerConfigs18)
583
697
  }, _CHAIN_CONFIGS[130] = {
584
698
  weth: '0x4200000000000000000000000000000000000006',
@@ -587,7 +701,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
587
701
  creationBlock: 23678
588
702
  }, _routerConfigs19[UniversalRouterVersion.V2_0] = {
589
703
  address: '0xef740bf23acae26f6492b10de645d6b98dc8eaf3',
590
- creationBlock: 1737568156
704
+ creationBlock: 6819690
705
+ }, _routerConfigs19[UniversalRouterVersion.V2_1] = {
706
+ address: '0xe6039ae5b44f90d56c6b029354fb22999861a9a0',
707
+ creationBlock: 32850661
591
708
  }, _routerConfigs19)
592
709
  }, _CHAIN_CONFIGS[10143] = {
593
710
  weth: '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701',
@@ -597,6 +714,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
597
714
  }, _routerConfigs20[UniversalRouterVersion.V2_0] = {
598
715
  address: '0x3ae6d8a282d67893e17aa70ebffb33ee5aa65893',
599
716
  creationBlock: 23678
717
+ }, _routerConfigs20[UniversalRouterVersion.V2_1] = {
718
+ address: '0x0000000000000000000000000000000000000000',
719
+ creationBlock: 1
600
720
  }, _routerConfigs20)
601
721
  }, _CHAIN_CONFIGS[84532] = {
602
722
  weth: '0x4200000000000000000000000000000000000006',
@@ -606,6 +726,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
606
726
  }, _routerConfigs21[UniversalRouterVersion.V2_0] = {
607
727
  address: '0x492e6456d9528771018deb9e87ef7750ef184104',
608
728
  creationBlock: 20216585
729
+ }, _routerConfigs21[UniversalRouterVersion.V2_1] = {
730
+ address: '0x0000000000000000000000000000000000000000',
731
+ creationBlock: 1
609
732
  }, _routerConfigs21)
610
733
  }, _CHAIN_CONFIGS[1868] = {
611
734
  weth: '0x4200000000000000000000000000000000000006',
@@ -615,6 +738,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
615
738
  }, _routerConfigs22[UniversalRouterVersion.V2_0] = {
616
739
  address: '0x0e2850543f69f678257266e0907ff9a58b3f13de',
617
740
  creationBlock: 3254782
741
+ }, _routerConfigs22[UniversalRouterVersion.V2_1] = {
742
+ address: '0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef',
743
+ creationBlock: 15232223
618
744
  }, _routerConfigs22)
619
745
  }, _CHAIN_CONFIGS[143] = {
620
746
  weth: '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A',
@@ -624,6 +750,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
624
750
  }, _routerConfigs23[UniversalRouterVersion.V2_0] = {
625
751
  address: '0x0d97dc33264bfc1c226207428a79b26757fb9dc3',
626
752
  creationBlock: 29255937
753
+ }, _routerConfigs23[UniversalRouterVersion.V2_1] = {
754
+ address: '0xBC2A036E5027b9AE57BbA847eF88E1b14823F7B1',
755
+ creationBlock: 36720825
627
756
  }, _routerConfigs23)
628
757
  }, _CHAIN_CONFIGS);
629
758
  var UNIVERSAL_ROUTER_ADDRESS = function UNIVERSAL_ROUTER_ADDRESS(version, chainId) {
@@ -894,7 +1023,7 @@ function addV4Swap(planner, _ref3, tradeType, options, payerIsUser, routerMustCu
894
1023
  });
895
1024
  var slippageToleranceOnSwap = routerMustCustody && tradeType == TradeType.EXACT_INPUT ? undefined : options.slippageTolerance;
896
1025
  var v4Planner = new V4Planner();
897
- v4Planner.addTrade(trade, slippageToleranceOnSwap);
1026
+ v4Planner.addTrade(trade, slippageToleranceOnSwap, options.maxHopSlippage);
898
1027
  v4Planner.addSettle(trade.route.pathInput, payerIsUser);
899
1028
  v4Planner.addTake(trade.route.pathOutput, routerMustCustody ? ROUTER_AS_RECIPIENT : (_options$recipient = options.recipient) != null ? _options$recipient : SENDER_AS_RECIPIENT);
900
1029
  planner.addCommand(CommandType.V4_SWAP, [v4Planner.finalize()]);
@@ -956,7 +1085,7 @@ function addMixedSwap(planner, swap, tradeType, options, payerIsUser, routerMust
956
1085
  v4Planner.addAction(Actions.SWAP_EXACT_IN, [{
957
1086
  currencyIn: inputToken.isNative ? ETH_ADDRESS : inputToken.address,
958
1087
  path: encodeRouteToPath$1(v4SubRoute),
959
- maxHopSlippage: [],
1088
+ maxHopSlippage: options.maxHopSlippage || [],
960
1089
  amountIn: 0,
961
1090
  amountOutMinimum: !isLastSectionInRoute(i) ? 0 : amountOut
962
1091
  }]);
@@ -1023,6 +1152,56 @@ function encodeInputTokenOptions(planner, options) {
1023
1152
  }
1024
1153
  }
1025
1154
 
1155
+ var EIP712_DOMAIN_NAME = 'UniversalRouter';
1156
+ var EIP712_DOMAIN_VERSION = '2';
1157
+ var EXECUTE_SIGNED_TYPES = {
1158
+ ExecuteSigned: [{
1159
+ name: 'commands',
1160
+ type: 'bytes'
1161
+ }, {
1162
+ name: 'inputs',
1163
+ type: 'bytes[]'
1164
+ }, {
1165
+ name: 'intent',
1166
+ type: 'bytes32'
1167
+ }, {
1168
+ name: 'data',
1169
+ type: 'bytes32'
1170
+ }, {
1171
+ name: 'sender',
1172
+ type: 'address'
1173
+ }, {
1174
+ name: 'nonce',
1175
+ type: 'bytes32'
1176
+ }, {
1177
+ name: 'deadline',
1178
+ type: 'uint256'
1179
+ }]
1180
+ };
1181
+ /**
1182
+ * Generate EIP712 domain for Universal Router
1183
+ */
1184
+ function getUniversalRouterDomain(chainId, verifyingContract) {
1185
+ return {
1186
+ name: EIP712_DOMAIN_NAME,
1187
+ version: EIP712_DOMAIN_VERSION,
1188
+ chainId: chainId,
1189
+ verifyingContract: verifyingContract
1190
+ };
1191
+ }
1192
+ /**
1193
+ * Generate a random nonce for signed execution
1194
+ * Uses ethers.utils.randomBytes for secure randomness
1195
+ */
1196
+ function generateNonce() {
1197
+ var randomBytes = ethers.utils.randomBytes(32);
1198
+ return ethers.utils.hexlify(randomBytes);
1199
+ }
1200
+ /**
1201
+ * Sentinel value to skip nonce checking (allows signature replay)
1202
+ */
1203
+ var NONCE_SKIP_CHECK = '0x' + /*#__PURE__*/'f'.repeat(64); // bytes32(type(uint256).max)
1204
+
1026
1205
  function isMint(options) {
1027
1206
  return Object.keys(options).some(function (k) {
1028
1207
  return k === 'recipient';
@@ -1030,7 +1209,8 @@ function isMint(options) {
1030
1209
  }
1031
1210
  var SwapRouter = /*#__PURE__*/function () {
1032
1211
  function SwapRouter() {}
1033
- SwapRouter.swapCallParameters = function swapCallParameters(trades, options) {
1212
+ SwapRouter.swapCallParameters = function swapCallParameters(trades, options, bridgeOptions // Optional bridge parameters
1213
+ ) {
1034
1214
  // TODO: use permit if signature included in swapOptions
1035
1215
  var planner = new RoutePlanner();
1036
1216
  var trade = new UniswapTrade(trades, options);
@@ -1043,6 +1223,13 @@ var SwapRouter = /*#__PURE__*/function () {
1043
1223
  trade.encode(planner, {
1044
1224
  allowRevert: false
1045
1225
  });
1226
+ // Add bridge commands if provided
1227
+ if (bridgeOptions) {
1228
+ for (var _iterator = _createForOfIteratorHelperLoose(bridgeOptions), _step; !(_step = _iterator()).done;) {
1229
+ var bridge = _step.value;
1230
+ planner.addAcrossBridge(bridge);
1231
+ }
1232
+ }
1046
1233
  return SwapRouter.encodePlan(planner, nativeCurrencyValue, {
1047
1234
  deadline: options.deadlineOrPreviousBlockhash ? BigNumber.from(options.deadlineOrPreviousBlockhash) : undefined
1048
1235
  });
@@ -1094,8 +1281,8 @@ var SwapRouter = /*#__PURE__*/function () {
1094
1281
  // encode v3 withdraw
1095
1282
  var v3RemoveParams = NonfungiblePositionManager.removeCallParameters(options.inputPosition, options.v3RemoveLiquidityOptions);
1096
1283
  var v3Calls = Multicall.decodeMulticall(v3RemoveParams.calldata);
1097
- for (var _iterator = _createForOfIteratorHelperLoose(v3Calls), _step; !(_step = _iterator()).done;) {
1098
- var v3Call = _step.value;
1284
+ for (var _iterator2 = _createForOfIteratorHelperLoose(v3Calls), _step2; !(_step2 = _iterator2()).done;) {
1285
+ var v3Call = _step2.value;
1099
1286
  // slice selector - 0x + 4 bytes = 10 characters
1100
1287
  var _selector = v3Call.slice(0, 10);
1101
1288
  !(_selector == NonfungiblePositionManager.INTERFACE.getSighash('collect') || _selector == NonfungiblePositionManager.INTERFACE.getSighash('decreaseLiquidity') || _selector == NonfungiblePositionManager.INTERFACE.getSighash('burn')) ? process.env.NODE_ENV !== "production" ? invariant(false, 'INVALID_V3_CALL: ' + _selector) : invariant(false) : void 0;
@@ -1111,6 +1298,96 @@ var SwapRouter = /*#__PURE__*/function () {
1111
1298
  deadline: BigNumber.from(options.v4AddLiquidityOptions.deadline)
1112
1299
  });
1113
1300
  }
1301
+ /**
1302
+ * Generate EIP712 payload for signed execution (no signing performed)
1303
+ * Decodes existing execute() calldata and prepares it for signing
1304
+ *
1305
+ * @param calldata The calldata from swapCallParameters() or similar
1306
+ * @param signedOptions Options for signed execution (intent, data, sender, nonce)
1307
+ * @param deadline The deadline timestamp
1308
+ * @param chainId The chain ID
1309
+ * @param routerAddress The Universal Router contract address
1310
+ * @returns EIP712 payload ready to be signed externally
1311
+ */;
1312
+ SwapRouter.getExecuteSignedPayload = function getExecuteSignedPayload(calldata, signedOptions, deadline, chainId, routerAddress) {
1313
+ // Decode the execute() calldata to extract commands and inputs
1314
+ // Try to decode with deadline first, then without
1315
+ var decoded;
1316
+ var commands;
1317
+ var inputs;
1318
+ try {
1319
+ decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[],uint256)', calldata);
1320
+ commands = decoded.commands;
1321
+ inputs = decoded.inputs;
1322
+ } catch (e) {
1323
+ // Try without deadline
1324
+ decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[])', calldata);
1325
+ commands = decoded.commands;
1326
+ inputs = decoded.inputs;
1327
+ }
1328
+ // Use provided nonce or generate random one
1329
+ var nonce = signedOptions.nonce || generateNonce();
1330
+ // sender is provided directly (address(0) = skip verification)
1331
+ var sender = signedOptions.sender;
1332
+ var domain = getUniversalRouterDomain(chainId, routerAddress);
1333
+ var intent = signedOptions.intent;
1334
+ var data = signedOptions.data;
1335
+ deadline = BigNumber.from(deadline).toString();
1336
+ var value = {
1337
+ commands: commands,
1338
+ inputs: inputs,
1339
+ intent: intent,
1340
+ data: data,
1341
+ sender: sender,
1342
+ nonce: nonce,
1343
+ deadline: deadline
1344
+ };
1345
+ return {
1346
+ domain: domain,
1347
+ types: EXECUTE_SIGNED_TYPES,
1348
+ value: value
1349
+ };
1350
+ }
1351
+ /**
1352
+ * Encode executeSigned() call with signature
1353
+ *
1354
+ * @param calldata The original calldata from swapCallParameters()
1355
+ * @param signature The signature obtained from external signing
1356
+ * @param signedOptions The same options used in getExecuteSignedPayload()
1357
+ * @param deadline The deadline timestamp
1358
+ * @param nativeCurrencyValue The native currency value (ETH) to send
1359
+ * @returns Method parameters for executeSigned()
1360
+ */;
1361
+ SwapRouter.encodeExecuteSigned = function encodeExecuteSigned(calldata, signature, signedOptions, deadline, nativeCurrencyValue) {
1362
+ if (nativeCurrencyValue === void 0) {
1363
+ nativeCurrencyValue = BigNumber.from(0);
1364
+ }
1365
+ // Decode the execute() calldata to extract commands and inputs
1366
+ // Try to decode with deadline first, then without
1367
+ var decoded;
1368
+ var commands;
1369
+ var inputs;
1370
+ try {
1371
+ decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[],uint256)', calldata);
1372
+ commands = decoded.commands;
1373
+ inputs = decoded.inputs;
1374
+ } catch (e) {
1375
+ // Try without deadline
1376
+ decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[])', calldata);
1377
+ commands = decoded.commands;
1378
+ inputs = decoded.inputs;
1379
+ }
1380
+ // Use provided nonce (must match what was signed)
1381
+ var nonce = signedOptions.nonce || generateNonce();
1382
+ // Determine verifySender based on sender address
1383
+ var verifySender = signedOptions.sender !== '0x0000000000000000000000000000000000000000';
1384
+ // Encode executeSigned function call using the Universal Router v2.1 ABI
1385
+ var signedCalldata = SwapRouter.INTERFACE.encodeFunctionData('executeSigned', [commands, inputs, signedOptions.intent, signedOptions.data, verifySender, nonce, signature, deadline]);
1386
+ return {
1387
+ calldata: signedCalldata,
1388
+ value: nativeCurrencyValue.toHexString()
1389
+ };
1390
+ }
1114
1391
  /**
1115
1392
  * Encodes a planned route into a method name and parameters for the Router contract.
1116
1393
  * @param planner the planned route
@@ -1451,5 +1728,5 @@ function v4RouterCallToParams(actions) {
1451
1728
  });
1452
1729
  }
1453
1730
 
1454
- export { COMMAND_DEFINITION, CommandParser, CommandType, GenericCommandParser, Parser, PoolType, ROUTER_AS_RECIPIENT, RoutePlanner, RouterActionType, RouterTradeAdapter, Subparser, SwapRouter, UNIVERSAL_ROUTER_ADDRESS, UNIVERSAL_ROUTER_CREATION_BLOCK, UniswapTrade, UniversalRouterVersion, UnwrapWETH, WETH_ADDRESS, isNativeCurrency };
1731
+ export { COMMAND_DEFINITION, CONTRACT_BALANCE, CommandParser, CommandType, EXECUTE_SIGNED_TYPES, GenericCommandParser, NONCE_SKIP_CHECK, Parser, PoolType, ROUTER_AS_RECIPIENT, RoutePlanner, RouterActionType, RouterTradeAdapter, Subparser, SwapRouter, UNIVERSAL_ROUTER_ADDRESS, UNIVERSAL_ROUTER_CREATION_BLOCK, UniswapTrade, UniversalRouterVersion, UnwrapWETH, WETH_ADDRESS, generateNonce, getUniversalRouterDomain, isNativeCurrency };
1455
1732
  //# sourceMappingURL=universal-router-sdk.esm.js.map