@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,395 @@
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 price_feed_store_exports = {};
20
+ __export(price_feed_store_exports, {
21
+ PriceFeedStoreContract: () => PriceFeedStoreContract
22
+ });
23
+ module.exports = __toCommonJS(price_feed_store_exports);
24
+ var import_viem = require("viem");
25
+ var import_iPriceFeedStore = require("../../abi/310/iPriceFeedStore.js");
26
+ var import_utils = require("../../sdk/utils/index.js");
27
+ var import_utils2 = require("../utils/index.js");
28
+ var import_base_contract = require("./base-contract.js");
29
+ var import_pricefeeds = require("./pricefeeds/index.js");
30
+ const abi = import_iPriceFeedStore.iPriceFeedStoreAbi;
31
+ class PriceFeedStoreContract extends import_base_contract.BaseContract {
32
+ chainId;
33
+ constructor(address, client, chainId = 1) {
34
+ super(abi, address, client, "PriceFeedStore");
35
+ this.chainId = chainId;
36
+ }
37
+ async getZeroPriceFeed() {
38
+ const result = await this.contract.read.zeroPriceFeed();
39
+ return result;
40
+ }
41
+ async getAllowedPriceFeeds(fromBlock, toBlock) {
42
+ const events = await this.getEvents("AllowPriceFeed", fromBlock, toBlock);
43
+ return events.map((e) => ({
44
+ token: e.args.token,
45
+ priceFeed: e.args.priceFeed
46
+ }));
47
+ }
48
+ async getTokenPriceFeedsMap() {
49
+ const tokenPriceFeedsMap = await this.contract.read.getTokenPriceFeedsMap();
50
+ return tokenPriceFeedsMap;
51
+ }
52
+ async getAddPriceFeedEvents(fromBlock, toBlock) {
53
+ const events = await this.getEvents("AddPriceFeed", fromBlock, toBlock);
54
+ const result = [];
55
+ for (const e of events) {
56
+ result.push({
57
+ priceFeed: e.args.priceFeed,
58
+ stalenessPeriod: Number(e.args.stalenessPeriod)
59
+ });
60
+ }
61
+ return result;
62
+ }
63
+ async getNewPriceFeeds(fromBlock, toBlock) {
64
+ const events = await this.getAddPriceFeedEvents(fromBlock, toBlock);
65
+ const priceFeedInfo = await Promise.all(
66
+ events.map((event) => this.contract.read.priceFeedInfo([event.priceFeed]))
67
+ );
68
+ return priceFeedInfo.map((info, index) => ({
69
+ address: events[index].priceFeed,
70
+ contractType: (0, import_viem.hexToString)(info.priceFeedType, { size: 32 }),
71
+ version: Number(info.version),
72
+ deployedBy: this.address,
73
+ stalenessPeriod: info.stalenessPeriod,
74
+ name: info.name,
75
+ isInStore: true,
76
+ parameters: {}
77
+ }));
78
+ }
79
+ async getStalenessPeriodUpdates(fromBlock, toBlock) {
80
+ const events = await this.getEvents(
81
+ "SetStalenessPeriod",
82
+ fromBlock,
83
+ toBlock
84
+ );
85
+ return events.map((e) => ({
86
+ priceFeed: e.args.priceFeed,
87
+ stalenessPeriod: Number(e.args.stalenessPeriod)
88
+ }));
89
+ }
90
+ async getOwner() {
91
+ const result = await this.contract.read.owner();
92
+ return result;
93
+ }
94
+ async getPriceFeeds(token) {
95
+ const result = await this.contract.read.getPriceFeeds([token]);
96
+ return result;
97
+ }
98
+ async getStalenessPeriod(priceFeed) {
99
+ const result = await this.contract.read.getStalenessPeriod([priceFeed]);
100
+ return result;
101
+ }
102
+ async isAllowedPriceFeed(token, priceFeed) {
103
+ const result = await this.contract.read.isAllowedPriceFeed([
104
+ token,
105
+ priceFeed
106
+ ]);
107
+ return result;
108
+ }
109
+ computeEIP712ExternalPriceFeedDigest(priceFeed, name, stalenessPeriod, chainId) {
110
+ return {
111
+ domain: this.getEIP712Domain(chainId),
112
+ types: {
113
+ ExternalPriceFeed: [
114
+ { name: "priceFeed", type: "address" },
115
+ { name: "name", type: "string" },
116
+ { name: "stalenessPeriod", type: "uint256" }
117
+ ]
118
+ },
119
+ primaryType: "ExternalPriceFeed",
120
+ message: {
121
+ priceFeed: priceFeed.toLowerCase(),
122
+ name,
123
+ stalenessPeriod: BigInt(stalenessPeriod)
124
+ }
125
+ };
126
+ }
127
+ getEIP712Domain(chainId) {
128
+ return {
129
+ name: import_utils2.PRICE_FEED_STORE,
130
+ version: "310",
131
+ chainId: chainId ?? this.chainId,
132
+ verifyingContract: this.address
133
+ };
134
+ }
135
+ async recoverExternalPriceFeedSigner(priceFeed, name, stalenessPeriod, signature, chainId) {
136
+ const digest = this.computeEIP712ExternalPriceFeedDigest(
137
+ priceFeed,
138
+ name,
139
+ stalenessPeriod,
140
+ chainId
141
+ );
142
+ return await (0, import_viem.recoverTypedDataAddress)({
143
+ ...digest,
144
+ signature
145
+ });
146
+ }
147
+ async getKnownTokens() {
148
+ const result = await this.contract.read.getKnownTokens();
149
+ return result;
150
+ }
151
+ async getKnownPriceFeeds() {
152
+ const result = await this.contract.read.getKnownPriceFeeds();
153
+ return result;
154
+ }
155
+ async isKnownPriceFeed(priceFeed) {
156
+ const result = await this.contract.read.isKnownPriceFeed([priceFeed]);
157
+ return result;
158
+ }
159
+ async encodeConstructorParams(contractType, version, data) {
160
+ const types = [];
161
+ const values = [];
162
+ let flattenedAddresses = [];
163
+ let flattenedPeriods = [];
164
+ const params = import_pricefeeds.priceFeedSetupParams.find(
165
+ (p) => p.contractType === contractType && p.version === version
166
+ )?.constructorParams;
167
+ if (!params) {
168
+ throw new Error("Params not found");
169
+ }
170
+ for (let i = 0; i < params.length; i++) {
171
+ const param = params[i];
172
+ if (param.type.type === "pricefeedParamsFlattened") {
173
+ const p = data[param.label];
174
+ flattenedAddresses.push(p.address);
175
+ flattenedPeriods.push(BigInt(p.stalenessPeriod));
176
+ if (i + 1 < params.length && params[i + 1].type.type === "pricefeedParamsFlattened") {
177
+ continue;
178
+ }
179
+ if (flattenedAddresses.length > 0) {
180
+ for (const addr of flattenedAddresses) {
181
+ types.push({ type: "address" });
182
+ values.push(addr);
183
+ }
184
+ for (const period of flattenedPeriods) {
185
+ types.push({ type: "uint32" });
186
+ values.push(period);
187
+ }
188
+ flattenedAddresses = [];
189
+ flattenedPeriods = [];
190
+ }
191
+ continue;
192
+ }
193
+ switch (param.type.type) {
194
+ case "address":
195
+ case "bytes32":
196
+ case "string":
197
+ types.push({ type: param.type.type });
198
+ values.push(data[param.label]);
199
+ break;
200
+ case "uint256":
201
+ case "int256":
202
+ case "uint32":
203
+ types.push({ type: param.type.type });
204
+ values.push(BigInt(data[param.label]));
205
+ break;
206
+ case "uint8":
207
+ types.push({ type: param.type.type });
208
+ values.push(Number(data[param.label]));
209
+ break;
210
+ case "bool":
211
+ types.push({ type: param.type.type });
212
+ values.push(data[param.label]);
213
+ break;
214
+ case "owner":
215
+ types.push({ type: "address" });
216
+ values.push(this.address);
217
+ break;
218
+ case "pricefeedParamsFixed":
219
+ case "pricefeedParamsVariable": {
220
+ const structType = param.type.type === "pricefeedParamsFixed" ? `tuple[${param.type.qty}]` : `tuple[]`;
221
+ const structData = Array.from(
222
+ {
223
+ length: param.type.qty
224
+ },
225
+ (_, i2) => {
226
+ const key = `${param.label}-${i2}`;
227
+ const priceFeedParams = data[key];
228
+ if (!priceFeedParams) {
229
+ if (param.type.type === "pricefeedParamsFixed") {
230
+ throw new Error(`${key} not found`);
231
+ } else {
232
+ return void 0;
233
+ }
234
+ }
235
+ return [
236
+ priceFeedParams.address,
237
+ BigInt(priceFeedParams.stalenessPeriod)
238
+ ];
239
+ }
240
+ ).filter((d) => !!d);
241
+ types.push({
242
+ type: structType,
243
+ components: [{ type: "address" }, { type: "uint256" }]
244
+ });
245
+ values.push(structData);
246
+ break;
247
+ }
248
+ case "addressArrayFixed": {
249
+ const arrayData = Array.from(
250
+ {
251
+ length: param.type.qty
252
+ },
253
+ (_, i2) => {
254
+ const key = `${param.label}-${i2}`;
255
+ const address = data[key];
256
+ if (!address) {
257
+ throw new Error(`${key} not found`);
258
+ }
259
+ return address;
260
+ }
261
+ ).filter((d) => !!d);
262
+ types.push({
263
+ type: `address[${param.type.qty}]`
264
+ });
265
+ values.push(arrayData);
266
+ break;
267
+ }
268
+ case "lowerbound": {
269
+ const lowerbound = await param.type.getter(data, this.client);
270
+ types.push({ type: "uint256" });
271
+ values.push(lowerbound * 99n / 100n);
272
+ break;
273
+ }
274
+ }
275
+ }
276
+ return (0, import_viem.encodeAbiParameters)(types, values);
277
+ }
278
+ updatePricesTx(updates) {
279
+ return this.createRawTx({
280
+ functionName: "updatePrices",
281
+ args: [updates]
282
+ });
283
+ }
284
+ addPriceFeedTx(priceFeed, stalenessPeriod, name) {
285
+ return this.createRawTx({
286
+ functionName: "addPriceFeed",
287
+ args: [priceFeed, stalenessPeriod, name]
288
+ });
289
+ }
290
+ removePriceFeedTx(priceFeed) {
291
+ return this.createRawTx({
292
+ functionName: "removePriceFeed",
293
+ args: [priceFeed]
294
+ });
295
+ }
296
+ allowPriceFeedTx(token, priceFeed) {
297
+ return this.createRawTx({
298
+ functionName: "allowPriceFeed",
299
+ args: [token, priceFeed]
300
+ });
301
+ }
302
+ setStalenessPeriodTx(priceFeed, stalenessPeriod) {
303
+ return this.createRawTx({
304
+ functionName: "setStalenessPeriod",
305
+ args: [priceFeed, stalenessPeriod]
306
+ });
307
+ }
308
+ updatePrices(updates) {
309
+ return this.createRawTx({
310
+ functionName: "updatePrices",
311
+ args: [updates]
312
+ });
313
+ }
314
+ configurePriceFeeds(priceFeeds) {
315
+ return this.createRawTx({
316
+ functionName: "configurePriceFeeds",
317
+ args: [priceFeeds]
318
+ });
319
+ }
320
+ async getPriceFeedsInfo(priceFeeds) {
321
+ if (priceFeeds.length === 0) {
322
+ return [];
323
+ }
324
+ const multicallCalls = priceFeeds.map((priceFeed) => ({
325
+ address: this.address,
326
+ abi: this.abi,
327
+ functionName: "priceFeedInfo",
328
+ args: [priceFeed]
329
+ }));
330
+ const results = await this.client.multicall({
331
+ contracts: multicallCalls
332
+ });
333
+ return results.map((result, index) => {
334
+ if (result.status === "failure") {
335
+ throw new Error(
336
+ `Failed to get price feed info for ${priceFeeds[index]}: ${result.error}`
337
+ );
338
+ }
339
+ const info = result.result;
340
+ return {
341
+ address: priceFeeds[index],
342
+ contractType: (0, import_viem.hexToString)(info.priceFeedType, { size: 32 }),
343
+ version: Number(info.version),
344
+ deployedBy: this.address,
345
+ stalenessPeriod: Number(info.stalenessPeriod),
346
+ name: info.name,
347
+ isInStore: true,
348
+ parameters: {}
349
+ };
350
+ });
351
+ }
352
+ parseFunctionParams(params) {
353
+ switch (params.functionName) {
354
+ case "configurePriceFeeds": {
355
+ const [priceFeedCalls] = params.args;
356
+ const calls = [];
357
+ for (const priceFeedCall of priceFeedCalls) {
358
+ const selector = priceFeedCall.callData.slice(0, 10).toLowerCase();
359
+ if (selector === "0xbc489a65") {
360
+ calls.push({
361
+ target: priceFeedCall.target,
362
+ functionName: "setLimiter",
363
+ args: {
364
+ lowerBound: (0, import_viem.formatUnits)(
365
+ BigInt(`0x${priceFeedCall.callData.slice(10)}`),
366
+ 18
367
+ // TODO: use decimals returned by getScale()
368
+ )
369
+ // uint256 formatted with 18 decimals
370
+ }
371
+ });
372
+ } else {
373
+ calls.push({
374
+ target: priceFeedCall.target,
375
+ callData: priceFeedCall.callData
376
+ });
377
+ }
378
+ }
379
+ return {
380
+ chainId: 0,
381
+ target: this.address,
382
+ label: this.name,
383
+ functionName: params.functionName,
384
+ args: { calls: (0, import_utils.json_stringify)(calls) }
385
+ };
386
+ }
387
+ default:
388
+ return void 0;
389
+ }
390
+ }
391
+ }
392
+ // Annotate the CommonJS export names for ESM import in node:
393
+ 0 && (module.exports = {
394
+ PriceFeedStoreContract
395
+ });
@@ -0,0 +1,63 @@
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 balancer_stable_exports = {};
20
+ __export(balancer_stable_exports, {
21
+ balancerStablePriceFeed: () => balancerStablePriceFeed
22
+ });
23
+ module.exports = __toCommonJS(balancer_stable_exports);
24
+ var import_viem = require("viem");
25
+ const balancerStablePriceFeed = {
26
+ contractType: "PRICE_FEED::BALANCER_STABLE",
27
+ version: 310,
28
+ constructorParams: [
29
+ {
30
+ label: "priceStore",
31
+ type: { type: "owner" }
32
+ },
33
+ {
34
+ label: "lowerbound",
35
+ type: {
36
+ type: "lowerbound",
37
+ getter: async (values, publicClient) => {
38
+ const { balancerPool } = values;
39
+ return await publicClient.readContract({
40
+ abi: (0, import_viem.parseAbi)([
41
+ "function getRate() external view returns (uint256)"
42
+ ]),
43
+ address: balancerPool,
44
+ functionName: "getRate"
45
+ });
46
+ }
47
+ }
48
+ },
49
+ {
50
+ label: "balancerPool",
51
+ type: { type: "address" }
52
+ },
53
+ {
54
+ label: "underlyingPriceFeeds",
55
+ type: { type: "pricefeedParamsFixed", qty: 5, minNonZero: 2 }
56
+ }
57
+ ],
58
+ stalenessPeriod: false
59
+ };
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ balancerStablePriceFeed
63
+ });
@@ -0,0 +1,63 @@
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 balancer_weighted_exports = {};
20
+ __export(balancer_weighted_exports, {
21
+ balancerWeightedPriceFeed: () => balancerWeightedPriceFeed
22
+ });
23
+ module.exports = __toCommonJS(balancer_weighted_exports);
24
+ var import_viem = require("viem");
25
+ const balancerWeightedPriceFeed = {
26
+ contractType: "PRICE_FEED::BALANCER_WEIGHTED",
27
+ version: 310,
28
+ constructorParams: [
29
+ {
30
+ label: "priceStore",
31
+ type: { type: "owner" }
32
+ },
33
+ {
34
+ label: "lowerbound",
35
+ type: {
36
+ type: "lowerbound",
37
+ getter: async (values, publicClient) => {
38
+ const { balancerPool } = values;
39
+ return await publicClient.readContract({
40
+ abi: (0, import_viem.parseAbi)([
41
+ "function getRate() external view returns (uint256)"
42
+ ]),
43
+ address: balancerPool,
44
+ functionName: "getRate"
45
+ });
46
+ }
47
+ }
48
+ },
49
+ {
50
+ label: "balancerPool",
51
+ type: { type: "address" }
52
+ },
53
+ {
54
+ label: "underlyingPriceFeeds",
55
+ type: { type: "pricefeedParamsVariable", qty: 8, minNonZero: 2 }
56
+ }
57
+ ],
58
+ stalenessPeriod: false
59
+ };
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ balancerWeightedPriceFeed
63
+ });
@@ -0,0 +1,47 @@
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 bounded_exports = {};
20
+ __export(bounded_exports, {
21
+ boundedPriceFeed: () => boundedPriceFeed
22
+ });
23
+ module.exports = __toCommonJS(bounded_exports);
24
+ const boundedPriceFeed = {
25
+ contractType: "PRICE_FEED::BOUNDED",
26
+ version: 310,
27
+ constructorParams: [
28
+ {
29
+ label: "underlyingPriceFeed",
30
+ type: { type: "pricefeedParamsFlattened" }
31
+ },
32
+ {
33
+ label: "upperBound ($)",
34
+ type: { type: "int256", decimals: 8 }
35
+ },
36
+ {
37
+ label: "descriptionTicker",
38
+ type: { type: "string", maxLen: 32 },
39
+ displayOrder: 1
40
+ }
41
+ ],
42
+ stalenessPeriod: false
43
+ };
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ boundedPriceFeed
47
+ });
@@ -0,0 +1,43 @@
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 composite_exports = {};
20
+ __export(composite_exports, {
21
+ compositePriceFeed: () => compositePriceFeed
22
+ });
23
+ module.exports = __toCommonJS(composite_exports);
24
+ const compositePriceFeed = {
25
+ contractType: "PRICE_FEED::COMPOSITE",
26
+ version: 310,
27
+ constructorParams: [
28
+ {
29
+ label: "underlyingPriceFeed",
30
+ type: { type: "pricefeedParamsFixed", qty: 2 }
31
+ },
32
+ {
33
+ label: "descriptionTicker",
34
+ type: { type: "string", maxLen: 32 },
35
+ displayOrder: 1
36
+ }
37
+ ],
38
+ stalenessPeriod: false
39
+ };
40
+ // Annotate the CommonJS export names for ESM import in node:
41
+ 0 && (module.exports = {
42
+ compositePriceFeed
43
+ });
@@ -0,0 +1,42 @@
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 constant_exports = {};
20
+ __export(constant_exports, {
21
+ constantPriceFeed: () => constantPriceFeed
22
+ });
23
+ module.exports = __toCommonJS(constant_exports);
24
+ const constantPriceFeed = {
25
+ contractType: "PRICE_FEED::CONSTANT",
26
+ version: 310,
27
+ constructorParams: [
28
+ {
29
+ label: "price ($)",
30
+ type: { type: "int256", decimals: 8 }
31
+ },
32
+ {
33
+ label: "descriptionTicker",
34
+ type: { type: "string", maxLen: 32 }
35
+ }
36
+ ],
37
+ stalenessPeriod: false
38
+ };
39
+ // Annotate the CommonJS export names for ESM import in node:
40
+ 0 && (module.exports = {
41
+ constantPriceFeed
42
+ });