@uniswap/universal-router-sdk 4.29.5 → 4.31.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.
@@ -4,6 +4,7 @@ import { Interface } from '@ethersproject/abi';
4
4
  import { BigNumber, ethers } from 'ethers';
5
5
  import { toHex, Trade as Trade$1, encodeRouteToPath, Pool as Pool$1, NonfungiblePositionManager, Multicall, Route as Route$1 } from '@uniswap/v3-sdk';
6
6
  import { Pool, Route, Trade as Trade$2, V4Planner, Actions, encodeRouteToPath as encodeRouteToPath$1, V4PositionManager, V4BaseActionsParser } from '@uniswap/v4-sdk';
7
+ export { URVersion } from '@uniswap/v4-sdk';
7
8
  import { TradeType, Percent, validateAndParseAddress, CHAIN_TO_ADDRESSES_MAP, CurrencyAmount, Ether, Token } from '@uniswap/sdk-core';
8
9
  import { defaultAbiCoder } from 'ethers/lib/utils';
9
10
  import { Trade, Pair, Route as Route$2 } from '@uniswap/v2-sdk';
@@ -94,6 +95,8 @@ var CommandType;
94
95
  CommandType[CommandType["V4_INITIALIZE_POOL"] = 19] = "V4_INITIALIZE_POOL";
95
96
  CommandType[CommandType["V4_POSITION_MANAGER_CALL"] = 20] = "V4_POSITION_MANAGER_CALL";
96
97
  CommandType[CommandType["EXECUTE_SUB_PLAN"] = 33] = "EXECUTE_SUB_PLAN";
98
+ // 3rd party integrations (0x40-0x5f range)
99
+ CommandType[CommandType["ACROSS_V4_DEPOSIT_V3"] = 64] = "ACROSS_V4_DEPOSIT_V3";
97
100
  })(CommandType || (CommandType = {}));
98
101
  var Subparser;
99
102
  (function (Subparser) {
@@ -315,6 +318,48 @@ var COMMAND_DEFINITION = (_COMMAND_DEFINITION = {}, _COMMAND_DEFINITION[CommandT
315
318
  parser: Parser.V3Actions
316
319
  }, _COMMAND_DEFINITION[CommandType.V4_POSITION_MANAGER_CALL] = {
317
320
  parser: Parser.V4Actions
321
+ }, _COMMAND_DEFINITION[CommandType.ACROSS_V4_DEPOSIT_V3] = {
322
+ parser: Parser.Abi,
323
+ params: [{
324
+ name: 'depositor',
325
+ type: 'address'
326
+ }, {
327
+ name: 'recipient',
328
+ type: 'address'
329
+ }, {
330
+ name: 'inputToken',
331
+ type: 'address'
332
+ }, {
333
+ name: 'outputToken',
334
+ type: 'address'
335
+ }, {
336
+ name: 'inputAmount',
337
+ type: 'uint256'
338
+ }, {
339
+ name: 'outputAmount',
340
+ type: 'uint256'
341
+ }, {
342
+ name: 'destinationChainId',
343
+ type: 'uint256'
344
+ }, {
345
+ name: 'exclusiveRelayer',
346
+ type: 'address'
347
+ }, {
348
+ name: 'quoteTimestamp',
349
+ type: 'uint32'
350
+ }, {
351
+ name: 'fillDeadline',
352
+ type: 'uint32'
353
+ }, {
354
+ name: 'exclusivityDeadline',
355
+ type: 'uint32'
356
+ }, {
357
+ name: 'message',
358
+ type: 'bytes'
359
+ }, {
360
+ name: 'useNative',
361
+ type: 'bool'
362
+ }]
318
363
  }, _COMMAND_DEFINITION);
319
364
  var RoutePlanner = /*#__PURE__*/function () {
320
365
  function RoutePlanner() {
@@ -340,6 +385,15 @@ var RoutePlanner = /*#__PURE__*/function () {
340
385
  }
341
386
  this.commands = this.commands.concat(command.type.toString(16).padStart(2, '0'));
342
387
  return this;
388
+ }
389
+ /**
390
+ * Add Across bridge deposit command for cross-chain bridging
391
+ * @param params AcrossV4DepositV3Params containing bridge parameters
392
+ * @returns RoutePlanner instance for chaining
393
+ */;
394
+ _proto.addAcrossBridge = function addAcrossBridge(params) {
395
+ 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]);
396
+ return this;
343
397
  };
344
398
  return RoutePlanner;
345
399
  }();
@@ -392,11 +446,12 @@ var RouterActionType;
392
446
  RouterActionType["UnwrapWETH"] = "UnwrapWETH";
393
447
  })(RouterActionType || (RouterActionType = {}));
394
448
 
395
- var _routerConfigs, _routerConfigs2, _routerConfigs3, _routerConfigs4, _routerConfigs5, _routerConfigs6, _routerConfigs7, _routerConfigs8, _routerConfigs9, _routerConfigs0, _routerConfigs1, _routerConfigs10, _routerConfigs11, _routerConfigs12, _routerConfigs13, _routerConfigs14, _routerConfigs15, _routerConfigs16, _routerConfigs17, _routerConfigs18, _routerConfigs19, _routerConfigs20, _routerConfigs21, _routerConfigs22, _routerConfigs23, _routerConfigs24, _CHAIN_CONFIGS;
449
+ var _routerConfigs, _routerConfigs2, _routerConfigs3, _routerConfigs4, _routerConfigs5, _routerConfigs6, _routerConfigs7, _routerConfigs8, _routerConfigs9, _routerConfigs0, _routerConfigs1, _routerConfigs10, _routerConfigs11, _routerConfigs12, _routerConfigs13, _routerConfigs14, _routerConfigs15, _routerConfigs16, _routerConfigs17, _routerConfigs18, _routerConfigs19, _routerConfigs20, _routerConfigs21, _routerConfigs22, _routerConfigs23, _routerConfigs24, _routerConfigs25, _CHAIN_CONFIGS;
396
450
  var UniversalRouterVersion;
397
451
  (function (UniversalRouterVersion) {
398
452
  UniversalRouterVersion["V1_2"] = "1.2";
399
453
  UniversalRouterVersion["V2_0"] = "2.0";
454
+ UniversalRouterVersion["V2_1"] = "2.1";
400
455
  })(UniversalRouterVersion || (UniversalRouterVersion = {}));
401
456
  var WETH_NOT_SUPPORTED_ON_CHAIN = '0x0000000000000000000000000000000000000000';
402
457
  // Todo: Change `CHAIN_CONFIGS` to pull the UR address with v4
@@ -407,7 +462,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
407
462
  creationBlock: 17143817
408
463
  }, _routerConfigs[UniversalRouterVersion.V2_0] = {
409
464
  address: '0x66a9893cc07d91d95644aedd05d03f95e1dba8af',
410
- creationBlock: 1737658355
465
+ creationBlock: 21689092
466
+ }, _routerConfigs[UniversalRouterVersion.V2_1] = {
467
+ address: '0xd92a36b0000531ef3063ded4de20a0783308446c',
468
+ creationBlock: 23836348
411
469
  }, _routerConfigs)
412
470
  }, _CHAIN_CONFIGS[5] = {
413
471
  weth: '0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6',
@@ -417,6 +475,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
417
475
  }, _routerConfigs2[UniversalRouterVersion.V2_0] = {
418
476
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
419
477
  creationBlock: 8940568
478
+ }, _routerConfigs2[UniversalRouterVersion.V2_1] = {
479
+ address: '0x0000000000000000000000000000000000000000',
480
+ creationBlock: 1
420
481
  }, _routerConfigs2)
421
482
  }, _CHAIN_CONFIGS[11155111] = {
422
483
  weth: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',
@@ -426,6 +487,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
426
487
  }, _routerConfigs3[UniversalRouterVersion.V2_0] = {
427
488
  address: '0x3a9d48ab9751398bbfa63ad67599bb04e4bdf98b',
428
489
  creationBlock: 7259601
490
+ }, _routerConfigs3[UniversalRouterVersion.V2_1] = {
491
+ address: '0x470FFC67b1feEEC31D16C46AC7545C98716a194c',
492
+ creationBlock: 9664766
429
493
  }, _routerConfigs3)
430
494
  }, _CHAIN_CONFIGS[137] = {
431
495
  weth: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
@@ -434,7 +498,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
434
498
  creationBlock: 52210153
435
499
  }, _routerConfigs4[UniversalRouterVersion.V2_0] = {
436
500
  address: '0x1095692a6237d83c6a72f3f5efedb9a670c49223',
437
- creationBlock: 1737492197
501
+ creationBlock: 66980401
502
+ }, _routerConfigs4[UniversalRouterVersion.V2_1] = {
503
+ address: '0xE27610fD9dD05FC061366bc9dA414CA6F948f204',
504
+ creationBlock: 79245524
438
505
  }, _routerConfigs4)
439
506
  }, _CHAIN_CONFIGS[80001] = {
440
507
  weth: '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889',
@@ -444,6 +511,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
444
511
  }, _routerConfigs5[UniversalRouterVersion.V2_0] = {
445
512
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
446
513
  creationBlock: 35176052
514
+ }, _routerConfigs5[UniversalRouterVersion.V2_1] = {
515
+ address: '0x0000000000000000000000000000000000000000',
516
+ creationBlock: 1
447
517
  }, _routerConfigs5)
448
518
  }, _CHAIN_CONFIGS[10] = {
449
519
  weth: '0x4200000000000000000000000000000000000006',
@@ -452,7 +522,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
452
522
  creationBlock: 114702266
453
523
  }, _routerConfigs6[UniversalRouterVersion.V2_0] = {
454
524
  address: '0x851116d9223fabed8e56c0e6b8ad0c31d98b3507',
455
- creationBlock: 1737494278
525
+ creationBlock: 130947687
526
+ }, _routerConfigs6[UniversalRouterVersion.V2_1] = {
527
+ address: '0xde20EEE5398D3790a4D356e8925bD21Ea65D99Af',
528
+ creationBlock: 143998769
456
529
  }, _routerConfigs6)
457
530
  }, _CHAIN_CONFIGS[420] = {
458
531
  weth: '0x4200000000000000000000000000000000000006',
@@ -462,6 +535,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
462
535
  }, _routerConfigs7[UniversalRouterVersion.V2_0] = {
463
536
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
464
537
  creationBlock: 8887728
538
+ }, _routerConfigs7[UniversalRouterVersion.V2_1] = {
539
+ address: '0x0000000000000000000000000000000000000000',
540
+ creationBlock: 1
465
541
  }, _routerConfigs7)
466
542
  }, _CHAIN_CONFIGS[42161] = {
467
543
  weth: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
@@ -470,7 +546,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
470
546
  creationBlock: 169472836
471
547
  }, _routerConfigs8[UniversalRouterVersion.V2_0] = {
472
548
  address: '0xa51afafe0263b40edaef0df8781ea9aa03e381a3',
473
- creationBlock: 1737487458
549
+ creationBlock: 297842906
550
+ }, _routerConfigs8[UniversalRouterVersion.V2_1] = {
551
+ address: '0x96b2FD2F80e9428Daa65d859653117D453981AB4',
552
+ creationBlock: 402060097
474
553
  }, _routerConfigs8)
475
554
  }, _CHAIN_CONFIGS[421613] = {
476
555
  weth: '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3',
@@ -480,6 +559,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
480
559
  }, _routerConfigs9[UniversalRouterVersion.V2_0] = {
481
560
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
482
561
  creationBlock: 18815277
562
+ }, _routerConfigs9[UniversalRouterVersion.V2_1] = {
563
+ address: '0x0000000000000000000000000000000000000000',
564
+ creationBlock: 1
483
565
  }, _routerConfigs9)
484
566
  }, _CHAIN_CONFIGS[42220] = {
485
567
  weth: WETH_NOT_SUPPORTED_ON_CHAIN,
@@ -489,6 +571,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
489
571
  }, _routerConfigs0[UniversalRouterVersion.V2_0] = {
490
572
  address: '0xcb695bc5D3Aa22cAD1E6DF07801b061a05A0233A',
491
573
  creationBlock: 47387857
574
+ }, _routerConfigs0[UniversalRouterVersion.V2_1] = {
575
+ address: '0xBB8Ed9bF0BFF210652AE5f473a849F82e990DDf6',
576
+ creationBlock: 51696199
492
577
  }, _routerConfigs0)
493
578
  }, _CHAIN_CONFIGS[44787] = {
494
579
  weth: WETH_NOT_SUPPORTED_ON_CHAIN,
@@ -498,6 +583,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
498
583
  }, _routerConfigs1[UniversalRouterVersion.V2_0] = {
499
584
  address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
500
585
  creationBlock: 17566658
586
+ }, _routerConfigs1[UniversalRouterVersion.V2_1] = {
587
+ address: '0x0000000000000000000000000000000000000000',
588
+ creationBlock: 1
501
589
  }, _routerConfigs1)
502
590
  }, _CHAIN_CONFIGS[56] = {
503
591
  weth: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
@@ -506,7 +594,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
506
594
  creationBlock: 35160263
507
595
  }, _routerConfigs10[UniversalRouterVersion.V2_0] = {
508
596
  address: '0x1906c1d672b88cd1b9ac7593301ca990f94eae07',
509
- creationBlock: 1737493275
597
+ creationBlock: 45970616
598
+ }, _routerConfigs10[UniversalRouterVersion.V2_1] = {
599
+ address: '0x91BF3bfAEf8D771A74E1A8fE460b3EE646b2e588',
600
+ creationBlock: 68794488
510
601
  }, _routerConfigs10)
511
602
  }, _CHAIN_CONFIGS[43114] = {
512
603
  weth: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',
@@ -515,7 +606,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
515
606
  creationBlock: 40237257
516
607
  }, _routerConfigs11[UniversalRouterVersion.V2_0] = {
517
608
  address: '0x94b75331ae8d42c1b61065089b7d48fe14aa73b7',
518
- creationBlock: 1737558236
609
+ creationBlock: 56195395
610
+ }, _routerConfigs11[UniversalRouterVersion.V2_1] = {
611
+ address: '0x0Cf1f86B331A03179646341D10A2A87515087221',
612
+ creationBlock: 72254439
519
613
  }, _routerConfigs11)
520
614
  }, _CHAIN_CONFIGS[84531] = {
521
615
  weth: '0x4200000000000000000000000000000000000006',
@@ -525,6 +619,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
525
619
  }, _routerConfigs12[UniversalRouterVersion.V2_0] = {
526
620
  address: '0xd0872d928672ae2ff74bdb2f5130ac12229cafaf',
527
621
  creationBlock: 6915289
622
+ }, _routerConfigs12[UniversalRouterVersion.V2_1] = {
623
+ address: '0x0000000000000000000000000000000000000000',
624
+ creationBlock: 1
528
625
  }, _routerConfigs12)
529
626
  }, _CHAIN_CONFIGS[8453] = {
530
627
  weth: '0x4200000000000000000000000000000000000006',
@@ -533,7 +630,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
533
630
  creationBlock: 9107268
534
631
  }, _routerConfigs13[UniversalRouterVersion.V2_0] = {
535
632
  address: '0x6ff5693b99212da76ad316178a184ab56d299b43',
536
- creationBlock: 1737491485
633
+ creationBlock: 25350999
634
+ }, _routerConfigs13[UniversalRouterVersion.V2_1] = {
635
+ address: '0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259',
636
+ creationBlock: 38404211
537
637
  }, _routerConfigs13)
538
638
  }, _CHAIN_CONFIGS[81457] = {
539
639
  weth: '0x4300000000000000000000000000000000000004',
@@ -542,7 +642,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
542
642
  creationBlock: 1116444
543
643
  }, _routerConfigs14[UniversalRouterVersion.V2_0] = {
544
644
  address: '0xeabbcb3e8e415306207ef514f660a3f820025be3',
545
- creationBlock: 1737564586
645
+ creationBlock: 14377319
646
+ }, _routerConfigs14[UniversalRouterVersion.V2_1] = {
647
+ address: '0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7',
648
+ creationBlock: 27394047
546
649
  }, _routerConfigs14)
547
650
  }, _CHAIN_CONFIGS[7777777] = {
548
651
  weth: '0x4200000000000000000000000000000000000006',
@@ -551,7 +654,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
551
654
  creationBlock: 11832155
552
655
  }, _routerConfigs15[UniversalRouterVersion.V2_0] = {
553
656
  address: '0x3315ef7ca28db74abadc6c44570efdf06b04b020',
554
- creationBlock: 1737562927
657
+ creationBlock: 25434544
658
+ }, _routerConfigs15[UniversalRouterVersion.V2_1] = {
659
+ address: '0x880853091b60f80301a0c1d2f9893c4993041295',
660
+ creationBlock: 38452170
555
661
  }, _routerConfigs15)
556
662
  }, _CHAIN_CONFIGS[324] = {
557
663
  weth: '0x5aea5775959fbc2557cc8789bc1bf90a239d9a91',
@@ -561,6 +667,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
561
667
  }, _routerConfigs16[UniversalRouterVersion.V2_0] = {
562
668
  address: '0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06',
563
669
  creationBlock: 12640979
670
+ }, _routerConfigs16[UniversalRouterVersion.V2_1] = {
671
+ address: '0x0000000000000000000000000000000000000000',
672
+ creationBlock: 1
564
673
  }, _routerConfigs16)
565
674
  }, _CHAIN_CONFIGS[480] = {
566
675
  weth: '0x4200000000000000000000000000000000000006',
@@ -569,7 +678,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
569
678
  creationBlock: 4063979
570
679
  }, _routerConfigs17[UniversalRouterVersion.V2_0] = {
571
680
  address: '0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743',
572
- creationBlock: 1737559557
681
+ creationBlock: 9111895
682
+ }, _routerConfigs17[UniversalRouterVersion.V2_1] = {
683
+ address: '0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60',
684
+ creationBlock: 22131418
573
685
  }, _routerConfigs17)
574
686
  }, _CHAIN_CONFIGS[1301] = {
575
687
  weth: '0x4200000000000000000000000000000000000006',
@@ -579,6 +691,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
579
691
  }, _routerConfigs18[UniversalRouterVersion.V2_0] = {
580
692
  address: '0xf70536b3bcc1bd1a972dc186a2cf84cc6da6be5d',
581
693
  creationBlock: 7100543
694
+ }, _routerConfigs18[UniversalRouterVersion.V2_1] = {
695
+ address: '0x7F9B8D606E0F35E5073ABf93695814530b28a37b',
696
+ creationBlock: 36746405
582
697
  }, _routerConfigs18)
583
698
  }, _CHAIN_CONFIGS[130] = {
584
699
  weth: '0x4200000000000000000000000000000000000006',
@@ -587,7 +702,10 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
587
702
  creationBlock: 23678
588
703
  }, _routerConfigs19[UniversalRouterVersion.V2_0] = {
589
704
  address: '0xef740bf23acae26f6492b10de645d6b98dc8eaf3',
590
- creationBlock: 1737568156
705
+ creationBlock: 6819690
706
+ }, _routerConfigs19[UniversalRouterVersion.V2_1] = {
707
+ address: '0xe6039ae5b44f90d56c6b029354fb22999861a9a0',
708
+ creationBlock: 32850661
591
709
  }, _routerConfigs19)
592
710
  }, _CHAIN_CONFIGS[10143] = {
593
711
  weth: '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701',
@@ -597,6 +715,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
597
715
  }, _routerConfigs20[UniversalRouterVersion.V2_0] = {
598
716
  address: '0x3ae6d8a282d67893e17aa70ebffb33ee5aa65893',
599
717
  creationBlock: 23678
718
+ }, _routerConfigs20[UniversalRouterVersion.V2_1] = {
719
+ address: '0x0000000000000000000000000000000000000000',
720
+ creationBlock: 1
600
721
  }, _routerConfigs20)
601
722
  }, _CHAIN_CONFIGS[84532] = {
602
723
  weth: '0x4200000000000000000000000000000000000006',
@@ -606,6 +727,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
606
727
  }, _routerConfigs21[UniversalRouterVersion.V2_0] = {
607
728
  address: '0x492e6456d9528771018deb9e87ef7750ef184104',
608
729
  creationBlock: 20216585
730
+ }, _routerConfigs21[UniversalRouterVersion.V2_1] = {
731
+ address: '0x0000000000000000000000000000000000000000',
732
+ creationBlock: 1
609
733
  }, _routerConfigs21)
610
734
  }, _CHAIN_CONFIGS[1868] = {
611
735
  weth: '0x4200000000000000000000000000000000000006',
@@ -615,6 +739,9 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
615
739
  }, _routerConfigs22[UniversalRouterVersion.V2_0] = {
616
740
  address: '0x0e2850543f69f678257266e0907ff9a58b3f13de',
617
741
  creationBlock: 3254782
742
+ }, _routerConfigs22[UniversalRouterVersion.V2_1] = {
743
+ address: '0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef',
744
+ creationBlock: 15232223
618
745
  }, _routerConfigs22)
619
746
  }, _CHAIN_CONFIGS[143] = {
620
747
  weth: '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A',
@@ -624,16 +751,34 @@ var CHAIN_CONFIGS = (_CHAIN_CONFIGS = {}, _CHAIN_CONFIGS[1] = {
624
751
  }, _routerConfigs23[UniversalRouterVersion.V2_0] = {
625
752
  address: '0x0d97dc33264bfc1c226207428a79b26757fb9dc3',
626
753
  creationBlock: 29255937
754
+ }, _routerConfigs23[UniversalRouterVersion.V2_1] = {
755
+ address: '0xBC2A036E5027b9AE57BbA847eF88E1b14823F7B1',
756
+ creationBlock: 36720825
627
757
  }, _routerConfigs23)
628
- }, _CHAIN_CONFIGS[196] = {
629
- weth: '0xe538905cf8410324e03A5A23C1c177a474D59b2b',
758
+ }, _CHAIN_CONFIGS[59144] = {
759
+ weth: '0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f',
630
760
  routerConfigs: (_routerConfigs24 = {}, _routerConfigs24[UniversalRouterVersion.V1_2] = {
631
761
  address: '0x0000000000000000000000000000000000000000',
632
762
  creationBlock: 1
633
763
  }, _routerConfigs24[UniversalRouterVersion.V2_0] = {
764
+ address: '0x661e93cca42afacb172121ef892830ca3b70f08d',
765
+ creationBlock: 1
766
+ }, _routerConfigs24[UniversalRouterVersion.V2_1] = {
767
+ address: '0xba548ce7a95f87bc66a0c7c6eab1e428735f8b57',
768
+ creationBlock: 1
769
+ }, _routerConfigs24)
770
+ }, _CHAIN_CONFIGS[196] = {
771
+ weth: '0xe538905cf8410324e03A5A23C1c177a474D59b2b',
772
+ routerConfigs: (_routerConfigs25 = {}, _routerConfigs25[UniversalRouterVersion.V1_2] = {
773
+ address: '0x0000000000000000000000000000000000000000',
774
+ creationBlock: 1
775
+ }, _routerConfigs25[UniversalRouterVersion.V2_0] = {
634
776
  address: '0x5507749f2c558bb3e162c6e90c314c092e7372ff',
635
777
  creationBlock: 47680350
636
- }, _routerConfigs24)
778
+ }, _routerConfigs25[UniversalRouterVersion.V2_1] = {
779
+ address: '0x0000000000000000000000000000000000000000',
780
+ creationBlock: 1
781
+ }, _routerConfigs25)
637
782
  }, _CHAIN_CONFIGS);
638
783
  var UNIVERSAL_ROUTER_ADDRESS = function UNIVERSAL_ROUTER_ADDRESS(version, chainId) {
639
784
  if (!(chainId in CHAIN_CONFIGS)) throw new Error("Universal Router not deployed on chain " + chainId);
@@ -927,7 +1072,7 @@ function addV4Swap(planner, _ref3, tradeType, options, payerIsUser, routerMustCu
927
1072
  });
928
1073
  var slippageToleranceOnSwap = routerMustCustody && tradeType == TradeType.EXACT_INPUT ? undefined : options.slippageTolerance;
929
1074
  var v4Planner = new V4Planner();
930
- v4Planner.addTrade(trade, slippageToleranceOnSwap);
1075
+ v4Planner.addTrade(trade, slippageToleranceOnSwap, options.maxHopSlippage, options.urVersion);
931
1076
  v4Planner.addSettle(trade.route.pathInput, payerIsUser);
932
1077
  // Handle split route output consistency:
933
1078
  // - If output is ETH and some routes output WETH: force all to output WETH, then unwrap
@@ -1003,9 +1148,10 @@ function addMixedSwap(planner, swap, tradeType, options, payerIsUser, routerMust
1003
1148
  v4Planner.addAction(Actions.SWAP_EXACT_IN, [{
1004
1149
  currencyIn: inputToken.isNative ? ETH_ADDRESS : inputToken.address,
1005
1150
  path: encodeRouteToPath$1(v4SubRoute),
1151
+ maxHopSlippage: options.maxHopSlippage || [],
1006
1152
  amountIn: 0,
1007
1153
  amountOutMinimum: !isLastSectionInRoute(i) ? 0 : amountOut
1008
- }]);
1154
+ }], options.urVersion);
1009
1155
  // Handle split route output consistency for V4 sections in mixed routes
1010
1156
  var outputTokenForTake = outputToken;
1011
1157
  if (isLastSectionInRoute(i)) {
@@ -1084,6 +1230,56 @@ function encodeInputTokenOptions(planner, options) {
1084
1230
  }
1085
1231
  }
1086
1232
 
1233
+ var EIP712_DOMAIN_NAME = 'UniversalRouter';
1234
+ var EIP712_DOMAIN_VERSION = '2';
1235
+ var EXECUTE_SIGNED_TYPES = {
1236
+ ExecuteSigned: [{
1237
+ name: 'commands',
1238
+ type: 'bytes'
1239
+ }, {
1240
+ name: 'inputs',
1241
+ type: 'bytes[]'
1242
+ }, {
1243
+ name: 'intent',
1244
+ type: 'bytes32'
1245
+ }, {
1246
+ name: 'data',
1247
+ type: 'bytes32'
1248
+ }, {
1249
+ name: 'sender',
1250
+ type: 'address'
1251
+ }, {
1252
+ name: 'nonce',
1253
+ type: 'bytes32'
1254
+ }, {
1255
+ name: 'deadline',
1256
+ type: 'uint256'
1257
+ }]
1258
+ };
1259
+ /**
1260
+ * Generate EIP712 domain for Universal Router
1261
+ */
1262
+ function getUniversalRouterDomain(chainId, verifyingContract) {
1263
+ return {
1264
+ name: EIP712_DOMAIN_NAME,
1265
+ version: EIP712_DOMAIN_VERSION,
1266
+ chainId: chainId,
1267
+ verifyingContract: verifyingContract
1268
+ };
1269
+ }
1270
+ /**
1271
+ * Generate a random nonce for signed execution
1272
+ * Uses ethers.utils.randomBytes for secure randomness
1273
+ */
1274
+ function generateNonce() {
1275
+ var randomBytes = ethers.utils.randomBytes(32);
1276
+ return ethers.utils.hexlify(randomBytes);
1277
+ }
1278
+ /**
1279
+ * Sentinel value to skip nonce checking (allows signature replay)
1280
+ */
1281
+ var NONCE_SKIP_CHECK = '0x' + /*#__PURE__*/'f'.repeat(64); // bytes32(type(uint256).max)
1282
+
1087
1283
  function isMint(options) {
1088
1284
  return Object.keys(options).some(function (k) {
1089
1285
  return k === 'recipient';
@@ -1091,7 +1287,8 @@ function isMint(options) {
1091
1287
  }
1092
1288
  var SwapRouter = /*#__PURE__*/function () {
1093
1289
  function SwapRouter() {}
1094
- SwapRouter.swapCallParameters = function swapCallParameters(trades, options) {
1290
+ SwapRouter.swapCallParameters = function swapCallParameters(trades, options, bridgeOptions // Optional bridge parameters
1291
+ ) {
1095
1292
  // TODO: use permit if signature included in swapOptions
1096
1293
  var planner = new RoutePlanner();
1097
1294
  var trade = new UniswapTrade(trades, options);
@@ -1104,10 +1301,111 @@ var SwapRouter = /*#__PURE__*/function () {
1104
1301
  trade.encode(planner, {
1105
1302
  allowRevert: false
1106
1303
  });
1304
+ // Add bridge commands if provided
1305
+ if (bridgeOptions) {
1306
+ for (var _iterator = _createForOfIteratorHelperLoose(bridgeOptions), _step; !(_step = _iterator()).done;) {
1307
+ var bridge = _step.value;
1308
+ planner.addAcrossBridge(bridge);
1309
+ }
1310
+ }
1107
1311
  return SwapRouter.encodePlan(planner, nativeCurrencyValue, {
1108
1312
  deadline: options.deadlineOrPreviousBlockhash ? BigNumber.from(options.deadlineOrPreviousBlockhash) : undefined
1109
1313
  });
1110
1314
  }
1315
+ /**
1316
+ * Generate EIP712 payload for signed execution (no signing performed)
1317
+ * Decodes existing execute() calldata and prepares it for signing
1318
+ *
1319
+ * @param calldata The calldata from swapCallParameters() or similar
1320
+ * @param signedOptions Options for signed execution (intent, data, sender, nonce)
1321
+ * @param deadline The deadline timestamp
1322
+ * @param chainId The chain ID
1323
+ * @param routerAddress The Universal Router contract address
1324
+ * @returns EIP712 payload ready to be signed externally
1325
+ */;
1326
+ SwapRouter.getExecuteSignedPayload = function getExecuteSignedPayload(calldata, signedOptions, deadline, chainId, routerAddress) {
1327
+ // Decode the execute() calldata to extract commands and inputs
1328
+ // Try to decode with deadline first, then without
1329
+ var decoded;
1330
+ var commands;
1331
+ var inputs;
1332
+ try {
1333
+ decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[],uint256)', calldata);
1334
+ commands = decoded.commands;
1335
+ inputs = decoded.inputs;
1336
+ } catch (e) {
1337
+ // Try without deadline
1338
+ decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[])', calldata);
1339
+ commands = decoded.commands;
1340
+ inputs = decoded.inputs;
1341
+ }
1342
+ // Use provided nonce or generate random one
1343
+ var nonce = signedOptions.nonce || generateNonce();
1344
+ // sender is provided directly (address(0) = skip verification)
1345
+ var sender = signedOptions.sender;
1346
+ var domain = getUniversalRouterDomain(chainId, routerAddress);
1347
+ var intent = signedOptions.intent;
1348
+ var data = signedOptions.data;
1349
+ var deadlineStr = BigNumber.from(deadline).toString();
1350
+ var value = {
1351
+ commands: commands,
1352
+ inputs: inputs,
1353
+ intent: intent,
1354
+ data: data,
1355
+ sender: sender,
1356
+ nonce: nonce,
1357
+ deadline: deadlineStr
1358
+ };
1359
+ return {
1360
+ domain: domain,
1361
+ types: EXECUTE_SIGNED_TYPES,
1362
+ value: value
1363
+ };
1364
+ }
1365
+ /**
1366
+ * Encode executeSigned() call with signature
1367
+ *
1368
+ * @param calldata The original calldata from swapCallParameters()
1369
+ * @param signature The signature obtained from external signing
1370
+ * @param signedOptions The same options used in getExecuteSignedPayload()
1371
+ * @param deadline The deadline timestamp
1372
+ * @param nativeCurrencyValue The native currency value (ETH) to send
1373
+ * @returns Method parameters for executeSigned()
1374
+ */;
1375
+ SwapRouter.encodeExecuteSigned = function encodeExecuteSigned(calldata, signature, signedOptions, deadline, nativeCurrencyValue) {
1376
+ if (nativeCurrencyValue === void 0) {
1377
+ nativeCurrencyValue = BigNumber.from(0);
1378
+ }
1379
+ // Decode the execute() calldata to extract commands and inputs
1380
+ // Try to decode with deadline first, then without
1381
+ var decoded;
1382
+ var commands;
1383
+ var inputs;
1384
+ try {
1385
+ decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[],uint256)', calldata);
1386
+ commands = decoded.commands;
1387
+ inputs = decoded.inputs;
1388
+ } catch (e) {
1389
+ // Try without deadline
1390
+ decoded = SwapRouter.INTERFACE.decodeFunctionData('execute(bytes,bytes[])', calldata);
1391
+ commands = decoded.commands;
1392
+ inputs = decoded.inputs;
1393
+ }
1394
+ // Use provided nonce (must match what was signed)
1395
+ // Nonce must match what was signed - require it to be provided
1396
+ if (!signedOptions.nonce) {
1397
+ throw new Error('Nonce is required for encodeExecuteSigned - use the nonce from getExecuteSignedPayload');
1398
+ }
1399
+ var nonce = signedOptions.nonce;
1400
+ // Determine verifySender based on sender address
1401
+ var verifySender = signedOptions.sender !== '0x0000000000000000000000000000000000000000';
1402
+ // Encode executeSigned function call using the Universal Router v2.1 ABI
1403
+ var signedCalldata = SwapRouter.INTERFACE.encodeFunctionData('executeSigned', [commands, inputs, signedOptions.intent, signedOptions.data, verifySender, nonce, signature, deadline]);
1404
+ return {
1405
+ calldata: signedCalldata,
1406
+ value: nativeCurrencyValue.toHexString()
1407
+ };
1408
+ }
1111
1409
  /**
1112
1410
  * Builds the call parameters for a migration from a V3 position to a V4 position.
1113
1411
  * Some requirements of the parameters:
@@ -1155,8 +1453,8 @@ var SwapRouter = /*#__PURE__*/function () {
1155
1453
  // encode v3 withdraw
1156
1454
  var v3RemoveParams = NonfungiblePositionManager.removeCallParameters(options.inputPosition, options.v3RemoveLiquidityOptions);
1157
1455
  var v3Calls = Multicall.decodeMulticall(v3RemoveParams.calldata);
1158
- for (var _iterator = _createForOfIteratorHelperLoose(v3Calls), _step; !(_step = _iterator()).done;) {
1159
- var v3Call = _step.value;
1456
+ for (var _iterator2 = _createForOfIteratorHelperLoose(v3Calls), _step2; !(_step2 = _iterator2()).done;) {
1457
+ var v3Call = _step2.value;
1160
1458
  // slice selector - 0x + 4 bytes = 10 characters
1161
1459
  var _selector = v3Call.slice(0, 10);
1162
1460
  !(_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;
@@ -1512,5 +1810,5 @@ function v4RouterCallToParams(actions) {
1512
1810
  });
1513
1811
  }
1514
1812
 
1515
- 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 };
1813
+ 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 };
1516
1814
  //# sourceMappingURL=universal-router-sdk.esm.js.map