@gearbox-protocol/sdk 9.14.1 → 9.15.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 (231) hide show
  1. package/dist/cjs/permissionless/bindings/address-provider.js +51 -0
  2. package/dist/cjs/permissionless/bindings/base-contract.js +173 -0
  3. package/dist/cjs/permissionless/bindings/bytecode-repository.js +526 -0
  4. package/dist/cjs/permissionless/bindings/compressors/index.js +24 -0
  5. package/dist/cjs/permissionless/bindings/compressors/token-compressor.js +110 -0
  6. package/dist/cjs/permissionless/bindings/compressors/withdrawal-compressor.js +60 -0
  7. package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +355 -0
  8. package/dist/cjs/permissionless/bindings/factory/abstract-factory.js +52 -0
  9. package/dist/cjs/permissionless/bindings/factory/credit-factory.js +197 -0
  10. package/dist/cjs/permissionless/bindings/factory/pool-factory.js +69 -0
  11. package/dist/cjs/permissionless/bindings/factory/price-oracle-factory.js +47 -0
  12. package/dist/cjs/permissionless/bindings/governance/batches-chain.js +41 -0
  13. package/dist/cjs/permissionless/bindings/governance/governor.js +243 -0
  14. package/dist/cjs/permissionless/bindings/governance/index.js +26 -0
  15. package/dist/cjs/permissionless/bindings/governance/timelock.js +104 -0
  16. package/dist/cjs/permissionless/bindings/governance/types.js +16 -0
  17. package/dist/cjs/permissionless/bindings/index.js +48 -0
  18. package/dist/cjs/permissionless/bindings/instance-manager.js +244 -0
  19. package/dist/cjs/permissionless/bindings/market-configurator-factory.js +75 -0
  20. package/dist/cjs/permissionless/bindings/market-configurator.js +771 -0
  21. package/dist/cjs/permissionless/bindings/price-feed-store.js +395 -0
  22. package/dist/cjs/permissionless/bindings/pricefeeds/balancer-stable.js +63 -0
  23. package/dist/cjs/permissionless/bindings/pricefeeds/balancer-weighted.js +63 -0
  24. package/dist/cjs/permissionless/bindings/pricefeeds/bounded.js +47 -0
  25. package/dist/cjs/permissionless/bindings/pricefeeds/composite.js +43 -0
  26. package/dist/cjs/permissionless/bindings/pricefeeds/constant.js +42 -0
  27. package/dist/cjs/permissionless/bindings/pricefeeds/curve-crypto.js +67 -0
  28. package/dist/cjs/permissionless/bindings/pricefeeds/curve-stable.js +67 -0
  29. package/dist/cjs/permissionless/bindings/pricefeeds/curve-twap.js +70 -0
  30. package/dist/cjs/permissionless/bindings/pricefeeds/curve-usd.js +50 -0
  31. package/dist/cjs/permissionless/bindings/pricefeeds/erc4626.js +72 -0
  32. package/dist/cjs/permissionless/bindings/pricefeeds/external.js +38 -0
  33. package/dist/cjs/permissionless/bindings/pricefeeds/index.js +63 -0
  34. package/dist/cjs/permissionless/bindings/pricefeeds/kodiak.js +50 -0
  35. package/dist/cjs/permissionless/bindings/pricefeeds/mellow-lrt.js +122 -0
  36. package/dist/cjs/permissionless/bindings/pricefeeds/pendle-pt-twap.js +51 -0
  37. package/dist/cjs/permissionless/bindings/pricefeeds/pyth.js +65 -0
  38. package/dist/cjs/permissionless/bindings/pricefeeds/redstone.js +81 -0
  39. package/dist/cjs/permissionless/bindings/pricefeeds/wsteth.js +63 -0
  40. package/dist/cjs/permissionless/bindings/pricefeeds/zero.js +33 -0
  41. package/dist/cjs/permissionless/bindings/router/index.js +22 -0
  42. package/dist/cjs/permissionless/bindings/router/routing-manager.js +58 -0
  43. package/dist/cjs/permissionless/bindings/treasury-splitter.js +60 -0
  44. package/dist/cjs/permissionless/bindings/types.js +16 -0
  45. package/dist/cjs/permissionless/chains/archive-transport.js +274 -0
  46. package/dist/cjs/permissionless/core/auditor.js +16 -0
  47. package/dist/cjs/permissionless/core/bytecode.js +16 -0
  48. package/dist/cjs/permissionless/core/index.js +32 -0
  49. package/dist/cjs/permissionless/core/pricefeed-builder.js +16 -0
  50. package/dist/cjs/permissionless/core/pricefeed.js +16 -0
  51. package/dist/cjs/permissionless/core/proposal.js +16 -0
  52. package/dist/cjs/permissionless/core/raw-tx.js +38 -0
  53. package/dist/cjs/permissionless/deployment/addresses.js +35 -0
  54. package/dist/cjs/permissionless/deployment/mainnet.js +54 -0
  55. package/dist/cjs/permissionless/index.js +32 -0
  56. package/dist/cjs/permissionless/package.json +1 -0
  57. package/dist/cjs/permissionless/plugins/index.js +40 -0
  58. package/dist/cjs/permissionless/plugins/irm/constructor-params-abi.js +81 -0
  59. package/dist/cjs/permissionless/plugins/loss-policies/constructor-params-abi.js +79 -0
  60. package/dist/cjs/permissionless/plugins/rate-keepers/constructor-params-abi.js +89 -0
  61. package/dist/cjs/permissionless/utils/abi-decoder.js +72 -0
  62. package/dist/cjs/permissionless/utils/abi-encoder.js +89 -0
  63. package/dist/cjs/permissionless/utils/block-utils.js +55 -0
  64. package/dist/cjs/permissionless/utils/create2.js +113 -0
  65. package/dist/cjs/permissionless/utils/format.js +97 -0
  66. package/dist/cjs/permissionless/utils/governance/batch.js +114 -0
  67. package/dist/cjs/permissionless/utils/governance/index.js +26 -0
  68. package/dist/cjs/permissionless/utils/governance/timelock-txs.js +44 -0
  69. package/dist/cjs/permissionless/utils/governance/types.js +16 -0
  70. package/dist/cjs/permissionless/utils/index.js +38 -0
  71. package/dist/cjs/permissionless/utils/literals.js +46 -0
  72. package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +91 -0
  73. package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +84 -0
  74. package/dist/cjs/permissionless/utils/price-update/get-prices.js +123 -0
  75. package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +52 -0
  76. package/dist/cjs/permissionless/utils/price-update/index.js +28 -0
  77. package/dist/cjs/permissionless/utils/signature.js +35 -0
  78. package/dist/esm/permissionless/bindings/address-provider.js +27 -0
  79. package/dist/esm/permissionless/bindings/base-contract.js +151 -0
  80. package/dist/esm/permissionless/bindings/bytecode-repository.js +508 -0
  81. package/dist/esm/permissionless/bindings/compressors/index.js +2 -0
  82. package/dist/esm/permissionless/bindings/compressors/token-compressor.js +89 -0
  83. package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +38 -0
  84. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +336 -0
  85. package/dist/esm/permissionless/bindings/factory/abstract-factory.js +28 -0
  86. package/dist/esm/permissionless/bindings/factory/credit-factory.js +177 -0
  87. package/dist/esm/permissionless/bindings/factory/pool-factory.js +45 -0
  88. package/dist/esm/permissionless/bindings/factory/price-oracle-factory.js +23 -0
  89. package/dist/esm/permissionless/bindings/governance/batches-chain.js +17 -0
  90. package/dist/esm/permissionless/bindings/governance/governor.js +224 -0
  91. package/dist/esm/permissionless/bindings/governance/index.js +3 -0
  92. package/dist/esm/permissionless/bindings/governance/timelock.js +80 -0
  93. package/dist/esm/permissionless/bindings/governance/types.js +0 -0
  94. package/dist/esm/permissionless/bindings/index.js +14 -0
  95. package/dist/esm/permissionless/bindings/instance-manager.js +223 -0
  96. package/dist/esm/permissionless/bindings/market-configurator-factory.js +51 -0
  97. package/dist/esm/permissionless/bindings/market-configurator.js +765 -0
  98. package/dist/esm/permissionless/bindings/price-feed-store.js +376 -0
  99. package/dist/esm/permissionless/bindings/pricefeeds/balancer-stable.js +39 -0
  100. package/dist/esm/permissionless/bindings/pricefeeds/balancer-weighted.js +39 -0
  101. package/dist/esm/permissionless/bindings/pricefeeds/bounded.js +23 -0
  102. package/dist/esm/permissionless/bindings/pricefeeds/composite.js +19 -0
  103. package/dist/esm/permissionless/bindings/pricefeeds/constant.js +18 -0
  104. package/dist/esm/permissionless/bindings/pricefeeds/curve-crypto.js +43 -0
  105. package/dist/esm/permissionless/bindings/pricefeeds/curve-stable.js +43 -0
  106. package/dist/esm/permissionless/bindings/pricefeeds/curve-twap.js +46 -0
  107. package/dist/esm/permissionless/bindings/pricefeeds/curve-usd.js +26 -0
  108. package/dist/esm/permissionless/bindings/pricefeeds/erc4626.js +48 -0
  109. package/dist/esm/permissionless/bindings/pricefeeds/external.js +14 -0
  110. package/dist/esm/permissionless/bindings/pricefeeds/index.js +39 -0
  111. package/dist/esm/permissionless/bindings/pricefeeds/kodiak.js +26 -0
  112. package/dist/esm/permissionless/bindings/pricefeeds/mellow-lrt.js +98 -0
  113. package/dist/esm/permissionless/bindings/pricefeeds/pendle-pt-twap.js +27 -0
  114. package/dist/esm/permissionless/bindings/pricefeeds/pyth.js +41 -0
  115. package/dist/esm/permissionless/bindings/pricefeeds/redstone.js +57 -0
  116. package/dist/esm/permissionless/bindings/pricefeeds/wsteth.js +39 -0
  117. package/dist/esm/permissionless/bindings/pricefeeds/zero.js +9 -0
  118. package/dist/esm/permissionless/bindings/router/index.js +1 -0
  119. package/dist/esm/permissionless/bindings/router/routing-manager.js +36 -0
  120. package/dist/esm/permissionless/bindings/treasury-splitter.js +36 -0
  121. package/dist/esm/permissionless/bindings/types.js +0 -0
  122. package/dist/esm/permissionless/chains/archive-transport.js +250 -0
  123. package/dist/esm/permissionless/core/auditor.js +0 -0
  124. package/dist/esm/permissionless/core/bytecode.js +0 -0
  125. package/dist/esm/permissionless/core/index.js +6 -0
  126. package/dist/esm/permissionless/core/pricefeed-builder.js +0 -0
  127. package/dist/esm/permissionless/core/pricefeed.js +0 -0
  128. package/dist/esm/permissionless/core/proposal.js +0 -0
  129. package/dist/esm/permissionless/core/raw-tx.js +14 -0
  130. package/dist/esm/permissionless/deployment/addresses.js +11 -0
  131. package/dist/esm/permissionless/deployment/mainnet.js +27 -0
  132. package/dist/esm/permissionless/index.js +6 -0
  133. package/dist/esm/permissionless/package.json +1 -0
  134. package/dist/esm/permissionless/plugins/index.js +20 -0
  135. package/dist/esm/permissionless/plugins/irm/constructor-params-abi.js +52 -0
  136. package/dist/esm/permissionless/plugins/loss-policies/constructor-params-abi.js +50 -0
  137. package/dist/esm/permissionless/plugins/rate-keepers/constructor-params-abi.js +59 -0
  138. package/dist/esm/permissionless/utils/abi-decoder.js +50 -0
  139. package/dist/esm/permissionless/utils/abi-encoder.js +65 -0
  140. package/dist/esm/permissionless/utils/block-utils.js +31 -0
  141. package/dist/esm/permissionless/utils/create2.js +85 -0
  142. package/dist/esm/permissionless/utils/format.js +67 -0
  143. package/dist/esm/permissionless/utils/governance/batch.js +87 -0
  144. package/dist/esm/permissionless/utils/governance/index.js +3 -0
  145. package/dist/esm/permissionless/utils/governance/timelock-txs.js +20 -0
  146. package/dist/esm/permissionless/utils/governance/types.js +0 -0
  147. package/dist/esm/permissionless/utils/index.js +9 -0
  148. package/dist/esm/permissionless/utils/literals.js +16 -0
  149. package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +65 -0
  150. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +65 -0
  151. package/dist/esm/permissionless/utils/price-update/get-prices.js +103 -0
  152. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +31 -0
  153. package/dist/esm/permissionless/utils/price-update/index.js +4 -0
  154. package/dist/esm/permissionless/utils/signature.js +11 -0
  155. package/dist/types/permissionless/bindings/address-provider.d.ts +259 -0
  156. package/dist/types/permissionless/bindings/base-contract.d.ts +23 -0
  157. package/dist/types/permissionless/bindings/bytecode-repository.d.ts +1352 -0
  158. package/dist/types/permissionless/bindings/compressors/index.d.ts +2 -0
  159. package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +118 -0
  160. package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +331 -0
  161. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +835 -0
  162. package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +17 -0
  163. package/dist/types/permissionless/bindings/factory/credit-factory.d.ts +224 -0
  164. package/dist/types/permissionless/bindings/factory/pool-factory.d.ts +86 -0
  165. package/dist/types/permissionless/bindings/factory/price-oracle-factory.d.ts +38 -0
  166. package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +39 -0
  167. package/dist/types/permissionless/bindings/governance/governor.d.ts +615 -0
  168. package/dist/types/permissionless/bindings/governance/index.d.ts +3 -0
  169. package/dist/types/permissionless/bindings/governance/timelock.d.ts +10 -0
  170. package/dist/types/permissionless/bindings/governance/types.d.ts +42 -0
  171. package/dist/types/permissionless/bindings/index.d.ts +14 -0
  172. package/dist/types/permissionless/bindings/instance-manager.d.ts +361 -0
  173. package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +244 -0
  174. package/dist/types/permissionless/bindings/market-configurator.d.ts +1656 -0
  175. package/dist/types/permissionless/bindings/price-feed-store.d.ts +605 -0
  176. package/dist/types/permissionless/bindings/pricefeeds/balancer-stable.d.ts +2 -0
  177. package/dist/types/permissionless/bindings/pricefeeds/balancer-weighted.d.ts +2 -0
  178. package/dist/types/permissionless/bindings/pricefeeds/bounded.d.ts +2 -0
  179. package/dist/types/permissionless/bindings/pricefeeds/composite.d.ts +2 -0
  180. package/dist/types/permissionless/bindings/pricefeeds/constant.d.ts +2 -0
  181. package/dist/types/permissionless/bindings/pricefeeds/curve-crypto.d.ts +2 -0
  182. package/dist/types/permissionless/bindings/pricefeeds/curve-stable.d.ts +2 -0
  183. package/dist/types/permissionless/bindings/pricefeeds/curve-twap.d.ts +2 -0
  184. package/dist/types/permissionless/bindings/pricefeeds/curve-usd.d.ts +2 -0
  185. package/dist/types/permissionless/bindings/pricefeeds/erc4626.d.ts +2 -0
  186. package/dist/types/permissionless/bindings/pricefeeds/external.d.ts +2 -0
  187. package/dist/types/permissionless/bindings/pricefeeds/index.d.ts +2 -0
  188. package/dist/types/permissionless/bindings/pricefeeds/kodiak.d.ts +2 -0
  189. package/dist/types/permissionless/bindings/pricefeeds/mellow-lrt.d.ts +2 -0
  190. package/dist/types/permissionless/bindings/pricefeeds/pendle-pt-twap.d.ts +2 -0
  191. package/dist/types/permissionless/bindings/pricefeeds/pyth.d.ts +2 -0
  192. package/dist/types/permissionless/bindings/pricefeeds/redstone.d.ts +2 -0
  193. package/dist/types/permissionless/bindings/pricefeeds/wsteth.d.ts +2 -0
  194. package/dist/types/permissionless/bindings/pricefeeds/zero.d.ts +2 -0
  195. package/dist/types/permissionless/bindings/router/index.d.ts +1 -0
  196. package/dist/types/permissionless/bindings/router/routing-manager.d.ts +502 -0
  197. package/dist/types/permissionless/bindings/treasury-splitter.d.ts +21 -0
  198. package/dist/types/permissionless/bindings/types.d.ts +65 -0
  199. package/dist/types/permissionless/chains/archive-transport.d.ts +49 -0
  200. package/dist/types/permissionless/core/auditor.d.ts +7 -0
  201. package/dist/types/permissionless/core/bytecode.d.ts +46 -0
  202. package/dist/types/permissionless/core/index.d.ts +6 -0
  203. package/dist/types/permissionless/core/pricefeed-builder.d.ts +59 -0
  204. package/dist/types/permissionless/core/pricefeed.d.ts +10 -0
  205. package/dist/types/permissionless/core/proposal.d.ts +33 -0
  206. package/dist/types/permissionless/core/raw-tx.d.ts +4 -0
  207. package/dist/types/permissionless/deployment/addresses.d.ts +7 -0
  208. package/dist/types/permissionless/deployment/mainnet.d.ts +10 -0
  209. package/dist/types/permissionless/index.d.ts +6 -0
  210. package/dist/types/permissionless/plugins/index.d.ts +3 -0
  211. package/dist/types/permissionless/plugins/irm/constructor-params-abi.d.ts +63 -0
  212. package/dist/types/permissionless/plugins/loss-policies/constructor-params-abi.d.ts +48 -0
  213. package/dist/types/permissionless/plugins/rate-keepers/constructor-params-abi.d.ts +55 -0
  214. package/dist/types/permissionless/utils/abi-decoder.d.ts +13 -0
  215. package/dist/types/permissionless/utils/abi-encoder.d.ts +7 -0
  216. package/dist/types/permissionless/utils/block-utils.d.ts +8 -0
  217. package/dist/types/permissionless/utils/create2.d.ts +17 -0
  218. package/dist/types/permissionless/utils/format.d.ts +7 -0
  219. package/dist/types/permissionless/utils/governance/batch.d.ts +17 -0
  220. package/dist/types/permissionless/utils/governance/index.d.ts +3 -0
  221. package/dist/types/permissionless/utils/governance/timelock-txs.d.ts +2 -0
  222. package/dist/types/permissionless/utils/governance/types.d.ts +16 -0
  223. package/dist/types/permissionless/utils/index.d.ts +9 -0
  224. package/dist/types/permissionless/utils/literals.d.ts +7 -0
  225. package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +8 -0
  226. package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +9 -0
  227. package/dist/types/permissionless/utils/price-update/get-prices.d.ts +6 -0
  228. package/dist/types/permissionless/utils/price-update/get-updatable-feeds.d.ts +8 -0
  229. package/dist/types/permissionless/utils/price-update/index.d.ts +4 -0
  230. package/dist/types/permissionless/utils/signature.d.ts +2 -0
  231. package/package.json +11 -1
@@ -0,0 +1,60 @@
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 withdrawal_compressor_exports = {};
20
+ __export(withdrawal_compressor_exports, {
21
+ WithdrawalCompressorContract: () => WithdrawalCompressorContract
22
+ });
23
+ module.exports = __toCommonJS(withdrawal_compressor_exports);
24
+ var import_viem = require("viem");
25
+ var import_withdrawalCompressor = require("../../../abi/compressors/withdrawalCompressor.js");
26
+ var import_base_contract = require("../base-contract");
27
+ const abi = import_withdrawalCompressor.withdrawalCompressorAbi;
28
+ class WithdrawalCompressorContract extends import_base_contract.BaseContract {
29
+ constructor(address, client) {
30
+ super(abi, address, client, "RoutingManager");
31
+ }
32
+ parseFunctionParams(params) {
33
+ const { functionName, args } = params;
34
+ switch (functionName) {
35
+ case "setWithdrawableTypeToCompressorType": {
36
+ const [withdrawableType, compressorType] = args;
37
+ return {
38
+ chainId: 0,
39
+ target: this.address,
40
+ label: this.name,
41
+ functionName,
42
+ args: {
43
+ withdrawableType: (0, import_viem.hexToString)(withdrawableType, {
44
+ size: 32
45
+ }),
46
+ compressorType: (0, import_viem.hexToString)(compressorType, {
47
+ size: 32
48
+ })
49
+ }
50
+ };
51
+ }
52
+ default:
53
+ return void 0;
54
+ }
55
+ }
56
+ }
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ WithdrawalCompressorContract
60
+ });
@@ -0,0 +1,355 @@
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 cross_chain_multisig_exports = {};
20
+ __export(cross_chain_multisig_exports, {
21
+ CrossChainMultisigContract: () => CrossChainMultisigContract
22
+ });
23
+ module.exports = __toCommonJS(cross_chain_multisig_exports);
24
+ var import_viem = require("viem");
25
+ var import_crossChainMultisig = require("../../abi/310/crossChainMultisig.js");
26
+ var import_utils = require("../../sdk/utils/index.js");
27
+ var import_addresses = require("../deployment/addresses");
28
+ var import_utils2 = require("../utils");
29
+ var import_literals = require("../utils/literals");
30
+ var import_base_contract = require("./base-contract");
31
+ var import_instance_manager = require("./instance-manager");
32
+ var import_market_configurator_factory = require("./market-configurator-factory");
33
+ const abi = import_crossChainMultisig.crossChainMultisigAbi;
34
+ class CrossChainMultisigContract extends import_base_contract.BaseContract {
35
+ constructor(address, client) {
36
+ super(abi, address, client, "CrossChainMultisig");
37
+ }
38
+ async getExecutedBatches(fromBlock, toBlock) {
39
+ const events = await this.getEvents("ExecuteBatch", fromBlock, toBlock);
40
+ const batches = await Promise.all(
41
+ events.map(async (event) => {
42
+ return this.getBatchData({
43
+ proposalHash: event.args.batchHash,
44
+ blockNumber: Number(event.blockNumber),
45
+ transactionHash: event.transactionHash
46
+ });
47
+ })
48
+ );
49
+ return batches;
50
+ }
51
+ async getCurrentBatches() {
52
+ const hashes = await this.contract.read.getCurrentBatchHashes();
53
+ return await Promise.all(
54
+ hashes.map(async (hash) => this.getBatchData({ proposalHash: hash }))
55
+ );
56
+ }
57
+ async getBatchData(args) {
58
+ const { proposalHash, blockNumber, transactionHash, timestamp } = args;
59
+ const proposal = await this.contract.read.getBatch([args.proposalHash]);
60
+ const signatures = [];
61
+ for (const sig of proposal.signatures) {
62
+ const recoveredSigner = await (0, import_viem.recoverTypedDataAddress)({
63
+ ...this.computeEIP712digest(
64
+ proposal.name,
65
+ proposalHash,
66
+ proposal.prevHash
67
+ ),
68
+ signature: sig
69
+ });
70
+ signatures.push({
71
+ signer: recoveredSigner,
72
+ signature: sig
73
+ });
74
+ }
75
+ const calls = proposal.calls.map((c) => ({
76
+ chainId: Number(c.chainId),
77
+ target: c.target,
78
+ callData: c.callData
79
+ }));
80
+ return {
81
+ ...proposal,
82
+ calls,
83
+ timestamp,
84
+ transactionHash,
85
+ blockNumber,
86
+ hash: proposalHash,
87
+ parsedCalls: calls.map((c) => import_base_contract.BaseContract.parseCall(c)),
88
+ signatures
89
+ };
90
+ }
91
+ computeEIP712digest(name, batchHash, prevHash) {
92
+ return {
93
+ domain: {
94
+ name: import_literals.CROSS_CHAIN_MULTISIG,
95
+ version: "310",
96
+ chainId: 1,
97
+ verifyingContract: this.address
98
+ },
99
+ types: {
100
+ CompactBatch: [
101
+ { name: "name", type: "string" },
102
+ { name: "batchHash", type: "bytes32" },
103
+ { name: "prevHash", type: "bytes32" }
104
+ ]
105
+ },
106
+ primaryType: "CompactBatch",
107
+ message: {
108
+ name,
109
+ batchHash,
110
+ prevHash
111
+ }
112
+ };
113
+ }
114
+ computeRecoveryDigest(chainId, startingBatchHash) {
115
+ return {
116
+ domain: {
117
+ name: import_literals.CROSS_CHAIN_MULTISIG,
118
+ version: "310",
119
+ chainId: 1,
120
+ verifyingContract: this.address
121
+ },
122
+ types: {
123
+ RecoveryMode: [
124
+ { name: "chainId", type: "uint256" },
125
+ { name: "startingBatchHash", type: "bytes32" }
126
+ ]
127
+ },
128
+ primaryType: "RecoveryMode",
129
+ message: {
130
+ chainId: BigInt(chainId),
131
+ startingBatchHash
132
+ }
133
+ };
134
+ }
135
+ // signCompactBatchTypeData(name: string, batchHash: Hex, prevHash: Hex) {
136
+ // const typedData = this.computeEIP712digest(name, batchHash, prevHash);
137
+ // return {
138
+ // domain: typedData.domain,
139
+ // types: typedData.types,
140
+ // primaryType: typedData.primaryType,
141
+ // message: typedData.message,
142
+ // };
143
+ // }
144
+ async signBatch(batchHash, signature, sponsor) {
145
+ const normalizedSignature = (0, import_utils2.normalizeSignature)(signature);
146
+ const hash = await this.contract.write.signBatch(
147
+ [batchHash, normalizedSignature],
148
+ {
149
+ account: sponsor.account,
150
+ chain: sponsor.chain
151
+ }
152
+ );
153
+ return hash;
154
+ }
155
+ async enableRecovery(recovery, sponsor) {
156
+ const signatures = recovery.signatures.map(
157
+ (s) => (0, import_utils2.normalizeSignature)(s.signature)
158
+ );
159
+ return await this.contract.write.enableRecoveryMode(
160
+ [
161
+ {
162
+ chainId: BigInt(recovery.chainId),
163
+ startingBatchHash: recovery.startingBatchHash,
164
+ signatures
165
+ }
166
+ ],
167
+ {
168
+ account: sponsor.account,
169
+ chain: sponsor.chain
170
+ }
171
+ );
172
+ }
173
+ async getConfirmationThreshold() {
174
+ return await this.contract.read.confirmationThreshold();
175
+ }
176
+ async getSigners() {
177
+ return [...await this.contract.read.getSigners()];
178
+ }
179
+ decodeFunctionData(target, calldata) {
180
+ switch (target.toLowerCase()) {
181
+ case this.address.toLowerCase(): {
182
+ return this.parseFunctionData(calldata);
183
+ }
184
+ case import_addresses.Addresses.INSTANCE_MANAGER.toLowerCase(): {
185
+ const instanceManager = new import_instance_manager.InstanceManagerContract(
186
+ target,
187
+ this.client
188
+ );
189
+ return instanceManager.parseFunctionData(calldata);
190
+ }
191
+ default: {
192
+ try {
193
+ let parsedData;
194
+ const marketConfiguratorFactory = new import_market_configurator_factory.MarketConfiguratorFactoryContract(target, this.client);
195
+ parsedData = marketConfiguratorFactory.parseFunctionData(calldata);
196
+ if (!parsedData.functionName.startsWith("Unknown function")) {
197
+ return parsedData;
198
+ }
199
+ } catch {
200
+ return void 0;
201
+ }
202
+ }
203
+ }
204
+ }
205
+ parseFunctionParams(params) {
206
+ switch (params.functionName) {
207
+ case "addSigner": {
208
+ const [signer] = params.args;
209
+ return this.wrapParseCall(params, {
210
+ signer
211
+ });
212
+ }
213
+ case "removeSigner": {
214
+ const [signer] = params.args;
215
+ return this.wrapParseCall(params, {
216
+ signer
217
+ });
218
+ }
219
+ case "setConfirmationThreshold": {
220
+ const [threshold] = params.args;
221
+ return this.wrapParseCall(params, {
222
+ threshold: threshold.toString()
223
+ });
224
+ }
225
+ case "submitBatch": {
226
+ const [name, calls, prevHash] = params.args;
227
+ return this.wrapParseCall(params, {
228
+ name,
229
+ calls: (0, import_utils.json_stringify)(
230
+ calls.map(({ chainId, target, callData }) => ({
231
+ ...this.decodeFunctionData(target, callData),
232
+ chainId: Number(chainId),
233
+ target
234
+ }))
235
+ ),
236
+ prevHash
237
+ });
238
+ }
239
+ default:
240
+ return void 0;
241
+ }
242
+ }
243
+ async validateProposalSignature(proposalHash, signature) {
244
+ const normalizedSignature = (0, import_utils2.normalizeSignature)(signature);
245
+ const proposal = await this.getBatchData({ proposalHash });
246
+ const currentPrevHash = await this.contract.read.lastBatchHash();
247
+ if (proposal.prevHash !== currentPrevHash) {
248
+ return { success: false, error: "Proposal is not the latest" };
249
+ }
250
+ const signer = await this.getSignerFromSignature(
251
+ proposal.name,
252
+ proposalHash,
253
+ proposal.prevHash,
254
+ normalizedSignature
255
+ );
256
+ console.log("signer", signer);
257
+ const signers = await this.getSigners();
258
+ if (!signers.map((s) => s.toLowerCase()).includes(signer.toLowerCase())) {
259
+ return { success: false, error: "Signer is not a valid signer" };
260
+ }
261
+ const threshold = await this.getConfirmationThreshold();
262
+ if (proposal.signatures.length >= threshold) {
263
+ return { success: false, error: "Proposal has enough signatures" };
264
+ }
265
+ return { success: true };
266
+ }
267
+ async getSignerFromSignature(proposalName, proposalHash, prevHash, signature) {
268
+ return await (0, import_viem.recoverTypedDataAddress)({
269
+ ...this.computeEIP712digest(proposalName, proposalHash, prevHash),
270
+ signature
271
+ });
272
+ }
273
+ async executeProposal(signedProposal, sponsor) {
274
+ return await this.contract.write.executeBatch([signedProposal], {
275
+ account: sponsor.account,
276
+ chain: sponsor.chain
277
+ });
278
+ }
279
+ wrapSubmitBatch(args) {
280
+ const { proposal, prevHash } = args;
281
+ return this.createRawTx({
282
+ functionName: "submitBatch",
283
+ args: [proposal.name, proposal.calls, prevHash],
284
+ description: `CrossChainMultisig.submitBatch(${proposal.name})`
285
+ });
286
+ }
287
+ executeProposalTx(signedProposal) {
288
+ return this.createRawTx({
289
+ functionName: "executeBatch",
290
+ args: [signedProposal]
291
+ });
292
+ }
293
+ async submitBatch(proposal, sponsor) {
294
+ const prevHash = await this.getLastBatchHash();
295
+ return await this.contract.write.submitBatch(
296
+ [proposal.name, proposal.calls, prevHash],
297
+ {
298
+ account: sponsor.account,
299
+ chain: sponsor.chain
300
+ }
301
+ );
302
+ }
303
+ async getLastBatchHash() {
304
+ return await this.contract.read.lastBatchHash();
305
+ }
306
+ async computeBatchHash(args) {
307
+ const { proposal, prevHash } = args;
308
+ return await this.contract.read.computeBatchHash([
309
+ proposal.name,
310
+ proposal.calls,
311
+ prevHash
312
+ ]);
313
+ }
314
+ async getConstructorParams() {
315
+ const latestBlock = await this.client.getBlockNumber();
316
+ const result = await this.getEvents(
317
+ "SetConfirmationThreshold",
318
+ 0n,
319
+ latestBlock
320
+ );
321
+ const event = result[0];
322
+ const threshold = event.args.newConfirmationThreshold;
323
+ const receipt = await this.client.getTransactionReceipt({
324
+ hash: event.transactionHash
325
+ });
326
+ const signers = [];
327
+ let dao = import_viem.zeroAddress;
328
+ (0, import_viem.parseEventLogs)({
329
+ abi: (0, import_viem.parseAbi)([
330
+ "event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)",
331
+ "event AddSigner(address indexed signer)"
332
+ ]),
333
+ logs: receipt.logs
334
+ }).forEach((p) => {
335
+ if (p.eventName === "AddSigner") {
336
+ signers.push(p.args.signer);
337
+ }
338
+ if (p.eventName === "OwnershipTransferred") {
339
+ dao = p.args.newOwner;
340
+ }
341
+ });
342
+ console.log("signers", signers);
343
+ console.log("threshold", threshold);
344
+ console.log("dao", dao);
345
+ return {
346
+ signers,
347
+ threshold,
348
+ dao
349
+ };
350
+ }
351
+ }
352
+ // Annotate the CommonJS export names for ESM import in node:
353
+ 0 && (module.exports = {
354
+ CrossChainMultisigContract
355
+ });
@@ -0,0 +1,52 @@
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 abstract_factory_exports = {};
20
+ __export(abstract_factory_exports, {
21
+ AbstractFactory: () => AbstractFactory
22
+ });
23
+ module.exports = __toCommonJS(abstract_factory_exports);
24
+ var import_raw_tx = require("../../core/raw-tx");
25
+ var import_abi_decoder = require("../../utils/abi-decoder");
26
+ class AbstractFactory {
27
+ abi;
28
+ constructor(abi) {
29
+ this.abi = abi;
30
+ }
31
+ createCallData(parameters) {
32
+ const callData = (0, import_raw_tx.createCallData)(this.abi, parameters);
33
+ return callData;
34
+ }
35
+ /**
36
+ * Decodes configuration calldata using the ABI
37
+ * @param calldata - The encoded function call data
38
+ * @returns Decoded function name and arguments, or null if decoding fails
39
+ */
40
+ decodeConfig(calldata) {
41
+ const decoded = (0, import_abi_decoder.decodeFunctionWithNamedArgs)(this.abi, calldata);
42
+ if (!decoded) return null;
43
+ return {
44
+ functionName: decoded.functionName,
45
+ args: decoded.args
46
+ };
47
+ }
48
+ }
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ AbstractFactory
52
+ });
@@ -0,0 +1,197 @@
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 credit_factory_exports = {};
20
+ __export(credit_factory_exports, {
21
+ CreditFactory: () => CreditFactory
22
+ });
23
+ module.exports = __toCommonJS(credit_factory_exports);
24
+ var import_viem = require("viem");
25
+ var import_iCreditConfigureActions = require("../../../abi/310/configure/iCreditConfigureActions.js");
26
+ var import_adapters = require("../../../plugins/adapters/index.js");
27
+ var import_abstract_factory = require("./abstract-factory");
28
+ const abi = import_iCreditConfigureActions.iCreditConfigureActionsAbi;
29
+ class CreditFactory extends import_abstract_factory.AbstractFactory {
30
+ constructor() {
31
+ super(abi);
32
+ }
33
+ pause() {
34
+ return this.createCallData({
35
+ functionName: "pause"
36
+ });
37
+ }
38
+ unpause() {
39
+ return this.createCallData({
40
+ functionName: "unpause"
41
+ });
42
+ }
43
+ addCollateralToken(args) {
44
+ return this.createCallData({
45
+ functionName: "addCollateralToken",
46
+ args: [args.token, args.liquidationThreshold]
47
+ });
48
+ }
49
+ allowAdapter(deployParams) {
50
+ return this.createCallData({
51
+ functionName: "allowAdapter",
52
+ args: [deployParams]
53
+ });
54
+ }
55
+ allowToken(token) {
56
+ return this.createCallData({
57
+ functionName: "allowToken",
58
+ args: [token]
59
+ });
60
+ }
61
+ forbidToken(token) {
62
+ return this.createCallData({
63
+ functionName: "forbidToken",
64
+ args: [token]
65
+ });
66
+ }
67
+ configureAdapterFor(targetContract, data) {
68
+ return this.createCallData({
69
+ functionName: "configureAdapterFor",
70
+ args: [targetContract, data]
71
+ });
72
+ }
73
+ forbidAdapter(adapter) {
74
+ return this.createCallData({
75
+ functionName: "forbidAdapter",
76
+ args: [adapter]
77
+ });
78
+ }
79
+ rampLiquidationThreshold(args) {
80
+ return this.createCallData({
81
+ functionName: "rampLiquidationThreshold",
82
+ args: [
83
+ args.token,
84
+ args.liquidationThresholdFinal,
85
+ args.rampStart,
86
+ args.rampDuration
87
+ ]
88
+ });
89
+ }
90
+ setExpirationDate(params) {
91
+ return this.createCallData({
92
+ functionName: "setExpirationDate",
93
+ args: [params.expirationDate]
94
+ });
95
+ }
96
+ setFees(params) {
97
+ return this.createCallData({
98
+ functionName: "setFees",
99
+ args: [
100
+ params.params.feeLiquidation,
101
+ params.params.feeLiquidationPremium,
102
+ params.params.feeLiquidationExpired,
103
+ params.params.feeLiquidationPremiumExpired
104
+ ]
105
+ });
106
+ }
107
+ setMaxDebtPerBlockMultiplier(newMaxDebtLimitPerBlockMultiplier) {
108
+ return this.createCallData({
109
+ functionName: "setMaxDebtPerBlockMultiplier",
110
+ args: [newMaxDebtLimitPerBlockMultiplier]
111
+ });
112
+ }
113
+ upgradeCreditConfigurator() {
114
+ return this.createCallData({
115
+ functionName: "upgradeCreditConfigurator"
116
+ });
117
+ }
118
+ upgradeCreditFacade(params) {
119
+ return this.createCallData({
120
+ functionName: "upgradeCreditFacade",
121
+ args: [params]
122
+ });
123
+ }
124
+ decodeConfig(calldata) {
125
+ function getMaxVerBelowN(adapterPostfix, n) {
126
+ const keys = Object.keys(
127
+ import_adapters.adapterConstructorAbi[adapterPostfix]
128
+ ).map(Number).filter((k) => k < n);
129
+ if (keys.length === 0) return void 0;
130
+ return Math.max(...keys);
131
+ }
132
+ function parseAdapterParams(adapterPostfix, version, data) {
133
+ if (version < 310) return null;
134
+ try {
135
+ return (0, import_adapters.parseAdapterDeployParams)(adapterPostfix, version, data);
136
+ } catch {
137
+ const v = getMaxVerBelowN(adapterPostfix, version);
138
+ if (v) return parseAdapterParams(adapterPostfix, v, data);
139
+ else return null;
140
+ }
141
+ }
142
+ try {
143
+ const decoded = (0, import_viem.decodeFunctionData)({
144
+ abi: this.abi,
145
+ data: calldata
146
+ });
147
+ if (decoded.functionName === "allowAdapter") {
148
+ const deployParams = decoded.args[0];
149
+ const adapterType = (0, import_viem.hexToString)(deployParams.postfix, {
150
+ size: 32
151
+ });
152
+ const latest = Math.max(
153
+ ...Object.keys(import_adapters.adapterConstructorAbi[adapterType]).map(
154
+ Number
155
+ )
156
+ );
157
+ const constructorArgs = parseAdapterParams(
158
+ adapterType,
159
+ latest,
160
+ deployParams.constructorParams
161
+ );
162
+ if (!constructorArgs) {
163
+ return super.decodeConfig(calldata);
164
+ }
165
+ return {
166
+ functionName: "allowAdapter",
167
+ args: {
168
+ adapterType,
169
+ salt: deployParams.salt,
170
+ constructorArgs: JSON.stringify(constructorArgs)
171
+ }
172
+ };
173
+ }
174
+ if (decoded.functionName === "configureAdapterFor") {
175
+ const [targetContract, data] = decoded.args;
176
+ const adapterAction = (0, import_adapters.parseAdapterAction)(data);
177
+ if (!adapterAction) {
178
+ return super.decodeConfig(calldata);
179
+ }
180
+ return {
181
+ functionName: "configureAdapterFor",
182
+ args: {
183
+ targetContract,
184
+ adapterAction: JSON.stringify(adapterAction)
185
+ }
186
+ };
187
+ }
188
+ return super.decodeConfig(calldata);
189
+ } catch {
190
+ return null;
191
+ }
192
+ }
193
+ }
194
+ // Annotate the CommonJS export names for ESM import in node:
195
+ 0 && (module.exports = {
196
+ CreditFactory
197
+ });