@gearbox-protocol/sdk 17.10.1 → 17.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/cjs/offchain/AbstractOffchainNamespace.js +31 -8
  2. package/dist/cjs/permissionless/api/GearboxPermissionless.js +79 -0
  3. package/dist/cjs/permissionless/api/chains/ChainsNamespace.js +180 -0
  4. package/dist/cjs/permissionless/api/chains/index.js +4 -0
  5. package/dist/cjs/permissionless/api/chains/schemas.js +34 -0
  6. package/dist/cjs/permissionless/api/chains/types.js +1 -0
  7. package/dist/cjs/permissionless/api/deploy/PermissionlessDeploy.js +152 -0
  8. package/dist/cjs/permissionless/api/deploy/effective-staleness.js +46 -0
  9. package/dist/cjs/permissionless/api/deploy/index.js +8 -0
  10. package/dist/cjs/permissionless/api/deploy/types.js +1 -0
  11. package/dist/cjs/permissionless/api/errors.js +82 -0
  12. package/dist/cjs/permissionless/api/index.js +28 -0
  13. package/dist/cjs/permissionless/api/oracles/PermissionlessOracles.js +84 -0
  14. package/dist/cjs/permissionless/api/oracles/index.js +6 -0
  15. package/dist/cjs/permissionless/api/oracles/schemas.js +64 -0
  16. package/dist/cjs/permissionless/api/oracles/types.js +1 -0
  17. package/dist/cjs/permissionless/api/schemas.js +28 -0
  18. package/dist/cjs/permissionless/api/transactions/InstanceOwnerTransactions.js +230 -0
  19. package/dist/cjs/permissionless/api/transactions/index.js +4 -0
  20. package/dist/cjs/permissionless/api/transactions/lp-price-feeds.js +86 -0
  21. package/dist/cjs/permissionless/api/transactions/types.js +1 -0
  22. package/dist/cjs/permissionless/api/types.js +1 -0
  23. package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +1 -1
  24. package/dist/cjs/permissionless/bindings/index.js +3 -3
  25. package/dist/cjs/permissionless/bindings/instance-manager.js +3 -3
  26. package/dist/cjs/permissionless/index.js +31 -8
  27. package/dist/cjs/permissionless/utils/governance/timelock-txs.js +1 -1
  28. package/dist/cjs/permissionless/utils/index.js +4 -4
  29. package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +1 -1
  30. package/dist/cjs/permissionless/utils/price-update/index.js +1 -1
  31. package/dist/esm/dev/AccountOpener.js +1 -1
  32. package/dist/esm/dev/withdrawalUtils.js +1 -1
  33. package/dist/esm/history/trace/extractTransfers.js +1 -1
  34. package/dist/esm/offchain/AbstractOffchainNamespace.js +31 -8
  35. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
  36. package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +1 -1
  37. package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
  38. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  39. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  40. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  41. package/dist/esm/onchain/base/TokensMeta.js +3 -3
  42. package/dist/esm/onchain/core/createAddressProvider.js +1 -1
  43. package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
  44. package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
  45. package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
  46. package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
  47. package/dist/esm/onchain/market/rwa/createDegenNFT.js +1 -1
  48. package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
  49. package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
  50. package/dist/esm/onchain/preview/preview/previewPoolPositionOperation.js +2 -2
  51. package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
  52. package/dist/esm/permissionless/api/GearboxPermissionless.js +78 -0
  53. package/dist/esm/permissionless/api/chains/ChainsNamespace.js +179 -0
  54. package/dist/esm/permissionless/api/chains/index.js +3 -0
  55. package/dist/esm/permissionless/api/chains/schemas.js +30 -0
  56. package/dist/esm/permissionless/api/chains/types.js +1 -0
  57. package/dist/esm/permissionless/api/deploy/PermissionlessDeploy.js +149 -0
  58. package/dist/esm/permissionless/api/deploy/effective-staleness.js +46 -0
  59. package/dist/esm/permissionless/api/deploy/index.js +4 -0
  60. package/dist/esm/permissionless/api/deploy/types.js +1 -0
  61. package/dist/esm/permissionless/api/errors.js +77 -0
  62. package/dist/esm/permissionless/api/index.js +13 -0
  63. package/dist/esm/permissionless/api/oracles/PermissionlessOracles.js +81 -0
  64. package/dist/esm/permissionless/api/oracles/index.js +3 -0
  65. package/dist/esm/permissionless/api/oracles/schemas.js +59 -0
  66. package/dist/esm/permissionless/api/oracles/types.js +1 -0
  67. package/dist/esm/permissionless/api/schemas.js +25 -0
  68. package/dist/esm/permissionless/api/transactions/InstanceOwnerTransactions.js +229 -0
  69. package/dist/esm/permissionless/api/transactions/index.js +3 -0
  70. package/dist/esm/permissionless/api/transactions/lp-price-feeds.js +84 -0
  71. package/dist/esm/permissionless/api/transactions/types.js +1 -0
  72. package/dist/esm/permissionless/api/types.js +1 -0
  73. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +1 -1
  74. package/dist/esm/permissionless/bindings/index.js +3 -3
  75. package/dist/esm/permissionless/bindings/instance-manager.js +3 -3
  76. package/dist/esm/permissionless/index.js +17 -9
  77. package/dist/esm/permissionless/utils/governance/timelock-txs.js +1 -1
  78. package/dist/esm/permissionless/utils/index.js +4 -4
  79. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +1 -1
  80. package/dist/esm/permissionless/utils/price-update/index.js +1 -1
  81. package/dist/types/offchain/AbstractOffchainNamespace.d.ts +12 -0
  82. package/dist/types/permissionless/api/GearboxPermissionless.d.ts +71 -0
  83. package/dist/types/permissionless/api/chains/ChainsNamespace.d.ts +99 -0
  84. package/dist/types/permissionless/api/chains/index.d.ts +3 -0
  85. package/dist/types/permissionless/api/chains/schemas.d.ts +49 -0
  86. package/dist/types/permissionless/api/chains/types.d.ts +58 -0
  87. package/dist/types/permissionless/api/deploy/PermissionlessDeploy.d.ts +69 -0
  88. package/dist/types/permissionless/api/deploy/effective-staleness.d.ts +19 -0
  89. package/dist/types/permissionless/api/deploy/index.d.ts +4 -0
  90. package/dist/types/permissionless/api/deploy/types.d.ts +87 -0
  91. package/dist/types/permissionless/api/errors.d.ts +63 -0
  92. package/dist/types/permissionless/api/index.d.ts +17 -0
  93. package/dist/types/permissionless/api/oracles/PermissionlessOracles.d.ts +64 -0
  94. package/dist/types/permissionless/api/oracles/index.d.ts +3 -0
  95. package/dist/types/permissionless/api/oracles/schemas.d.ts +103 -0
  96. package/dist/types/permissionless/api/oracles/types.d.ts +63 -0
  97. package/dist/types/permissionless/api/schemas.d.ts +22 -0
  98. package/dist/types/permissionless/api/transactions/InstanceOwnerTransactions.d.ts +60 -0
  99. package/dist/types/permissionless/api/transactions/index.d.ts +3 -0
  100. package/dist/types/permissionless/api/transactions/lp-price-feeds.d.ts +17 -0
  101. package/dist/types/permissionless/api/transactions/types.d.ts +36 -0
  102. package/dist/types/permissionless/api/types.d.ts +12 -0
  103. package/dist/types/permissionless/bindings/factory/credit-factory.d.ts +1 -1
  104. package/dist/types/permissionless/bindings/factory/loss-policy-factory.d.ts +1 -1
  105. package/dist/types/permissionless/bindings/factory/pool-factory.d.ts +1 -1
  106. package/dist/types/permissionless/bindings/factory/price-oracle-factory.d.ts +1 -1
  107. package/dist/types/permissionless/bindings/index.d.ts +1 -1
  108. package/dist/types/permissionless/core/index.d.ts +1 -1
  109. package/dist/types/permissionless/index.d.ts +23 -10
  110. package/dist/types/permissionless/utils/governance/index.d.ts +1 -1
  111. package/dist/types/permissionless/utils/index.d.ts +1 -1
  112. package/package.json +1 -1
@@ -1,16 +1,28 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_permissionless_bindings_address_provider = require("./bindings/address-provider.js");
2
+ const require_permissionless_api_errors = require("./api/errors.js");
3
+ const require_permissionless_api_chains_ChainsNamespace = require("./api/chains/ChainsNamespace.js");
4
+ const require_permissionless_api_deploy_effective_staleness = require("./api/deploy/effective-staleness.js");
3
5
  const require_permissionless_utils_literals = require("./utils/literals.js");
4
6
  const require_permissionless_utils_signature = require("./utils/signature.js");
5
7
  const require_permissionless_bindings_bytecode_repository = require("./bindings/bytecode-repository.js");
6
- const require_permissionless_bindings_compressors_token_compressor = require("./bindings/compressors/token-compressor.js");
7
- const require_permissionless_bindings_compressors_withdrawal_compressor = require("./bindings/compressors/withdrawal-compressor.js");
8
- const require_permissionless_deployment_addresses = require("./deployment/addresses.js");
9
8
  const require_permissionless_bindings_pricefeeds_index = require("./bindings/pricefeeds/index.js");
10
9
  const require_permissionless_bindings_price_feed_store = require("./bindings/price-feed-store.js");
10
+ const require_permissionless_deployment_addresses = require("./deployment/addresses.js");
11
+ const require_permissionless_utils_abi_encoder = require("./utils/abi-encoder.js");
12
+ const require_permissionless_api_deploy_PermissionlessDeploy = require("./api/deploy/PermissionlessDeploy.js");
13
+ const require_permissionless_utils_price_update_get_prices = require("./utils/price-update/get-prices.js");
14
+ const require_permissionless_api_oracles_PermissionlessOracles = require("./api/oracles/PermissionlessOracles.js");
15
+ const require_permissionless_bindings_address_provider = require("./bindings/address-provider.js");
16
+ const require_permissionless_bindings_compressors_token_compressor = require("./bindings/compressors/token-compressor.js");
17
+ const require_permissionless_bindings_compressors_withdrawal_compressor = require("./bindings/compressors/withdrawal-compressor.js");
11
18
  const require_permissionless_bindings_router_routing_manager = require("./bindings/router/routing-manager.js");
12
19
  const require_permissionless_bindings_treasury_splitter = require("./bindings/treasury-splitter.js");
13
20
  const require_permissionless_bindings_instance_manager = require("./bindings/instance-manager.js");
21
+ const require_permissionless_utils_governance_batch = require("./utils/governance/batch.js");
22
+ const require_permissionless_utils_price_update_get_updatable_feeds = require("./utils/price-update/get-updatable-feeds.js");
23
+ const require_permissionless_api_transactions_InstanceOwnerTransactions = require("./api/transactions/InstanceOwnerTransactions.js");
24
+ const require_permissionless_api_GearboxPermissionless = require("./api/GearboxPermissionless.js");
25
+ require("./api/index.js");
14
26
  const require_permissionless_bindings_market_configurator_factory = require("./bindings/market-configurator-factory.js");
15
27
  const require_permissionless_bindings_cross_chain_multisig = require("./bindings/cross-chain-multisig.js");
16
28
  const require_permissionless_utils_create2 = require("./utils/create2.js");
@@ -25,13 +37,9 @@ const require_permissionless_chains_archive_transport = require("./chains/archiv
25
37
  const require_permissionless_chains_chunked_log_transport = require("./chains/chunked-log-transport.js");
26
38
  require("./core/index.js");
27
39
  const require_permissionless_deployment_mainnet = require("./deployment/mainnet.js");
28
- const require_permissionless_utils_abi_encoder = require("./utils/abi-encoder.js");
29
40
  const require_permissionless_utils_block_utils = require("./utils/block-utils.js");
30
- const require_permissionless_utils_governance_batch = require("./utils/governance/batch.js");
31
41
  const require_permissionless_utils_governance_timelock_txs = require("./utils/governance/timelock-txs.js");
32
42
  const require_permissionless_utils_price_update_get_price_update_tx = require("./utils/price-update/get-price-update-tx.js");
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");
35
43
  require("./utils/index.js");
36
44
  exports.AccessMode = require_permissionless_bindings_types.AccessMode;
37
45
  exports.AddressProviderContract = require_permissionless_bindings_address_provider.AddressProviderContract;
@@ -41,10 +49,16 @@ exports.BYTECODE_REPOSITORY = require_permissionless_utils_literals.BYTECODE_REP
41
49
  exports.BytecodeRepositoryContract = require_permissionless_bindings_bytecode_repository.BytecodeRepositoryContract;
42
50
  exports.CROSS_CHAIN_GOVERNANCE = require_permissionless_utils_literals.CROSS_CHAIN_GOVERNANCE;
43
51
  exports.CROSS_CHAIN_MULTISIG = require_permissionless_utils_literals.CROSS_CHAIN_MULTISIG;
52
+ exports.ChainsNamespace = require_permissionless_api_chains_ChainsNamespace.ChainsNamespace;
44
53
  exports.CrossChainMultisigContract = require_permissionless_bindings_cross_chain_multisig.CrossChainMultisigContract;
54
+ exports.DEFAULT_DEPLOY_SALT = require_permissionless_api_deploy_PermissionlessDeploy.DEFAULT_DEPLOY_SALT;
55
+ exports.GET_PRICES_CHUNK_SIZE = require_permissionless_api_oracles_PermissionlessOracles.GET_PRICES_CHUNK_SIZE;
56
+ exports.GET_PRICES_GAS_LIMIT_BY_CHAIN_ID = require_permissionless_api_oracles_PermissionlessOracles.GET_PRICES_GAS_LIMIT_BY_CHAIN_ID;
57
+ exports.GearboxPermissionless = require_permissionless_api_GearboxPermissionless.GearboxPermissionless;
45
58
  exports.GovernorContract = require_permissionless_bindings_governance_governor.GovernorContract;
46
59
  exports.INSTANCE_MANAGER = require_permissionless_utils_literals.INSTANCE_MANAGER;
47
60
  exports.InstanceManagerContract = require_permissionless_bindings_instance_manager.InstanceManagerContract;
61
+ exports.InstanceOwnerTransactions = require_permissionless_api_transactions_InstanceOwnerTransactions.InstanceOwnerTransactions;
48
62
  exports.MAINNET_CCM_CONSTRUCTOR_PARAMS = require_permissionless_deployment_mainnet.MAINNET_CCM_CONSTRUCTOR_PARAMS;
49
63
  exports.MAINNET_DEPLOYMENT_BLOCK = require_permissionless_deployment_mainnet.MAINNET_DEPLOYMENT_BLOCK;
50
64
  exports.MAINNET_DEPLOYMENT_CCM_SALT = require_permissionless_deployment_mainnet.MAINNET_DEPLOYMENT_CCM_SALT;
@@ -54,6 +68,13 @@ exports.MarketConfiguratorContract = require_permissionless_bindings_market_conf
54
68
  exports.MarketConfiguratorFactoryContract = require_permissionless_bindings_market_configurator_factory.MarketConfiguratorFactoryContract;
55
69
  exports.PRICE_FEED_STORE = require_permissionless_utils_literals.PRICE_FEED_STORE;
56
70
  exports.PUBLIC_CREATE2_FACTORY = require_permissionless_utils_create2.PUBLIC_CREATE2_FACTORY;
71
+ exports.PermissionlessChainUnreachableError = require_permissionless_api_errors.PermissionlessChainUnreachableError;
72
+ exports.PermissionlessDeploy = require_permissionless_api_deploy_PermissionlessDeploy.PermissionlessDeploy;
73
+ exports.PermissionlessNotAttachedError = require_permissionless_api_errors.PermissionlessNotAttachedError;
74
+ exports.PermissionlessOracles = require_permissionless_api_oracles_PermissionlessOracles.PermissionlessOracles;
75
+ exports.PriceFeedNotInStoreError = require_permissionless_api_errors.PriceFeedNotInStoreError;
76
+ exports.PriceFeedSaltMissingError = require_permissionless_api_errors.PriceFeedSaltMissingError;
77
+ exports.PriceFeedStalenessUnknownError = require_permissionless_api_errors.PriceFeedStalenessUnknownError;
57
78
  exports.PriceFeedStoreContract = require_permissionless_bindings_price_feed_store.PriceFeedStoreContract;
58
79
  exports.RoutingManagerContract = require_permissionless_bindings_router_routing_manager.RoutingManagerContract;
59
80
  exports.TOKEN_COMPRESSOR = require_permissionless_utils_literals.TOKEN_COMPRESSOR;
@@ -72,6 +93,7 @@ exports.createCallData = require_permissionless_core_raw_tx.createCallData;
72
93
  exports.createCreate2DeployRawTx = require_permissionless_utils_create2.createCreate2DeployRawTx;
73
94
  exports.deepJsonParse = require_permissionless_utils_format.deepJsonParse;
74
95
  exports.deployUsingPublicCreate2 = require_permissionless_utils_create2.deployUsingPublicCreate2;
96
+ exports.deriveEffectiveStalenessPeriod = require_permissionless_api_deploy_effective_staleness.deriveEffectiveStalenessPeriod;
75
97
  exports.encodeFunctionParams = require_permissionless_utils_abi_encoder.encodeFunctionParams;
76
98
  exports.formatBytecodeSize = require_permissionless_utils_format.formatBytecodeSize;
77
99
  exports.formatBytecodeVersion = require_permissionless_utils_format.formatBytecodeVersion;
@@ -85,6 +107,7 @@ exports.getSafeBatches = require_permissionless_utils_governance_batch.getSafeBa
85
107
  exports.getUpdatablePriceFeeds = require_permissionless_utils_price_update_get_updatable_feeds.getUpdatablePriceFeeds;
86
108
  exports.handleSalt = require_permissionless_utils_create2.handleSalt;
87
109
  exports.normalizeSignature = require_permissionless_utils_signature.normalizeSignature;
110
+ exports.priceFeedSalt = require_permissionless_api_deploy_PermissionlessDeploy.priceFeedSalt;
88
111
  exports.priceFeedSetupParams = require_permissionless_bindings_pricefeeds_index.priceFeedSetupParams;
89
112
  exports.shortenHash = require_permissionless_utils_format.shortenHash;
90
113
  exports.significantTrunc = require_permissionless_utils_format.significantTrunc;
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_onchain_utils_createRawTx = require("../../../onchain/utils/createRawTx.js");
3
3
  require("../../../onchain/index.js");
4
- const require_abi_governance_governor = require("../../../abi/governance/governor.js");
5
4
  const require_permissionless_utils_governance_batch = require("./batch.js");
5
+ const require_abi_governance_governor = require("../../../abi/governance/governor.js");
6
6
  //#region src/permissionless/utils/governance/timelock-txs.ts
7
7
  function convertQueueBatchToExecuteTx(queueBatch) {
8
8
  const executionBatch = queueBatch.filter((tx) => tx.contractMethod.name === "queueTransaction").map((tx) => ({
@@ -1,16 +1,16 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_permissionless_utils_literals = require("./literals.js");
3
3
  const require_permissionless_utils_signature = require("./signature.js");
4
+ const require_permissionless_utils_abi_encoder = require("./abi-encoder.js");
5
+ const require_permissionless_utils_price_update_get_prices = require("./price-update/get-prices.js");
6
+ const require_permissionless_utils_governance_batch = require("./governance/batch.js");
7
+ const require_permissionless_utils_price_update_get_updatable_feeds = require("./price-update/get-updatable-feeds.js");
4
8
  const require_permissionless_utils_create2 = require("./create2.js");
5
9
  const require_permissionless_utils_format = require("./format.js");
6
- const require_permissionless_utils_abi_encoder = require("./abi-encoder.js");
7
10
  const require_permissionless_utils_block_utils = require("./block-utils.js");
8
- const require_permissionless_utils_governance_batch = require("./governance/batch.js");
9
11
  const require_permissionless_utils_governance_timelock_txs = require("./governance/timelock-txs.js");
10
12
  require("./governance/index.js");
11
13
  const require_permissionless_utils_price_update_get_price_update_tx = require("./price-update/get-price-update-tx.js");
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");
14
14
  require("./price-update/index.js");
15
15
  exports.BYTECODE_REPOSITORY = require_permissionless_utils_literals.BYTECODE_REPOSITORY;
16
16
  exports.CROSS_CHAIN_GOVERNANCE = require_permissionless_utils_literals.CROSS_CHAIN_GOVERNANCE;
@@ -3,8 +3,8 @@ const require_onchain_utils_createRawTx = require("../../../onchain/utils/create
3
3
  const require_onchain_market_pricefeeds_updates_getRawPriceUpdates = require("../../../onchain/market/pricefeeds/updates/getRawPriceUpdates.js");
4
4
  const require_onchain_OnchainSDK = require("../../../onchain/OnchainSDK.js");
5
5
  require("../../../onchain/index.js");
6
- require("../../deployment/addresses.js");
7
6
  const require_permissionless_bindings_price_feed_store = require("../../bindings/price-feed-store.js");
7
+ require("../../deployment/addresses.js");
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
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_permissionless_utils_price_update_get_price_update_tx = require("./get-price-update-tx.js");
3
2
  const require_permissionless_utils_price_update_get_prices = require("./get-prices.js");
4
3
  const require_permissionless_utils_price_update_get_updatable_feeds = require("./get-updatable-feeds.js");
4
+ const require_permissionless_utils_price_update_get_price_update_tx = require("./get-price-update-tx.js");
5
5
  exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
6
6
  exports.getPrices = require_permissionless_utils_price_update_get_prices.getPrices;
7
7
  exports.getUpdatablePriceFeeds = require_permissionless_utils_price_update_get_updatable_feeds.getUpdatablePriceFeeds;
@@ -1,5 +1,5 @@
1
- import { ierc20Abi } from "../abi/iERC20.js";
2
1
  import { iCreditFacadeV310Abi } from "../abi/310/generated.js";
2
+ import { ierc20Abi } from "../abi/iERC20.js";
3
3
  import { AddressMap } from "../onchain/utils/AddressMap.js";
4
4
  import { AddressSet } from "../onchain/utils/AddressSet.js";
5
5
  import { AssetsMap } from "../onchain/utils/AssetsMap.js";
@@ -1,6 +1,6 @@
1
- import { iWithdrawalCompressorV313Abi } from "../abi/IWithdrawalCompressorV313.js";
2
1
  import { getNetworkType } from "../onchain/chain/chains.js";
3
2
  import { getWithdrawalCompressorAddress } from "../onchain/accounts/withdrawal-compressor/addresses.js";
3
+ import { iWithdrawalCompressorV313Abi } from "../abi/IWithdrawalCompressorV313.js";
4
4
  import "../onchain/index.js";
5
5
  import { iMidasDataFeedAbi, iMidasRedemptionVaultAbi, midasGatewayAbi, midasRedeemerAbi, midasRedemptionVaultPhantomTokenAbi, securitizeRedeemerAbi, securitizeRedemptionGatewayAbi, securitizeRedemptionPhantomTokenAbi } from "./withdrawalAbi.js";
6
6
  import { erc20Abi, hexToString, parseAbi, parseEther } from "viem";
@@ -1,5 +1,5 @@
1
- import { ierc20Abi } from "../../abi/iERC20.js";
2
1
  import { iCreditFacadeV310Abi } from "../../abi/310/generated.js";
2
+ import { ierc20Abi } from "../../abi/iERC20.js";
3
3
  import { AddressMap } from "../../onchain/utils/AddressMap.js";
4
4
  import "../../onchain/index.js";
5
5
  import { UnexpectedFacadeEventOrderError } from "./errors.js";
@@ -47,14 +47,7 @@ var AbstractOffchainNamespace = class {
47
47
  **/
48
48
  async get(request) {
49
49
  const url = this.#url(request.path, request.query);
50
- const payload = await this.#fetchJson(url);
51
- const parsed = responseSchema(request.schema).safeParse(payload);
52
- if (!parsed.success) {
53
- const error = new OffchainValidationError(url, parsed.error);
54
- this.logger?.error(error, "offchain response does not match the read model");
55
- throw error;
56
- }
57
- const { data, meta } = parsed.data;
50
+ const { data, meta } = await this.#read(url, responseSchema(request.schema));
58
51
  return {
59
52
  data,
60
53
  meta: { chains: meta.chains.map((chain) => ({
@@ -64,6 +57,36 @@ var AbstractOffchainNamespace = class {
64
57
  };
65
58
  }
66
59
  /**
60
+ * Reads one endpoint that answers with the payload alone, and returns it
61
+ * unwrapped.
62
+ *
63
+ * A read served at no particular block has no envelope to report: the
64
+ * permissionless routes either span every chain at once, or fall through to
65
+ * a multicall on the chain itself, so the backend answers `{ data }` and
66
+ * there is no {@link ResponseMetadata} for {@link get} to decode. The
67
+ * envelope is still there, which is what keeps a payload that happens to be
68
+ * an array from being mistaken for an error body.
69
+ **/
70
+ async getData(request) {
71
+ const url = this.#url(request.path, request.query);
72
+ const { data } = await this.#read(url, z.object({ data: request.schema }));
73
+ return data;
74
+ }
75
+ /**
76
+ * Body of a successful read, decoded. Schema skew is reported against the
77
+ * url that produced it, which is the only thing that says which read drifted.
78
+ **/
79
+ async #read(url, schema) {
80
+ const payload = await this.#fetchJson(url);
81
+ const parsed = schema.safeParse(payload);
82
+ if (!parsed.success) {
83
+ const error = new OffchainValidationError(url, parsed.error);
84
+ this.logger?.error(error, "offchain response does not match the read model");
85
+ throw error;
86
+ }
87
+ return parsed.data;
88
+ }
89
+ /**
67
90
  * Reads the charts of one subject: one series per metric named, onto the one
68
91
  * grid that lets them be compared at an index.
69
92
  **/
@@ -1,5 +1,3 @@
1
- import { iBaseRewardPoolAbi } from "../../abi/iBaseRewardPool.js";
2
- import { ierc4626AdapterAbi } from "../../abi/ierc4626Adapter.js";
3
1
  import { AP_REWARDS_COMPRESSOR } from "../constants/address-provider.js";
4
2
  import { ADDRESS_0X0 } from "../constants/addresses.js";
5
3
  import { MAX_UINT256 } from "../constants/math.js";
@@ -10,6 +8,8 @@ import "../base/index.js";
10
8
  import { AccountBotsService } from "./bots/AccountBotsService.js";
11
9
  import "./bots/index.js";
12
10
  import { rewardsCompressorAbi } from "../../abi/compressors/rewardsCompressor.js";
11
+ import { iBaseRewardPoolAbi } from "../../abi/iBaseRewardPool.js";
12
+ import { ierc4626AdapterAbi } from "../../abi/ierc4626Adapter.js";
13
13
  import { expectedBalanceDeltas } from "../market/credit/expectedBalanceDeltas.js";
14
14
  import "../market/index.js";
15
15
  import { CreditAccountCompressor } from "./credit-account-compressor/CreditAccountCompressor.js";
@@ -1,4 +1,3 @@
1
- import { iLiquidationCompressorV313Abi } from "../../../abi/ILiquidationCompressorV313.js";
2
1
  import { AddressSet } from "../../utils/AddressSet.js";
3
2
  import { bytes32ToString } from "../../utils/bytes32ToString.js";
4
3
  import { ADDRESS_0X0 } from "../../constants/addresses.js";
@@ -20,6 +19,7 @@ import { SecuritizeLiquidatorContract } from "../../market/rwa/securitize/Securi
20
19
  import "../../market/rwa/securitize/index.js";
21
20
  import "../../market/index.js";
22
21
  import { LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS } from "./constants.js";
22
+ import { iLiquidationCompressorV313Abi } from "../../../abi/ILiquidationCompressorV313.js";
23
23
  import { skipLiquidatableAccount } from "./skipLiquidatableAccount.js";
24
24
  //#region src/onchain/accounts/liquidations/LiquidationsService.ts
25
25
  /**
@@ -1,9 +1,9 @@
1
- import { iRedemptionLoggerV310Abi } from "../../../abi/iRedemptionLoggerV310.js";
2
1
  import { BaseContract } from "../../base/BaseContract.js";
3
2
  import "../../base/index.js";
4
3
  import { sdkErr, sdkOk } from "../../../model/result.js";
5
4
  import "../../../model/index.js";
6
5
  import { decodeDelayedIntent } from "./intent-codec.js";
6
+ import { iRedemptionLoggerV310Abi } from "../../../abi/iRedemptionLoggerV310.js";
7
7
  //#region src/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.ts
8
8
  const abi = iRedemptionLoggerV310Abi;
9
9
  /**
@@ -1,5 +1,5 @@
1
- import { iWithdrawalCompressorV310Abi } from "../../../abi/IWithdrawalCompressorV310.js";
2
1
  import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
2
+ import { iWithdrawalCompressorV310Abi } from "../../../abi/IWithdrawalCompressorV310.js";
3
3
  //#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.ts
4
4
  const abi = iWithdrawalCompressorV310Abi;
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { iWithdrawalCompressorV311Abi } from "../../../abi/IWithdrawalCompressorV311.js";
2
1
  import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
2
+ import { iWithdrawalCompressorV311Abi } from "../../../abi/IWithdrawalCompressorV311.js";
3
3
  //#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.ts
4
4
  const abi = iWithdrawalCompressorV311Abi;
5
5
  /**
@@ -1,6 +1,6 @@
1
- import { iWithdrawalCompressorV313Abi } from "../../../abi/IWithdrawalCompressorV313.js";
2
1
  import { encodeDelayedIntent } from "./intent-codec.js";
3
2
  import { AbstractWithdrawalCompressorContract, iCreditAccountAbi, toClaimableWithdrawal, toPendingWithdrawal, toRequestableWithdrawal } from "./AbstractWithdrawalCompressorContract.js";
3
+ import { iWithdrawalCompressorV313Abi } from "../../../abi/IWithdrawalCompressorV313.js";
4
4
  import { toWithdrawalStatus } from "./types.js";
5
5
  //#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.ts
6
6
  const abi = iWithdrawalCompressorV313Abi;
@@ -1,12 +1,12 @@
1
- import { iExpirableAbi } from "../../abi/iExpirable.js";
2
- import { iStateSerializerAbi } from "../../abi/iStateSerializer.js";
3
- import { iVersionAbi } from "../../abi/iVersion.js";
4
1
  import { AddressMap } from "../utils/AddressMap.js";
5
2
  import { AddressSet } from "../utils/AddressSet.js";
6
3
  import { bytes32ToString } from "../utils/bytes32ToString.js";
7
4
  import { getAssetType } from "../chain/chains.js";
8
5
  import { formatBN } from "../utils/formatter.js";
9
6
  import "../utils/index.js";
7
+ import { iExpirableAbi } from "../../abi/iExpirable.js";
8
+ import { iStateSerializerAbi } from "../../abi/iStateSerializer.js";
9
+ import { iVersionAbi } from "../../abi/iVersion.js";
10
10
  import { SdkRWADataNotLoadedError } from "../core/errors.js";
11
11
  import { executeMulticallBatches } from "../utils/viem/executeMulticallBatches.js";
12
12
  //#region src/onchain/base/TokensMeta.ts
@@ -1,8 +1,8 @@
1
- import { iVersionAbi } from "../../abi/iVersion.js";
2
1
  import "../constants/address-provider.js";
3
2
  import { isV310 } from "../constants/versions.js";
4
3
  import "../constants/index.js";
5
4
  import { hexEq } from "../utils/hex.js";
5
+ import { iVersionAbi } from "../../abi/iVersion.js";
6
6
  import { AddressProviderV310Contract } from "./AddressProviderV310Contract.js";
7
7
  //#region src/onchain/core/createAddressProvider.ts
8
8
  const OVERRIDE_ADDRESSES = {};
@@ -1,5 +1,5 @@
1
- import { accountMigratorAbi } from "../../../../abi/AccountMigrator.js";
2
1
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
2
+ import { accountMigratorAbi } from "../../../../abi/AccountMigrator.js";
3
3
  //#region src/onchain/market/adapters/contracts/AccountMigratorAdapterContract.ts
4
4
  const abi = accountMigratorAbi;
5
5
  const protocolAbi = accountMigratorAbi;
@@ -1,6 +1,6 @@
1
- import { ierc4626AdapterAbi } from "../../../../abi/ierc4626Adapter.js";
2
1
  import { MissingSerializedParamsError } from "../../../base/errors.js";
3
2
  import "../../../base/index.js";
3
+ import { ierc4626AdapterAbi } from "../../../../abi/ierc4626Adapter.js";
4
4
  import { iERC4626Abi } from "../abi/targetContractAbi.js";
5
5
  import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
6
6
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
@@ -1,7 +1,7 @@
1
- import { iPausableAbi } from "../../../abi/iPausable.js";
2
1
  import { iCreditFacadeMulticallV310Abi, iCreditFacadeV310Abi } from "../../../abi/310/generated.js";
3
2
  import { BaseContract } from "../../base/BaseContract.js";
4
3
  import "../../base/index.js";
4
+ import { iPausableAbi } from "../../../abi/iPausable.js";
5
5
  //#region src/onchain/market/credit/CreditFacadeV310BaseContract.ts
6
6
  const abi = [
7
7
  ...iCreditFacadeV310Abi,
@@ -1,4 +1,3 @@
1
- import { iPausableAbi } from "../../../abi/iPausable.js";
2
1
  import { iPoolV310Abi } from "../../../abi/310/generated.js";
3
2
  import { AddressMap } from "../../utils/AddressMap.js";
4
3
  import { RAY } from "../../constants/math.js";
@@ -8,6 +7,7 @@ import "../../utils/index.js";
8
7
  import { SdkRWADataNotLoadedError } from "../../core/errors.js";
9
8
  import { BaseContract } from "../../base/BaseContract.js";
10
9
  import "../../base/index.js";
10
+ import { iPausableAbi } from "../../../abi/iPausable.js";
11
11
  //#region src/onchain/market/pool/PoolV310Contract.ts
12
12
  const abi = [...iPoolV310Abi, ...iPausableAbi];
13
13
  var PoolV310Contract = class extends BaseContract {
@@ -1,6 +1,6 @@
1
- import { iVersionAbi } from "../../../abi/iVersion.js";
2
1
  import { bytes32ToString } from "../../utils/bytes32ToString.js";
3
2
  import "../../utils/index.js";
3
+ import { iVersionAbi } from "../../../abi/iVersion.js";
4
4
  import { iMidasDegenNFTAbi } from "../../../abi/rwa/iMidasDegenNFT.js";
5
5
  import { DEGEN_NFT_MIDAS } from "./midas/constants.js";
6
6
  import { MidasDegenNFT } from "./midas/MidasDegenNFT.js";
@@ -1,5 +1,5 @@
1
- import { iethZapperAbi } from "../../../abi/iETHZapper.js";
2
1
  import { ZapperContract } from "./ZapperContract.js";
2
+ import { iethZapperAbi } from "../../../abi/iETHZapper.js";
3
3
  //#region src/onchain/market/zapper/IETHZapperContract.ts
4
4
  const abi = iethZapperAbi;
5
5
  var IETHZapperContract = class extends ZapperContract {
@@ -1,8 +1,8 @@
1
- import { iZapperAbi } from "../../../abi/iZapper.js";
2
1
  import { BaseContract } from "../../base/BaseContract.js";
3
2
  import "../../base/index.js";
4
3
  import { sdkErr, sdkOk } from "../../../model/result.js";
5
4
  import "../../../model/index.js";
5
+ import { iZapperAbi } from "../../../abi/iZapper.js";
6
6
  //#region src/onchain/market/zapper/ZapperContract.ts
7
7
  /**
8
8
  * Base contract for every Gearbox zapper. Specialized zappers (e.g.
@@ -1,8 +1,8 @@
1
- import { ierc20Abi } from "../../../abi/iERC20.js";
2
- import { iZapperAbi } from "../../../abi/iZapper.js";
3
1
  import { iPoolV310Abi } from "../../../abi/310/generated.js";
2
+ import { ierc20Abi } from "../../../abi/iERC20.js";
4
3
  import { sdkErr, sdkOk } from "../../../model/result.js";
5
4
  import "../../../model/index.js";
5
+ import { iZapperAbi } from "../../../abi/iZapper.js";
6
6
  //#region src/onchain/preview/preview/previewPoolPositionOperation.ts
7
7
  function previewRead(operation) {
8
8
  switch (operation.operation) {
@@ -1,6 +1,6 @@
1
1
  import { errorAbis } from "../../../abi/errors.js";
2
- import { iUpdatablePriceFeedAbi } from "../../../abi/iUpdatablePriceFeed.js";
3
2
  import { generateCastTraceCall } from "./cast.js";
3
+ import { iUpdatablePriceFeedAbi } from "../../../abi/iUpdatablePriceFeed.js";
4
4
  import { simulateMulticall } from "./simulateMulticall.js";
5
5
  import { BaseError, CallExecutionError, ContractFunctionRevertedError, decodeFunctionData, decodeFunctionResult, encodeFunctionData, parseAbi } from "viem";
6
6
  import { getAction, parseAccount } from "viem/utils";
@@ -0,0 +1,78 @@
1
+ import { ChainsNamespace } from "./chains/ChainsNamespace.js";
2
+ import { PermissionlessDeploy } from "./deploy/PermissionlessDeploy.js";
3
+ import { PermissionlessOracles } from "./oracles/PermissionlessOracles.js";
4
+ import { InstanceOwnerTransactions } from "./transactions/InstanceOwnerTransactions.js";
5
+ //#region src/permissionless/api/GearboxPermissionless.ts
6
+ /**
7
+ * Client for the permissionless stack: the oracle rows of a chain, the
8
+ * batches an instance owner executes, and the deploys that produce what goes
9
+ * into both.
10
+ *
11
+ * It reads the same backend {@link GearboxAPI} does, and reads the same way —
12
+ * one namespace per subject, every call scoped by the chain it names. Which
13
+ * chains those are is not passed in: {@link attach} reads the list off the
14
+ * backend and builds a client for each, so this client covers exactly what
15
+ * the backend serves.
16
+ *
17
+ * ```ts
18
+ * const permissionless = new GearboxPermissionless({
19
+ * baseUrl: "https://api.gearbox.fi",
20
+ * });
21
+ * await permissionless.attach();
22
+ *
23
+ * const [chain] = permissionless.chains.list();
24
+ * const store = await permissionless.oracles.store({ chainId: chain.chainId });
25
+ * ```
26
+ *
27
+ * Only what needs a server goes to one. {@link chains} and {@link oracles}
28
+ * are the backend's reads; {@link deploy} and {@link transactions} read the
29
+ * target chain directly, because everything they answer is derived from there
30
+ * and a round trip would only move the derivation further from the wallet
31
+ * that has to sign for it.
32
+ **/
33
+ var GearboxPermissionless = class {
34
+ /**
35
+ * Namespace for the chains the stack runs on, and the viem clients that
36
+ * reach them.
37
+ **/
38
+ chains;
39
+ /**
40
+ * Namespace for price feeds: the store and its prices.
41
+ **/
42
+ oracles;
43
+ /**
44
+ * Namespace for the Safe batches an instance owner executes. Backend-free,
45
+ * see {@link InstanceOwnerTransactions}.
46
+ **/
47
+ transactions;
48
+ /**
49
+ * Namespace for deploys through the BytecodeRepository. Backend-free, see
50
+ * {@link PermissionlessDeploy}.
51
+ **/
52
+ deploy;
53
+ constructor(options = {}) {
54
+ this.chains = new ChainsNamespace(options);
55
+ this.oracles = new PermissionlessOracles(options, this.chains);
56
+ this.transactions = new InstanceOwnerTransactions(this.chains, this.oracles);
57
+ this.deploy = new PermissionlessDeploy(this.chains);
58
+ }
59
+ /**
60
+ * Loads the chain list and builds the clients, see
61
+ * {@link ChainsNamespace.attach}. Idempotent, and joins a call already in
62
+ * flight.
63
+ *
64
+ * Everything that reads a chain goes through it, so this has to finish
65
+ * before the first such call.
66
+ **/
67
+ async attach(args = {}) {
68
+ return this.chains.attach(args);
69
+ }
70
+ /**
71
+ * Whether {@link attach} has completed.
72
+ **/
73
+ get isAttached() {
74
+ return this.chains.isAttached;
75
+ }
76
+ };
77
+ //#endregion
78
+ export { GearboxPermissionless };