@gearbox-protocol/sdk 3.0.0-vfourabi.1 → 3.0.0-vfourabi.3

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 (275) hide show
  1. package/.eslintignore +3 -0
  2. package/.github/workflows/lint_pr.yml +18 -0
  3. package/.github/workflows/pr.yml +39 -0
  4. package/.github/workflows/release.yml +47 -0
  5. package/.gitignore +19 -0
  6. package/.husky/commit-msg +1 -0
  7. package/.husky/pre-commit +1 -0
  8. package/.nvmrc +1 -0
  9. package/.releaserc.json +34 -0
  10. package/.vscode/extensions.json +7 -0
  11. package/.vscode/settings.json +16 -0
  12. package/.yarn/install-state.gz +0 -0
  13. package/.yarnrc.yml +1 -0
  14. package/ContributionAgreement +72 -0
  15. package/dist/cjs/abi/iZapper.cjs +85 -0
  16. package/dist/cjs/abi/iZapper.d.ts +123 -0
  17. package/dist/cjs/sdk/index.cjs +19830 -19764
  18. package/dist/cjs/sdk/index.d.ts +3746 -3061
  19. package/dist/esm/abi/iZapper.d.mts +123 -0
  20. package/dist/esm/abi/iZapper.mjs +83 -0
  21. package/dist/esm/sdk/index.d.mts +3746 -3061
  22. package/dist/esm/sdk/index.mjs +19807 -19765
  23. package/jest.config.js +7 -0
  24. package/package.json +32 -2
  25. package/scripts/example.ts +30 -0
  26. package/src/abi/compressors.ts +3962 -0
  27. package/src/abi/errors.ts +196 -0
  28. package/src/abi/iERC20.ts +122 -0
  29. package/src/abi/iPausable.ts +35 -0
  30. package/src/abi/iPriceFeedStore.ts +227 -0
  31. package/src/abi/iUpdatablePriceFeed.ts +16 -0
  32. package/src/abi/iVersion.ts +28 -0
  33. package/src/abi/iZapper.ts +84 -0
  34. package/src/abi/routerV300.ts +378 -0
  35. package/src/abi/v300.ts +4151 -0
  36. package/src/abi/v310.ts +5179 -0
  37. package/src/adapters/AbstractAdapter.ts +28 -0
  38. package/src/adapters/BalancerV2VaultAdapterContract.ts +19 -0
  39. package/src/adapters/BalancerV3RouterAdapterContract.ts +19 -0
  40. package/src/adapters/CamelotV3AdapterContract.ts +20 -0
  41. package/src/adapters/ConvexV1BaseRewardPoolAdapterContract.ts +20 -0
  42. package/src/adapters/ConvexV1BoosterAdapterContract.ts +20 -0
  43. package/src/adapters/Curve2AssetsAdapterContract.ts +20 -0
  44. package/src/adapters/Curve3AssetsAdapterContract.ts +20 -0
  45. package/src/adapters/Curve4AssetsAdapterContract.ts +20 -0
  46. package/src/adapters/CurveV1AdapterStETHContract.ts +20 -0
  47. package/src/adapters/CurveV1StableNGAdapterContract.ts +20 -0
  48. package/src/adapters/DaiUsdsAdapterContract.ts +21 -0
  49. package/src/adapters/ERC4626AdapterContract.ts +20 -0
  50. package/src/adapters/MellowERC4626VaultAdapterContract.ts +20 -0
  51. package/src/adapters/MellowVaultAdapterContract.ts +20 -0
  52. package/src/adapters/PendleRouterAdapterContract.ts +21 -0
  53. package/src/adapters/StakingRewardsAdapterContract.ts +21 -0
  54. package/src/adapters/UniswapV2AdapterContract.ts +20 -0
  55. package/src/adapters/UniswapV3AdapterContract.ts +170 -0
  56. package/src/adapters/VelodromeV2AdapterContract.ts +20 -0
  57. package/src/adapters/WstETHV1AdapterContract.ts +20 -0
  58. package/src/adapters/YearnV2AdapterContract.ts +20 -0
  59. package/src/adapters/abi/adapters.ts +4325 -0
  60. package/src/adapters/abi/iBalancerV3RouterAdapter.ts +126 -0
  61. package/src/adapters/abi/index.ts +2 -0
  62. package/src/adapters/index.ts +2 -0
  63. package/src/adapters/plugin.ts +90 -0
  64. package/src/adapters/types.ts +62 -0
  65. package/src/dev/AccountOpener.ts +611 -0
  66. package/src/dev/PriceFeedStore.ts +95 -0
  67. package/src/dev/SDKExample.ts +167 -0
  68. package/src/dev/abi.ts +14 -0
  69. package/src/dev/calcLiquidatableLTs.ts +77 -0
  70. package/src/dev/createAnvilClient.ts +155 -0
  71. package/src/dev/index.ts +7 -0
  72. package/src/dev/setLTZero.ts +127 -0
  73. package/src/dev/setLTs.ts +68 -0
  74. package/src/sdk/GearboxSDK.ts +488 -0
  75. package/src/sdk/abi/index.ts +1 -0
  76. package/src/sdk/abi/oracles.ts +4614 -0
  77. package/src/sdk/accounts/CreditAccountsService.ts +1123 -0
  78. package/src/sdk/accounts/index.ts +1 -0
  79. package/src/sdk/base/AddressLabeller.ts +35 -0
  80. package/src/sdk/base/BaseContract.ts +237 -0
  81. package/src/sdk/base/IAddressLabeller.ts +13 -0
  82. package/src/sdk/base/PlaceholderContract.ts +12 -0
  83. package/src/sdk/base/SDKConstruct.ts +35 -0
  84. package/src/sdk/base/TokensMeta.ts +45 -0
  85. package/src/sdk/base/index.ts +6 -0
  86. package/src/sdk/base/types.ts +102 -0
  87. package/src/sdk/bots/BotsService.ts +92 -0
  88. package/src/sdk/bots/index.ts +2 -0
  89. package/src/sdk/bots/utils.ts +19 -0
  90. package/src/sdk/chain/Provider.ts +99 -0
  91. package/src/sdk/chain/chains.ts +41 -0
  92. package/src/sdk/chain/detectChain.ts +21 -0
  93. package/src/sdk/chain/index.ts +3 -0
  94. package/src/sdk/constants/address-provider.ts +47 -0
  95. package/src/sdk/constants/addresses.ts +82 -0
  96. package/src/sdk/constants/bot-permissions.ts +36 -0
  97. package/src/sdk/constants/index.ts +6 -0
  98. package/src/sdk/constants/math.ts +23 -0
  99. package/src/sdk/constants/networks.ts +38 -0
  100. package/src/sdk/constants/periphery.ts +7 -0
  101. package/src/sdk/core/BotListV3Contract.ts +103 -0
  102. package/src/sdk/core/GearStakingV3Contract.ts +84 -0
  103. package/src/sdk/core/address-provider/AbstractAddressProviderContract.ts +101 -0
  104. package/src/sdk/core/address-provider/AddressProviderV3Contract.ts +105 -0
  105. package/src/sdk/core/address-provider/AddressProviderV3_1Contract.ts +92 -0
  106. package/src/sdk/core/address-provider/getAddressProvider.ts +45 -0
  107. package/src/sdk/core/address-provider/index.ts +4 -0
  108. package/src/sdk/core/address-provider/types.ts +17 -0
  109. package/src/sdk/core/index.ts +3 -0
  110. package/src/sdk/gauges/GaugeStakingService.ts +100 -0
  111. package/src/sdk/gauges/index.ts +2 -0
  112. package/src/sdk/gauges/utils.ts +25 -0
  113. package/src/sdk/index.ts +17 -0
  114. package/src/sdk/market/MarketConfiguratorContract.ts +78 -0
  115. package/src/sdk/market/MarketRegister.ts +330 -0
  116. package/src/sdk/market/MarketSuite.ts +83 -0
  117. package/src/sdk/market/adapters/PlaceholderAdapterContracts.ts +18 -0
  118. package/src/sdk/market/adapters/factory.ts +34 -0
  119. package/src/sdk/market/adapters/index.ts +3 -0
  120. package/src/sdk/market/adapters/types.ts +7 -0
  121. package/src/sdk/market/credit/CreditConfiguratorV300Contract.ts +164 -0
  122. package/src/sdk/market/credit/CreditConfiguratorV310Contract.ts +139 -0
  123. package/src/sdk/market/credit/CreditFacadeV300Contract.ts +206 -0
  124. package/src/sdk/market/credit/CreditFacadeV310Contract.ts +190 -0
  125. package/src/sdk/market/credit/CreditManagerV300Contract.ts +122 -0
  126. package/src/sdk/market/credit/CreditManagerV310Contract.ts +122 -0
  127. package/src/sdk/market/credit/CreditSuite.ts +65 -0
  128. package/src/sdk/market/credit/createCreditConfigurator.ts +18 -0
  129. package/src/sdk/market/credit/createCreditFacade.ts +18 -0
  130. package/src/sdk/market/credit/createCreditManager.ts +18 -0
  131. package/src/sdk/market/credit/index.ts +8 -0
  132. package/src/sdk/market/credit/types.ts +42 -0
  133. package/src/sdk/market/index.ts +7 -0
  134. package/src/sdk/market/oracle/PriceOracleBaseContract.ts +376 -0
  135. package/src/sdk/market/oracle/PriceOracleV300Contract.ts +71 -0
  136. package/src/sdk/market/oracle/PriceOracleV310Contract.ts +43 -0
  137. package/src/sdk/market/oracle/createPriceOracle.ts +22 -0
  138. package/src/sdk/market/oracle/index.ts +4 -0
  139. package/src/sdk/market/oracle/types.ts +48 -0
  140. package/src/sdk/market/pool/GaugeContract.ts +120 -0
  141. package/src/sdk/market/pool/LinearInterestRateModelContract.ts +75 -0
  142. package/src/sdk/market/pool/PoolQuotaKeeperV300Contract.ts +89 -0
  143. package/src/sdk/market/pool/PoolQuotaKeeperV310Contract.ts +89 -0
  144. package/src/sdk/market/pool/PoolSuite.ts +76 -0
  145. package/src/sdk/market/pool/PoolV300Contract.ts +144 -0
  146. package/src/sdk/market/pool/PoolV310Contract.ts +144 -0
  147. package/src/sdk/market/pool/TumblerContract.ts +73 -0
  148. package/src/sdk/market/pool/createInterestRateModel.ts +33 -0
  149. package/src/sdk/market/pool/createPool.ts +19 -0
  150. package/src/sdk/market/pool/createPoolQuotaKeeper.ts +20 -0
  151. package/src/sdk/market/pool/createRateKeeper.ts +25 -0
  152. package/src/sdk/market/pool/index.ts +6 -0
  153. package/src/sdk/market/pool/types.ts +28 -0
  154. package/src/sdk/market/pricefeeds/AbstractLPPriceFeed.ts +71 -0
  155. package/src/sdk/market/pricefeeds/AbstractPriceFeed.ts +137 -0
  156. package/src/sdk/market/pricefeeds/BalancerStablePriceFeed.ts +24 -0
  157. package/src/sdk/market/pricefeeds/BalancerWeightedPriceFeed.ts +70 -0
  158. package/src/sdk/market/pricefeeds/BoundedPriceFeed.ts +34 -0
  159. package/src/sdk/market/pricefeeds/ChainlinkPriceFeed.ts +16 -0
  160. package/src/sdk/market/pricefeeds/CompositePriceFeed.ts +25 -0
  161. package/src/sdk/market/pricefeeds/CurveCryptoPriceFeed.ts +24 -0
  162. package/src/sdk/market/pricefeeds/CurveStablePriceFeed.ts +24 -0
  163. package/src/sdk/market/pricefeeds/CurveUSDPriceFeed.ts +24 -0
  164. package/src/sdk/market/pricefeeds/Erc4626PriceFeed.ts +36 -0
  165. package/src/sdk/market/pricefeeds/MellowLRTPriceFeed.ts +26 -0
  166. package/src/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.ts +44 -0
  167. package/src/sdk/market/pricefeeds/PriceFeedRef.ts +34 -0
  168. package/src/sdk/market/pricefeeds/PriceFeedsRegister.ts +293 -0
  169. package/src/sdk/market/pricefeeds/RedstonePriceFeed.ts +65 -0
  170. package/src/sdk/market/pricefeeds/RedstoneUpdater.ts +304 -0
  171. package/src/sdk/market/pricefeeds/WstETHPriceFeed.ts +24 -0
  172. package/src/sdk/market/pricefeeds/YearnPriceFeed.ts +24 -0
  173. package/src/sdk/market/pricefeeds/ZeroPriceFeed.ts +17 -0
  174. package/src/sdk/market/pricefeeds/index.ts +20 -0
  175. package/src/sdk/market/pricefeeds/types.ts +82 -0
  176. package/src/sdk/market/pricefeeds/utils.ts +24 -0
  177. package/src/sdk/plugins/index.ts +10 -0
  178. package/src/sdk/router/PathOptionFactory.ts +147 -0
  179. package/src/sdk/router/RouterV3Contract.ts +558 -0
  180. package/src/sdk/router/index.ts +2 -0
  181. package/src/sdk/router/types.ts +48 -0
  182. package/src/sdk/sdk-gov-legacy/contracts/adapters.ts +39 -0
  183. package/src/sdk/sdk-gov-legacy/contracts/contracts.ts +647 -0
  184. package/src/sdk/sdk-gov-legacy/contracts/index.ts +2 -0
  185. package/src/sdk/sdk-gov-legacy/core/constants.ts +11 -0
  186. package/src/sdk/sdk-gov-legacy/index.ts +4 -0
  187. package/src/sdk/sdk-gov-legacy/oracles/PriceFeedType.ts +24 -0
  188. package/src/sdk/sdk-gov-legacy/oracles/index.ts +1 -0
  189. package/src/sdk/sdk-gov-legacy/tokens/aave.ts +101 -0
  190. package/src/sdk/sdk-gov-legacy/tokens/aura.ts +284 -0
  191. package/src/sdk/sdk-gov-legacy/tokens/balancer.ts +421 -0
  192. package/src/sdk/sdk-gov-legacy/tokens/compound.ts +79 -0
  193. package/src/sdk/sdk-gov-legacy/tokens/convex.ts +561 -0
  194. package/src/sdk/sdk-gov-legacy/tokens/curveLP.ts +480 -0
  195. package/src/sdk/sdk-gov-legacy/tokens/decimals.ts +301 -0
  196. package/src/sdk/sdk-gov-legacy/tokens/erc4626.ts +75 -0
  197. package/src/sdk/sdk-gov-legacy/tokens/gear.ts +273 -0
  198. package/src/sdk/sdk-gov-legacy/tokens/index.ts +18 -0
  199. package/src/sdk/sdk-gov-legacy/tokens/normal.ts +613 -0
  200. package/src/sdk/sdk-gov-legacy/tokens/quoted.ts +10 -0
  201. package/src/sdk/sdk-gov-legacy/tokens/stakingRewards.ts +41 -0
  202. package/src/sdk/sdk-gov-legacy/tokens/token.ts +2354 -0
  203. package/src/sdk/sdk-gov-legacy/tokens/tokenData.ts +44 -0
  204. package/src/sdk/sdk-gov-legacy/tokens/tokenType.ts +33 -0
  205. package/src/sdk/sdk-gov-legacy/tokens/wrapped.ts +28 -0
  206. package/src/sdk/sdk-gov-legacy/tokens/yearn.ts +122 -0
  207. package/src/sdk/sdk-gov-legacy/tokens/zircuit.ts +44 -0
  208. package/src/sdk/sdk-legacy/apy/index.ts +149 -0
  209. package/src/sdk/sdk-legacy/core/assets.ts +200 -0
  210. package/src/sdk/sdk-legacy/core/creditAccount.spec.ts +1966 -0
  211. package/src/sdk/sdk-legacy/core/creditAccount.ts +816 -0
  212. package/src/sdk/sdk-legacy/core/creditManager.ts +316 -0
  213. package/src/sdk/sdk-legacy/core/creditSession.ts +352 -0
  214. package/src/sdk/sdk-legacy/core/endpoint.ts +131 -0
  215. package/src/sdk/sdk-legacy/core/eventOrTx.ts +101 -0
  216. package/src/sdk/sdk-legacy/core/pool.ts +439 -0
  217. package/src/sdk/sdk-legacy/core/strategy.ts +82 -0
  218. package/src/sdk/sdk-legacy/core/transactions.ts +865 -0
  219. package/src/sdk/sdk-legacy/gearboxRewards/api.ts +704 -0
  220. package/src/sdk/sdk-legacy/gearboxRewards/apy.ts +267 -0
  221. package/src/sdk/sdk-legacy/gearboxRewards/extraAPY.ts +165 -0
  222. package/src/sdk/sdk-legacy/gearboxRewards/index.ts +3 -0
  223. package/src/sdk/sdk-legacy/gearboxRewards/merklAPI.ts +151 -0
  224. package/src/sdk/sdk-legacy/index.ts +21 -0
  225. package/src/sdk/sdk-legacy/pathfinder/core.ts +18 -0
  226. package/src/sdk/sdk-legacy/pathfinder/index.ts +1 -0
  227. package/src/sdk/sdk-legacy/payload/creditAccount.ts +48 -0
  228. package/src/sdk/sdk-legacy/payload/creditManager.ts +133 -0
  229. package/src/sdk/sdk-legacy/payload/creditSession.ts +143 -0
  230. package/src/sdk/sdk-legacy/payload/graphPayload.ts +10 -0
  231. package/src/sdk/sdk-legacy/payload/pool.ts +198 -0
  232. package/src/sdk/sdk-legacy/payload/token.ts +13 -0
  233. package/src/sdk/sdk-legacy/tokens/tokenData.ts +57 -0
  234. package/src/sdk/sdk-legacy/types/IAirdropDistributor.ts +103 -0
  235. package/src/sdk/sdk-legacy/types/IBaseRewardPool.ts +249 -0
  236. package/src/sdk/sdk-legacy/types/IDataCompressorV3.ts +957 -0
  237. package/src/sdk/sdk-legacy/types/IDegenDistributor.ts +70 -0
  238. package/src/sdk/sdk-legacy/types/IERC20Permit.ts +35 -0
  239. package/src/sdk/sdk-legacy/types/IERC20ZapperDeposits.ts +99 -0
  240. package/src/sdk/sdk-legacy/types/IETHZapperDeposits.ts +27 -0
  241. package/src/sdk/sdk-legacy/types/IFarmingPool.ts +229 -0
  242. package/src/sdk/sdk-legacy/types/IInterestRateModel.ts +23 -0
  243. package/src/sdk/sdk-legacy/types/IMulticall3.ts +242 -0
  244. package/src/sdk/sdk-legacy/types/IOffchainOracle.ts +31 -0
  245. package/src/sdk/sdk-legacy/types/index.ts +11 -0
  246. package/src/sdk/sdk-legacy/utils/formatter.ts +46 -0
  247. package/src/sdk/sdk-legacy/utils/index.ts +3 -0
  248. package/src/sdk/sdk-legacy/utils/math.ts +6 -0
  249. package/src/sdk/sdk-legacy/utils/price.ts +27 -0
  250. package/src/sdk/types/index.ts +5 -0
  251. package/src/sdk/types/logger.ts +13 -0
  252. package/src/sdk/types/state-human.ts +224 -0
  253. package/src/sdk/types/state.ts +8 -0
  254. package/src/sdk/types/transactions.ts +22 -0
  255. package/src/sdk/types/tvl.ts +4 -0
  256. package/src/sdk/utils/AddressMap.ts +111 -0
  257. package/src/sdk/utils/bytes32ToString.ts +6 -0
  258. package/src/sdk/utils/childLogger.ts +8 -0
  259. package/src/sdk/utils/createRawTx.ts +86 -0
  260. package/src/sdk/utils/etherscan.ts +42 -0
  261. package/src/sdk/utils/filterDust.ts +20 -0
  262. package/src/sdk/utils/formatter.ts +124 -0
  263. package/src/sdk/utils/index.ts +10 -0
  264. package/src/sdk/utils/internal/Hooks.ts +51 -0
  265. package/src/sdk/utils/internal/index.ts +1 -0
  266. package/src/sdk/utils/json.ts +27 -0
  267. package/src/sdk/utils/mappers.ts +38 -0
  268. package/src/sdk/utils/retry.ts +24 -0
  269. package/src/sdk/utils/viem/detectNetwork.ts +27 -0
  270. package/src/sdk/utils/viem/index.ts +3 -0
  271. package/src/sdk/utils/viem/sendRawTx.ts +36 -0
  272. package/src/sdk/utils/viem/simulateMulticall.ts +262 -0
  273. package/tsconfig.build.json +4 -0
  274. package/tsconfig.json +16 -0
  275. package/tsup.config.ts +77 -0
@@ -0,0 +1,28 @@
1
+ import type { Abi, Address } from "viem";
2
+
3
+ import type { AdapterData, GearboxSDK } from "../sdk";
4
+ import { BaseContract } from "../sdk";
5
+ import type { AdapterContractType } from "./types";
6
+
7
+ export interface AbstractAdapterContractOptions<
8
+ abi extends Abi | readonly unknown[],
9
+ > extends AdapterData {
10
+ abi: abi;
11
+ name?: string;
12
+ }
13
+
14
+ export class AbstractAdapterContract<
15
+ const abi extends Abi | readonly unknown[],
16
+ > extends BaseContract<abi> {
17
+ public readonly targetContract: Address;
18
+
19
+ constructor(sdk: GearboxSDK, args: AbstractAdapterContractOptions<abi>) {
20
+ const { baseParams, targetContract, ...rest } = args;
21
+ super(sdk, { ...rest, ...baseParams });
22
+ this.targetContract = args.targetContract;
23
+ }
24
+
25
+ public get adapterType(): AdapterContractType {
26
+ return this.contractType as AdapterContractType;
27
+ }
28
+ }
@@ -0,0 +1,19 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iBalancerV2VaultAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iBalancerV2VaultAdapterAbi;
7
+ type abi = typeof abi;
8
+
9
+ export class BalancerV2VaultAdapterContract extends AbstractAdapterContract<abi> {
10
+ constructor(
11
+ sdk: GearboxSDK,
12
+ args: Omit<AbstractAdapterContractOptions<abi>, "abi">,
13
+ ) {
14
+ super(sdk, {
15
+ ...args,
16
+ abi,
17
+ });
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iBalancerV3RouterAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iBalancerV3RouterAdapterAbi;
7
+ type abi = typeof abi;
8
+
9
+ export class BalancerV3RouterAdapterContract extends AbstractAdapterContract<abi> {
10
+ constructor(
11
+ sdk: GearboxSDK,
12
+ args: Omit<AbstractAdapterContractOptions<abi>, "abi">,
13
+ ) {
14
+ super(sdk, {
15
+ ...args,
16
+ abi,
17
+ });
18
+ }
19
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iCamelotV3AdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iCamelotV3AdapterAbi;
7
+
8
+ export class CamelotV3AdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iConvexV1BaseRewardPoolAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iConvexV1BaseRewardPoolAdapterAbi;
7
+
8
+ export class ConvexV1BaseRewardPoolAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iConvexV1BoosterAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iConvexV1BoosterAdapterAbi;
7
+
8
+ export class ConvexV1BoosterAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iCurveV1_2AssetsAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iCurveV1_2AssetsAdapterAbi;
7
+
8
+ export class Curve2AssetsAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iCurveV1_3AssetsAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iCurveV1_3AssetsAdapterAbi;
7
+
8
+ export class Curve3AssetsAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iCurveV1_4AssetsAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iCurveV1_4AssetsAdapterAbi;
7
+
8
+ export class Curve4AssetsAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iCurveV1_2AssetsAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iCurveV1_2AssetsAdapterAbi;
7
+
8
+ export class CurveV1AdapterStETHContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iCurveV1StableNgAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iCurveV1StableNgAdapterAbi;
7
+
8
+ export class CurveV1StableNGAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,21 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iDaiUsdsAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iDaiUsdsAdapterAbi;
7
+ type abi = typeof abi;
8
+
9
+ export class DaiUsdsAdapterContract extends AbstractAdapterContract<
10
+ typeof abi
11
+ > {
12
+ constructor(
13
+ sdk: GearboxSDK,
14
+ args: Omit<AbstractAdapterContractOptions<abi>, "abi">,
15
+ ) {
16
+ super(sdk, {
17
+ ...args,
18
+ abi,
19
+ });
20
+ }
21
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { ierc4626AdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = ierc4626AdapterAbi;
7
+
8
+ export class ERC4626AdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { ierc4626AdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = ierc4626AdapterAbi;
7
+
8
+ export class MellowERC4626VaultAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iMellowVaultAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iMellowVaultAdapterAbi;
7
+
8
+ export class MellowVaultAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,21 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iPendleRouterAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iPendleRouterAdapterAbi;
7
+ type abi = typeof abi;
8
+
9
+ export class PendleRouterAdapterContract extends AbstractAdapterContract<
10
+ typeof abi
11
+ > {
12
+ constructor(
13
+ sdk: GearboxSDK,
14
+ args: Omit<AbstractAdapterContractOptions<abi>, "abi">,
15
+ ) {
16
+ super(sdk, {
17
+ ...args,
18
+ abi,
19
+ });
20
+ }
21
+ }
@@ -0,0 +1,21 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iStakingRewardsAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iStakingRewardsAdapterAbi;
7
+ type abi = typeof abi;
8
+
9
+ export class StakingRewardsAdapterContract extends AbstractAdapterContract<
10
+ typeof abi
11
+ > {
12
+ constructor(
13
+ sdk: GearboxSDK,
14
+ args: Omit<AbstractAdapterContractOptions<abi>, "abi">,
15
+ ) {
16
+ super(sdk, {
17
+ ...args,
18
+ abi,
19
+ });
20
+ }
21
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iUniswapV2AdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iUniswapV2AdapterAbi;
7
+
8
+ export class UniswapV2AdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,170 @@
1
+ import type { Address, DecodeFunctionDataReturnType } from "viem";
2
+
3
+ import type { GearboxSDK } from "../sdk";
4
+ import { formatBN } from "../sdk";
5
+ import { iUniswapV3AdapterAbi } from "./abi";
6
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
7
+ import { AbstractAdapterContract } from "./AbstractAdapter";
8
+
9
+ const abi = iUniswapV3AdapterAbi;
10
+
11
+ export class UniswapV3AdapterContract extends AbstractAdapterContract<
12
+ typeof abi
13
+ > {
14
+ constructor(
15
+ sdk: GearboxSDK,
16
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
17
+ ) {
18
+ super(sdk, {
19
+ ...args,
20
+ abi,
21
+ });
22
+ }
23
+
24
+ public parseFunctionParams(
25
+ params: DecodeFunctionDataReturnType<typeof abi>,
26
+ ): string[] | undefined {
27
+ switch (params.functionName) {
28
+ case "exactInputSingle": {
29
+ const [{ tokenIn, tokenOut, fee, amountIn, amountOutMinimum }] =
30
+ params.args;
31
+ const tokenInSym = this.sdk.tokensMeta.symbol(tokenIn);
32
+ const tokenOutSym = this.sdk.tokensMeta.symbol(tokenOut);
33
+
34
+ const amountInStr = this.sdk.tokensMeta.formatBN(tokenIn, amountIn);
35
+ const amountOutMinimumStr = this.sdk.tokensMeta.formatBN(
36
+ tokenOut,
37
+ amountOutMinimum,
38
+ );
39
+
40
+ return [
41
+ `(amountIn: ${amountInStr}, amountOutMinimum: ${amountOutMinimumStr}, path: ${tokenInSym} ==(fee: ${fee})==> ${tokenOutSym})`,
42
+ ];
43
+ }
44
+ case "exactDiffInputSingle": {
45
+ const [{ tokenIn, tokenOut, fee, leftoverAmount, rateMinRAY }] =
46
+ params.args;
47
+ const tokenInSym = this.sdk.tokensMeta.symbol(tokenIn);
48
+ const tokenOutSym = this.sdk.tokensMeta.symbol(tokenOut);
49
+
50
+ const leftoverAmountStr = this.sdk.tokensMeta.formatBN(
51
+ tokenIn,
52
+ leftoverAmount,
53
+ );
54
+ const rateStr = formatBN(rateMinRAY, 27);
55
+ return [
56
+ `(leftoverAmount: ${leftoverAmountStr}, rate: ${rateStr}, path: ${tokenInSym} ==(fee: ${fee})==> ${tokenOutSym})`,
57
+ ];
58
+ }
59
+ case "exactInput": {
60
+ const [{ amountIn, amountOutMinimum, path }] = params.args;
61
+
62
+ const pathStr = this.trackInputPath(path);
63
+ const token = `0x${path.replace("0x", "").slice(0, 40)}` as Address;
64
+ const amountInStr = this.sdk.tokensMeta.formatBN(token, amountIn);
65
+
66
+ const amountOutMinimumStr = this.sdk.tokensMeta.formatBN(
67
+ `0x${path.slice(-40, path.length)}`,
68
+ amountOutMinimum,
69
+ );
70
+
71
+ return [
72
+ `(amountIn: ${amountInStr}, amountOutMinimum: ${amountOutMinimumStr}, path: ${pathStr}`,
73
+ ];
74
+ }
75
+ case "exactDiffInput": {
76
+ const [{ leftoverAmount, rateMinRAY, path }] = params.args;
77
+
78
+ const leftoverAmountStr = this.sdk.tokensMeta.formatBN(
79
+ `0x${path.replace("0x", "").slice(0, 40)}`,
80
+ leftoverAmount,
81
+ );
82
+
83
+ const pathStr = this.trackInputPath(path);
84
+
85
+ return [
86
+ `(leftoverAmount: ${leftoverAmountStr}, rate: ${formatBN(
87
+ rateMinRAY,
88
+ 27,
89
+ )}, path: ${pathStr}`,
90
+ ];
91
+ }
92
+ case "exactOutput": {
93
+ const [{ amountInMaximum, amountOut, path }] = params.args;
94
+
95
+ const pathStr = this.trackOutputPath(path);
96
+ const amountInMaximumStr = this.sdk.tokensMeta.formatBN(
97
+ `0x${path.slice(-40, path.length)}`,
98
+ amountInMaximum,
99
+ );
100
+
101
+ const amountOutStr = this.sdk.tokensMeta.formatBN(
102
+ `0x${path.replace("0x", "").slice(0, 40)}`,
103
+ amountOut,
104
+ );
105
+
106
+ return [
107
+ `(amountInMaximum: ${amountInMaximumStr}, amountOut: ${amountOutStr}, path: ${pathStr}`,
108
+ ];
109
+ }
110
+ case "exactOutputSingle": {
111
+ const [{ tokenIn, tokenOut, fee, amountOut, amountInMaximum }] =
112
+ params.args;
113
+
114
+ const tokenInSym = this.sdk.tokensMeta.symbol(tokenIn);
115
+ const tokenOutSym = this.sdk.tokensMeta.symbol(tokenOut);
116
+
117
+ const amountInMaximumStr = this.sdk.tokensMeta.formatBN(
118
+ tokenIn,
119
+ amountInMaximum,
120
+ );
121
+ const amountOutStr = this.sdk.tokensMeta.formatBN(tokenOut, amountOut);
122
+
123
+ return [
124
+ `(amountInMaximum: ${amountInMaximumStr}, amountOut: ${amountOutStr}, path: ${tokenInSym} ==(fee: ${fee})==> ${tokenOutSym})`,
125
+ ];
126
+ }
127
+
128
+ default:
129
+ return undefined;
130
+ }
131
+ }
132
+
133
+ private trackInputPath(path: string): string {
134
+ let result = "";
135
+ let pointer = path.startsWith("0x") ? 2 : 0;
136
+ while (pointer <= path.length - 40) {
137
+ const from =
138
+ `0x${path.slice(pointer, pointer + 40)}`.toLowerCase() as Address;
139
+ result += this.sdk.tokensMeta.symbol(from) || from;
140
+ pointer += 40;
141
+
142
+ if (pointer > path.length - 6) return result;
143
+
144
+ const fee = parseInt(path.slice(pointer, pointer + 6), 16);
145
+
146
+ pointer += 6;
147
+ result += ` ==(fee: ${fee})==> `;
148
+ }
149
+
150
+ return result;
151
+ }
152
+
153
+ private trackOutputPath(path: string): string {
154
+ let result = "";
155
+ let pointer = path.length;
156
+ while (pointer >= 40) {
157
+ pointer -= 40;
158
+ const from = `0x${path.slice(pointer, pointer + 40)}` as Address;
159
+ result += this.sdk.tokensMeta.symbol(from) || from;
160
+
161
+ if (pointer < 6) return result;
162
+ pointer -= 6;
163
+ const fee = parseInt(path.slice(pointer, pointer + 6), 16);
164
+
165
+ result += ` ==(fee: ${fee})==> `;
166
+ }
167
+
168
+ return result;
169
+ }
170
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iVelodromeV2RouterAdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iVelodromeV2RouterAdapterAbi;
7
+
8
+ export class VelodromeV2RouterAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iwstEthv1AdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iwstEthv1AdapterAbi;
7
+
8
+ export class WstETHV1AdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ import type { GearboxSDK } from "../sdk";
2
+ import { iYearnV2AdapterAbi } from "./abi";
3
+ import type { AbstractAdapterContractOptions } from "./AbstractAdapter";
4
+ import { AbstractAdapterContract } from "./AbstractAdapter";
5
+
6
+ const abi = iYearnV2AdapterAbi;
7
+
8
+ export class YearnV2RouterAdapterContract extends AbstractAdapterContract<
9
+ typeof abi
10
+ > {
11
+ constructor(
12
+ sdk: GearboxSDK,
13
+ args: Omit<AbstractAdapterContractOptions<typeof abi>, "abi">,
14
+ ) {
15
+ super(sdk, {
16
+ ...args,
17
+ abi,
18
+ });
19
+ }
20
+ }