@gearbox-protocol/sdk 9.14.0 → 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 (233) 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/cjs/sdk/GearboxSDK.js +5 -1
  79. package/dist/esm/permissionless/bindings/address-provider.js +27 -0
  80. package/dist/esm/permissionless/bindings/base-contract.js +151 -0
  81. package/dist/esm/permissionless/bindings/bytecode-repository.js +508 -0
  82. package/dist/esm/permissionless/bindings/compressors/index.js +2 -0
  83. package/dist/esm/permissionless/bindings/compressors/token-compressor.js +89 -0
  84. package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +38 -0
  85. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +336 -0
  86. package/dist/esm/permissionless/bindings/factory/abstract-factory.js +28 -0
  87. package/dist/esm/permissionless/bindings/factory/credit-factory.js +177 -0
  88. package/dist/esm/permissionless/bindings/factory/pool-factory.js +45 -0
  89. package/dist/esm/permissionless/bindings/factory/price-oracle-factory.js +23 -0
  90. package/dist/esm/permissionless/bindings/governance/batches-chain.js +17 -0
  91. package/dist/esm/permissionless/bindings/governance/governor.js +224 -0
  92. package/dist/esm/permissionless/bindings/governance/index.js +3 -0
  93. package/dist/esm/permissionless/bindings/governance/timelock.js +80 -0
  94. package/dist/esm/permissionless/bindings/governance/types.js +0 -0
  95. package/dist/esm/permissionless/bindings/index.js +14 -0
  96. package/dist/esm/permissionless/bindings/instance-manager.js +223 -0
  97. package/dist/esm/permissionless/bindings/market-configurator-factory.js +51 -0
  98. package/dist/esm/permissionless/bindings/market-configurator.js +765 -0
  99. package/dist/esm/permissionless/bindings/price-feed-store.js +376 -0
  100. package/dist/esm/permissionless/bindings/pricefeeds/balancer-stable.js +39 -0
  101. package/dist/esm/permissionless/bindings/pricefeeds/balancer-weighted.js +39 -0
  102. package/dist/esm/permissionless/bindings/pricefeeds/bounded.js +23 -0
  103. package/dist/esm/permissionless/bindings/pricefeeds/composite.js +19 -0
  104. package/dist/esm/permissionless/bindings/pricefeeds/constant.js +18 -0
  105. package/dist/esm/permissionless/bindings/pricefeeds/curve-crypto.js +43 -0
  106. package/dist/esm/permissionless/bindings/pricefeeds/curve-stable.js +43 -0
  107. package/dist/esm/permissionless/bindings/pricefeeds/curve-twap.js +46 -0
  108. package/dist/esm/permissionless/bindings/pricefeeds/curve-usd.js +26 -0
  109. package/dist/esm/permissionless/bindings/pricefeeds/erc4626.js +48 -0
  110. package/dist/esm/permissionless/bindings/pricefeeds/external.js +14 -0
  111. package/dist/esm/permissionless/bindings/pricefeeds/index.js +39 -0
  112. package/dist/esm/permissionless/bindings/pricefeeds/kodiak.js +26 -0
  113. package/dist/esm/permissionless/bindings/pricefeeds/mellow-lrt.js +98 -0
  114. package/dist/esm/permissionless/bindings/pricefeeds/pendle-pt-twap.js +27 -0
  115. package/dist/esm/permissionless/bindings/pricefeeds/pyth.js +41 -0
  116. package/dist/esm/permissionless/bindings/pricefeeds/redstone.js +57 -0
  117. package/dist/esm/permissionless/bindings/pricefeeds/wsteth.js +39 -0
  118. package/dist/esm/permissionless/bindings/pricefeeds/zero.js +9 -0
  119. package/dist/esm/permissionless/bindings/router/index.js +1 -0
  120. package/dist/esm/permissionless/bindings/router/routing-manager.js +36 -0
  121. package/dist/esm/permissionless/bindings/treasury-splitter.js +36 -0
  122. package/dist/esm/permissionless/bindings/types.js +0 -0
  123. package/dist/esm/permissionless/chains/archive-transport.js +250 -0
  124. package/dist/esm/permissionless/core/auditor.js +0 -0
  125. package/dist/esm/permissionless/core/bytecode.js +0 -0
  126. package/dist/esm/permissionless/core/index.js +6 -0
  127. package/dist/esm/permissionless/core/pricefeed-builder.js +0 -0
  128. package/dist/esm/permissionless/core/pricefeed.js +0 -0
  129. package/dist/esm/permissionless/core/proposal.js +0 -0
  130. package/dist/esm/permissionless/core/raw-tx.js +14 -0
  131. package/dist/esm/permissionless/deployment/addresses.js +11 -0
  132. package/dist/esm/permissionless/deployment/mainnet.js +27 -0
  133. package/dist/esm/permissionless/index.js +6 -0
  134. package/dist/esm/permissionless/package.json +1 -0
  135. package/dist/esm/permissionless/plugins/index.js +20 -0
  136. package/dist/esm/permissionless/plugins/irm/constructor-params-abi.js +52 -0
  137. package/dist/esm/permissionless/plugins/loss-policies/constructor-params-abi.js +50 -0
  138. package/dist/esm/permissionless/plugins/rate-keepers/constructor-params-abi.js +59 -0
  139. package/dist/esm/permissionless/utils/abi-decoder.js +50 -0
  140. package/dist/esm/permissionless/utils/abi-encoder.js +65 -0
  141. package/dist/esm/permissionless/utils/block-utils.js +31 -0
  142. package/dist/esm/permissionless/utils/create2.js +85 -0
  143. package/dist/esm/permissionless/utils/format.js +67 -0
  144. package/dist/esm/permissionless/utils/governance/batch.js +87 -0
  145. package/dist/esm/permissionless/utils/governance/index.js +3 -0
  146. package/dist/esm/permissionless/utils/governance/timelock-txs.js +20 -0
  147. package/dist/esm/permissionless/utils/governance/types.js +0 -0
  148. package/dist/esm/permissionless/utils/index.js +9 -0
  149. package/dist/esm/permissionless/utils/literals.js +16 -0
  150. package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +65 -0
  151. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +65 -0
  152. package/dist/esm/permissionless/utils/price-update/get-prices.js +103 -0
  153. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +31 -0
  154. package/dist/esm/permissionless/utils/price-update/index.js +4 -0
  155. package/dist/esm/permissionless/utils/signature.js +11 -0
  156. package/dist/esm/sdk/GearboxSDK.js +5 -1
  157. package/dist/types/permissionless/bindings/address-provider.d.ts +259 -0
  158. package/dist/types/permissionless/bindings/base-contract.d.ts +23 -0
  159. package/dist/types/permissionless/bindings/bytecode-repository.d.ts +1352 -0
  160. package/dist/types/permissionless/bindings/compressors/index.d.ts +2 -0
  161. package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +118 -0
  162. package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +331 -0
  163. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +835 -0
  164. package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +17 -0
  165. package/dist/types/permissionless/bindings/factory/credit-factory.d.ts +224 -0
  166. package/dist/types/permissionless/bindings/factory/pool-factory.d.ts +86 -0
  167. package/dist/types/permissionless/bindings/factory/price-oracle-factory.d.ts +38 -0
  168. package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +39 -0
  169. package/dist/types/permissionless/bindings/governance/governor.d.ts +615 -0
  170. package/dist/types/permissionless/bindings/governance/index.d.ts +3 -0
  171. package/dist/types/permissionless/bindings/governance/timelock.d.ts +10 -0
  172. package/dist/types/permissionless/bindings/governance/types.d.ts +42 -0
  173. package/dist/types/permissionless/bindings/index.d.ts +14 -0
  174. package/dist/types/permissionless/bindings/instance-manager.d.ts +361 -0
  175. package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +244 -0
  176. package/dist/types/permissionless/bindings/market-configurator.d.ts +1656 -0
  177. package/dist/types/permissionless/bindings/price-feed-store.d.ts +605 -0
  178. package/dist/types/permissionless/bindings/pricefeeds/balancer-stable.d.ts +2 -0
  179. package/dist/types/permissionless/bindings/pricefeeds/balancer-weighted.d.ts +2 -0
  180. package/dist/types/permissionless/bindings/pricefeeds/bounded.d.ts +2 -0
  181. package/dist/types/permissionless/bindings/pricefeeds/composite.d.ts +2 -0
  182. package/dist/types/permissionless/bindings/pricefeeds/constant.d.ts +2 -0
  183. package/dist/types/permissionless/bindings/pricefeeds/curve-crypto.d.ts +2 -0
  184. package/dist/types/permissionless/bindings/pricefeeds/curve-stable.d.ts +2 -0
  185. package/dist/types/permissionless/bindings/pricefeeds/curve-twap.d.ts +2 -0
  186. package/dist/types/permissionless/bindings/pricefeeds/curve-usd.d.ts +2 -0
  187. package/dist/types/permissionless/bindings/pricefeeds/erc4626.d.ts +2 -0
  188. package/dist/types/permissionless/bindings/pricefeeds/external.d.ts +2 -0
  189. package/dist/types/permissionless/bindings/pricefeeds/index.d.ts +2 -0
  190. package/dist/types/permissionless/bindings/pricefeeds/kodiak.d.ts +2 -0
  191. package/dist/types/permissionless/bindings/pricefeeds/mellow-lrt.d.ts +2 -0
  192. package/dist/types/permissionless/bindings/pricefeeds/pendle-pt-twap.d.ts +2 -0
  193. package/dist/types/permissionless/bindings/pricefeeds/pyth.d.ts +2 -0
  194. package/dist/types/permissionless/bindings/pricefeeds/redstone.d.ts +2 -0
  195. package/dist/types/permissionless/bindings/pricefeeds/wsteth.d.ts +2 -0
  196. package/dist/types/permissionless/bindings/pricefeeds/zero.d.ts +2 -0
  197. package/dist/types/permissionless/bindings/router/index.d.ts +1 -0
  198. package/dist/types/permissionless/bindings/router/routing-manager.d.ts +502 -0
  199. package/dist/types/permissionless/bindings/treasury-splitter.d.ts +21 -0
  200. package/dist/types/permissionless/bindings/types.d.ts +65 -0
  201. package/dist/types/permissionless/chains/archive-transport.d.ts +49 -0
  202. package/dist/types/permissionless/core/auditor.d.ts +7 -0
  203. package/dist/types/permissionless/core/bytecode.d.ts +46 -0
  204. package/dist/types/permissionless/core/index.d.ts +6 -0
  205. package/dist/types/permissionless/core/pricefeed-builder.d.ts +59 -0
  206. package/dist/types/permissionless/core/pricefeed.d.ts +10 -0
  207. package/dist/types/permissionless/core/proposal.d.ts +33 -0
  208. package/dist/types/permissionless/core/raw-tx.d.ts +4 -0
  209. package/dist/types/permissionless/deployment/addresses.d.ts +7 -0
  210. package/dist/types/permissionless/deployment/mainnet.d.ts +10 -0
  211. package/dist/types/permissionless/index.d.ts +6 -0
  212. package/dist/types/permissionless/plugins/index.d.ts +3 -0
  213. package/dist/types/permissionless/plugins/irm/constructor-params-abi.d.ts +63 -0
  214. package/dist/types/permissionless/plugins/loss-policies/constructor-params-abi.d.ts +48 -0
  215. package/dist/types/permissionless/plugins/rate-keepers/constructor-params-abi.d.ts +55 -0
  216. package/dist/types/permissionless/utils/abi-decoder.d.ts +13 -0
  217. package/dist/types/permissionless/utils/abi-encoder.d.ts +7 -0
  218. package/dist/types/permissionless/utils/block-utils.d.ts +8 -0
  219. package/dist/types/permissionless/utils/create2.d.ts +17 -0
  220. package/dist/types/permissionless/utils/format.d.ts +7 -0
  221. package/dist/types/permissionless/utils/governance/batch.d.ts +17 -0
  222. package/dist/types/permissionless/utils/governance/index.d.ts +3 -0
  223. package/dist/types/permissionless/utils/governance/timelock-txs.d.ts +2 -0
  224. package/dist/types/permissionless/utils/governance/types.d.ts +16 -0
  225. package/dist/types/permissionless/utils/index.d.ts +9 -0
  226. package/dist/types/permissionless/utils/literals.d.ts +7 -0
  227. package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +8 -0
  228. package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +9 -0
  229. package/dist/types/permissionless/utils/price-update/get-prices.d.ts +6 -0
  230. package/dist/types/permissionless/utils/price-update/get-updatable-feeds.d.ts +8 -0
  231. package/dist/types/permissionless/utils/price-update/index.d.ts +4 -0
  232. package/dist/types/permissionless/utils/signature.d.ts +2 -0
  233. package/package.json +11 -1
@@ -0,0 +1,6 @@
1
+ export * from "./auditor";
2
+ export * from "./bytecode";
3
+ export * from "./pricefeed";
4
+ export * from "./pricefeed-builder";
5
+ export * from "./proposal";
6
+ export * from "./raw-tx";
@@ -0,0 +1,59 @@
1
+ import type { Address, Hex, PublicClient } from "viem";
2
+ export interface PriceFeedParams {
3
+ address: Address;
4
+ stalenessPeriod: number;
5
+ }
6
+ export type InputValueParams = string | number | boolean | string[] | PriceFeedParams[] | PriceFeedParams;
7
+ export type PriceFeedParamType = {
8
+ type: "uint256";
9
+ decimals?: number;
10
+ } | {
11
+ type: "int256";
12
+ decimals?: number;
13
+ } | {
14
+ type: "uint32";
15
+ } | {
16
+ type: "uint8";
17
+ } | {
18
+ type: "bool";
19
+ } | {
20
+ type: "address";
21
+ } | {
22
+ type: "bytes32";
23
+ formatValue?: (value: string) => Hex;
24
+ } | {
25
+ type: "string";
26
+ maxLen?: number;
27
+ } | {
28
+ type: "lowerbound";
29
+ getter: (values: Record<string, InputValueParams>, publicClient: PublicClient) => Promise<bigint>;
30
+ } | {
31
+ type: "owner";
32
+ } | {
33
+ type: "pricefeedParamsFlattened";
34
+ } | {
35
+ type: "pricefeedParamsFixed";
36
+ qty: number;
37
+ minNonZero?: number;
38
+ } | {
39
+ type: "pricefeedParamsVariable";
40
+ qty: number;
41
+ minNonZero?: number;
42
+ } | {
43
+ type: "addressArrayFixed";
44
+ qty: number;
45
+ minNonZero?: number;
46
+ minNonZeroRefLabel?: string;
47
+ };
48
+ export interface PriceFeedConstructorParam {
49
+ label: string;
50
+ type: PriceFeedParamType;
51
+ defaultValue?: InputValueParams;
52
+ displayOrder?: number;
53
+ }
54
+ export interface PriceFeedSetupParams {
55
+ contractType: string;
56
+ version: number;
57
+ constructorParams: PriceFeedConstructorParam[];
58
+ stalenessPeriod: boolean;
59
+ }
@@ -0,0 +1,10 @@
1
+ import type { Address } from "viem";
2
+ export interface PriceFeed {
3
+ address: Address;
4
+ contractType: string;
5
+ version: number;
6
+ deployedBy: Address;
7
+ isInStore: boolean;
8
+ stalenessPeriod: number;
9
+ name: string;
10
+ }
@@ -0,0 +1,33 @@
1
+ import type { Address, Hex } from "viem";
2
+ export interface Signature {
3
+ signer: Address;
4
+ signature: Hex;
5
+ }
6
+ export interface CrossChainCall {
7
+ chainId: number;
8
+ callData: Hex;
9
+ target: Address;
10
+ }
11
+ export interface ParsedCall {
12
+ chainId: number;
13
+ target: Address;
14
+ label: string;
15
+ functionName: string;
16
+ args: Record<string, string>;
17
+ }
18
+ export interface Batch {
19
+ name: string;
20
+ prevHash: Hex;
21
+ calls: CrossChainCall[];
22
+ parsedCalls: ParsedCall[];
23
+ hash: Hex;
24
+ signatures: Signature[];
25
+ timestamp?: number;
26
+ transactionHash?: Hex;
27
+ blockNumber?: number;
28
+ }
29
+ export interface RecoveryMessage {
30
+ chainId: number;
31
+ startingBatchHash: Hex;
32
+ signatures: Signature[];
33
+ }
@@ -0,0 +1,4 @@
1
+ import type { Abi, ContractFunctionName, EncodeFunctionDataParameters, Hex } from "viem";
2
+ export declare function createCallData<abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi> | undefined = undefined>(_abi: abi, parameters: Omit<EncodeFunctionDataParameters<abi, functionName>, "abi"> & {
3
+ description?: string;
4
+ }): Hex;
@@ -0,0 +1,7 @@
1
+ export declare enum Addresses {
2
+ ADDRESS_PROVIDER = "0xF7f0a609BfAb9a0A98786951ef10e5FE26cC1E38",
3
+ ZERO_PRICE_FEED = "0x5dC92eC92cd5423EF95aEbe8Ac96619BCc9ffC88",
4
+ PRICE_FEED_STORE = "0x74A868AC479EE145029bB80827BB77F7B7c441cB",
5
+ IO_PROXY = "0xBcD875f0D62B9AA22481c81975F9AE1753Fc559A",
6
+ INSTANCE_MANAGER = "0x77777777144339Bdc3aCceE992D8d4D31734CB2e"
7
+ }
@@ -0,0 +1,10 @@
1
+ import type { Address } from "viem";
2
+ export interface CCMConstructorParams {
3
+ signers: Address[];
4
+ threshold: number;
5
+ dao: Address;
6
+ }
7
+ export declare const MAINNET_CCM_CONSTRUCTOR_PARAMS: CCMConstructorParams;
8
+ export declare const MAINNET_DEPLOYMENT_CCM_SALT = "0x5e732654dc26892d02b6ae236f4a14577a726514abee949c570d011bcbcbcaac";
9
+ export declare const MAINNET_DEPLOYMENT_IM_SALT = "0x528da0da2d7789d36e2cbb0bd2bebf3f7d136e9c6c4e036fd56f7fd71ec5eb87";
10
+ export declare const MAINNET_DEPLOYMENT_BLOCK = 22358827;
@@ -0,0 +1,6 @@
1
+ export * from "./bindings";
2
+ export * from "./chains/archive-transport";
3
+ export * from "./core";
4
+ export * from "./deployment/addresses";
5
+ export * from "./deployment/mainnet";
6
+ export * from "./utils";
@@ -0,0 +1,3 @@
1
+ export { getIrmDeployParamsAbi, type InterestRateModelType, parseIrmDeployParams, } from "./irm/constructor-params-abi";
2
+ export { getLossPolicyDeployParamsAbi, type LossPolicyType, parseLossPolicyDeployParams, } from "./loss-policies/constructor-params-abi";
3
+ export { getRateKeeperDeployParamsAbi, parseRateKeeperDeployParams, type RateKeeperType, } from "./rate-keepers/constructor-params-abi";
@@ -0,0 +1,63 @@
1
+ import { type Hex } from "viem";
2
+ export type InterestRateModelType = "LINEAR";
3
+ type AbiParameter = {
4
+ type: string;
5
+ name: string;
6
+ components?: readonly AbiParameter[];
7
+ };
8
+ export declare const LINEAR_IRM_ABI: readonly [{
9
+ readonly type: "uint256";
10
+ readonly name: "U_1";
11
+ }, {
12
+ readonly type: "uint256";
13
+ readonly name: "U_2";
14
+ }, {
15
+ readonly type: "uint256";
16
+ readonly name: "R_base";
17
+ }, {
18
+ readonly type: "uint256";
19
+ readonly name: "R_slope1";
20
+ }, {
21
+ readonly type: "uint256";
22
+ readonly name: "R_slope2";
23
+ }, {
24
+ readonly type: "uint256";
25
+ readonly name: "R_slope3";
26
+ }, {
27
+ readonly type: "bool";
28
+ readonly name: "isBorrowingMoreU2Forbidden";
29
+ }];
30
+ type VersionedAbi = Record<string, readonly AbiParameter[]>;
31
+ /**
32
+ * Mapping from IRM type to ABI for decoding deploy params
33
+ * These ABIs correspond to the constructor parameters used in each IRM's getDeployParams method
34
+ * Based on the actual encodeAbiParameters calls in the IRM implementations
35
+ */
36
+ export declare const irmDeployParamsAbiMapping: Record<InterestRateModelType, VersionedAbi>;
37
+ /**
38
+ * Get the ABI for decoding deploy params for a specific IRM type
39
+ * @param irmType The IRM type
40
+ * @param version The version number (defaults to 310)
41
+ * @returns The ABI array for decoding deploy params or null if not found
42
+ */
43
+ export declare function getIrmDeployParamsAbi(irmType: InterestRateModelType, version?: number): readonly AbiParameter[] | null;
44
+ /**
45
+ * Parse IRM deploy parameters from encoded hex data
46
+ * @param irmType The IRM type
47
+ * @param version The version number
48
+ * @param data The encoded hex data
49
+ * @returns Parsed parameters as key-value pairs or null if parsing fails
50
+ */
51
+ export declare function parseIrmDeployParams(irmPostfix: string, version: number, data: Hex): Record<string, string> | null;
52
+ /**
53
+ * Check if an IRM type has a deploy params ABI defined
54
+ * @param irmType The IRM type to check
55
+ * @returns True if the IRM type has an ABI defined
56
+ */
57
+ export declare function hasIrmDeployParamsAbi(irmType: string): irmType is InterestRateModelType;
58
+ /**
59
+ * Get all supported IRM types
60
+ * @returns Array of supported IRM types
61
+ */
62
+ export declare function getSupportedIrmTypes(): InterestRateModelType[];
63
+ export {};
@@ -0,0 +1,48 @@
1
+ import { type Hex } from "viem";
2
+ export type LossPolicyType = "ALIASED";
3
+ type AbiParameter = {
4
+ type: string;
5
+ name: string;
6
+ components?: readonly AbiParameter[];
7
+ };
8
+ export declare const ALIAS_LOSS_POLICY_ABI: readonly [{
9
+ readonly type: "address";
10
+ readonly name: "pool";
11
+ }, {
12
+ readonly type: "address";
13
+ readonly name: "addressProvider";
14
+ }];
15
+ type VersionedAbi = Record<string, readonly AbiParameter[]>;
16
+ /**
17
+ * Mapping from loss policy type to ABI for decoding deploy params
18
+ * These ABIs correspond to the constructor parameters used in each loss policy's getDeployParams method
19
+ * Based on the actual encodeAbiParameters calls in the loss policy implementations
20
+ */
21
+ export declare const lossPolicyDeployParamsAbiMapping: Record<LossPolicyType, VersionedAbi>;
22
+ /**
23
+ * Get the ABI for decoding deploy params for a specific loss policy type
24
+ * @param lossPolicyType The loss policy type
25
+ * @param version The version number (defaults to 310)
26
+ * @returns The ABI array for decoding deploy params or null if not found
27
+ */
28
+ export declare function getLossPolicyDeployParamsAbi(lossPolicyType: LossPolicyType, version?: number): readonly AbiParameter[] | null;
29
+ /**
30
+ * Parse loss policy deploy parameters from encoded hex data
31
+ * @param lossPolicyType The loss policy type
32
+ * @param version The version number
33
+ * @param data The encoded hex data
34
+ * @returns Parsed parameters as key-value pairs or null if parsing fails
35
+ */
36
+ export declare function parseLossPolicyDeployParams(lossPolicyPostfix: string, version: number, data: Hex): Record<string, string> | null;
37
+ /**
38
+ * Check if a loss policy type has a deploy params ABI defined
39
+ * @param lossPolicyType The loss policy type to check
40
+ * @returns True if the loss policy type has an ABI defined
41
+ */
42
+ export declare function hasLossPolicyDeployParamsAbi(lossPolicyType: string): lossPolicyType is LossPolicyType;
43
+ /**
44
+ * Get all supported loss policy types
45
+ * @returns Array of supported loss policy types
46
+ */
47
+ export declare function getSupportedLossPolicyTypes(): LossPolicyType[];
48
+ export {};
@@ -0,0 +1,55 @@
1
+ import { type Hex } from "viem";
2
+ export type RateKeeperType = "TUMBLER" | "GAUGE";
3
+ type AbiParameter = {
4
+ type: string;
5
+ name: string;
6
+ components?: readonly AbiParameter[];
7
+ };
8
+ export declare const TUMBLER_RATE_KEEPER_ABI: readonly [{
9
+ readonly type: "address";
10
+ readonly name: "pool";
11
+ }, {
12
+ readonly type: "uint256";
13
+ readonly name: "epochSeconds";
14
+ }];
15
+ export declare const GAUGE_RATE_KEEPER_ABI: readonly [{
16
+ readonly type: "address";
17
+ readonly name: "pool";
18
+ }, {
19
+ readonly type: "address";
20
+ readonly name: "gearStakingAddress";
21
+ }];
22
+ type VersionedAbi = Record<string, readonly AbiParameter[]>;
23
+ /**
24
+ * Mapping from rate keeper type to ABI for decoding deploy params
25
+ * These ABIs correspond to the constructor parameters used in each rate keeper's getDeployParams method
26
+ * Based on the actual encodeAbiParameters calls in the rate keeper implementations
27
+ */
28
+ export declare const rateKeeperDeployParamsAbiMapping: Record<RateKeeperType, VersionedAbi>;
29
+ /**
30
+ * Get the ABI for decoding deploy params for a specific rate keeper type
31
+ * @param rateKeeperType The rate keeper type
32
+ * @param version The version number (defaults to 310)
33
+ * @returns The ABI array for decoding deploy params or null if not found
34
+ */
35
+ export declare function getRateKeeperDeployParamsAbi(rateKeeperType: RateKeeperType, version?: number): readonly AbiParameter[] | null;
36
+ /**
37
+ * Parse rate keeper deploy parameters from encoded hex data
38
+ * @param rateKeeperType The rate keeper type
39
+ * @param version The version number
40
+ * @param data The encoded hex data
41
+ * @returns Parsed parameters as key-value pairs or null if parsing fails
42
+ */
43
+ export declare function parseRateKeeperDeployParams(rateKeeperPostfix: string, version: number, data: Hex): Record<string, string> | null;
44
+ /**
45
+ * Check if a rate keeper type has a deploy params ABI defined
46
+ * @param rateKeeperType The rate keeper type to check
47
+ * @returns True if the rate keeper type has an ABI defined
48
+ */
49
+ export declare function hasRateKeeperDeployParamsAbi(rateKeeperType: string): rateKeeperType is RateKeeperType;
50
+ /**
51
+ * Get all supported rate keeper types
52
+ * @returns Array of supported rate keeper types
53
+ */
54
+ export declare function getSupportedRateKeeperTypes(): RateKeeperType[];
55
+ export {};
@@ -0,0 +1,13 @@
1
+ import { type Abi, type DecodeFunctionDataReturnType, type Hex } from "viem";
2
+ export interface DecodedFunctionCall<T extends Abi | readonly unknown[] = Abi> {
3
+ functionName: string;
4
+ args: Record<string, string>;
5
+ originalDecoded: DecodeFunctionDataReturnType<T>;
6
+ }
7
+ /**
8
+ * Decodes function calldata and maps arguments to their parameter names from the ABI
9
+ * @param abi - The contract ABI
10
+ * @param calldata - The encoded function call data
11
+ * @returns Decoded function with named arguments and original decoded data, or null if decoding fails
12
+ */
13
+ export declare function decodeFunctionWithNamedArgs<T extends Abi | readonly unknown[]>(abi: T, calldata: Hex): DecodedFunctionCall<T> | null;
@@ -0,0 +1,7 @@
1
+ import { type Address, type Hex } from "viem";
2
+ export type ValueParams = string | Address | Hex | number | bigint | boolean | string[] | Address[] | Hex[] | number[] | bigint[] | boolean[];
3
+ export type FunctionParams = {
4
+ type: string;
5
+ value: ValueParams;
6
+ };
7
+ export declare function encodeFunctionParams(params: FunctionParams[]): Hex;
@@ -0,0 +1,8 @@
1
+ import type { PublicClient } from "viem";
2
+ /**
3
+ * Finds the block number closest to a given timestamp using binary search
4
+ * @param client - The PublicClient instance for blockchain interaction
5
+ * @param targetTimestamp - The timestamp to find the closest block for
6
+ * @returns Promise<number> - The block number closest to the target timestamp
7
+ */
8
+ export declare function getBlockNumberByTimestamp(client: PublicClient, targetTimestamp: number): Promise<number>;
@@ -0,0 +1,17 @@
1
+ import { type Address, type Hex, type PublicClient, type WalletClient } from "viem";
2
+ import type { RawTx } from "../../sdk/types/index.js";
3
+ export declare const PUBLIC_CREATE2_FACTORY: "0x4e59b44847b379578588920ca78fbf26c0b4956c";
4
+ export declare function handleSalt(salt: string | Hex): Hex;
5
+ /**
6
+ * Deploys a contract using the public CREATE2 factory
7
+ * @param sponsor - Wallet client for sending transactions
8
+ * @param bytecode - The contract bytecode to deploy
9
+ * @param salt - Salt for the CREATE2 deployment (will be padded to 32 bytes)
10
+ * @returns Transaction hash of the deployment
11
+ */
12
+ export declare function deployUsingPublicCreate2(sponsor: WalletClient, bytecode: Hex, salt: string | Hex): Promise<Hex>;
13
+ export declare function getCreate2AddressPublicFactory(salt: string | Hex, bytecode: Hex): Promise<Address>;
14
+ export declare function createCreate2DeployRawTx(bytecode: Hex, salt: string | Hex): RawTx;
15
+ export declare function getCreate2DeploymentAddress(bytecode: Hex, salt: string | Hex): Address;
16
+ export declare function checkCreate2Deployment(client: PublicClient, bytecode: Hex, salt: string | Hex): Promise<boolean>;
17
+ export declare function checkCreate2DeploymentAddress(client: PublicClient, bytecode: Hex, salt: string | Hex): Promise<[boolean, Address]>;
@@ -0,0 +1,7 @@
1
+ export declare function formatBytecodeSize(size: number): string;
2
+ export declare function formatBytecodeVersion(version: number): string;
3
+ export declare function formatTimestamp(timestamp: number): string;
4
+ export declare function shortenHash(hash: string, chars?: number): string;
5
+ export declare function convertPercent(percent: number): number;
6
+ export declare function significantTrunc(x: number): string;
7
+ export declare function deepJsonParse(value: unknown): unknown;
@@ -0,0 +1,17 @@
1
+ import { type Address } from "viem";
2
+ import type { RawTx } from "../../../sdk/types/index.js";
3
+ import type { SafeBatch, SafeTx } from "../../bindings";
4
+ export declare function convertRawTxToSafeMultisigTx(tx: RawTx): SafeTx;
5
+ export declare function calculateChecksum(multisigBatch: SafeBatch): string | undefined;
6
+ export declare function getSafeBatch(args: {
7
+ chainId: number;
8
+ safeAddress: Address;
9
+ name: string;
10
+ txs: SafeTx[];
11
+ }): SafeBatch;
12
+ export declare function getSafeBatches(args: {
13
+ chainId: number;
14
+ safeAddress: Address;
15
+ name: string;
16
+ batches: SafeTx[][];
17
+ }): SafeBatch[];
@@ -0,0 +1,3 @@
1
+ export * from "./batch";
2
+ export * from "./timelock-txs";
3
+ export * from "./types";
@@ -0,0 +1,2 @@
1
+ import type { SafeTx } from "../../bindings";
2
+ export declare function convertQueueBatchToExecuteTx(queueBatch: SafeTx[]): SafeTx;
@@ -0,0 +1,16 @@
1
+ import type { Address } from "viem";
2
+ import type { SafeTx } from "../../bindings";
3
+ export interface TimelockTxs {
4
+ chainId: number;
5
+ eta: number;
6
+ author: Address;
7
+ marketConfigurator: Address;
8
+ createdAtBlock: number;
9
+ queueBatches: SafeTx[][];
10
+ }
11
+ export interface InstanceTxs {
12
+ chainId: number;
13
+ author: Address;
14
+ instanceManager: Address;
15
+ batches: SafeTx[][];
16
+ }
@@ -0,0 +1,9 @@
1
+ export * from "./abi-decoder";
2
+ export * from "./abi-encoder";
3
+ export * from "./block-utils";
4
+ export * from "./create2";
5
+ export * from "./format";
6
+ export * from "./governance";
7
+ export * from "./literals";
8
+ export * from "./price-update";
9
+ export * from "./signature";
@@ -0,0 +1,7 @@
1
+ export declare const CROSS_CHAIN_GOVERNANCE = "CROSS_CHAIN_GOVERNANCE";
2
+ export declare const BYTECODE_REPOSITORY = "BYTECODE_REPOSITORY";
3
+ export declare const INSTANCE_MANAGER = "INSTANCE_MANAGER";
4
+ export declare const TOKEN_COMPRESSOR = "GLOBAL::TOKEN_COMPRESSOR";
5
+ export declare const CROSS_CHAIN_MULTISIG = "CROSS_CHAIN_MULTISIG";
6
+ export declare const PRICE_FEED_STORE = "PRICE_FEED_STORE";
7
+ export declare const MARKET_CONFIGURATOR_FACTORY = "MARKET_CONFIGURATOR_FACTORY";
@@ -0,0 +1,8 @@
1
+ import type { Address, PublicClient } from "viem";
2
+ import type { ParsedCall } from "../../core";
3
+ export declare function getCallTouchedPriceFeeds(parsedCall: ParsedCall): Address[];
4
+ export declare function getCallsTouchedPriceFeeds(parsedCalls: ParsedCall[]): Address[];
5
+ export declare function getCallsTouchedUpdatablePriceFeeds({ parsedCalls, client, }: {
6
+ client: PublicClient;
7
+ parsedCalls: ParsedCall[];
8
+ }): Promise<Address[]>;
@@ -0,0 +1,9 @@
1
+ import { type Address, type PublicClient } from "viem";
2
+ import { type IPriceUpdateTx, type RawTx } from "../../../sdk/index.js";
3
+ import { type PriceUpdate } from "../../bindings";
4
+ export declare function getUpdateCalldata(tx: IPriceUpdateTx): PriceUpdate;
5
+ export declare function getPriceUpdateTx({ client, priceFeeds, useMulticall3, }: {
6
+ client: PublicClient;
7
+ priceFeeds: Address[];
8
+ useMulticall3?: boolean;
9
+ }): Promise<RawTx | undefined>;
@@ -0,0 +1,6 @@
1
+ import { type Address, type PublicClient } from "viem";
2
+ export declare function getPrices({ client, priceFeeds, chunkSize, }: {
3
+ client: PublicClient;
4
+ priceFeeds: Address[];
5
+ chunkSize?: number;
6
+ }): Promise<Record<Address, bigint | null>>;
@@ -0,0 +1,8 @@
1
+ import { type Address, type PublicClient } from "viem";
2
+ import { type GearboxSDK, type IPriceFeedContract } from "../../../sdk/index.js";
3
+ export declare function getUpdatablePriceFeeds(args: {
4
+ sdk: GearboxSDK;
5
+ client: PublicClient;
6
+ pfCompressor: Address;
7
+ priceFeeds: Address[];
8
+ }): Promise<IPriceFeedContract[]>;
@@ -0,0 +1,4 @@
1
+ export * from "./get-price-feeds";
2
+ export * from "./get-price-update-tx";
3
+ export * from "./get-prices";
4
+ export * from "./get-updatable-feeds";
@@ -0,0 +1,2 @@
1
+ import type { Hex } from "viem";
2
+ export declare function normalizeSignature(signature: Hex): Hex;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "9.14.0",
3
+ "version": "9.15.0",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "main": "./dist/cjs/sdk/index.js",
@@ -34,6 +34,16 @@
34
34
  "types": "./dist/types/abi/*.d.ts",
35
35
  "import": "./dist/esm/abi/*.js",
36
36
  "default": "./dist/cjs/abi/*.js"
37
+ },
38
+ "./permissionless": {
39
+ "types": "./dist/types/permissionless/index.d.ts",
40
+ "import": "./dist/esm/permissionless/index.js",
41
+ "default": "./dist/cjs/permissionless/index.js"
42
+ },
43
+ "./permissionless/*": {
44
+ "types": "./dist/types/permissionless/*.d.ts",
45
+ "import": "./dist/esm/permissionless/*.js",
46
+ "default": "./dist/cjs/permissionless/*.js"
37
47
  }
38
48
  },
39
49
  "files": [