@avaprotocol/sdk-js 4.0.0-dev.0 → 4.0.0-dev.2

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 (90) hide show
  1. package/dist/index.js +874 -14
  2. package/dist/index.mjs +873 -14
  3. package/dist/v4/builders/nodes.d.ts +5 -2
  4. package/dist/v4/builders/nodes.d.ts.map +1 -1
  5. package/dist/v4/builders/nodes.js +1 -0
  6. package/dist/v4/index.d.ts +1 -0
  7. package/dist/v4/index.d.ts.map +1 -1
  8. package/dist/v4/index.js +1 -0
  9. package/dist/v4/protocols/aave-v3.d.ts +21 -0
  10. package/dist/v4/protocols/aave-v3.d.ts.map +1 -0
  11. package/dist/v4/protocols/aave-v3.js +238 -0
  12. package/dist/v4/protocols/aerodrome.d.ts +4 -0
  13. package/dist/v4/protocols/aerodrome.d.ts.map +1 -0
  14. package/dist/v4/protocols/aerodrome.js +9 -0
  15. package/dist/v4/protocols/chainlink.d.ts +7 -0
  16. package/dist/v4/protocols/chainlink.d.ts.map +1 -0
  17. package/dist/v4/protocols/chainlink.js +25 -0
  18. package/dist/v4/protocols/common.d.ts +16 -0
  19. package/dist/v4/protocols/common.d.ts.map +1 -0
  20. package/dist/v4/protocols/common.js +76 -0
  21. package/dist/v4/protocols/compound-v3.d.ts +4 -0
  22. package/dist/v4/protocols/compound-v3.d.ts.map +1 -0
  23. package/dist/v4/protocols/compound-v3.js +15 -0
  24. package/dist/v4/protocols/erc20.d.ts +5 -0
  25. package/dist/v4/protocols/erc20.d.ts.map +1 -0
  26. package/dist/v4/protocols/erc20.js +18 -0
  27. package/dist/v4/protocols/ethena.d.ts +7 -0
  28. package/dist/v4/protocols/ethena.d.ts.map +1 -0
  29. package/dist/v4/protocols/ethena.js +58 -0
  30. package/dist/v4/protocols/frax-ether.d.ts +7 -0
  31. package/dist/v4/protocols/frax-ether.d.ts.map +1 -0
  32. package/dist/v4/protocols/frax-ether.js +20 -0
  33. package/dist/v4/protocols/index.d.ts +132 -0
  34. package/dist/v4/protocols/index.d.ts.map +1 -0
  35. package/dist/v4/protocols/index.js +87 -0
  36. package/dist/v4/protocols/lido.d.ts +7 -0
  37. package/dist/v4/protocols/lido.d.ts.map +1 -0
  38. package/dist/v4/protocols/lido.js +44 -0
  39. package/dist/v4/protocols/morpho.d.ts +6 -0
  40. package/dist/v4/protocols/morpho.d.ts.map +1 -0
  41. package/dist/v4/protocols/morpho.js +89 -0
  42. package/dist/v4/protocols/rocket-pool.d.ts +6 -0
  43. package/dist/v4/protocols/rocket-pool.d.ts.map +1 -0
  44. package/dist/v4/protocols/rocket-pool.js +36 -0
  45. package/dist/v4/protocols/sky.d.ts +6 -0
  46. package/dist/v4/protocols/sky.d.ts.map +1 -0
  47. package/dist/v4/protocols/sky.js +13 -0
  48. package/dist/v4/protocols/spark.d.ts +4 -0
  49. package/dist/v4/protocols/spark.d.ts.map +1 -0
  50. package/dist/v4/protocols/spark.js +15 -0
  51. package/dist/v4/protocols/superfluid.d.ts +6 -0
  52. package/dist/v4/protocols/superfluid.d.ts.map +1 -0
  53. package/dist/v4/protocols/superfluid.js +39 -0
  54. package/dist/v4/protocols/types.d.ts +17 -0
  55. package/dist/v4/protocols/types.d.ts.map +1 -0
  56. package/dist/v4/protocols/types.js +1 -0
  57. package/dist/v4/protocols/uniswap-v3.d.ts +27 -0
  58. package/dist/v4/protocols/uniswap-v3.d.ts.map +1 -0
  59. package/dist/v4/protocols/uniswap-v3.js +197 -0
  60. package/dist/v4/protocols/wrapped.d.ts +6 -0
  61. package/dist/v4/protocols/wrapped.d.ts.map +1 -0
  62. package/dist/v4/protocols/wrapped.js +55 -0
  63. package/dist/v4/resources/executions.d.ts +6 -0
  64. package/dist/v4/resources/executions.d.ts.map +1 -1
  65. package/dist/v4/resources/executions.js +6 -0
  66. package/dist/v4/resources/health.d.ts +11 -1
  67. package/dist/v4/resources/health.d.ts.map +1 -1
  68. package/dist/v4/resources/health.js +11 -1
  69. package/dist/v4/resources/nodes.d.ts +21 -1
  70. package/dist/v4/resources/nodes.d.ts.map +1 -1
  71. package/dist/v4/resources/nodes.js +21 -1
  72. package/dist/v4/resources/operators.d.ts +15 -1
  73. package/dist/v4/resources/operators.d.ts.map +1 -1
  74. package/dist/v4/resources/operators.js +15 -1
  75. package/dist/v4/resources/secrets.d.ts +10 -0
  76. package/dist/v4/resources/secrets.d.ts.map +1 -1
  77. package/dist/v4/resources/secrets.js +10 -0
  78. package/dist/v4/resources/tokens.d.ts +16 -4
  79. package/dist/v4/resources/tokens.d.ts.map +1 -1
  80. package/dist/v4/resources/tokens.js +16 -4
  81. package/dist/v4/resources/triggers.d.ts +21 -1
  82. package/dist/v4/resources/triggers.d.ts.map +1 -1
  83. package/dist/v4/resources/triggers.js +21 -1
  84. package/dist/v4/resources/wallets.d.ts +53 -6
  85. package/dist/v4/resources/wallets.d.ts.map +1 -1
  86. package/dist/v4/resources/wallets.js +53 -6
  87. package/dist/v4/resources/workflows.d.ts +10 -0
  88. package/dist/v4/resources/workflows.d.ts.map +1 -1
  89. package/dist/v4/resources/workflows.js +10 -0
  90. package/package.json +7 -2
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ __export(index_exports, {
32
32
  Nodes: () => Nodes,
33
33
  NodesResource: () => NodesResource,
34
34
  OperatorsResource: () => OperatorsResource,
35
+ Protocols: () => Protocols,
35
36
  SecretsResource: () => SecretsResource,
36
37
  TokensResource: () => TokensResource,
37
38
  Triggers: () => Triggers,
@@ -419,6 +420,11 @@ var HealthResource = class {
419
420
  constructor(transport) {
420
421
  this.transport = transport;
421
422
  }
423
+ /**
424
+ * GET /health — returns `{ status, chainId, version }` when the
425
+ * gateway is up. Use for liveness checks; do not rely on it for
426
+ * deep readiness (it doesn't probe worker connectivity).
427
+ */
422
428
  check() {
423
429
  return this.transport.request({ path: "/health" });
424
430
  }
@@ -429,7 +435,21 @@ var NodesResource = class {
429
435
  constructor(transport) {
430
436
  this.transport = transport;
431
437
  }
432
- /** POST /nodes:run — execute a single node against inline input. */
438
+ /**
439
+ * POST /nodes:run — execute one node against inline `inputVariables`.
440
+ *
441
+ * The request shape mirrors a single entry from `workflows.simulate`:
442
+ * a complete node definition + the variables the node would have seen
443
+ * inside a workflow. The gateway runs the node in-process (no worker
444
+ * delegation, no persistence) and returns the raw output keyed by
445
+ * node type — `{ success, output: { <nodeType>: {...} } }`.
446
+ *
447
+ * Chain context: the gateway resolves the target chain in this order:
448
+ * `body.chainId` → `inputVariables.settings.chain_id` → the JWT's
449
+ * `aud` claim → the gateway's default chain. Specify `chainId`
450
+ * explicitly when calling a contract that lives on a non-default
451
+ * chain (e.g. a sepolia oracle when the gateway defaults to mainnet).
452
+ */
433
453
  run(req) {
434
454
  return this.transport.request({
435
455
  path: "/nodes:run",
@@ -444,7 +464,15 @@ var OperatorsResource = class {
444
464
  constructor(transport) {
445
465
  this.transport = transport;
446
466
  }
447
- /** GET /operators — connected operators + capabilities. */
467
+ /**
468
+ * GET /operators — every operator currently connected to the
469
+ * gateway, plus their advertised capabilities (block / time /
470
+ * event monitoring) and the timestamp of their last heartbeat.
471
+ *
472
+ * An empty array means no operators are connected — workflows will
473
+ * still accept, but won't execute until at least one operator
474
+ * comes online.
475
+ */
448
476
  list() {
449
477
  return this.transport.request({ path: "/operators" });
450
478
  }
@@ -486,10 +514,16 @@ var TokensResource = class {
486
514
  this.transport = transport;
487
515
  }
488
516
  /**
489
- * GET /tokens/{address} — returns `{ found: false }` (not 404)
490
- * when the token is not in the aggregator's whitelist and the
491
- * on-chain fallback fails. Partial info (the address) is still
492
- * useful to callers.
517
+ * GET /tokens/{address} — resolve a token by contract address.
518
+ *
519
+ * Returns `{ found: false, address }` (not 404) when the token
520
+ * isn't on the whitelist and the on-chain probe also fails — the
521
+ * partial response keeps the caller's UI from breaking on
522
+ * unrecognized tokens.
523
+ *
524
+ * `opts.chainId` picks which chain's whitelist + RPC to consult.
525
+ * Omit it to fall back to the JWT's `aud` chain (the gateway's
526
+ * default chain context for the authenticated user).
493
527
  */
494
528
  retrieve(address, opts) {
495
529
  return this.transport.request({
@@ -504,7 +538,20 @@ var TriggersResource = class {
504
538
  constructor(transport) {
505
539
  this.transport = transport;
506
540
  }
507
- /** POST /triggers:run — evaluate a trigger config against inline input. */
541
+ /**
542
+ * POST /triggers:run — evaluate a trigger config against inline
543
+ * input and return the same shape an executor would see.
544
+ *
545
+ * For event triggers, the gateway uses Tenderly to simulate a
546
+ * matching event log against the request's `addresses` + `topics`
547
+ * filter, then returns the decoded log under `output.data` and
548
+ * the raw log under `output.metadata`.
549
+ *
550
+ * For time-based triggers (cron, fixedTime, block), the response
551
+ * carries the next scheduled fire time / block height.
552
+ *
553
+ * No workflow record is created and no execution is persisted.
554
+ */
508
555
  run(req) {
509
556
  return this.transport.request({
510
557
  path: "/triggers:run",
@@ -519,13 +566,29 @@ var WalletsResource = class {
519
566
  constructor(transport) {
520
567
  this.transport = transport;
521
568
  }
522
- /** GET /wallets */
569
+ /**
570
+ * GET /wallets — every smart wallet owned by the authenticated
571
+ * EOA on the JWT's audience chain.
572
+ *
573
+ * Hidden wallets (`isHidden=true`) are excluded by default. The
574
+ * response is an envelope `{ data: Wallet[] }`, not a bare array.
575
+ */
523
576
  list() {
524
577
  return this.transport.request({ path: "/wallets" });
525
578
  }
526
579
  /**
527
580
  * POST /wallets — idempotent "ensure exists". Derives the CREATE2
528
- * address from (owner, salt, factory) and persists the record.
581
+ * address from `(owner, salt, factory)` and persists the record;
582
+ * calling twice with the same triple returns the same address.
583
+ *
584
+ * The on-chain account is **not** deployed by this call — deployment
585
+ * happens lazily as part of the first UserOp (workflow execution or
586
+ * `withdraw`) via the `initCode` field, so the smart wallet costs
587
+ * zero gas until it's first used.
588
+ *
589
+ * Per-owner cap is enforced by `max_wallets_per_owner` in the
590
+ * aggregator config; the call returns 429 `WALLETS_LIMIT_REACHED`
591
+ * when exceeded.
529
592
  */
530
593
  create(req) {
531
594
  return this.transport.request({
@@ -535,8 +598,11 @@ var WalletsResource = class {
535
598
  });
536
599
  }
537
600
  /**
538
- * PATCH /wallets/{address} — partial update. Today the only
539
- * mutable field is `isHidden`.
601
+ * PATCH /wallets/{address} — partial update. The only mutable
602
+ * field today is `isHidden`, used by the Studio UI's hide/unhide
603
+ * wallet action. Keyed by **address**, not salt — callers that
604
+ * still think in salts must look up the address first via
605
+ * `create({ salt })`.
540
606
  */
541
607
  update(address, body) {
542
608
  return this.transport.request({
@@ -545,7 +611,18 @@ var WalletsResource = class {
545
611
  body
546
612
  });
547
613
  }
548
- /** POST /wallets/{address}:withdraw — UserOp-driven withdraw. */
614
+ /**
615
+ * POST /wallets/{address}:withdraw — transfer ETH or an ERC-20 out
616
+ * of the smart wallet via a UserOp through the bundler + paymaster.
617
+ *
618
+ * Per-chain config (bundler URL, paymaster address, RPC) is resolved
619
+ * by the gateway from the JWT's `aud` claim or `body.chainId`.
620
+ * The response's `status` is one of `pending | confirmed | failed`:
621
+ * `confirmed` means the bundler returned a receipt synchronously,
622
+ * `pending` means it accepted the UserOp but the receipt hasn't
623
+ * landed yet, `failed` means the bundler rejected the op or it
624
+ * reverted before inclusion.
625
+ */
549
626
  withdraw(address, req) {
550
627
  return this.transport.request({
551
628
  path: `/wallets/${encodeURIComponent(address)}:withdraw`,
@@ -553,7 +630,14 @@ var WalletsResource = class {
553
630
  body: req
554
631
  });
555
632
  }
556
- /** GET /wallets/{address}:getNonce */
633
+ /**
634
+ * GET /wallets/{address}:getNonce — current AA nonce for the wallet.
635
+ *
636
+ * Used when an external signer needs to assemble a UserOp outside
637
+ * the SDK's bundler path. Most callers don't need this directly —
638
+ * `workflows.simulate` and `wallets.withdraw` handle nonce sourcing
639
+ * internally.
640
+ */
557
641
  getNonce(address) {
558
642
  return this.transport.request({
559
643
  path: `/wallets/${encodeURIComponent(address)}:getNonce`
@@ -801,7 +885,8 @@ var Nodes = Object.freeze({
801
885
  url: opts.url,
802
886
  method: opts.method,
803
887
  ...opts.body ? { body: opts.body } : {},
804
- ...opts.headers ? { headers: opts.headers } : {}
888
+ ...opts.headers ? { headers: opts.headers } : {},
889
+ ...opts.options ? { options: opts.options } : {}
805
890
  }
806
891
  };
807
892
  },
@@ -859,6 +944,780 @@ var Nodes = Object.freeze({
859
944
  };
860
945
  }
861
946
  });
947
+
948
+ // src/v4/protocols/aave-v3.ts
949
+ var pool = {
950
+ [Chains.EthereumMainnet]: "0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2",
951
+ [Chains.Sepolia]: "0x6Ae43d3271ff6888e7Fc43Fd7321a503ff738951",
952
+ [Chains.BaseMainnet]: "0xA238Dd80C259a72e81d7e4664a9801593F98d1c5",
953
+ [Chains.BaseSepolia]: "0x8bAB6d1b75f19e9eD9fCe8b9BD338844fF79aE27"
954
+ };
955
+ var oracle = {
956
+ [Chains.EthereumMainnet]: "0x54586bE62E3c3580375aE3723C145253060Ca0C2",
957
+ [Chains.Sepolia]: "0x2da88497588bf89281816106C7259e31AF45a663",
958
+ [Chains.BaseMainnet]: "0x2Cc0Fc26eD4563A5ce5e8bdcfe1A2878676Ae156",
959
+ [Chains.BaseSepolia]: "0x943b0dE18d4abf4eF02A85912F8fc07684C141dF"
960
+ };
961
+ var wethGateway = {
962
+ [Chains.EthereumMainnet]: "0xd01607c3C5eCABa394D8be377a08590149325722",
963
+ [Chains.Sepolia]: "0x387d311e47e80b498169e6fb51d3193167d89F7D",
964
+ [Chains.BaseMainnet]: "0xa0d9C1E9E48Ca30c8d8C3B5D69FF5dc1f6DFfC24",
965
+ [Chains.BaseSepolia]: "0x0568130e794429D2eEBC4dafE18f25Ff1a1ed8b6"
966
+ };
967
+ var eventTopics = Object.freeze({
968
+ Supply: "0x2b627736bca15cd5381dcf80b0bf11fd197d01a037c52b927a881a10fb73ba61",
969
+ Withdraw: "0x3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f7",
970
+ Borrow: "0xb3d084820fb1a9decffb176436bd02558d15fac9b0ddfed8c465bc7359d7dce0",
971
+ Repay: "0xa534c8dbe71f871f9f3530e97a74601fea17b426cae02e1c5aee42c96c784051",
972
+ LiquidationCall: "0xe413a321e8681d831f4dbccbca790d2952b56f977908e45be37335533e005286"
973
+ });
974
+ var poolEventsAbi = Object.freeze([
975
+ {
976
+ anonymous: false,
977
+ inputs: [
978
+ { indexed: true, internalType: "address", name: "reserve", type: "address" },
979
+ { indexed: false, internalType: "address", name: "user", type: "address" },
980
+ { indexed: true, internalType: "address", name: "onBehalfOf", type: "address" },
981
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
982
+ { indexed: true, internalType: "uint16", name: "referralCode", type: "uint16" }
983
+ ],
984
+ name: "Supply",
985
+ type: "event"
986
+ },
987
+ {
988
+ anonymous: false,
989
+ inputs: [
990
+ { indexed: true, internalType: "address", name: "reserve", type: "address" },
991
+ { indexed: true, internalType: "address", name: "user", type: "address" },
992
+ { indexed: true, internalType: "address", name: "to", type: "address" },
993
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" }
994
+ ],
995
+ name: "Withdraw",
996
+ type: "event"
997
+ },
998
+ {
999
+ anonymous: false,
1000
+ inputs: [
1001
+ { indexed: true, internalType: "address", name: "reserve", type: "address" },
1002
+ { indexed: false, internalType: "address", name: "user", type: "address" },
1003
+ { indexed: true, internalType: "address", name: "onBehalfOf", type: "address" },
1004
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
1005
+ { indexed: false, internalType: "uint8", name: "interestRateMode", type: "uint8" },
1006
+ { indexed: false, internalType: "uint256", name: "borrowRate", type: "uint256" },
1007
+ { indexed: true, internalType: "uint16", name: "referralCode", type: "uint16" }
1008
+ ],
1009
+ name: "Borrow",
1010
+ type: "event"
1011
+ },
1012
+ {
1013
+ anonymous: false,
1014
+ inputs: [
1015
+ { indexed: true, internalType: "address", name: "reserve", type: "address" },
1016
+ { indexed: true, internalType: "address", name: "user", type: "address" },
1017
+ { indexed: true, internalType: "address", name: "repayer", type: "address" },
1018
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
1019
+ { indexed: false, internalType: "bool", name: "useATokens", type: "bool" }
1020
+ ],
1021
+ name: "Repay",
1022
+ type: "event"
1023
+ },
1024
+ {
1025
+ anonymous: false,
1026
+ inputs: [
1027
+ { indexed: true, internalType: "address", name: "collateralAsset", type: "address" },
1028
+ { indexed: true, internalType: "address", name: "debtAsset", type: "address" },
1029
+ { indexed: true, internalType: "address", name: "user", type: "address" },
1030
+ { indexed: false, internalType: "uint256", name: "debtToCover", type: "uint256" },
1031
+ { indexed: false, internalType: "uint256", name: "liquidatedCollateralAmount", type: "uint256" },
1032
+ { indexed: false, internalType: "address", name: "liquidator", type: "address" },
1033
+ { indexed: false, internalType: "bool", name: "receiveAToken", type: "bool" }
1034
+ ],
1035
+ name: "LiquidationCall",
1036
+ type: "event"
1037
+ }
1038
+ ]);
1039
+ var poolMethodsAbi = Object.freeze([
1040
+ {
1041
+ inputs: [{ internalType: "address", name: "user", type: "address" }],
1042
+ name: "getUserAccountData",
1043
+ outputs: [
1044
+ { internalType: "uint256", name: "totalCollateralBase", type: "uint256" },
1045
+ { internalType: "uint256", name: "totalDebtBase", type: "uint256" },
1046
+ { internalType: "uint256", name: "availableBorrowsBase", type: "uint256" },
1047
+ { internalType: "uint256", name: "currentLiquidationThreshold", type: "uint256" },
1048
+ { internalType: "uint256", name: "ltv", type: "uint256" },
1049
+ { internalType: "uint256", name: "healthFactor", type: "uint256" }
1050
+ ],
1051
+ stateMutability: "view",
1052
+ type: "function"
1053
+ },
1054
+ {
1055
+ inputs: [
1056
+ { internalType: "address", name: "asset", type: "address" },
1057
+ { internalType: "uint256", name: "amount", type: "uint256" },
1058
+ { internalType: "address", name: "onBehalfOf", type: "address" },
1059
+ { internalType: "uint16", name: "referralCode", type: "uint16" }
1060
+ ],
1061
+ name: "supply",
1062
+ outputs: [],
1063
+ stateMutability: "nonpayable",
1064
+ type: "function"
1065
+ },
1066
+ {
1067
+ inputs: [
1068
+ { internalType: "address", name: "asset", type: "address" },
1069
+ { internalType: "uint256", name: "amount", type: "uint256" },
1070
+ { internalType: "uint256", name: "interestRateMode", type: "uint256" },
1071
+ { internalType: "uint16", name: "referralCode", type: "uint16" },
1072
+ { internalType: "address", name: "onBehalfOf", type: "address" }
1073
+ ],
1074
+ name: "borrow",
1075
+ outputs: [],
1076
+ stateMutability: "nonpayable",
1077
+ type: "function"
1078
+ },
1079
+ {
1080
+ inputs: [
1081
+ { internalType: "address", name: "asset", type: "address" },
1082
+ { internalType: "uint256", name: "amount", type: "uint256" },
1083
+ { internalType: "uint256", name: "interestRateMode", type: "uint256" },
1084
+ { internalType: "address", name: "onBehalfOf", type: "address" }
1085
+ ],
1086
+ name: "repay",
1087
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1088
+ stateMutability: "nonpayable",
1089
+ type: "function"
1090
+ },
1091
+ {
1092
+ inputs: [
1093
+ { internalType: "address", name: "asset", type: "address" },
1094
+ { internalType: "uint256", name: "amount", type: "uint256" },
1095
+ { internalType: "address", name: "to", type: "address" }
1096
+ ],
1097
+ name: "withdraw",
1098
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1099
+ stateMutability: "nonpayable",
1100
+ type: "function"
1101
+ },
1102
+ {
1103
+ inputs: [
1104
+ { internalType: "address", name: "asset", type: "address" },
1105
+ { internalType: "bool", name: "useAsCollateral", type: "bool" }
1106
+ ],
1107
+ name: "setUserUseReserveAsCollateral",
1108
+ outputs: [],
1109
+ stateMutability: "nonpayable",
1110
+ type: "function"
1111
+ }
1112
+ ]);
1113
+ var tokens = Object.freeze({
1114
+ LINK: {
1115
+ [Chains.Sepolia]: "0xf8Fb3713D459D7C1018BD0A49D19b4C44290EBE5"
1116
+ }
1117
+ });
1118
+ var aaveV3 = Object.freeze({
1119
+ pool,
1120
+ oracle,
1121
+ wethGateway,
1122
+ eventTopics,
1123
+ poolEventsAbi,
1124
+ poolMethodsAbi,
1125
+ tokens
1126
+ });
1127
+
1128
+ // src/v4/protocols/aerodrome.ts
1129
+ var router = {
1130
+ [Chains.BaseMainnet]: "0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43"
1131
+ };
1132
+ var aerodrome = Object.freeze({
1133
+ router
1134
+ });
1135
+
1136
+ // src/v4/protocols/common.ts
1137
+ var aggregatorV3Abi = Object.freeze([
1138
+ {
1139
+ inputs: [],
1140
+ name: "latestRoundData",
1141
+ outputs: [
1142
+ { internalType: "uint80", name: "roundId", type: "uint80" },
1143
+ { internalType: "int256", name: "answer", type: "int256" },
1144
+ { internalType: "uint256", name: "startedAt", type: "uint256" },
1145
+ { internalType: "uint256", name: "updatedAt", type: "uint256" },
1146
+ { internalType: "uint80", name: "answeredInRound", type: "uint80" }
1147
+ ],
1148
+ stateMutability: "view",
1149
+ type: "function"
1150
+ },
1151
+ {
1152
+ inputs: [],
1153
+ name: "decimals",
1154
+ outputs: [{ internalType: "uint8", name: "", type: "uint8" }],
1155
+ stateMutability: "view",
1156
+ type: "function"
1157
+ }
1158
+ ]);
1159
+ var erc4626VaultAbi = Object.freeze([
1160
+ {
1161
+ inputs: [
1162
+ { internalType: "uint256", name: "assets", type: "uint256" },
1163
+ { internalType: "address", name: "receiver", type: "address" }
1164
+ ],
1165
+ name: "deposit",
1166
+ outputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
1167
+ stateMutability: "nonpayable",
1168
+ type: "function"
1169
+ },
1170
+ {
1171
+ inputs: [
1172
+ { internalType: "uint256", name: "shares", type: "uint256" },
1173
+ { internalType: "address", name: "receiver", type: "address" },
1174
+ { internalType: "address", name: "owner", type: "address" }
1175
+ ],
1176
+ name: "redeem",
1177
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
1178
+ stateMutability: "nonpayable",
1179
+ type: "function"
1180
+ },
1181
+ {
1182
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
1183
+ name: "previewRedeem",
1184
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
1185
+ stateMutability: "view",
1186
+ type: "function"
1187
+ },
1188
+ {
1189
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
1190
+ name: "convertToAssets",
1191
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
1192
+ stateMutability: "view",
1193
+ type: "function"
1194
+ }
1195
+ ]);
1196
+
1197
+ // src/v4/protocols/chainlink.ts
1198
+ var ethUsdFeed = {
1199
+ [Chains.EthereumMainnet]: "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419",
1200
+ [Chains.Sepolia]: "0x694AA1769357215DE4FAC081bf1f309aDC325306"
1201
+ };
1202
+ var btcUsdFeed = {
1203
+ [Chains.EthereumMainnet]: "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c"
1204
+ };
1205
+ var chainlink = Object.freeze({
1206
+ ethUsdFeed,
1207
+ btcUsdFeed,
1208
+ /** Shared AggregatorV3 ABI — works for any Chainlink feed. */
1209
+ aggregatorV3Abi
1210
+ });
1211
+
1212
+ // src/v4/protocols/compound-v3.ts
1213
+ var cometUsdc = {
1214
+ [Chains.EthereumMainnet]: "0xc3d688B66703497DAA19211EEdff47f25384cdc3",
1215
+ [Chains.BaseMainnet]: "0xb125E6687d4313864e53df431d5425969c15Eb2F"
1216
+ };
1217
+ var compoundV3 = Object.freeze({
1218
+ cometUsdc
1219
+ });
1220
+
1221
+ // src/v4/protocols/erc20.ts
1222
+ var erc20 = Object.freeze({
1223
+ approveAbi: Object.freeze([
1224
+ {
1225
+ inputs: [
1226
+ { internalType: "address", name: "spender", type: "address" },
1227
+ { internalType: "uint256", name: "amount", type: "uint256" }
1228
+ ],
1229
+ name: "approve",
1230
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
1231
+ stateMutability: "nonpayable",
1232
+ type: "function"
1233
+ }
1234
+ ])
1235
+ });
1236
+
1237
+ // src/v4/protocols/ethena.ts
1238
+ var susde = {
1239
+ [Chains.EthereumMainnet]: "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497"
1240
+ };
1241
+ var usde = {
1242
+ [Chains.EthereumMainnet]: "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3"
1243
+ };
1244
+ var susdeAbi = Object.freeze([
1245
+ {
1246
+ inputs: [
1247
+ { internalType: "uint256", name: "assets", type: "uint256" },
1248
+ { internalType: "address", name: "receiver", type: "address" }
1249
+ ],
1250
+ name: "deposit",
1251
+ outputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
1252
+ stateMutability: "nonpayable",
1253
+ type: "function"
1254
+ },
1255
+ {
1256
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
1257
+ name: "cooldownShares",
1258
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
1259
+ stateMutability: "nonpayable",
1260
+ type: "function"
1261
+ },
1262
+ {
1263
+ inputs: [{ internalType: "address", name: "receiver", type: "address" }],
1264
+ name: "unstake",
1265
+ outputs: [],
1266
+ stateMutability: "nonpayable",
1267
+ type: "function"
1268
+ },
1269
+ {
1270
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
1271
+ name: "previewRedeem",
1272
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
1273
+ stateMutability: "view",
1274
+ type: "function"
1275
+ },
1276
+ {
1277
+ inputs: [{ internalType: "uint256", name: "shares", type: "uint256" }],
1278
+ name: "convertToAssets",
1279
+ outputs: [{ internalType: "uint256", name: "assets", type: "uint256" }],
1280
+ stateMutability: "view",
1281
+ type: "function"
1282
+ }
1283
+ ]);
1284
+ var ethena = Object.freeze({
1285
+ susde,
1286
+ usde,
1287
+ susdeAbi
1288
+ });
1289
+
1290
+ // src/v4/protocols/frax-ether.ts
1291
+ var sfrxeth = {
1292
+ [Chains.EthereumMainnet]: "0xac3E018457B222d93114458476f3E3416Abbe38F"
1293
+ };
1294
+ var frxeth = {
1295
+ [Chains.EthereumMainnet]: "0x5E8422345238F34275888049021821E8E08CAa1f"
1296
+ };
1297
+ var fraxEther = Object.freeze({
1298
+ sfrxeth,
1299
+ frxeth,
1300
+ /** Standard ERC-4626 surface — sfrxETH conforms exactly. */
1301
+ vaultAbi: erc4626VaultAbi
1302
+ });
1303
+
1304
+ // src/v4/protocols/lido.ts
1305
+ var wsteth = {
1306
+ [Chains.EthereumMainnet]: "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
1307
+ [Chains.BaseMainnet]: "0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452"
1308
+ };
1309
+ var steth = {
1310
+ [Chains.EthereumMainnet]: "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84"
1311
+ };
1312
+ var wstethAbi = Object.freeze([
1313
+ {
1314
+ inputs: [{ internalType: "uint256", name: "_stETHAmount", type: "uint256" }],
1315
+ name: "wrap",
1316
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1317
+ stateMutability: "nonpayable",
1318
+ type: "function"
1319
+ },
1320
+ {
1321
+ inputs: [{ internalType: "uint256", name: "_wstETHAmount", type: "uint256" }],
1322
+ name: "unwrap",
1323
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1324
+ stateMutability: "nonpayable",
1325
+ type: "function"
1326
+ },
1327
+ {
1328
+ inputs: [{ internalType: "uint256", name: "_wstETHAmount", type: "uint256" }],
1329
+ name: "getStETHByWstETH",
1330
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1331
+ stateMutability: "view",
1332
+ type: "function"
1333
+ }
1334
+ ]);
1335
+ var lido = Object.freeze({
1336
+ wsteth,
1337
+ steth,
1338
+ wstethAbi
1339
+ });
1340
+
1341
+ // src/v4/protocols/morpho.ts
1342
+ var morpho = {
1343
+ [Chains.EthereumMainnet]: "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb",
1344
+ [Chains.BaseMainnet]: "0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb"
1345
+ };
1346
+ var morphoAbi = Object.freeze([
1347
+ {
1348
+ inputs: [
1349
+ {
1350
+ components: [
1351
+ { internalType: "address", name: "loanToken", type: "address" },
1352
+ { internalType: "address", name: "collateralToken", type: "address" },
1353
+ { internalType: "address", name: "oracle", type: "address" },
1354
+ { internalType: "address", name: "irm", type: "address" },
1355
+ { internalType: "uint256", name: "lltv", type: "uint256" }
1356
+ ],
1357
+ internalType: "struct MarketParams",
1358
+ name: "marketParams",
1359
+ type: "tuple"
1360
+ },
1361
+ { internalType: "uint256", name: "assets", type: "uint256" },
1362
+ { internalType: "uint256", name: "shares", type: "uint256" },
1363
+ { internalType: "address", name: "onBehalf", type: "address" },
1364
+ { internalType: "bytes", name: "data", type: "bytes" }
1365
+ ],
1366
+ name: "supply",
1367
+ outputs: [
1368
+ { internalType: "uint256", name: "assetsSupplied", type: "uint256" },
1369
+ { internalType: "uint256", name: "sharesSupplied", type: "uint256" }
1370
+ ],
1371
+ stateMutability: "nonpayable",
1372
+ type: "function"
1373
+ },
1374
+ {
1375
+ inputs: [
1376
+ {
1377
+ components: [
1378
+ { internalType: "address", name: "loanToken", type: "address" },
1379
+ { internalType: "address", name: "collateralToken", type: "address" },
1380
+ { internalType: "address", name: "oracle", type: "address" },
1381
+ { internalType: "address", name: "irm", type: "address" },
1382
+ { internalType: "uint256", name: "lltv", type: "uint256" }
1383
+ ],
1384
+ internalType: "struct MarketParams",
1385
+ name: "marketParams",
1386
+ type: "tuple"
1387
+ },
1388
+ { internalType: "uint256", name: "assets", type: "uint256" },
1389
+ { internalType: "uint256", name: "shares", type: "uint256" },
1390
+ { internalType: "address", name: "onBehalf", type: "address" },
1391
+ { internalType: "address", name: "receiver", type: "address" }
1392
+ ],
1393
+ name: "borrow",
1394
+ outputs: [
1395
+ { internalType: "uint256", name: "assetsBorrowed", type: "uint256" },
1396
+ { internalType: "uint256", name: "sharesBorrowed", type: "uint256" }
1397
+ ],
1398
+ stateMutability: "nonpayable",
1399
+ type: "function"
1400
+ },
1401
+ {
1402
+ inputs: [
1403
+ { internalType: "bytes32", name: "id", type: "bytes32" },
1404
+ { internalType: "address", name: "user", type: "address" }
1405
+ ],
1406
+ name: "position",
1407
+ outputs: [
1408
+ { internalType: "uint256", name: "supplyShares", type: "uint256" },
1409
+ { internalType: "uint128", name: "borrowShares", type: "uint128" },
1410
+ { internalType: "uint128", name: "collateral", type: "uint128" }
1411
+ ],
1412
+ stateMutability: "view",
1413
+ type: "function"
1414
+ }
1415
+ ]);
1416
+ var morphoBlue = Object.freeze({
1417
+ morpho,
1418
+ morphoAbi
1419
+ });
1420
+
1421
+ // src/v4/protocols/rocket-pool.ts
1422
+ var reth = {
1423
+ [Chains.EthereumMainnet]: "0xae78736Cd615f374D3085123A210448E74Fc6393",
1424
+ [Chains.BaseMainnet]: "0xB6fe221Fe9EeF5aBa221c348bA20A1Bf5e73624c"
1425
+ };
1426
+ var rethAbi = Object.freeze([
1427
+ {
1428
+ inputs: [{ internalType: "uint256", name: "_rethAmount", type: "uint256" }],
1429
+ name: "burn",
1430
+ outputs: [],
1431
+ stateMutability: "nonpayable",
1432
+ type: "function"
1433
+ },
1434
+ {
1435
+ inputs: [],
1436
+ name: "getExchangeRate",
1437
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1438
+ stateMutability: "view",
1439
+ type: "function"
1440
+ },
1441
+ {
1442
+ inputs: [{ internalType: "uint256", name: "_rethAmount", type: "uint256" }],
1443
+ name: "getEthValue",
1444
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1445
+ stateMutability: "view",
1446
+ type: "function"
1447
+ }
1448
+ ]);
1449
+ var rocketPool = Object.freeze({
1450
+ reth,
1451
+ rethAbi
1452
+ });
1453
+
1454
+ // src/v4/protocols/sky.ts
1455
+ var sdai = {
1456
+ [Chains.EthereumMainnet]: "0x83F20F44975D03b1b09e64809B757c47f942BEeA"
1457
+ };
1458
+ var sky = Object.freeze({
1459
+ sdai,
1460
+ /** Standard ERC-4626 surface — sDAI conforms exactly. */
1461
+ vaultAbi: erc4626VaultAbi
1462
+ });
1463
+
1464
+ // src/v4/protocols/spark.ts
1465
+ var pool2 = {
1466
+ [Chains.EthereumMainnet]: "0xC13e21B648A5Ee794902342038FF3aDAB66BE987"
1467
+ };
1468
+ var spark = Object.freeze({
1469
+ pool: pool2
1470
+ });
1471
+
1472
+ // src/v4/protocols/superfluid.ts
1473
+ var cfaForwarder = {
1474
+ [Chains.EthereumMainnet]: "0xcfA132E353cB4E398080B9700609bb008eceB125",
1475
+ [Chains.BaseMainnet]: "0xcfA132E353cB4E398080B9700609bb008eceB125"
1476
+ };
1477
+ var cfaForwarderAbi = Object.freeze([
1478
+ {
1479
+ inputs: [
1480
+ { internalType: "address", name: "token", type: "address" },
1481
+ { internalType: "address", name: "receiver", type: "address" },
1482
+ { internalType: "int96", name: "flowrate", type: "int96" }
1483
+ ],
1484
+ name: "setFlowrate",
1485
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
1486
+ stateMutability: "nonpayable",
1487
+ type: "function"
1488
+ },
1489
+ {
1490
+ inputs: [
1491
+ { internalType: "address", name: "token", type: "address" },
1492
+ { internalType: "address", name: "sender", type: "address" },
1493
+ { internalType: "address", name: "receiver", type: "address" },
1494
+ { internalType: "int96", name: "flowrate", type: "int96" },
1495
+ { internalType: "bytes", name: "userData", type: "bytes" }
1496
+ ],
1497
+ name: "createFlow",
1498
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
1499
+ stateMutability: "nonpayable",
1500
+ type: "function"
1501
+ }
1502
+ ]);
1503
+ var superfluid = Object.freeze({
1504
+ cfaForwarder,
1505
+ cfaForwarderAbi
1506
+ });
1507
+
1508
+ // src/v4/protocols/uniswap-v3.ts
1509
+ var swapRouter02 = {
1510
+ [Chains.EthereumMainnet]: "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",
1511
+ [Chains.Sepolia]: "0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E",
1512
+ [Chains.BaseMainnet]: "0x2626664c2603336E57B271c5C0b26F421741e481",
1513
+ [Chains.BaseSepolia]: "0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4"
1514
+ };
1515
+ var quoterV2 = {
1516
+ [Chains.EthereumMainnet]: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
1517
+ [Chains.Sepolia]: "0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",
1518
+ [Chains.BaseMainnet]: "0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",
1519
+ [Chains.BaseSepolia]: "0xC5290058841028F1614F3A6F0F5816cAd0df5E27"
1520
+ };
1521
+ var permit2 = {
1522
+ [Chains.EthereumMainnet]: "0x000000000022d473030F116dDEE9F6B43aC78BA3",
1523
+ [Chains.Sepolia]: "0x000000000022d473030F116dDEE9F6B43aC78BA3",
1524
+ [Chains.BaseMainnet]: "0x000000000022d473030F116dDEE9F6B43aC78BA3",
1525
+ [Chains.BaseSepolia]: "0x000000000022d473030F116dDEE9F6B43aC78BA3"
1526
+ };
1527
+ var factory = {
1528
+ [Chains.EthereumMainnet]: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
1529
+ [Chains.Sepolia]: "0x0227628f3F023bb0B980b67D528571c95c6DaC1c",
1530
+ [Chains.BaseMainnet]: "0x33128a8fC17869897dcE68Ed026d694621f6FDfD",
1531
+ [Chains.BaseSepolia]: "0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24"
1532
+ };
1533
+ var nonfungiblePositionManager = {
1534
+ [Chains.EthereumMainnet]: "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
1535
+ [Chains.Sepolia]: "0x1238536071E1c677A632429e3655c799b22cDA52",
1536
+ [Chains.BaseMainnet]: "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",
1537
+ [Chains.BaseSepolia]: "0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2"
1538
+ };
1539
+ var universalRouter = {
1540
+ [Chains.EthereumMainnet]: "0x66a9893cc07d91d95644aedd05d03f95e1dba8af",
1541
+ [Chains.Sepolia]: "0x3A9D48AB9751398BbFa63ad67599Bb04e4BdF98b",
1542
+ [Chains.BaseMainnet]: "0x6ff5693b99212da76ad316178a184ab56d299b43",
1543
+ [Chains.BaseSepolia]: "0x492e6456d9528771018deb9e87ef7750ef184104"
1544
+ };
1545
+ var swapRouter02Abi = Object.freeze([
1546
+ {
1547
+ inputs: [
1548
+ {
1549
+ components: [
1550
+ { internalType: "address", name: "tokenIn", type: "address" },
1551
+ { internalType: "address", name: "tokenOut", type: "address" },
1552
+ { internalType: "uint24", name: "fee", type: "uint24" },
1553
+ { internalType: "address", name: "recipient", type: "address" },
1554
+ { internalType: "uint256", name: "amountIn", type: "uint256" },
1555
+ { internalType: "uint256", name: "amountOutMinimum", type: "uint256" },
1556
+ { internalType: "uint160", name: "sqrtPriceLimitX96", type: "uint160" }
1557
+ ],
1558
+ internalType: "struct IV3SwapRouter.ExactInputSingleParams",
1559
+ name: "params",
1560
+ type: "tuple"
1561
+ }
1562
+ ],
1563
+ name: "exactInputSingle",
1564
+ outputs: [{ internalType: "uint256", name: "amountOut", type: "uint256" }],
1565
+ stateMutability: "payable",
1566
+ type: "function"
1567
+ },
1568
+ {
1569
+ inputs: [
1570
+ {
1571
+ components: [
1572
+ { internalType: "address", name: "tokenIn", type: "address" },
1573
+ { internalType: "address", name: "tokenOut", type: "address" },
1574
+ { internalType: "uint24", name: "fee", type: "uint24" },
1575
+ { internalType: "address", name: "recipient", type: "address" },
1576
+ { internalType: "uint256", name: "amountOut", type: "uint256" },
1577
+ { internalType: "uint256", name: "amountInMaximum", type: "uint256" },
1578
+ { internalType: "uint160", name: "sqrtPriceLimitX96", type: "uint160" }
1579
+ ],
1580
+ internalType: "struct IV3SwapRouter.ExactOutputSingleParams",
1581
+ name: "params",
1582
+ type: "tuple"
1583
+ }
1584
+ ],
1585
+ name: "exactOutputSingle",
1586
+ outputs: [{ internalType: "uint256", name: "amountIn", type: "uint256" }],
1587
+ stateMutability: "payable",
1588
+ type: "function"
1589
+ }
1590
+ ]);
1591
+ var quoterV2Abi = Object.freeze([
1592
+ {
1593
+ inputs: [
1594
+ {
1595
+ components: [
1596
+ { internalType: "address", name: "tokenIn", type: "address" },
1597
+ { internalType: "address", name: "tokenOut", type: "address" },
1598
+ { internalType: "uint256", name: "amountIn", type: "uint256" },
1599
+ { internalType: "uint24", name: "fee", type: "uint24" },
1600
+ { internalType: "uint160", name: "sqrtPriceLimitX96", type: "uint160" }
1601
+ ],
1602
+ internalType: "struct IQuoterV2.QuoteExactInputSingleParams",
1603
+ name: "params",
1604
+ type: "tuple"
1605
+ }
1606
+ ],
1607
+ name: "quoteExactInputSingle",
1608
+ outputs: [
1609
+ { internalType: "uint256", name: "amountOut", type: "uint256" },
1610
+ { internalType: "uint160", name: "sqrtPriceX96After", type: "uint160" },
1611
+ { internalType: "uint32", name: "initializedTicksCrossed", type: "uint32" },
1612
+ { internalType: "uint256", name: "gasEstimate", type: "uint256" }
1613
+ ],
1614
+ stateMutability: "nonpayable",
1615
+ type: "function"
1616
+ }
1617
+ ]);
1618
+ var factoryAbi = Object.freeze([
1619
+ {
1620
+ inputs: [
1621
+ { internalType: "address", name: "tokenA", type: "address" },
1622
+ { internalType: "address", name: "tokenB", type: "address" },
1623
+ { internalType: "uint24", name: "fee", type: "uint24" }
1624
+ ],
1625
+ name: "getPool",
1626
+ outputs: [{ internalType: "address", name: "pool", type: "address" }],
1627
+ stateMutability: "view",
1628
+ type: "function"
1629
+ }
1630
+ ]);
1631
+ var tokens2 = Object.freeze({
1632
+ WETH: {
1633
+ [Chains.Sepolia]: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",
1634
+ [Chains.EthereumMainnet]: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
1635
+ [Chains.BaseMainnet]: "0x4200000000000000000000000000000000000006",
1636
+ [Chains.BaseSepolia]: "0x4200000000000000000000000000000000000006"
1637
+ },
1638
+ USDC: {
1639
+ [Chains.Sepolia]: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
1640
+ [Chains.EthereumMainnet]: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
1641
+ [Chains.BaseMainnet]: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
1642
+ [Chains.BaseSepolia]: "0x036CbD53842c5426634e7929541eC2318f3dCF7e"
1643
+ }
1644
+ });
1645
+ var uniswapV3 = Object.freeze({
1646
+ swapRouter02,
1647
+ quoterV2,
1648
+ permit2,
1649
+ factory,
1650
+ nonfungiblePositionManager,
1651
+ universalRouter,
1652
+ swapRouter02Abi,
1653
+ quoterV2Abi,
1654
+ factoryAbi,
1655
+ tokens: tokens2
1656
+ });
1657
+
1658
+ // src/v4/protocols/wrapped.ts
1659
+ var weth = {
1660
+ [Chains.EthereumMainnet]: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
1661
+ [Chains.Sepolia]: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",
1662
+ [Chains.BaseMainnet]: "0x4200000000000000000000000000000000000006",
1663
+ [Chains.BaseSepolia]: "0x4200000000000000000000000000000000000006"
1664
+ };
1665
+ var wethAbi = Object.freeze([
1666
+ {
1667
+ inputs: [],
1668
+ name: "deposit",
1669
+ outputs: [],
1670
+ stateMutability: "payable",
1671
+ type: "function"
1672
+ },
1673
+ {
1674
+ inputs: [{ internalType: "uint256", name: "wad", type: "uint256" }],
1675
+ name: "withdraw",
1676
+ outputs: [],
1677
+ stateMutability: "nonpayable",
1678
+ type: "function"
1679
+ },
1680
+ {
1681
+ inputs: [
1682
+ { internalType: "address", name: "guy", type: "address" },
1683
+ { internalType: "uint256", name: "wad", type: "uint256" }
1684
+ ],
1685
+ name: "approve",
1686
+ outputs: [{ internalType: "bool", name: "", type: "bool" }],
1687
+ stateMutability: "nonpayable",
1688
+ type: "function"
1689
+ },
1690
+ {
1691
+ inputs: [{ internalType: "address", name: "", type: "address" }],
1692
+ name: "balanceOf",
1693
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1694
+ stateMutability: "view",
1695
+ type: "function"
1696
+ }
1697
+ ]);
1698
+ var wrapped = Object.freeze({
1699
+ weth,
1700
+ wethAbi
1701
+ });
1702
+
1703
+ // src/v4/protocols/index.ts
1704
+ var Protocols = Object.freeze({
1705
+ aaveV3,
1706
+ aerodrome,
1707
+ chainlink,
1708
+ compoundV3,
1709
+ erc20,
1710
+ ethena,
1711
+ fraxEther,
1712
+ lido,
1713
+ morphoBlue,
1714
+ rocketPool,
1715
+ sky,
1716
+ spark,
1717
+ superfluid,
1718
+ uniswapV3,
1719
+ wrapped
1720
+ });
862
1721
  // Annotate the CommonJS export names for ESM import in node:
863
1722
  0 && (module.exports = {
864
1723
  APIError,
@@ -873,6 +1732,7 @@ var Nodes = Object.freeze({
873
1732
  Nodes,
874
1733
  NodesResource,
875
1734
  OperatorsResource,
1735
+ Protocols,
876
1736
  SecretsResource,
877
1737
  TokensResource,
878
1738
  Triggers,