@gearbox-protocol/sdk 9.14.1 → 9.15.1

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 (258) hide show
  1. package/dist/cjs/abi/package.json +1 -0
  2. package/dist/cjs/dev/mint/factory.js +1 -1
  3. package/dist/cjs/permissionless/bindings/address-provider.js +51 -0
  4. package/dist/cjs/permissionless/bindings/base-contract.js +173 -0
  5. package/dist/cjs/permissionless/bindings/bytecode-repository.js +526 -0
  6. package/dist/cjs/permissionless/bindings/compressors/index.js +24 -0
  7. package/dist/cjs/permissionless/bindings/compressors/token-compressor.js +110 -0
  8. package/dist/cjs/permissionless/bindings/compressors/withdrawal-compressor.js +60 -0
  9. package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +355 -0
  10. package/dist/cjs/permissionless/bindings/factory/abstract-factory.js +52 -0
  11. package/dist/cjs/permissionless/bindings/factory/credit-factory.js +197 -0
  12. package/dist/cjs/permissionless/bindings/factory/pool-factory.js +69 -0
  13. package/dist/cjs/permissionless/bindings/factory/price-oracle-factory.js +47 -0
  14. package/dist/cjs/permissionless/bindings/governance/batches-chain.js +41 -0
  15. package/dist/cjs/permissionless/bindings/governance/governor.js +243 -0
  16. package/dist/cjs/permissionless/bindings/governance/index.js +26 -0
  17. package/dist/cjs/permissionless/bindings/governance/timelock.js +104 -0
  18. package/dist/cjs/permissionless/bindings/governance/types.js +16 -0
  19. package/dist/cjs/permissionless/bindings/index.js +48 -0
  20. package/dist/cjs/permissionless/bindings/instance-manager.js +244 -0
  21. package/dist/cjs/permissionless/bindings/market-configurator-factory.js +75 -0
  22. package/dist/cjs/permissionless/bindings/market-configurator.js +771 -0
  23. package/dist/cjs/permissionless/bindings/price-feed-store.js +395 -0
  24. package/dist/cjs/permissionless/bindings/pricefeeds/balancer-stable.js +63 -0
  25. package/dist/cjs/permissionless/bindings/pricefeeds/balancer-weighted.js +63 -0
  26. package/dist/cjs/permissionless/bindings/pricefeeds/bounded.js +47 -0
  27. package/dist/cjs/permissionless/bindings/pricefeeds/composite.js +43 -0
  28. package/dist/cjs/permissionless/bindings/pricefeeds/constant.js +42 -0
  29. package/dist/cjs/permissionless/bindings/pricefeeds/curve-crypto.js +67 -0
  30. package/dist/cjs/permissionless/bindings/pricefeeds/curve-stable.js +67 -0
  31. package/dist/cjs/permissionless/bindings/pricefeeds/curve-twap.js +70 -0
  32. package/dist/cjs/permissionless/bindings/pricefeeds/curve-usd.js +50 -0
  33. package/dist/cjs/permissionless/bindings/pricefeeds/erc4626.js +72 -0
  34. package/dist/cjs/permissionless/bindings/pricefeeds/external.js +38 -0
  35. package/dist/cjs/permissionless/bindings/pricefeeds/index.js +63 -0
  36. package/dist/cjs/permissionless/bindings/pricefeeds/kodiak.js +50 -0
  37. package/dist/cjs/permissionless/bindings/pricefeeds/mellow-lrt.js +122 -0
  38. package/dist/cjs/permissionless/bindings/pricefeeds/pendle-pt-twap.js +51 -0
  39. package/dist/cjs/permissionless/bindings/pricefeeds/pyth.js +65 -0
  40. package/dist/cjs/permissionless/bindings/pricefeeds/redstone.js +81 -0
  41. package/dist/cjs/permissionless/bindings/pricefeeds/wsteth.js +63 -0
  42. package/dist/cjs/permissionless/bindings/pricefeeds/zero.js +33 -0
  43. package/dist/cjs/permissionless/bindings/router/index.js +22 -0
  44. package/dist/cjs/permissionless/bindings/router/routing-manager.js +58 -0
  45. package/dist/cjs/permissionless/bindings/treasury-splitter.js +60 -0
  46. package/dist/cjs/permissionless/bindings/types.js +16 -0
  47. package/dist/cjs/permissionless/chains/archive-transport.js +274 -0
  48. package/dist/cjs/permissionless/core/auditor.js +16 -0
  49. package/dist/cjs/permissionless/core/bytecode.js +16 -0
  50. package/dist/cjs/permissionless/core/index.js +32 -0
  51. package/dist/cjs/permissionless/core/pricefeed-builder.js +16 -0
  52. package/dist/cjs/permissionless/core/pricefeed.js +16 -0
  53. package/dist/cjs/permissionless/core/proposal.js +16 -0
  54. package/dist/cjs/permissionless/core/raw-tx.js +38 -0
  55. package/dist/cjs/permissionless/deployment/addresses.js +35 -0
  56. package/dist/cjs/permissionless/deployment/mainnet.js +54 -0
  57. package/dist/cjs/permissionless/index.js +32 -0
  58. package/dist/cjs/permissionless/package.json +1 -0
  59. package/dist/cjs/permissionless/plugins/index.js +40 -0
  60. package/dist/cjs/permissionless/plugins/irm/constructor-params-abi.js +81 -0
  61. package/dist/cjs/permissionless/plugins/loss-policies/constructor-params-abi.js +79 -0
  62. package/dist/cjs/permissionless/plugins/rate-keepers/constructor-params-abi.js +89 -0
  63. package/dist/cjs/permissionless/utils/abi-decoder.js +72 -0
  64. package/dist/cjs/permissionless/utils/abi-encoder.js +89 -0
  65. package/dist/cjs/permissionless/utils/block-utils.js +55 -0
  66. package/dist/cjs/permissionless/utils/create2.js +113 -0
  67. package/dist/cjs/permissionless/utils/format.js +97 -0
  68. package/dist/cjs/permissionless/utils/governance/batch.js +114 -0
  69. package/dist/cjs/permissionless/utils/governance/index.js +26 -0
  70. package/dist/cjs/permissionless/utils/governance/timelock-txs.js +44 -0
  71. package/dist/cjs/permissionless/utils/governance/types.js +16 -0
  72. package/dist/cjs/permissionless/utils/index.js +38 -0
  73. package/dist/cjs/permissionless/utils/literals.js +46 -0
  74. package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +91 -0
  75. package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +84 -0
  76. package/dist/cjs/permissionless/utils/price-update/get-prices.js +123 -0
  77. package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +52 -0
  78. package/dist/cjs/permissionless/utils/price-update/index.js +28 -0
  79. package/dist/cjs/permissionless/utils/signature.js +35 -0
  80. package/dist/cjs/plugins/adapters/AdaptersPlugin.js +1 -1
  81. package/dist/cjs/plugins/adapters/abi/actionAbi.js +1 -1
  82. package/dist/cjs/plugins/adapters/abi/conctructorAbi.js +2 -2
  83. package/dist/cjs/plugins/adapters/abi/utils.js +6 -6
  84. package/dist/cjs/plugins/adapters/index.js +4 -4
  85. package/dist/cjs/sdk/sdk-gov-legacy/tokens/curveLP.js +1 -1
  86. package/dist/cjs/sdk/sdk-legacy/tokens/tokenData.js +1 -1
  87. package/dist/esm/abi/package.json +1 -0
  88. package/dist/esm/dev/mint/factory.js +1 -1
  89. package/dist/esm/permissionless/bindings/address-provider.js +27 -0
  90. package/dist/esm/permissionless/bindings/base-contract.js +151 -0
  91. package/dist/esm/permissionless/bindings/bytecode-repository.js +508 -0
  92. package/dist/esm/permissionless/bindings/compressors/index.js +2 -0
  93. package/dist/esm/permissionless/bindings/compressors/token-compressor.js +89 -0
  94. package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +38 -0
  95. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +336 -0
  96. package/dist/esm/permissionless/bindings/factory/abstract-factory.js +28 -0
  97. package/dist/esm/permissionless/bindings/factory/credit-factory.js +177 -0
  98. package/dist/esm/permissionless/bindings/factory/pool-factory.js +45 -0
  99. package/dist/esm/permissionless/bindings/factory/price-oracle-factory.js +23 -0
  100. package/dist/esm/permissionless/bindings/governance/batches-chain.js +17 -0
  101. package/dist/esm/permissionless/bindings/governance/governor.js +224 -0
  102. package/dist/esm/permissionless/bindings/governance/index.js +3 -0
  103. package/dist/esm/permissionless/bindings/governance/timelock.js +80 -0
  104. package/dist/esm/permissionless/bindings/governance/types.js +0 -0
  105. package/dist/esm/permissionless/bindings/index.js +14 -0
  106. package/dist/esm/permissionless/bindings/instance-manager.js +223 -0
  107. package/dist/esm/permissionless/bindings/market-configurator-factory.js +51 -0
  108. package/dist/esm/permissionless/bindings/market-configurator.js +765 -0
  109. package/dist/esm/permissionless/bindings/price-feed-store.js +376 -0
  110. package/dist/esm/permissionless/bindings/pricefeeds/balancer-stable.js +39 -0
  111. package/dist/esm/permissionless/bindings/pricefeeds/balancer-weighted.js +39 -0
  112. package/dist/esm/permissionless/bindings/pricefeeds/bounded.js +23 -0
  113. package/dist/esm/permissionless/bindings/pricefeeds/composite.js +19 -0
  114. package/dist/esm/permissionless/bindings/pricefeeds/constant.js +18 -0
  115. package/dist/esm/permissionless/bindings/pricefeeds/curve-crypto.js +43 -0
  116. package/dist/esm/permissionless/bindings/pricefeeds/curve-stable.js +43 -0
  117. package/dist/esm/permissionless/bindings/pricefeeds/curve-twap.js +46 -0
  118. package/dist/esm/permissionless/bindings/pricefeeds/curve-usd.js +26 -0
  119. package/dist/esm/permissionless/bindings/pricefeeds/erc4626.js +48 -0
  120. package/dist/esm/permissionless/bindings/pricefeeds/external.js +14 -0
  121. package/dist/esm/permissionless/bindings/pricefeeds/index.js +39 -0
  122. package/dist/esm/permissionless/bindings/pricefeeds/kodiak.js +26 -0
  123. package/dist/esm/permissionless/bindings/pricefeeds/mellow-lrt.js +98 -0
  124. package/dist/esm/permissionless/bindings/pricefeeds/pendle-pt-twap.js +27 -0
  125. package/dist/esm/permissionless/bindings/pricefeeds/pyth.js +41 -0
  126. package/dist/esm/permissionless/bindings/pricefeeds/redstone.js +57 -0
  127. package/dist/esm/permissionless/bindings/pricefeeds/wsteth.js +39 -0
  128. package/dist/esm/permissionless/bindings/pricefeeds/zero.js +9 -0
  129. package/dist/esm/permissionless/bindings/router/index.js +1 -0
  130. package/dist/esm/permissionless/bindings/router/routing-manager.js +36 -0
  131. package/dist/esm/permissionless/bindings/treasury-splitter.js +36 -0
  132. package/dist/esm/permissionless/bindings/types.js +0 -0
  133. package/dist/esm/permissionless/chains/archive-transport.js +250 -0
  134. package/dist/esm/permissionless/core/auditor.js +0 -0
  135. package/dist/esm/permissionless/core/bytecode.js +0 -0
  136. package/dist/esm/permissionless/core/index.js +6 -0
  137. package/dist/esm/permissionless/core/pricefeed-builder.js +0 -0
  138. package/dist/esm/permissionless/core/pricefeed.js +0 -0
  139. package/dist/esm/permissionless/core/proposal.js +0 -0
  140. package/dist/esm/permissionless/core/raw-tx.js +14 -0
  141. package/dist/esm/permissionless/deployment/addresses.js +11 -0
  142. package/dist/esm/permissionless/deployment/mainnet.js +27 -0
  143. package/dist/esm/permissionless/index.js +6 -0
  144. package/dist/esm/permissionless/package.json +1 -0
  145. package/dist/esm/permissionless/plugins/index.js +20 -0
  146. package/dist/esm/permissionless/plugins/irm/constructor-params-abi.js +52 -0
  147. package/dist/esm/permissionless/plugins/loss-policies/constructor-params-abi.js +50 -0
  148. package/dist/esm/permissionless/plugins/rate-keepers/constructor-params-abi.js +59 -0
  149. package/dist/esm/permissionless/utils/abi-decoder.js +50 -0
  150. package/dist/esm/permissionless/utils/abi-encoder.js +65 -0
  151. package/dist/esm/permissionless/utils/block-utils.js +31 -0
  152. package/dist/esm/permissionless/utils/create2.js +85 -0
  153. package/dist/esm/permissionless/utils/format.js +67 -0
  154. package/dist/esm/permissionless/utils/governance/batch.js +87 -0
  155. package/dist/esm/permissionless/utils/governance/index.js +3 -0
  156. package/dist/esm/permissionless/utils/governance/timelock-txs.js +20 -0
  157. package/dist/esm/permissionless/utils/governance/types.js +0 -0
  158. package/dist/esm/permissionless/utils/index.js +9 -0
  159. package/dist/esm/permissionless/utils/literals.js +16 -0
  160. package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +65 -0
  161. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +67 -0
  162. package/dist/esm/permissionless/utils/price-update/get-prices.js +99 -0
  163. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +31 -0
  164. package/dist/esm/permissionless/utils/price-update/index.js +4 -0
  165. package/dist/esm/permissionless/utils/signature.js +11 -0
  166. package/dist/esm/plugins/adapters/AdaptersPlugin.js +1 -1
  167. package/dist/esm/plugins/adapters/abi/actionAbi.js +1 -1
  168. package/dist/esm/plugins/adapters/abi/conctructorAbi.js +2 -2
  169. package/dist/esm/plugins/adapters/abi/utils.js +2 -2
  170. package/dist/esm/plugins/adapters/index.js +2 -2
  171. package/dist/esm/sdk/sdk-gov-legacy/tokens/curveLP.js +1 -1
  172. package/dist/esm/sdk/sdk-legacy/tokens/tokenData.js +1 -1
  173. package/dist/types/dev/mint/factory.d.ts +2 -2
  174. package/dist/types/permissionless/bindings/address-provider.d.ts +259 -0
  175. package/dist/types/permissionless/bindings/base-contract.d.ts +23 -0
  176. package/dist/types/permissionless/bindings/bytecode-repository.d.ts +1352 -0
  177. package/dist/types/permissionless/bindings/compressors/index.d.ts +2 -0
  178. package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +118 -0
  179. package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +331 -0
  180. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +835 -0
  181. package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +17 -0
  182. package/dist/types/permissionless/bindings/factory/credit-factory.d.ts +224 -0
  183. package/dist/types/permissionless/bindings/factory/pool-factory.d.ts +86 -0
  184. package/dist/types/permissionless/bindings/factory/price-oracle-factory.d.ts +38 -0
  185. package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +39 -0
  186. package/dist/types/permissionless/bindings/governance/governor.d.ts +615 -0
  187. package/dist/types/permissionless/bindings/governance/index.d.ts +3 -0
  188. package/dist/types/permissionless/bindings/governance/timelock.d.ts +10 -0
  189. package/dist/types/permissionless/bindings/governance/types.d.ts +42 -0
  190. package/dist/types/permissionless/bindings/index.d.ts +14 -0
  191. package/dist/types/permissionless/bindings/instance-manager.d.ts +361 -0
  192. package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +244 -0
  193. package/dist/types/permissionless/bindings/market-configurator.d.ts +1656 -0
  194. package/dist/types/permissionless/bindings/price-feed-store.d.ts +605 -0
  195. package/dist/types/permissionless/bindings/pricefeeds/balancer-stable.d.ts +2 -0
  196. package/dist/types/permissionless/bindings/pricefeeds/balancer-weighted.d.ts +2 -0
  197. package/dist/types/permissionless/bindings/pricefeeds/bounded.d.ts +2 -0
  198. package/dist/types/permissionless/bindings/pricefeeds/composite.d.ts +2 -0
  199. package/dist/types/permissionless/bindings/pricefeeds/constant.d.ts +2 -0
  200. package/dist/types/permissionless/bindings/pricefeeds/curve-crypto.d.ts +2 -0
  201. package/dist/types/permissionless/bindings/pricefeeds/curve-stable.d.ts +2 -0
  202. package/dist/types/permissionless/bindings/pricefeeds/curve-twap.d.ts +2 -0
  203. package/dist/types/permissionless/bindings/pricefeeds/curve-usd.d.ts +2 -0
  204. package/dist/types/permissionless/bindings/pricefeeds/erc4626.d.ts +2 -0
  205. package/dist/types/permissionless/bindings/pricefeeds/external.d.ts +2 -0
  206. package/dist/types/permissionless/bindings/pricefeeds/index.d.ts +2 -0
  207. package/dist/types/permissionless/bindings/pricefeeds/kodiak.d.ts +2 -0
  208. package/dist/types/permissionless/bindings/pricefeeds/mellow-lrt.d.ts +2 -0
  209. package/dist/types/permissionless/bindings/pricefeeds/pendle-pt-twap.d.ts +2 -0
  210. package/dist/types/permissionless/bindings/pricefeeds/pyth.d.ts +2 -0
  211. package/dist/types/permissionless/bindings/pricefeeds/redstone.d.ts +2 -0
  212. package/dist/types/permissionless/bindings/pricefeeds/wsteth.d.ts +2 -0
  213. package/dist/types/permissionless/bindings/pricefeeds/zero.d.ts +2 -0
  214. package/dist/types/permissionless/bindings/router/index.d.ts +1 -0
  215. package/dist/types/permissionless/bindings/router/routing-manager.d.ts +502 -0
  216. package/dist/types/permissionless/bindings/treasury-splitter.d.ts +21 -0
  217. package/dist/types/permissionless/bindings/types.d.ts +65 -0
  218. package/dist/types/permissionless/chains/archive-transport.d.ts +49 -0
  219. package/dist/types/permissionless/core/auditor.d.ts +7 -0
  220. package/dist/types/permissionless/core/bytecode.d.ts +46 -0
  221. package/dist/types/permissionless/core/index.d.ts +6 -0
  222. package/dist/types/permissionless/core/pricefeed-builder.d.ts +59 -0
  223. package/dist/types/permissionless/core/pricefeed.d.ts +10 -0
  224. package/dist/types/permissionless/core/proposal.d.ts +33 -0
  225. package/dist/types/permissionless/core/raw-tx.d.ts +4 -0
  226. package/dist/types/permissionless/deployment/addresses.d.ts +7 -0
  227. package/dist/types/permissionless/deployment/mainnet.d.ts +10 -0
  228. package/dist/types/permissionless/index.d.ts +6 -0
  229. package/dist/types/permissionless/plugins/index.d.ts +3 -0
  230. package/dist/types/permissionless/plugins/irm/constructor-params-abi.d.ts +63 -0
  231. package/dist/types/permissionless/plugins/loss-policies/constructor-params-abi.d.ts +48 -0
  232. package/dist/types/permissionless/plugins/rate-keepers/constructor-params-abi.d.ts +55 -0
  233. package/dist/types/permissionless/utils/abi-decoder.d.ts +13 -0
  234. package/dist/types/permissionless/utils/abi-encoder.d.ts +7 -0
  235. package/dist/types/permissionless/utils/block-utils.d.ts +8 -0
  236. package/dist/types/permissionless/utils/create2.d.ts +17 -0
  237. package/dist/types/permissionless/utils/format.d.ts +7 -0
  238. package/dist/types/permissionless/utils/governance/batch.d.ts +17 -0
  239. package/dist/types/permissionless/utils/governance/index.d.ts +3 -0
  240. package/dist/types/permissionless/utils/governance/timelock-txs.d.ts +2 -0
  241. package/dist/types/permissionless/utils/governance/types.d.ts +16 -0
  242. package/dist/types/permissionless/utils/index.d.ts +9 -0
  243. package/dist/types/permissionless/utils/literals.d.ts +7 -0
  244. package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +8 -0
  245. package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +9 -0
  246. package/dist/types/permissionless/utils/price-update/get-prices.d.ts +6 -0
  247. package/dist/types/permissionless/utils/price-update/get-updatable-feeds.d.ts +8 -0
  248. package/dist/types/permissionless/utils/price-update/index.d.ts +4 -0
  249. package/dist/types/permissionless/utils/signature.d.ts +2 -0
  250. package/dist/types/plugins/adapters/abi/actionAbi.d.ts +1 -1
  251. package/dist/types/plugins/adapters/abi/conctructorAbi.d.ts +1 -1
  252. package/dist/types/plugins/adapters/abi/utils.d.ts +1 -1
  253. package/dist/types/plugins/adapters/index.d.ts +2 -2
  254. package/dist/types/plugins/zappers/extraZappers.d.ts +2 -2
  255. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +1 -2
  256. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +1 -2
  257. package/dist/types/sdk/market/oracle/PriceOracleV300Contract.d.ts +1 -1
  258. package/package.json +6 -6
@@ -0,0 +1,771 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var market_configurator_exports = {};
20
+ __export(market_configurator_exports, {
21
+ MarketConfiguratorContract: () => MarketConfiguratorContract
22
+ });
23
+ module.exports = __toCommonJS(market_configurator_exports);
24
+ var import_viem = require("viem");
25
+ var import_creditSuiteParams = require("../../abi/310/configure/creditSuiteParams.js");
26
+ var import_generated = require("../../abi/310/generated.js");
27
+ var import_utils = require("../../sdk/utils/index.js");
28
+ var import_plugins = require("../plugins/index.js");
29
+ var import_create2 = require("../utils/create2.js");
30
+ var import_utils2 = require("../utils/index.js");
31
+ var import_credit_factory = require("./factory/credit-factory.js");
32
+ var import_pool_factory = require("./factory/pool-factory.js");
33
+ var import_price_oracle_factory = require("./factory/price-oracle-factory.js");
34
+ var import_index = require("./index.js");
35
+ const abi = import_generated.iMarketConfiguratorV310Abi;
36
+ class MarketConfiguratorContract extends import_index.BaseContract {
37
+ creditFactory;
38
+ poolFactory;
39
+ priceOracleFactory;
40
+ constructor(address, client) {
41
+ super(abi, address, client, "MarketConfigurator");
42
+ this.creditFactory = new import_credit_factory.CreditFactory();
43
+ this.poolFactory = new import_pool_factory.PoolFactory();
44
+ this.priceOracleFactory = new import_price_oracle_factory.PriceOracleFactory();
45
+ }
46
+ async getAddressProvider() {
47
+ const addressProvider = await this.contract.read.addressProvider();
48
+ return new import_index.AddressProviderContract(addressProvider, this.client);
49
+ }
50
+ //
51
+ // MARKET CONFIG
52
+ //
53
+ async previewCreateMarket(params) {
54
+ return this.contract.read.previewCreateMarket([
55
+ BigInt(params.minorVersion),
56
+ params.underlying,
57
+ params.name,
58
+ params.symbol
59
+ ]);
60
+ }
61
+ async createMarket(params) {
62
+ const pool = await this.contract.read.previewCreateMarket([
63
+ BigInt(params.minorVersion),
64
+ params.underlying,
65
+ params.name,
66
+ params.symbol
67
+ ]);
68
+ const tx = this.createRawTx({
69
+ functionName: "createMarket",
70
+ args: [
71
+ BigInt(params.minorVersion),
72
+ params.underlying,
73
+ params.name,
74
+ params.symbol,
75
+ params.interestRateModelParams,
76
+ params.rateKeeperParams,
77
+ params.lossPolicyParams,
78
+ params.underlyingPriceFeed
79
+ ]
80
+ });
81
+ return {
82
+ tx,
83
+ pool
84
+ };
85
+ }
86
+ addAsset(pool, args) {
87
+ return this.createRawTx({
88
+ functionName: "addToken",
89
+ args: [pool, args.token, args.priceFeed]
90
+ });
91
+ }
92
+ //
93
+ // PRICE ORACLE CONFIG
94
+ //
95
+ configurePriceOracle(pool, config) {
96
+ return this.createRawTx({
97
+ functionName: "configurePriceOracle",
98
+ args: [pool, config]
99
+ });
100
+ }
101
+ setPriceFeed(pool, params) {
102
+ return this.configurePriceOracle(
103
+ pool,
104
+ this.priceOracleFactory.setPriceFeed(params)
105
+ );
106
+ }
107
+ setReservePriceFeed(pool, params) {
108
+ return this.configurePriceOracle(
109
+ pool,
110
+ this.priceOracleFactory.setReservePriceFeed(params)
111
+ );
112
+ }
113
+ //
114
+ // POOL CONFIG
115
+ //
116
+ configurePool(pool, calldata) {
117
+ return this.createRawTx({
118
+ functionName: "configurePool",
119
+ args: [pool, calldata]
120
+ });
121
+ }
122
+ setTokenLimit(pool, params) {
123
+ return this.configurePool(pool, this.poolFactory.setTokenLimit(params));
124
+ }
125
+ setTokenQuotaIncreaseFee(pool, params) {
126
+ return this.configurePool(
127
+ pool,
128
+ this.poolFactory.setTokenQuotaIncreaseFee(params)
129
+ );
130
+ }
131
+ setTotalDebtLimit(pool, params) {
132
+ return this.configurePool(pool, this.poolFactory.setTotalDebtLimit(params));
133
+ }
134
+ setCreditManagerDebtLimit(pool, args) {
135
+ return this.configurePool(
136
+ pool,
137
+ this.poolFactory.setCreditManagerDebtLimit(args)
138
+ );
139
+ }
140
+ /// INTEREST RATE MODEL CONFIG
141
+ updateInterestRateModel(pool, args) {
142
+ return this.createRawTx({
143
+ functionName: "updateInterestRateModel",
144
+ args: [pool, args.deployParams]
145
+ });
146
+ }
147
+ //
148
+ // CREDIT MANAGER CONFIG
149
+ //
150
+ async createCreditSuite(marketInfo, args) {
151
+ const addressProvider = await this.contract.read.addressProvider();
152
+ const creditSuiteParams = (0, import_viem.encodeAbiParameters)(
153
+ [
154
+ {
155
+ type: "tuple",
156
+ components: [
157
+ { type: "uint8", name: "maxEnabledTokens" },
158
+ { type: "uint16", name: "feeInterest" },
159
+ { type: "uint16", name: "feeLiquidation" },
160
+ { type: "uint16", name: "liquidationPremium" },
161
+ { type: "uint16", name: "feeLiquidationExpired" },
162
+ { type: "uint16", name: "liquidationPremiumExpired" },
163
+ { type: "uint128", name: "minDebt" },
164
+ { type: "uint128", name: "maxDebt" },
165
+ { type: "string", name: "name" },
166
+ {
167
+ type: "tuple",
168
+ name: "accountFactoryParams",
169
+ components: [
170
+ {
171
+ type: "bytes32",
172
+ name: "postfix"
173
+ },
174
+ {
175
+ type: "bytes32",
176
+ name: "salt"
177
+ },
178
+ {
179
+ type: "bytes",
180
+ name: "constructorParams"
181
+ }
182
+ ]
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ type: "tuple",
188
+ name: "creditFacadeParams",
189
+ components: [
190
+ { type: "address", name: "degenNFT" },
191
+ { type: "bool", name: "isExpirable" },
192
+ { type: "bool", name: "migrateBotList" }
193
+ ]
194
+ }
195
+ ],
196
+ [
197
+ {
198
+ maxEnabledTokens: args.params.maxEnabledTokens,
199
+ feeInterest: (0, import_utils2.convertPercent)(args.params.feeInterest),
200
+ feeLiquidation: (0, import_utils2.convertPercent)(args.params.feeLiquidation),
201
+ liquidationPremium: (0, import_utils2.convertPercent)(args.params.feeLiquidationPremium),
202
+ feeLiquidationExpired: (0, import_utils2.convertPercent)(
203
+ args.params.feeLiquidationExpired
204
+ ),
205
+ liquidationPremiumExpired: (0, import_utils2.convertPercent)(
206
+ args.params.feeLiquidationPremiumExpired
207
+ ),
208
+ minDebt: args.params.minDebt,
209
+ maxDebt: args.params.maxDebt,
210
+ name: args.params.name,
211
+ accountFactoryParams: {
212
+ postfix: (0, import_viem.stringToHex)(args.params.accountFactoryType, { size: 32 }),
213
+ salt: args.params.accountFactorySalt ? (0, import_create2.handleSalt)(args.params.accountFactorySalt) : (0, import_create2.handleSalt)(
214
+ (0, import_viem.keccak256)((0, import_viem.toBytes)(marketInfo.name + args.params.name))
215
+ ),
216
+ constructorParams: (0, import_viem.encodeAbiParameters)(
217
+ [{ type: "address" }],
218
+ [addressProvider]
219
+ )
220
+ }
221
+ },
222
+ {
223
+ degenNFT: args.params.whitelistPolicy,
224
+ isExpirable: args.params.isExpired,
225
+ migrateBotList: false
226
+ }
227
+ ]
228
+ );
229
+ const creditManagerAddress = await this.contract.read.previewCreateCreditSuite([
230
+ BigInt(marketInfo.minorVersion),
231
+ BigInt(args.params.minorVersion),
232
+ marketInfo.underlyingAsset,
233
+ marketInfo.name,
234
+ marketInfo.symbol,
235
+ creditSuiteParams
236
+ ]);
237
+ const tx = this.createRawTx({
238
+ functionName: "createCreditSuite",
239
+ args: [
240
+ BigInt(args.params.minorVersion),
241
+ marketInfo.pool,
242
+ creditSuiteParams
243
+ ]
244
+ });
245
+ return {
246
+ tx,
247
+ creditManager: creditManagerAddress
248
+ };
249
+ }
250
+ configureCreditManager(creditManager, calldata) {
251
+ return this.createRawTx({
252
+ functionName: "configureCreditSuite",
253
+ args: [creditManager, calldata]
254
+ });
255
+ }
256
+ configureAdapterFor(creditManager, targetContract, data) {
257
+ return this.configureCreditManager(
258
+ creditManager,
259
+ this.creditFactory.configureAdapterFor(targetContract, data)
260
+ );
261
+ }
262
+ addCollateralToken(creditManager, args) {
263
+ return this.configureCreditManager(
264
+ creditManager,
265
+ this.creditFactory.addCollateralToken(args)
266
+ );
267
+ }
268
+ setFees(params) {
269
+ return this.configureCreditManager(
270
+ params.creditManager,
271
+ this.creditFactory.setFees(params)
272
+ );
273
+ }
274
+ rampLiquidationThreshold(creditManager, args) {
275
+ return this.configureCreditManager(
276
+ creditManager,
277
+ this.creditFactory.rampLiquidationThreshold(args)
278
+ );
279
+ }
280
+ forbidToken(params) {
281
+ return this.configureCreditManager(
282
+ params.creditManager,
283
+ this.creditFactory.forbidToken(params.token)
284
+ );
285
+ }
286
+ allowToken(params) {
287
+ return this.configureCreditManager(
288
+ params.creditManager,
289
+ this.creditFactory.allowToken(params.token)
290
+ );
291
+ }
292
+ setExpirationDate(params) {
293
+ return this.configureCreditManager(
294
+ params.creditManager,
295
+ this.creditFactory.setExpirationDate(params)
296
+ );
297
+ }
298
+ pauseCreditManager(params) {
299
+ return this.configureCreditManager(
300
+ params.creditManager,
301
+ this.creditFactory.pause()
302
+ );
303
+ }
304
+ unpauseCreditManager(params) {
305
+ return this.configureCreditManager(
306
+ params.creditManager,
307
+ this.creditFactory.unpause()
308
+ );
309
+ }
310
+ forbidAdapter(params) {
311
+ return this.configureCreditManager(
312
+ params.creditManager,
313
+ this.creditFactory.forbidAdapter(params.target)
314
+ );
315
+ }
316
+ //
317
+ // RATE KEEPER CONFIG
318
+ //
319
+ async updateRateKeeper(pool, args) {
320
+ return this.createRawTx({
321
+ functionName: "updateRateKeeper",
322
+ args: [pool, args.deployParams]
323
+ });
324
+ }
325
+ configureRateKeeper(pool, calldata) {
326
+ return this.createRawTx({
327
+ functionName: "configureRateKeeper",
328
+ args: [pool, calldata]
329
+ });
330
+ }
331
+ //
332
+ // LOSS POLICY CONFIG
333
+ //
334
+ configureLossPolicy(pool, calldata) {
335
+ return this.createRawTx({
336
+ functionName: "configureLossPolicy",
337
+ args: [pool, calldata]
338
+ });
339
+ }
340
+ updateLossPolicy(pool, deployParams) {
341
+ return this.createRawTx({
342
+ functionName: "updateLossPolicy",
343
+ args: [pool, deployParams]
344
+ });
345
+ }
346
+ enableLossPolicy(pool) {
347
+ return this.createRawTx({
348
+ functionName: "configureLossPolicy",
349
+ args: [
350
+ pool,
351
+ (0, import_viem.encodeFunctionData)({
352
+ abi: (0, import_viem.parseAbi)(["function enable() external"]),
353
+ functionName: "enable"
354
+ })
355
+ ]
356
+ });
357
+ }
358
+ disableLossPolicy(pool) {
359
+ return this.createRawTx({
360
+ functionName: "configureLossPolicy",
361
+ args: [
362
+ pool,
363
+ (0, import_viem.encodeFunctionData)({
364
+ abi: (0, import_viem.parseAbi)(["function disable() external"]),
365
+ functionName: "disable"
366
+ })
367
+ ]
368
+ });
369
+ }
370
+ //
371
+ // ROLES
372
+ //
373
+ async treasury() {
374
+ return await this.contract.read.treasury();
375
+ }
376
+ async admins() {
377
+ const [admin, emergencyAdmin, treasury, acl] = await Promise.all([
378
+ this.contract.read.admin(),
379
+ this.contract.read.emergencyAdmin(),
380
+ this.contract.read.treasury(),
381
+ this.contract.read.acl()
382
+ ]);
383
+ const results = await this.client.multicall({
384
+ allowFailure: false,
385
+ contracts: [
386
+ {
387
+ address: acl,
388
+ abi: (0, import_viem.parseAbi)([
389
+ "function getRoleHolders(bytes32) view returns (address[])"
390
+ ]),
391
+ functionName: "getRoleHolders",
392
+ args: [(0, import_viem.stringToHex)("PAUSABLE_ADMIN", { size: 32 })]
393
+ },
394
+ {
395
+ address: acl,
396
+ abi: (0, import_viem.parseAbi)([
397
+ "function getRoleHolders(bytes32) view returns (address[])"
398
+ ]),
399
+ functionName: "getRoleHolders",
400
+ args: [(0, import_viem.stringToHex)("UNPAUSABLE_ADMIN", { size: 32 })]
401
+ }
402
+ ]
403
+ });
404
+ return {
405
+ admin,
406
+ emergencyAdmin,
407
+ treasury,
408
+ pausableAdmins: [...results[0]],
409
+ unpausableAdmins: [...results[1]]
410
+ };
411
+ }
412
+ async multipause() {
413
+ const acl = await this.contract.read.acl();
414
+ const pausableAdmins = await this.client.readContract({
415
+ address: acl,
416
+ abi: (0, import_viem.parseAbi)([
417
+ "function getRoleHolders(bytes32) view returns (address[])"
418
+ ]),
419
+ functionName: "getRoleHolders",
420
+ args: [(0, import_viem.stringToHex)("PAUSABLE_ADMIN", { size: 32 })]
421
+ });
422
+ try {
423
+ const result = await this.client.multicall({
424
+ allowFailure: true,
425
+ contracts: pausableAdmins.map((admin) => ({
426
+ address: admin,
427
+ abi: (0, import_viem.parseAbi)(["function contractType() view returns (bytes32)"]),
428
+ functionName: "contractType"
429
+ }))
430
+ });
431
+ const pause = result.map((r, i) => ({
432
+ ...r,
433
+ address: pausableAdmins[i]
434
+ })).find(({ status, result: result2 }) => {
435
+ try {
436
+ return status === "success" && (0, import_viem.hexToString)(result2, { size: 32 }) === "MULTI_PAUSE";
437
+ } catch {
438
+ return false;
439
+ }
440
+ });
441
+ return pause?.address;
442
+ } catch {
443
+ return void 0;
444
+ }
445
+ }
446
+ grantRole(role, address) {
447
+ return this.createRawTx({
448
+ functionName: "grantRole",
449
+ args: [(0, import_viem.stringToHex)(role, { size: 32 }), address]
450
+ });
451
+ }
452
+ //
453
+ // SYNC
454
+ //
455
+ async syncSetEmergencyAdmin(fromBlock, toBlock) {
456
+ const events = await this.getEvents(
457
+ "SetEmergencyAdmin",
458
+ fromBlock,
459
+ toBlock
460
+ );
461
+ return (events || []).map((event) => ({
462
+ emergencyAdmin: event.args.newEmergencyAdmin,
463
+ atBlock: Number(event.blockNumber)
464
+ })).filter((event) => event.emergencyAdmin !== void 0);
465
+ }
466
+ async syncMarkets({
467
+ fromBlock,
468
+ toBlock
469
+ }) {
470
+ const events = await this.getEvents("CreateMarket", fromBlock, toBlock);
471
+ const _chainId = await this.client.getChainId();
472
+ const markets = [];
473
+ for (const event of events) {
474
+ const pool = event.args.pool;
475
+ const [underlyingAsset, name, symbol] = await Promise.all([
476
+ this.client.readContract({
477
+ address: pool,
478
+ abi: import_viem.erc4626Abi,
479
+ functionName: "asset"
480
+ }),
481
+ this.client.readContract({
482
+ address: pool,
483
+ abi: import_viem.erc20Abi,
484
+ functionName: "name"
485
+ }),
486
+ this.client.readContract({
487
+ address: pool,
488
+ abi: import_viem.erc20Abi,
489
+ functionName: "symbol"
490
+ })
491
+ ]);
492
+ markets.push({
493
+ address: pool,
494
+ underlyingAsset,
495
+ name,
496
+ symbol,
497
+ isDeployed: true
498
+ });
499
+ }
500
+ return markets;
501
+ }
502
+ parseFunctionParams(params) {
503
+ const { functionName, args } = params;
504
+ switch (functionName) {
505
+ case "createMarket": {
506
+ const [
507
+ minorVersion,
508
+ underlying,
509
+ name,
510
+ symbol,
511
+ interestRateModelParams,
512
+ rateKeeperParams,
513
+ lossPolicyParams,
514
+ underlyingPriceFeed
515
+ ] = args;
516
+ const irmParsedPostfix = (0, import_viem.hexToString)(
517
+ interestRateModelParams.postfix
518
+ ).replace(/\0/g, "");
519
+ const irmParsedParams = (0, import_plugins.parseIrmDeployParams)(
520
+ irmParsedPostfix,
521
+ Number(minorVersion),
522
+ interestRateModelParams.constructorParams
523
+ );
524
+ const rateKeeperParsedPostfix = (0, import_viem.hexToString)(
525
+ rateKeeperParams.postfix
526
+ ).replace(/\0/g, "");
527
+ const rateKeeperParsedParams = (0, import_plugins.parseRateKeeperDeployParams)(
528
+ rateKeeperParsedPostfix,
529
+ Number(minorVersion),
530
+ rateKeeperParams.constructorParams
531
+ );
532
+ const lossPolicyParsedPostfix = (0, import_viem.hexToString)(
533
+ lossPolicyParams.postfix
534
+ ).replace(/\0/g, "");
535
+ const lossPolicyParsedParams = (0, import_plugins.parseLossPolicyDeployParams)(
536
+ lossPolicyParsedPostfix,
537
+ Number(minorVersion),
538
+ lossPolicyParams.constructorParams
539
+ );
540
+ return {
541
+ chainId: 0,
542
+ target: this.address,
543
+ label: this.name,
544
+ functionName,
545
+ args: {
546
+ minorVersion: minorVersion.toString(),
547
+ underlying,
548
+ name,
549
+ symbol,
550
+ interestRateModelParams: (0, import_utils.json_stringify)({
551
+ postfix: irmParsedPostfix,
552
+ salt: interestRateModelParams.salt,
553
+ constructorParams: irmParsedParams
554
+ }),
555
+ rateKeeperParams: (0, import_utils.json_stringify)({
556
+ postfix: rateKeeperParsedPostfix,
557
+ salt: rateKeeperParams.salt,
558
+ constructorParams: rateKeeperParsedParams
559
+ }),
560
+ lossPolicyParams: (0, import_utils.json_stringify)({
561
+ postfix: lossPolicyParsedPostfix,
562
+ salt: lossPolicyParams.salt,
563
+ constructorParams: lossPolicyParsedParams
564
+ }),
565
+ underlyingPriceFeed
566
+ }
567
+ };
568
+ }
569
+ case "createCreditSuite": {
570
+ const [minorVersion, pool, creditSuiteParams] = args;
571
+ const decoded = (0, import_viem.decodeAbiParameters)(
572
+ [import_creditSuiteParams.creditManagerParamsAbi, import_creditSuiteParams.creditFacadeParamsAbi],
573
+ creditSuiteParams
574
+ );
575
+ const accountFactoryParams = decoded[0].accountFactoryParams;
576
+ return {
577
+ chainId: 0,
578
+ target: this.address,
579
+ label: this.name,
580
+ functionName,
581
+ args: {
582
+ minorVersion: minorVersion.toString(),
583
+ pool,
584
+ creditSuiteParams: (0, import_utils.json_stringify)({
585
+ ...decoded[0],
586
+ minDebt: decoded[0].minDebt.toString(),
587
+ maxDebt: decoded[0].maxDebt.toString(),
588
+ accountFactoryParams: {
589
+ postfix: (0, import_viem.hexToString)(accountFactoryParams.postfix).replace(
590
+ /\0/g,
591
+ ""
592
+ ),
593
+ salt: accountFactoryParams.salt,
594
+ // TODO: tmp solution, move AccountFactory decoding to plugins
595
+ constructorParams: {
596
+ addressProvider: (0, import_viem.decodeAbiParameters)(
597
+ [{ type: "address" }],
598
+ accountFactoryParams.constructorParams
599
+ )[0]
600
+ }
601
+ }
602
+ })
603
+ }
604
+ };
605
+ }
606
+ case "configurePriceOracle": {
607
+ const [pool, config] = args;
608
+ const decoded = this.priceOracleFactory.decodeConfig(config);
609
+ if (decoded) {
610
+ return {
611
+ chainId: 0,
612
+ target: this.address,
613
+ label: this.name,
614
+ functionName,
615
+ args: {
616
+ pool,
617
+ data: (0, import_utils.json_stringify)(decoded)
618
+ }
619
+ };
620
+ }
621
+ return {
622
+ chainId: 0,
623
+ target: this.address,
624
+ label: this.name,
625
+ functionName,
626
+ args: {
627
+ pool,
628
+ config
629
+ }
630
+ };
631
+ }
632
+ case "configurePool": {
633
+ const [pool, calldata] = args;
634
+ const decoded = this.poolFactory.decodeConfig(calldata);
635
+ if (decoded) {
636
+ return {
637
+ chainId: 0,
638
+ target: this.address,
639
+ label: this.name,
640
+ functionName,
641
+ args: {
642
+ pool,
643
+ data: (0, import_utils.json_stringify)(decoded)
644
+ }
645
+ };
646
+ }
647
+ return {
648
+ chainId: 0,
649
+ target: this.address,
650
+ label: this.name,
651
+ functionName,
652
+ args: {
653
+ pool,
654
+ calldata
655
+ }
656
+ };
657
+ }
658
+ case "configureCreditSuite": {
659
+ const [creditManager, calldata] = args;
660
+ const decoded = this.creditFactory.decodeConfig(calldata);
661
+ if (decoded) {
662
+ return {
663
+ chainId: 0,
664
+ target: this.address,
665
+ label: this.name,
666
+ functionName,
667
+ args: {
668
+ creditManager,
669
+ data: (0, import_utils.json_stringify)(decoded)
670
+ }
671
+ };
672
+ }
673
+ return {
674
+ chainId: 0,
675
+ target: this.address,
676
+ label: this.name,
677
+ functionName,
678
+ args: {
679
+ creditManager,
680
+ calldata
681
+ }
682
+ };
683
+ }
684
+ case "updateInterestRateModel": {
685
+ const [pool, deployParams] = args;
686
+ return {
687
+ chainId: 0,
688
+ target: this.address,
689
+ label: this.name,
690
+ functionName,
691
+ args: {
692
+ pool,
693
+ deployParams: (0, import_utils.json_stringify)(deployParams)
694
+ }
695
+ };
696
+ }
697
+ case "updateRateKeeper": {
698
+ const [pool, deployParams] = args;
699
+ return {
700
+ chainId: 0,
701
+ target: this.address,
702
+ label: this.name,
703
+ functionName,
704
+ args: {
705
+ pool,
706
+ deployParams: (0, import_utils.json_stringify)(deployParams)
707
+ }
708
+ };
709
+ }
710
+ case "updateLossPolicy": {
711
+ const [pool, deployParams] = args;
712
+ return {
713
+ chainId: 0,
714
+ target: this.address,
715
+ label: this.name,
716
+ functionName,
717
+ args: {
718
+ pool,
719
+ deployParams: (0, import_utils.json_stringify)(deployParams)
720
+ }
721
+ };
722
+ }
723
+ case "grantRole": {
724
+ const [role, address] = args;
725
+ return {
726
+ chainId: 0,
727
+ target: this.address,
728
+ label: this.name,
729
+ functionName,
730
+ args: {
731
+ address,
732
+ role: (0, import_viem.hexToString)(role, { size: 32 })
733
+ }
734
+ };
735
+ }
736
+ default:
737
+ return void 0;
738
+ }
739
+ }
740
+ //
741
+ // EMERGENCY CONFIG
742
+ //
743
+ emergencyConfigurePool(pool, calldata) {
744
+ return this.createRawTx({
745
+ functionName: "emergencyConfigurePool",
746
+ args: [pool, calldata]
747
+ });
748
+ }
749
+ emergencyConfigureCreditSuite(creditManager, calldata) {
750
+ return this.createRawTx({
751
+ functionName: "emergencyConfigureCreditSuite",
752
+ args: [creditManager, calldata]
753
+ });
754
+ }
755
+ emergencyConfigurePriceOracle(pool, calldata) {
756
+ return this.createRawTx({
757
+ functionName: "emergencyConfigurePriceOracle",
758
+ args: [pool, calldata]
759
+ });
760
+ }
761
+ emergencyConfigureLossPolicy(pool, calldata) {
762
+ return this.createRawTx({
763
+ functionName: "emergencyConfigureLossPolicy",
764
+ args: [pool, calldata]
765
+ });
766
+ }
767
+ }
768
+ // Annotate the CommonJS export names for ESM import in node:
769
+ 0 && (module.exports = {
770
+ MarketConfiguratorContract
771
+ });