@gearbox-protocol/sdk 17.1.0-next.1 → 17.1.0-next.3

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 (84) hide show
  1. package/dist/cjs/onchain/MultichainSDK.js +2 -27
  2. package/dist/cjs/onchain/OnchainSDK.js +5 -6
  3. package/dist/cjs/onchain/accounts/intents/borrow.js +47 -20
  4. package/dist/cjs/onchain/accounts/intents/guards.js +6 -4
  5. package/dist/cjs/onchain/accounts/intents/index.js +40 -9
  6. package/dist/cjs/onchain/accounts/intents/math.js +4 -10
  7. package/dist/cjs/onchain/accounts/intents/open-strategy.js +49 -17
  8. package/dist/cjs/onchain/accounts/intents/plan.js +8 -1
  9. package/dist/cjs/onchain/accounts/intents/realize.js +55 -24
  10. package/dist/cjs/onchain/index.js +0 -5
  11. package/dist/cjs/onchain/market/credit/CreditSuite.js +6 -5
  12. package/dist/cjs/onchain/market/index.js +0 -5
  13. package/dist/cjs/onchain/market/pricefeeds/feeds/RedstonePriceFeed.js +1 -7
  14. package/dist/cjs/onchain/market/pricefeeds/index.js +0 -5
  15. package/dist/cjs/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.js +5 -5
  16. package/dist/cjs/onchain/market/pricefeeds/updates/index.js +0 -5
  17. package/dist/cjs/onchain/options.js +1 -7
  18. package/dist/cjs/permissionless/index.js +1 -5
  19. package/dist/cjs/permissionless/utils/index.js +1 -5
  20. package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +5 -0
  21. package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +6 -4
  22. package/dist/cjs/permissionless/utils/price-update/index.js +1 -5
  23. package/dist/cjs/sdk/prepare/PrepareApi.js +83 -32
  24. package/dist/esm/onchain/MultichainSDK.js +2 -27
  25. package/dist/esm/onchain/OnchainSDK.js +5 -6
  26. package/dist/esm/onchain/accounts/intents/borrow.js +47 -20
  27. package/dist/esm/onchain/accounts/intents/guards.js +6 -4
  28. package/dist/esm/onchain/accounts/intents/index.js +40 -9
  29. package/dist/esm/onchain/accounts/intents/math.js +5 -10
  30. package/dist/esm/onchain/accounts/intents/open-strategy.js +49 -17
  31. package/dist/esm/onchain/accounts/intents/plan.js +8 -1
  32. package/dist/esm/onchain/accounts/intents/realize.js +55 -24
  33. package/dist/esm/onchain/index.js +1 -3
  34. package/dist/esm/onchain/market/credit/CreditSuite.js +6 -5
  35. package/dist/esm/onchain/market/index.js +1 -3
  36. package/dist/esm/onchain/market/pricefeeds/feeds/RedstonePriceFeed.js +1 -7
  37. package/dist/esm/onchain/market/pricefeeds/index.js +1 -3
  38. package/dist/esm/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.js +5 -5
  39. package/dist/esm/onchain/market/pricefeeds/updates/index.js +1 -3
  40. package/dist/esm/onchain/options.js +1 -7
  41. package/dist/esm/permissionless/index.js +2 -3
  42. package/dist/esm/permissionless/utils/index.js +2 -3
  43. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +5 -0
  44. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +6 -4
  45. package/dist/esm/permissionless/utils/price-update/index.js +2 -3
  46. package/dist/esm/sdk/prepare/PrepareApi.js +83 -32
  47. package/dist/types/onchain/MultichainSDK.d.ts +0 -10
  48. package/dist/types/onchain/OnchainSDK.d.ts +0 -10
  49. package/dist/types/onchain/accounts/index.d.ts +2 -2
  50. package/dist/types/onchain/accounts/intents/borrow.d.ts +5 -0
  51. package/dist/types/onchain/accounts/intents/guards.d.ts +6 -4
  52. package/dist/types/onchain/accounts/intents/index.d.ts +4 -4
  53. package/dist/types/onchain/accounts/intents/math.d.ts +2 -9
  54. package/dist/types/onchain/accounts/intents/open-strategy.d.ts +5 -0
  55. package/dist/types/onchain/accounts/intents/realize.d.ts +5 -0
  56. package/dist/types/onchain/accounts/intents/types.d.ts +49 -6
  57. package/dist/types/onchain/index.d.ts +4 -6
  58. package/dist/types/onchain/market/credit/CreditSuite.d.ts +10 -0
  59. package/dist/types/onchain/market/index.d.ts +3 -5
  60. package/dist/types/onchain/market/pricefeeds/feeds/RedstonePriceFeed.d.ts +1 -4
  61. package/dist/types/onchain/market/pricefeeds/index.d.ts +3 -5
  62. package/dist/types/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.d.ts +4 -4
  63. package/dist/types/onchain/market/pricefeeds/updates/index.d.ts +3 -5
  64. package/dist/types/onchain/market/pricefeeds/updates/types.d.ts +2 -16
  65. package/dist/types/onchain/options.d.ts +0 -7
  66. package/dist/types/permissionless/index.d.ts +2 -3
  67. package/dist/types/permissionless/utils/index.d.ts +2 -3
  68. package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +5 -0
  69. package/dist/types/permissionless/utils/price-update/get-updatable-feeds.d.ts +9 -3
  70. package/dist/types/permissionless/utils/price-update/index.d.ts +2 -3
  71. package/dist/types/sdk/index.d.ts +2 -2
  72. package/dist/types/sdk/prepare/PrepareApi.d.ts +16 -14
  73. package/dist/types/sdk/prepare/index.d.ts +2 -2
  74. package/dist/types/sdk/prepare/types.d.ts +21 -14
  75. package/package.json +1 -5
  76. package/dist/cjs/onchain/market/pricefeeds/updates/RedstoneUpdater.js +0 -193
  77. package/dist/cjs/onchain/market/pricefeeds/updates/fetchRedstonePayloads.js +0 -95
  78. package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +0 -60
  79. package/dist/esm/onchain/market/pricefeeds/updates/RedstoneUpdater.js +0 -191
  80. package/dist/esm/onchain/market/pricefeeds/updates/fetchRedstonePayloads.js +0 -94
  81. package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +0 -57
  82. package/dist/types/onchain/market/pricefeeds/updates/RedstoneUpdater.d.ts +0 -37
  83. package/dist/types/onchain/market/pricefeeds/updates/fetchRedstonePayloads.d.ts +0 -62
  84. package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +0 -22
@@ -397,7 +397,7 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
397
397
  curator: market.curator,
398
398
  underlyingToken: this.underlyingToken,
399
399
  totalBorrowed: oracle.toAmount(pool.underlying, borrowed),
400
- allowedDepositTokens: this.#allowedDepositTokens(collateral),
400
+ allowedDepositTokens: this.allowedDepositTokens(collateral),
401
401
  paused: this.isPaused,
402
402
  rwa: market.rwa,
403
403
  sunset: market.sunset || require_onchain_chain_chains.isSunsetStrategy(cm.address, this.sdk.networkType),
@@ -471,17 +471,18 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
471
471
  *
472
472
  * 1. unwrapped underlying (USDC, never dcUSDC)
473
473
  * 2. target collateral
474
- * 3. remaining CM collaterals in manager order, no phantoms
474
+ * 3. remaining CM collaterals in manager order, excluding phantom tokens
475
+ * and tokens without price
475
476
  */
476
- #allowedDepositTokens(targetCollateral) {
477
+ allowedDepositTokens(targetCollateral) {
477
478
  const unwrappedUnderlying = this.market.unwrappedUnderlying;
478
- const skip = (token) => this.market.isUnderlyingLike(token) || (0, viem.isAddressEqual)(token, targetCollateral);
479
+ const { mainPrices, reservePrices } = this.market.priceOracle;
479
480
  return [
480
481
  unwrappedUnderlying,
481
482
  targetCollateral,
482
483
  ...this.creditManager.collateralTokens.filter((token) => {
483
484
  const contractType = this.tokensMeta.mustGet(token).contractType;
484
- return !skip(token) && !contractType?.startsWith("PHANTOM_TOKEN::");
485
+ return !this.market.isUnderlyingLike(token) && !(0, viem.isAddressEqual)(token, targetCollateral) && !contractType?.startsWith("PHANTOM_TOKEN::") && (!!mainPrices.get(token)?.price || !!reservePrices.get(token)?.price);
485
486
  })
486
487
  ].map((token) => this.tokensMeta.mustGetToken(token));
487
488
  }
@@ -120,11 +120,9 @@ const require_onchain_market_pricefeeds_feeds_WstETHPriceFeed = require("./price
120
120
  const require_onchain_market_pricefeeds_feeds_YearnPriceFeed = require("./pricefeeds/feeds/YearnPriceFeed.js");
121
121
  const require_onchain_market_pricefeeds_feeds_ZeroPriceFeed = require("./pricefeeds/feeds/ZeroPriceFeed.js");
122
122
  const require_onchain_market_pricefeeds_PriceFeedRegistry = require("./pricefeeds/PriceFeedRegistry.js");
123
- const require_onchain_market_pricefeeds_updates_fetchRedstonePayloads = require("./pricefeeds/updates/fetchRedstonePayloads.js");
124
123
  const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("./pricefeeds/updates/getRawPriceUpdates.js");
125
124
  const require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed = require("./pricefeeds/updates/isUpdatablePriceFeed.js");
126
125
  const require_onchain_market_pricefeeds_updates_PriceUpdatesCache = require("./pricefeeds/updates/PriceUpdatesCache.js");
127
- const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./pricefeeds/updates/RedstoneUpdater.js");
128
126
  const require_onchain_market_pricefeeds_updates_updatableDependencies = require("./pricefeeds/updates/updatableDependencies.js");
129
127
  const require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry = require("./pricefeeds/updates/UpdatablePriceFeedRegistry.js");
130
128
  require("./pricefeeds/index.js");
@@ -230,9 +228,7 @@ exports.RWARegistry = require_onchain_market_rwa_RWARegistry.RWARegistry;
230
228
  exports.RWA_COMPRESSOR_ADDRESS = require_onchain_market_rwa_RWARegistry.RWA_COMPRESSOR_ADDRESS;
231
229
  exports.RWA_LIQUIDATOR_MIDAS = require_onchain_market_rwa_midas_constants.RWA_LIQUIDATOR_MIDAS;
232
230
  exports.RWA_LIQUIDATOR_SECURITIZE = require_onchain_market_rwa_securitize_constants.RWA_LIQUIDATOR_SECURITIZE;
233
- exports.RedstoneOptions = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneOptions;
234
231
  exports.RedstonePriceFeedContract = require_onchain_market_pricefeeds_feeds_RedstonePriceFeed.RedstonePriceFeedContract;
235
- exports.RedstoneUpdater = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneUpdater;
236
232
  exports.SecuritizeDegenNFT = require_onchain_market_rwa_securitize_SecuritizeDegenNFT.SecuritizeDegenNFT;
237
233
  exports.SecuritizeLiquidatorContract = require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract.SecuritizeLiquidatorContract;
238
234
  exports.SecuritizeOnRampAdapterContract = require_onchain_market_adapters_contracts_SecuritizeOnRampAdapterContract.SecuritizeOnRampAdapterContract;
@@ -277,7 +273,6 @@ exports.curveRemoveLiquidityFromTransfers = require_onchain_market_adapters_tran
277
273
  exports.dominantCollateral = require_onchain_market_credit_collateralUtils.dominantCollateral;
278
274
  exports.erc4626ReferralAdapterAbi = require_onchain_market_adapters_abi_adapters_erc4626ReferralAdapter.erc4626ReferralAdapterAbi;
279
275
  exports.expectedBalanceDeltas = require_onchain_market_credit_expectedBalanceDeltas.expectedBalanceDeltas;
280
- exports.fetchRedstonePayloads = require_onchain_market_pricefeeds_updates_fetchRedstonePayloads.fetchRedstonePayloads;
281
276
  exports.fnSigToName = require_onchain_market_adapters_transferHelpers.fnSigToName;
282
277
  exports.getAdapterActionAbi = require_onchain_market_adapters_abi_utils.getAdapterActionAbi;
283
278
  exports.getAdapterDeployParamsAbi = require_onchain_market_adapters_abi_utils.getAdapterDeployParamsAbi;
@@ -17,6 +17,7 @@ var RedstonePriceFeedContract = class extends require_onchain_market_pricefeeds_
17
17
  constructor(options, args) {
18
18
  super(options, {
19
19
  ...args,
20
+ updatable: false,
20
21
  name: "RedstonePriceFeed",
21
22
  abi: require_onchain_abi_oracles.redstonePriceFeedAbi
22
23
  });
@@ -70,13 +71,6 @@ var RedstonePriceFeedContract = class extends require_onchain_market_pricefeeds_
70
71
  lastPayloadTimestamp: this.lastPayloadTimestamp.toString()
71
72
  };
72
73
  }
73
- createPriceUpdateTx(data) {
74
- return this.createRawTx({
75
- functionName: "updatePrice",
76
- args: [data],
77
- description: `updating redstone price for ${this.dataId} [${this.labelAddress(this.address)}]`
78
- });
79
- }
80
74
  };
81
75
  //#endregion
82
76
  exports.RedstonePriceFeedContract = RedstonePriceFeedContract;
@@ -22,11 +22,9 @@ const require_onchain_market_pricefeeds_feeds_ZeroPriceFeed = require("./feeds/Z
22
22
  require("./feeds/index.js");
23
23
  const require_onchain_market_pricefeeds_PriceFeedRegistry = require("./PriceFeedRegistry.js");
24
24
  require("./types.js");
25
- const require_onchain_market_pricefeeds_updates_fetchRedstonePayloads = require("./updates/fetchRedstonePayloads.js");
26
25
  const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("./updates/getRawPriceUpdates.js");
27
26
  const require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed = require("./updates/isUpdatablePriceFeed.js");
28
27
  const require_onchain_market_pricefeeds_updates_PriceUpdatesCache = require("./updates/PriceUpdatesCache.js");
29
- const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./updates/RedstoneUpdater.js");
30
28
  const require_onchain_market_pricefeeds_updates_updatableDependencies = require("./updates/updatableDependencies.js");
31
29
  const require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry = require("./updates/UpdatablePriceFeedRegistry.js");
32
30
  require("./updates/index.js");
@@ -49,14 +47,11 @@ exports.PriceFeedRef = require_onchain_market_pricefeeds_PriceFeedRef.PriceFeedR
49
47
  exports.PriceFeedRegistry = require_onchain_market_pricefeeds_PriceFeedRegistry.PriceFeedRegistry;
50
48
  exports.PriceUpdatesCache = require_onchain_market_pricefeeds_updates_PriceUpdatesCache.PriceUpdatesCache;
51
49
  exports.PythPriceFeed = require_onchain_market_pricefeeds_feeds_PythPriceFeed.PythPriceFeed;
52
- exports.RedstoneOptions = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneOptions;
53
50
  exports.RedstonePriceFeedContract = require_onchain_market_pricefeeds_feeds_RedstonePriceFeed.RedstonePriceFeedContract;
54
- exports.RedstoneUpdater = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneUpdater;
55
51
  exports.UpdatablePriceFeedRegistry = require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry.UpdatablePriceFeedRegistry;
56
52
  exports.WstETHPriceFeedContract = require_onchain_market_pricefeeds_feeds_WstETHPriceFeed.WstETHPriceFeedContract;
57
53
  exports.YearnPriceFeedContract = require_onchain_market_pricefeeds_feeds_YearnPriceFeed.YearnPriceFeedContract;
58
54
  exports.ZeroPriceFeedContract = require_onchain_market_pricefeeds_feeds_ZeroPriceFeed.ZeroPriceFeedContract;
59
- exports.fetchRedstonePayloads = require_onchain_market_pricefeeds_updates_fetchRedstonePayloads.fetchRedstonePayloads;
60
55
  exports.getRawPriceUpdates = require_onchain_market_pricefeeds_updates_getRawPriceUpdates.getRawPriceUpdates;
61
56
  exports.isLPPriceFeed = require_onchain_market_pricefeeds_AbstractLPPriceFeed.isLPPriceFeed;
62
57
  exports.isUpdatablePriceFeed = require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed.isUpdatablePriceFeed;
@@ -9,23 +9,22 @@ const require_abi_compressors_priceFeedCompressor = require("../../../../abi/com
9
9
  const require_onchain_market_pricefeeds_PriceFeedRegistry = require("../PriceFeedRegistry.js");
10
10
  const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("./getRawPriceUpdates.js");
11
11
  const require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed = require("./isUpdatablePriceFeed.js");
12
- const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./RedstoneUpdater.js");
13
12
  const require_onchain_utils_internal_Hooks = require("../../../utils/internal/Hooks.js");
14
13
  require("../../../utils/internal/index.js");
15
14
  const require_onchain_market_pricefeeds_updates_updatableDependencies = require("./updatableDependencies.js");
16
15
  let viem = require("viem");
17
16
  //#region src/onchain/market/pricefeeds/updates/UpdatablePriceFeedRegistry.ts
18
17
  /**
19
- * {@link PriceFeedRegistry} that also orchestrates off-chain price updates
20
- * (Redstone, etc.).
18
+ * @deprecated Support for updatable price feeds is deprecated.
19
+ * {@link PriceFeedRegistry} that also orchestrates off-chain price updates.
21
20
  **/
22
21
  var UpdatablePriceFeedRegistry = class extends require_onchain_market_pricefeeds_PriceFeedRegistry.PriceFeedRegistry {
23
22
  #hooks = new require_onchain_utils_internal_Hooks.Hooks();
24
23
  #updaters;
25
24
  #latestUpdate;
26
- constructor(sdk, opts = {}) {
25
+ constructor(sdk) {
27
26
  super(sdk);
28
- this.#updaters = [new require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneUpdater(sdk, opts.redstone)];
27
+ this.#updaters = [];
29
28
  }
30
29
  /**
31
30
  * @internal
@@ -122,6 +121,7 @@ var UpdatablePriceFeedRegistry = class extends require_onchain_market_pricefeeds
122
121
  * Discovered price feeds are not saved anywhere in PriceFeedRegistry, and can later be used to load price feed updates
123
122
  */
124
123
  async getPartialUpdatablePriceFeeds(configurators) {
124
+ if (this.#updaters.length === 0) return [];
125
125
  const [priceFeedCompressorAddress] = this.sdk.addressProvider.mustGetLatest(require_onchain_constants_address_provider.AP_PRICE_FEED_COMPRESSOR, require_onchain_constants_versions.VERSION_RANGE_310);
126
126
  this.logger?.debug({ configurators }, `calling getUpdatablePriceFeeds in block ${this.sdk.currentBlock}`);
127
127
  const result = await this.client.readContract({
@@ -1,16 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_market_pricefeeds_updates_fetchRedstonePayloads = require("./fetchRedstonePayloads.js");
3
2
  const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("./getRawPriceUpdates.js");
4
3
  const require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed = require("./isUpdatablePriceFeed.js");
5
4
  const require_onchain_market_pricefeeds_updates_PriceUpdatesCache = require("./PriceUpdatesCache.js");
6
- const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./RedstoneUpdater.js");
7
5
  const require_onchain_market_pricefeeds_updates_updatableDependencies = require("./updatableDependencies.js");
8
6
  const require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry = require("./UpdatablePriceFeedRegistry.js");
9
7
  exports.PriceUpdatesCache = require_onchain_market_pricefeeds_updates_PriceUpdatesCache.PriceUpdatesCache;
10
- exports.RedstoneOptions = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneOptions;
11
- exports.RedstoneUpdater = require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneUpdater;
12
8
  exports.UpdatablePriceFeedRegistry = require_onchain_market_pricefeeds_updates_UpdatablePriceFeedRegistry.UpdatablePriceFeedRegistry;
13
- exports.fetchRedstonePayloads = require_onchain_market_pricefeeds_updates_fetchRedstonePayloads.fetchRedstonePayloads;
14
9
  exports.getRawPriceUpdates = require_onchain_market_pricefeeds_updates_getRawPriceUpdates.getRawPriceUpdates;
15
10
  exports.isUpdatablePriceFeed = require_onchain_market_pricefeeds_updates_isUpdatablePriceFeed.isUpdatablePriceFeed;
16
11
  exports.updatableDependencies = require_onchain_market_pricefeeds_updates_updatableDependencies.updatableDependencies;
@@ -1,8 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_onchain_utils_zod = require("./utils/zod.js");
3
3
  require("./utils/index.js");
4
- const require_onchain_market_pricefeeds_updates_RedstoneUpdater = require("./market/pricefeeds/updates/RedstoneUpdater.js");
5
- require("./market/pricefeeds/updates/index.js");
6
4
  let zod_v4 = require("zod/v4");
7
5
  //#region src/onchain/options.ts
8
6
  /**
@@ -57,11 +55,7 @@ const attachOptionsSchema = zod_v4.z.object({
57
55
  /**
58
56
  * Pool addresses whose markets should be skipped.
59
57
  **/
60
- ignoreMarkets: zod_v4.z.array(require_onchain_utils_zod.ZodAddress()).optional(),
61
- /**
62
- * Options for Redstone price-feed updates.
63
- **/
64
- redstone: require_onchain_market_pricefeeds_updates_RedstoneUpdater.RedstoneOptions.optional()
58
+ ignoreMarkets: zod_v4.z.array(require_onchain_utils_zod.ZodAddress()).optional()
65
59
  });
66
60
  //#endregion
67
61
  exports.attachOptionsSchema = attachOptionsSchema;
@@ -29,10 +29,9 @@ const require_permissionless_utils_abi_encoder = require("./utils/abi-encoder.js
29
29
  const require_permissionless_utils_block_utils = require("./utils/block-utils.js");
30
30
  const require_permissionless_utils_governance_batch = require("./utils/governance/batch.js");
31
31
  const require_permissionless_utils_governance_timelock_txs = require("./utils/governance/timelock-txs.js");
32
- const require_permissionless_utils_price_update_get_updatable_feeds = require("./utils/price-update/get-updatable-feeds.js");
33
- const require_permissionless_utils_price_update_get_price_feeds = require("./utils/price-update/get-price-feeds.js");
34
32
  const require_permissionless_utils_price_update_get_price_update_tx = require("./utils/price-update/get-price-update-tx.js");
35
33
  const require_permissionless_utils_price_update_get_prices = require("./utils/price-update/get-prices.js");
34
+ const require_permissionless_utils_price_update_get_updatable_feeds = require("./utils/price-update/get-updatable-feeds.js");
36
35
  require("./utils/index.js");
37
36
  exports.AccessMode = require_permissionless_bindings_types.AccessMode;
38
37
  exports.AddressProviderContract = require_permissionless_bindings_address_provider.AddressProviderContract;
@@ -77,9 +76,6 @@ exports.encodeFunctionParams = require_permissionless_utils_abi_encoder.encodeFu
77
76
  exports.formatBytecodeSize = require_permissionless_utils_format.formatBytecodeSize;
78
77
  exports.formatBytecodeVersion = require_permissionless_utils_format.formatBytecodeVersion;
79
78
  exports.getBlockNumberByTimestamp = require_permissionless_utils_block_utils.getBlockNumberByTimestamp;
80
- exports.getCallTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallTouchedPriceFeeds;
81
- exports.getCallsTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedPriceFeeds;
82
- exports.getCallsTouchedUpdatablePriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedUpdatablePriceFeeds;
83
79
  exports.getCreate2AddressPublicFactory = require_permissionless_utils_create2.getCreate2AddressPublicFactory;
84
80
  exports.getCreate2DeploymentAddress = require_permissionless_utils_create2.getCreate2DeploymentAddress;
85
81
  exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
@@ -8,10 +8,9 @@ const require_permissionless_utils_block_utils = require("./block-utils.js");
8
8
  const require_permissionless_utils_governance_batch = require("./governance/batch.js");
9
9
  const require_permissionless_utils_governance_timelock_txs = require("./governance/timelock-txs.js");
10
10
  require("./governance/index.js");
11
- const require_permissionless_utils_price_update_get_updatable_feeds = require("./price-update/get-updatable-feeds.js");
12
- const require_permissionless_utils_price_update_get_price_feeds = require("./price-update/get-price-feeds.js");
13
11
  const require_permissionless_utils_price_update_get_price_update_tx = require("./price-update/get-price-update-tx.js");
14
12
  const require_permissionless_utils_price_update_get_prices = require("./price-update/get-prices.js");
13
+ const require_permissionless_utils_price_update_get_updatable_feeds = require("./price-update/get-updatable-feeds.js");
15
14
  require("./price-update/index.js");
16
15
  exports.BYTECODE_REPOSITORY = require_permissionless_utils_literals.BYTECODE_REPOSITORY;
17
16
  exports.CROSS_CHAIN_GOVERNANCE = require_permissionless_utils_literals.CROSS_CHAIN_GOVERNANCE;
@@ -34,9 +33,6 @@ exports.encodeFunctionParams = require_permissionless_utils_abi_encoder.encodeFu
34
33
  exports.formatBytecodeSize = require_permissionless_utils_format.formatBytecodeSize;
35
34
  exports.formatBytecodeVersion = require_permissionless_utils_format.formatBytecodeVersion;
36
35
  exports.getBlockNumberByTimestamp = require_permissionless_utils_block_utils.getBlockNumberByTimestamp;
37
- exports.getCallTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallTouchedPriceFeeds;
38
- exports.getCallsTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedPriceFeeds;
39
- exports.getCallsTouchedUpdatablePriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedUpdatablePriceFeeds;
40
36
  exports.getCreate2AddressPublicFactory = require_permissionless_utils_create2.getCreate2AddressPublicFactory;
41
37
  exports.getCreate2DeploymentAddress = require_permissionless_utils_create2.getCreate2DeploymentAddress;
42
38
  exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
@@ -8,6 +8,11 @@ const require_permissionless_bindings_price_feed_store = require("../../bindings
8
8
  require("../../bindings/index.js");
9
9
  let viem = require("viem");
10
10
  //#region src/permissionless/utils/price-update/get-price-update-tx.ts
11
+ /**
12
+ * @deprecated Support for updatable price feeds is deprecated.
13
+ * @param param0
14
+ * @returns
15
+ */
11
16
  async function getPriceUpdateTx({ client, priceFeeds, useMulticall3 = false, gasLimit }) {
12
17
  const pfStore = new require_permissionless_bindings_price_feed_store.PriceFeedStoreContract("0x74A868AC479EE145029bB80827BB77F7B7c441cB", client);
13
18
  const gearboxClient = client;
@@ -1,17 +1,19 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_onchain_utils_bytes32ToString = require("../../../onchain/utils/bytes32ToString.js");
3
2
  const require_abi_compressors_priceFeedCompressor = require("../../../abi/compressors/priceFeedCompressor.js");
4
- const require_onchain_market_pricefeeds_feeds_RedstonePriceFeed = require("../../../onchain/market/pricefeeds/feeds/RedstonePriceFeed.js");
5
- require("../../../onchain/index.js");
6
3
  let viem = require("viem");
7
4
  //#region src/permissionless/utils/price-update/get-updatable-feeds.ts
5
+ /**
6
+ * @deprecated Support for updatable price feeds is deprecated.
7
+ * @param args
8
+ * @returns
9
+ */
8
10
  async function getUpdatablePriceFeeds(args) {
9
11
  const { sdk, client, pfCompressor, priceFeeds } = args;
10
12
  return (await (0, viem.getContract)({
11
13
  address: pfCompressor,
12
14
  abi: require_abi_compressors_priceFeedCompressor.priceFeedCompressorAbi,
13
15
  client
14
- }).read.loadPriceFeedTree([priceFeeds])).filter((data) => require_onchain_utils_bytes32ToString.bytes32ToString(data.baseParams.contractType) === "PRICE_FEED::REDSTONE").map((data) => new require_onchain_market_pricefeeds_feeds_RedstonePriceFeed.RedstonePriceFeedContract(sdk, data));
16
+ }).read.loadPriceFeedTree([priceFeeds])).filter((data) => data.updatable).map((data) => sdk.priceFeeds.create(data));
15
17
  }
16
18
  //#endregion
17
19
  exports.getUpdatablePriceFeeds = getUpdatablePriceFeeds;
@@ -1,11 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_permissionless_utils_price_update_get_updatable_feeds = require("./get-updatable-feeds.js");
3
- const require_permissionless_utils_price_update_get_price_feeds = require("./get-price-feeds.js");
4
2
  const require_permissionless_utils_price_update_get_price_update_tx = require("./get-price-update-tx.js");
5
3
  const require_permissionless_utils_price_update_get_prices = require("./get-prices.js");
6
- exports.getCallTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallTouchedPriceFeeds;
7
- exports.getCallsTouchedPriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedPriceFeeds;
8
- exports.getCallsTouchedUpdatablePriceFeeds = require_permissionless_utils_price_update_get_price_feeds.getCallsTouchedUpdatablePriceFeeds;
4
+ const require_permissionless_utils_price_update_get_updatable_feeds = require("./get-updatable-feeds.js");
9
5
  exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
10
6
  exports.getPrices = require_permissionless_utils_price_update_get_prices.getPrices;
11
7
  exports.getUpdatablePriceFeeds = require_permissionless_utils_price_update_get_updatable_feeds.getUpdatablePriceFeeds;
@@ -51,48 +51,53 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
51
51
  * {@inheritDoc IOpportunitiesPrepare.finalize}
52
52
  **/
53
53
  async finalize(position, params) {
54
+ const state = {};
54
55
  try {
55
56
  const sdk = await this.#chain(position.chainId);
56
57
  const at = stateBlock(sdk);
57
58
  const intent = resumable(params.intent ?? params.claimable.intent);
58
- if (!intent) return require_model_result.sdkErr(require_model_errors_prepare_errors.noRecordedIntent());
59
+ if (!intent) return refused(require_model_errors_prepare_errors.noRecordedIntent(), state);
59
60
  const creditAccount = await slice(sdk, position.creditAccount);
60
- if (!creditAccount) return require_model_result.sdkErr(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount));
61
+ if (!creditAccount) return refused(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount), state);
61
62
  return finalized(await service(sdk).finishIntent({
62
63
  intent,
63
64
  claimable: toClaimableWithdrawal(params.claimable),
64
65
  creditAccount,
65
66
  sdk,
66
67
  slippage: params.slippage,
67
- quotaReserve: params.quotaReserve
68
+ quotaReserve: params.quotaReserve,
69
+ draft: state
68
70
  }), at);
69
71
  } catch (e) {
70
- return require_model_result.sdkErr(require_model_errors_prepare_errors.unexpectedFailure(e));
72
+ return refused(require_model_errors_prepare_errors.unexpectedFailure(e), state);
71
73
  }
72
74
  }
73
75
  /**
74
76
  * {@inheritDoc IOpportunitiesPrepare.deposit}
75
77
  **/
76
78
  async deposit(pool, params) {
79
+ const draft = {};
77
80
  try {
78
81
  const chain = await this.#chain(pool.chainId);
79
82
  const { marketRegister, pools } = chain;
83
+ draft.curator = marketRegister.findByPool(pool.pool).curator;
80
84
  const tokenIn = params.tokenIn ?? marketRegister.findByPool(pool.pool).pool.underlying;
81
85
  const tokenOut = lpRoute(params.tokenOut, () => pools.getDepositTokensOut(pool.pool, tokenIn));
82
- if (!tokenOut) return unroutable(chain, tokenIn, void 0);
86
+ if (!tokenOut) return unroutable(chain, tokenIn, void 0, draft);
83
87
  const state = pools.simulateDeposit({
84
88
  pool: pool.pool,
85
89
  amount: params.amount,
86
90
  tokenIn,
87
91
  tokenOut
88
92
  });
93
+ Object.assign(draft, state);
89
94
  const [refusal] = require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation({
90
95
  sdk: chain,
91
96
  pool: pool.pool,
92
97
  isDeposit: true,
93
98
  tokenOut: state.tokenOut
94
99
  });
95
- if (refusal) return require_model_result.sdkErr(refusal);
100
+ if (refusal) return refused(refusal, draft);
96
101
  const call = pools.addLiquidity({
97
102
  collateral: {
98
103
  token: state.tokenIn.token.address,
@@ -102,7 +107,7 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
102
107
  wallet: params.wallet,
103
108
  meta: pools.getDepositMetadata(pool.pool, tokenIn, tokenOut)
104
109
  });
105
- if (!call) return unroutable(chain, tokenIn, tokenOut);
110
+ if (!call) return unroutable(chain, tokenIn, tokenOut, draft);
106
111
  return require_model_result.sdkOk({
107
112
  operations: [],
108
113
  state: await lpState(chain, pool.pool, params.wallet, state, { mints: state.tokenOut.value }),
@@ -110,32 +115,35 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
110
115
  ...stateBlock(chain)
111
116
  });
112
117
  } catch (e) {
113
- return require_model_result.sdkErr(require_model_errors_prepare_errors.unexpectedFailure(e));
118
+ return refused(require_model_errors_prepare_errors.unexpectedFailure(e), draft);
114
119
  }
115
120
  }
116
121
  /**
117
122
  * {@inheritDoc IOpportunitiesPrepare.withdraw}
118
123
  **/
119
124
  async withdraw(pool, params) {
125
+ const draft = {};
120
126
  try {
121
127
  const chain = await this.#chain(pool.chainId);
122
128
  const { pools } = chain;
129
+ draft.curator = chain.marketRegister.findByPool(pool.pool).curator;
123
130
  const tokenIn = params.tokenIn ?? pool.pool;
124
131
  const tokenOut = lpRoute(params.tokenOut, () => pools.getWithdrawalTokensOut(pool.pool, tokenIn));
125
- if (!tokenOut) return unroutable(chain, tokenIn, void 0);
132
+ if (!tokenOut) return unroutable(chain, tokenIn, void 0, draft);
126
133
  const state = pools.simulateWithdraw({
127
134
  pool: pool.pool,
128
135
  amount: params.amount,
129
136
  tokenIn,
130
137
  tokenOut
131
138
  });
139
+ Object.assign(draft, state);
132
140
  const [refusal] = require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation({
133
141
  sdk: chain,
134
142
  pool: pool.pool,
135
143
  isDeposit: false,
136
144
  tokenOut: state.tokenOut
137
145
  });
138
- if (refusal) return require_model_result.sdkErr(refusal);
146
+ if (refusal) return refused(refusal, draft);
139
147
  const { calls } = pools.removeLiquidity({
140
148
  pool: pool.pool,
141
149
  amount: params.amount,
@@ -151,32 +159,35 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
151
159
  ...stateBlock(chain)
152
160
  });
153
161
  } catch (e) {
154
- return require_model_result.sdkErr(require_model_errors_prepare_errors.unexpectedFailure(e));
162
+ return refused(require_model_errors_prepare_errors.unexpectedFailure(e), draft);
155
163
  }
156
164
  }
157
165
  /**
158
166
  * {@inheritDoc IOpportunitiesPrepare.redeem}
159
167
  **/
160
168
  async redeem(pool, params) {
169
+ const draft = {};
161
170
  try {
162
171
  const chain = await this.#chain(pool.chainId);
163
172
  const { pools } = chain;
173
+ draft.curator = chain.marketRegister.findByPool(pool.pool).curator;
164
174
  const tokenIn = params.tokenIn ?? pool.pool;
165
175
  const tokenOut = lpRoute(params.tokenOut, () => pools.getWithdrawalTokensOut(pool.pool, tokenIn));
166
- if (!tokenOut) return unroutable(chain, tokenIn, void 0);
176
+ if (!tokenOut) return unroutable(chain, tokenIn, void 0, draft);
167
177
  const state = pools.simulateRedeem({
168
178
  pool: pool.pool,
169
179
  amount: params.amount,
170
180
  tokenIn,
171
181
  tokenOut
172
182
  });
183
+ Object.assign(draft, state);
173
184
  const [refusal] = require_onchain_validation_bundles_checkPoolOperation.checkPoolOperation({
174
185
  sdk: chain,
175
186
  pool: pool.pool,
176
187
  isDeposit: false,
177
188
  tokenOut: state.tokenOut
178
189
  });
179
- if (refusal) return require_model_result.sdkErr(refusal);
190
+ if (refusal) return refused(refusal, draft);
180
191
  const { calls } = pools.removeLiquidity({
181
192
  pool: pool.pool,
182
193
  amount: params.amount,
@@ -192,7 +203,7 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
192
203
  ...stateBlock(chain)
193
204
  });
194
205
  } catch (e) {
195
- return require_model_result.sdkErr(require_model_errors_prepare_errors.unexpectedFailure(e));
206
+ return refused(require_model_errors_prepare_errors.unexpectedFailure(e), draft);
196
207
  }
197
208
  }
198
209
  /**
@@ -215,13 +226,15 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
215
226
  * {@inheritDoc IOpportunitiesPrepare.openNewStrategy}
216
227
  **/
217
228
  async openNewStrategy(strategy, params) {
229
+ const state = {};
218
230
  try {
219
231
  const sdk = await this.#chain(strategy.chainId);
220
232
  const at = stateBlock(sdk);
233
+ Object.assign(state, marketOf(sdk, strategy.creditManager));
221
234
  const targetToken = params.targetToken ?? sdk.marketRegister.findCreditManager(strategy.creditManager).strategyTargetCollateral;
222
- if (!targetToken) return require_model_result.sdkErr(require_model_errors_prepare_errors.noStrategyTargetCollateral(strategy.creditManager));
235
+ if (!targetToken) return refused(require_model_errors_prepare_errors.noStrategyTargetCollateral(strategy.creditManager), state);
223
236
  const reused = await reusable(sdk, strategy, params.creditAccount);
224
- if (reused && "error" in reused) return reused;
237
+ if (reused && "error" in reused) return refused(reused.error, state);
225
238
  const creditAccount = reused?.account;
226
239
  return opened(await service(sdk).openStrategyIntent({
227
240
  sdk,
@@ -232,21 +245,24 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
232
245
  leftoverBalances: params.leftoverBalances,
233
246
  slippage: params.slippage,
234
247
  quotaReserve: params.quotaReserve,
235
- creditAccount
248
+ creditAccount,
249
+ draft: state
236
250
  }), at);
237
251
  } catch (e) {
238
- return require_model_result.sdkErr(require_model_errors_prepare_errors.unexpectedFailure(e));
252
+ return refused(require_model_errors_prepare_errors.unexpectedFailure(e), state);
239
253
  }
240
254
  }
241
255
  /**
242
256
  * {@inheritDoc IOpportunitiesPrepare.borrow}
243
257
  **/
244
258
  async borrow(strategy, params) {
259
+ const state = {};
245
260
  try {
246
261
  const sdk = await this.#chain(strategy.chainId);
247
262
  const at = stateBlock(sdk);
263
+ Object.assign(state, marketOf(sdk, strategy.creditManager));
248
264
  const reused = await reusable(sdk, strategy, params.creditAccount);
249
- if (reused && "error" in reused) return reused;
265
+ if (reused && "error" in reused) return refused(reused.error, state);
250
266
  return borrowed(await service(sdk).borrowIntent({
251
267
  sdk,
252
268
  creditManager: strategy.creditManager,
@@ -256,10 +272,11 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
256
272
  borrowAmount: params.borrowAmount,
257
273
  slippage: params.slippage,
258
274
  quotaReserve: params.quotaReserve,
259
- creditAccount: reused?.account
275
+ creditAccount: reused?.account,
276
+ draft: state
260
277
  }), at);
261
278
  } catch (e) {
262
- return require_model_result.sdkErr(require_model_errors_prepare_errors.unexpectedFailure(e));
279
+ return refused(require_model_errors_prepare_errors.unexpectedFailure(e), state);
263
280
  }
264
281
  }
265
282
  /**
@@ -419,20 +436,22 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
419
436
  * ones, per the engine trace its signature spells out.
420
437
  **/
421
438
  async #startRoutes(position, options, intent) {
439
+ const state = {};
422
440
  try {
423
441
  const sdk = await this.#chain(position.chainId);
424
442
  const at = stateBlock(sdk);
425
443
  const creditAccount = await slice(sdk, position.creditAccount);
426
- if (!creditAccount) return neitherRoute(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount));
444
+ if (!creditAccount) return neitherRoute(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount), state);
427
445
  return routed(await service(sdk).intentRoutes({
428
446
  intent,
429
447
  creditAccount,
430
448
  sdk,
431
449
  slippage: options.slippage,
432
- quotaReserve: options.quotaReserve
450
+ quotaReserve: options.quotaReserve,
451
+ draft: state
433
452
  }), at);
434
453
  } catch (e) {
435
- return neitherRoute(require_model_errors_prepare_errors.unexpectedFailure(e));
454
+ return neitherRoute(require_model_errors_prepare_errors.unexpectedFailure(e), state);
436
455
  }
437
456
  }
438
457
  /**
@@ -445,20 +464,22 @@ var PrepareApi = class extends require_onchain_base_MultichainConstruct.Multicha
445
464
  * ones, per the engine trace its signature spells out.
446
465
  **/
447
466
  async #startIntent(position, options, intent) {
467
+ const state = {};
448
468
  try {
449
469
  const sdk = await this.#chain(position.chainId);
450
470
  const at = stateBlock(sdk);
451
471
  const creditAccount = await slice(sdk, position.creditAccount);
452
- if (!creditAccount) return require_model_result.sdkErr(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount));
472
+ if (!creditAccount) return refused(require_model_errors_prepare_errors.creditAccountNotFound(position.creditAccount), state);
453
473
  return planned(await service(sdk).startIntent({
454
474
  intent,
455
475
  creditAccount,
456
476
  sdk,
457
477
  slippage: options.slippage,
458
- quotaReserve: options.quotaReserve
478
+ quotaReserve: options.quotaReserve,
479
+ draft: state
459
480
  }), at);
460
481
  } catch (e) {
461
- return require_model_result.sdkErr(require_model_errors_prepare_errors.unexpectedFailure(e));
482
+ return refused(require_model_errors_prepare_errors.unexpectedFailure(e), state);
462
483
  }
463
484
  }
464
485
  };
@@ -546,14 +567,44 @@ function methodError(result) {
546
567
  return result;
547
568
  }
548
569
  /**
570
+ * An error the namespace decides on itself, carrying as much of the state as
571
+ * it can say — nothing at all where it stopped before there was a market to
572
+ * name, see {@link WithPartialState}.
573
+ *
574
+ * The engine attaches its own draft on the way out, so this is only for what
575
+ * is raised on this side of it: a chain that would not resolve, an account the
576
+ * markets do not hold, a pool pair with no route.
577
+ **/
578
+ function refused(error, state) {
579
+ return require_model_result.sdkErr({
580
+ ...error,
581
+ state
582
+ });
583
+ }
584
+ /**
585
+ * The market fields of a request that names its credit manager, for what is
586
+ * turned down before the engine has been reached at all.
587
+ *
588
+ * Empty where the SDK holds no such manager, which is itself one of those
589
+ * answers.
590
+ **/
591
+ function marketOf(sdk, creditManager) {
592
+ try {
593
+ return sdk.marketRegister.findCreditManager(creditManager).creditOperationMarket();
594
+ } catch {
595
+ return {};
596
+ }
597
+ }
598
+ /**
549
599
  * A flow with two routes, stopped before either could be quoted: the error is
550
600
  * the same one any other flow would report, with nothing to say about the
551
601
  * routes because neither was reached.
552
602
  **/
553
- function neitherRoute(error) {
603
+ function neitherRoute(error, state) {
554
604
  return require_model_result.sdkErr({
555
605
  ...error,
556
- errors: {}
606
+ errors: {},
607
+ state
557
608
  });
558
609
  }
559
610
  /**
@@ -672,11 +723,11 @@ async function lpState(sdk, pool, wallet, simulation, moved) {
672
723
  * is the usual way of it; both are present where a pair exists but nothing of
673
724
  * ours implements it.
674
725
  **/
675
- function unroutable(sdk, from, to) {
676
- return require_model_result.sdkErr(require_model_errors_prepare_errors.unsupportedTokenPair({
726
+ function unroutable(sdk, from, to, state) {
727
+ return refused(require_model_errors_prepare_errors.unsupportedTokenPair({
677
728
  from: require_onchain_validation_helpers_token.toToken(sdk, from),
678
729
  to: to === void 0 ? void 0 : require_onchain_validation_helpers_token.toToken(sdk, to)
679
- }));
730
+ }), state);
680
731
  }
681
732
  /**
682
733
  * Picks the route the operation takes out of `tokenIn`, as a value rather than