@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,561 @@
1
+ import type { ConvexPoolContract, SupportedContract } from "../contracts";
2
+ import type { CurveLPToken } from "./curveLP";
3
+ import type { SupportedToken, TokenBase } from "./token";
4
+ import type { TokenNetwork } from "./tokenType";
5
+ import { TokenType } from "./tokenType";
6
+
7
+ export type ConvexLPToken =
8
+ | "cvx3Crv"
9
+ | "cvxcrvFRAX"
10
+ | "cvxsteCRV"
11
+ | "cvxFRAX3CRV"
12
+ | "cvxLUSD3CRV"
13
+ | "cvxcrvPlain3andSUSD"
14
+ | "cvxgusd3CRV"
15
+ | "cvxcrvCRVETH"
16
+ | "cvxcrvCVXETH"
17
+ | "cvxcrvUSDTWBTCWETH"
18
+ | "cvxLDOETH"
19
+ | "cvxcrvUSDUSDC"
20
+ | "cvxcrvUSDUSDT"
21
+ | "cvxcrvUSDFRAX"
22
+ | "cvxcrvUSDETHCRV"
23
+ | "cvxGHOcrvUSD"
24
+ | "cvxllamathena";
25
+
26
+ export type ConvexStakedPhantomToken =
27
+ | "stkcvx3Crv"
28
+ | "stkcvxcrvFRAX"
29
+ | "stkcvxsteCRV"
30
+ | "stkcvxFRAX3CRV"
31
+ | "stkcvxLUSD3CRV"
32
+ | "stkcvxcrvPlain3andSUSD"
33
+ | "stkcvxgusd3CRV"
34
+ | "stkcvxcrvCRVETH"
35
+ | "stkcvxcrvCVXETH"
36
+ | "stkcvxcrvUSDTWBTCWETH"
37
+ | "stkcvxLDOETH"
38
+ | "stkcvxcrvUSDUSDC"
39
+ | "stkcvxcrvUSDUSDT"
40
+ | "stkcvxcrvUSDFRAX"
41
+ | "stkcvxcrvUSDETHCRV"
42
+ | "stkcvxGHOcrvUSD"
43
+ | "stkcvxllamathena";
44
+
45
+ export type ConvexL2StakedToken = "cvxcrvUSDT";
46
+
47
+ type BaseConvexToken = {
48
+ pool: ConvexPoolContract;
49
+ pid: number;
50
+ underlying: CurveLPToken;
51
+ } & TokenBase;
52
+
53
+ export type ConvexLPTokenData = {
54
+ symbol: ConvexLPToken;
55
+ type: Partial<Record<TokenNetwork, TokenType.CONVEX_LP_TOKEN>>;
56
+ stakedToken: ConvexStakedPhantomToken;
57
+ } & BaseConvexToken;
58
+
59
+ export type ConvexPhantomTokenData = {
60
+ symbol: ConvexStakedPhantomToken;
61
+ type: Partial<Record<TokenNetwork, TokenType.CONVEX_STAKED_TOKEN>>;
62
+ lpToken: ConvexLPToken;
63
+ } & BaseConvexToken;
64
+
65
+ export type ConvexL2StakedTokenData = {
66
+ symbol: ConvexL2StakedToken;
67
+ type: Partial<Record<TokenNetwork, TokenType.CONVEX_L2_STAKED_TOKEN>>;
68
+ } & BaseConvexToken;
69
+
70
+ export const convexLpTokens: Record<ConvexLPToken, ConvexLPTokenData> = {
71
+ cvx3Crv: {
72
+ name: "Convex cvx3Crv",
73
+
74
+ symbol: "cvx3Crv",
75
+ type: {
76
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
77
+ },
78
+ pool: "CONVEX_3CRV_POOL",
79
+ pid: 9,
80
+ underlying: "3Crv",
81
+ stakedToken: "stkcvx3Crv",
82
+ },
83
+
84
+ cvxcrvFRAX: {
85
+ name: "Convex cvxcrvFRAX",
86
+
87
+ symbol: "cvxcrvFRAX",
88
+ type: {
89
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
90
+ },
91
+ pool: "CONVEX_FRAX_USDC_POOL",
92
+ pid: 100,
93
+ underlying: "crvFRAX",
94
+ stakedToken: "stkcvxcrvFRAX",
95
+ },
96
+
97
+ cvxsteCRV: {
98
+ name: "Convex cvxsteCRV",
99
+
100
+ symbol: "cvxsteCRV",
101
+ type: {
102
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
103
+ },
104
+ pool: "CONVEX_STECRV_POOL",
105
+ pid: 25,
106
+ underlying: "steCRV",
107
+ stakedToken: "stkcvxsteCRV",
108
+ },
109
+
110
+ cvxFRAX3CRV: {
111
+ name: "Convex cvxFRAX3CRV-f",
112
+
113
+ symbol: "cvxFRAX3CRV",
114
+ type: {
115
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
116
+ },
117
+ pool: "CONVEX_FRAX3CRV_POOL",
118
+ pid: 32,
119
+ underlying: "FRAX3CRV",
120
+ stakedToken: "stkcvxFRAX3CRV",
121
+ },
122
+
123
+ cvxLUSD3CRV: {
124
+ name: "Convex cvxLUSD3CRV-f",
125
+
126
+ symbol: "cvxLUSD3CRV",
127
+ type: {
128
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
129
+ },
130
+ pool: "CONVEX_LUSD3CRV_POOL",
131
+ pid: 33,
132
+ underlying: "LUSD3CRV",
133
+ stakedToken: "stkcvxLUSD3CRV",
134
+ },
135
+
136
+ cvxcrvPlain3andSUSD: {
137
+ name: "Convex cvxcrvPlain3andSUSD",
138
+
139
+ symbol: "cvxcrvPlain3andSUSD",
140
+ type: {
141
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
142
+ },
143
+ pool: "CONVEX_SUSD_POOL",
144
+ pid: 4,
145
+ underlying: "crvPlain3andSUSD",
146
+ stakedToken: "stkcvxcrvPlain3andSUSD",
147
+ },
148
+
149
+ cvxgusd3CRV: {
150
+ name: "Convex cvxgusd3CRV",
151
+
152
+ symbol: "cvxgusd3CRV",
153
+ type: {
154
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
155
+ },
156
+ pool: "CONVEX_GUSD_POOL",
157
+ pid: 10,
158
+ underlying: "gusd3CRV",
159
+ stakedToken: "stkcvxgusd3CRV",
160
+ },
161
+
162
+ cvxcrvCRVETH: {
163
+ name: "Convex cvxcrvCRVETH",
164
+
165
+ symbol: "cvxcrvCRVETH",
166
+ type: {
167
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
168
+ },
169
+ pool: "CONVEX_CRVETH_POOL",
170
+ pid: 61,
171
+ underlying: "crvCRVETH",
172
+ stakedToken: "stkcvxcrvCRVETH",
173
+ },
174
+
175
+ cvxcrvCVXETH: {
176
+ name: "Convex cvxcrvCVXETH",
177
+
178
+ symbol: "cvxcrvCVXETH",
179
+ type: {
180
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
181
+ },
182
+ pool: "CONVEX_CVXETH_POOL",
183
+ pid: 64,
184
+ underlying: "crvCVXETH",
185
+ stakedToken: "stkcvxcrvCVXETH",
186
+ },
187
+
188
+ cvxcrvUSDTWBTCWETH: {
189
+ name: "Convex cvxcrvUSDTWBTCWETH",
190
+
191
+ symbol: "cvxcrvUSDTWBTCWETH",
192
+ type: {
193
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
194
+ },
195
+ pool: "CONVEX_3CRYPTO_POOL",
196
+ pid: 188,
197
+ underlying: "crvUSDTWBTCWETH",
198
+ stakedToken: "stkcvxcrvUSDTWBTCWETH",
199
+ },
200
+
201
+ cvxLDOETH: {
202
+ name: "Convex cvxLDOETH",
203
+ symbol: "cvxLDOETH",
204
+ type: {
205
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
206
+ },
207
+ pool: "CONVEX_LDOETH_POOL",
208
+ pid: 149,
209
+ underlying: "LDOETH",
210
+ stakedToken: "stkcvxLDOETH",
211
+ },
212
+
213
+ cvxcrvUSDUSDC: {
214
+ name: "Convex cvxcrvUSDUSDC",
215
+ symbol: "cvxcrvUSDUSDC",
216
+ type: {
217
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
218
+ },
219
+ pool: "CONVEX_CRVUSD_USDC_POOL",
220
+ pid: 182,
221
+ underlying: "crvUSDUSDC",
222
+ stakedToken: "stkcvxcrvUSDUSDC",
223
+ },
224
+
225
+ cvxcrvUSDUSDT: {
226
+ name: "Convex cvxcrvUSDUSDT",
227
+ symbol: "cvxcrvUSDUSDT",
228
+ type: {
229
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
230
+ },
231
+ pool: "CONVEX_CRVUSD_USDT_POOL",
232
+ pid: 179,
233
+ underlying: "crvUSDUSDT",
234
+ stakedToken: "stkcvxcrvUSDUSDT",
235
+ },
236
+
237
+ cvxcrvUSDFRAX: {
238
+ name: "Convex cvxcrvUSDFRAX",
239
+ symbol: "cvxcrvUSDFRAX",
240
+ type: {
241
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
242
+ },
243
+ pool: "CONVEX_CRVUSD_FRAX_POOL",
244
+ pid: 187,
245
+ underlying: "crvUSDFRAX",
246
+ stakedToken: "stkcvxcrvUSDFRAX",
247
+ },
248
+
249
+ cvxcrvUSDETHCRV: {
250
+ name: "Convex cvxcrvUSDETHCRV",
251
+ symbol: "cvxcrvUSDETHCRV",
252
+ type: {
253
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
254
+ },
255
+ pool: "CONVEX_TRI_CRV_POOL",
256
+ pid: 211,
257
+ underlying: "crvUSDETHCRV",
258
+ stakedToken: "stkcvxcrvUSDETHCRV",
259
+ },
260
+
261
+ cvxGHOcrvUSD: {
262
+ name: "Convex cvxGHOcrvUSD",
263
+ symbol: "cvxGHOcrvUSD",
264
+ type: {
265
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
266
+ },
267
+ pool: "CONVEX_GHO_CRVUSD_POOL",
268
+ pid: 335,
269
+ underlying: "GHOcrvUSD",
270
+ stakedToken: "stkcvxGHOcrvUSD",
271
+ },
272
+
273
+ cvxllamathena: {
274
+ name: "Convex cvxllamathena",
275
+ symbol: "cvxllamathena",
276
+ type: {
277
+ AllNetworks: TokenType.CONVEX_LP_TOKEN,
278
+ },
279
+ pool: "CONVEX_LLAMA_THENA_POOL",
280
+ pid: 401,
281
+ underlying: "llamathena",
282
+ stakedToken: "stkcvxllamathena",
283
+ },
284
+ };
285
+
286
+ export const convexStakedPhantomTokens: Record<
287
+ ConvexStakedPhantomToken,
288
+ ConvexPhantomTokenData
289
+ > = {
290
+ stkcvx3Crv: {
291
+ name: "Convex stkcvx3Crv",
292
+ symbol: "stkcvx3Crv",
293
+ type: {
294
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
295
+ },
296
+ pool: "CONVEX_3CRV_POOL",
297
+ pid: 9,
298
+ underlying: "3Crv",
299
+ lpToken: "cvx3Crv",
300
+ },
301
+
302
+ stkcvxcrvFRAX: {
303
+ name: "Convex stkcvxcrvFRAX",
304
+ symbol: "stkcvxcrvFRAX",
305
+ type: {
306
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
307
+ },
308
+ pool: "CONVEX_FRAX_USDC_POOL",
309
+ pid: 100,
310
+ underlying: "crvFRAX",
311
+ lpToken: "cvxcrvFRAX",
312
+ },
313
+
314
+ stkcvxsteCRV: {
315
+ name: "Convex stkcvxsteCRV",
316
+
317
+ symbol: "stkcvxsteCRV",
318
+ type: {
319
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
320
+ },
321
+ pool: "CONVEX_STECRV_POOL",
322
+ pid: 25,
323
+ underlying: "steCRV",
324
+ lpToken: "cvxsteCRV",
325
+ },
326
+
327
+ stkcvxFRAX3CRV: {
328
+ name: "Convex stkcvxFRAX3CRV-f",
329
+
330
+ symbol: "stkcvxFRAX3CRV",
331
+ type: {
332
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
333
+ },
334
+ pool: "CONVEX_FRAX3CRV_POOL",
335
+ pid: 32,
336
+ underlying: "FRAX3CRV",
337
+ lpToken: "cvxFRAX3CRV",
338
+ },
339
+
340
+ stkcvxLUSD3CRV: {
341
+ name: "Convex stkcvxLUSD3CRV-f",
342
+
343
+ symbol: "stkcvxLUSD3CRV",
344
+ type: {
345
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
346
+ },
347
+ pool: "CONVEX_LUSD3CRV_POOL",
348
+ pid: 33,
349
+ underlying: "LUSD3CRV",
350
+ lpToken: "cvxLUSD3CRV",
351
+ },
352
+
353
+ stkcvxcrvPlain3andSUSD: {
354
+ name: "Convex stkcvxcrvPlain3andSUSD",
355
+
356
+ symbol: "stkcvxcrvPlain3andSUSD",
357
+ type: {
358
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
359
+ },
360
+ pool: "CONVEX_SUSD_POOL",
361
+ pid: 4,
362
+ underlying: "crvPlain3andSUSD",
363
+ lpToken: "cvxcrvPlain3andSUSD",
364
+ },
365
+
366
+ stkcvxgusd3CRV: {
367
+ name: "Convex stkcvxgusd3CRV",
368
+
369
+ symbol: "stkcvxgusd3CRV",
370
+ type: {
371
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
372
+ },
373
+ pool: "CONVEX_GUSD_POOL",
374
+ pid: 10,
375
+ underlying: "gusd3CRV",
376
+ lpToken: "cvxgusd3CRV",
377
+ },
378
+
379
+ stkcvxcrvCRVETH: {
380
+ name: "Convex stkcvxcrvCRVETH",
381
+
382
+ symbol: "stkcvxcrvCRVETH",
383
+ type: {
384
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
385
+ },
386
+ pool: "CONVEX_CRVETH_POOL",
387
+ pid: 61,
388
+ underlying: "crvCRVETH",
389
+ lpToken: "cvxcrvCRVETH",
390
+ },
391
+
392
+ stkcvxcrvCVXETH: {
393
+ name: "Convex stkcvxcrvCVXETH",
394
+
395
+ symbol: "stkcvxcrvCVXETH",
396
+ type: {
397
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
398
+ },
399
+ pool: "CONVEX_CVXETH_POOL",
400
+ pid: 64,
401
+ underlying: "crvCVXETH",
402
+ lpToken: "cvxcrvCVXETH",
403
+ },
404
+
405
+ stkcvxcrvUSDTWBTCWETH: {
406
+ name: "Convex stkcvxcrv3crypto",
407
+
408
+ symbol: "stkcvxcrvUSDTWBTCWETH",
409
+ type: {
410
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
411
+ },
412
+ pool: "CONVEX_3CRYPTO_POOL",
413
+ pid: 188,
414
+ underlying: "crvUSDTWBTCWETH",
415
+ lpToken: "cvxcrvUSDTWBTCWETH",
416
+ },
417
+
418
+ stkcvxLDOETH: {
419
+ name: "Convex stkcvxLDOETH",
420
+
421
+ symbol: "stkcvxLDOETH",
422
+ type: {
423
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
424
+ },
425
+ pool: "CONVEX_LDOETH_POOL",
426
+ pid: 149,
427
+ underlying: "LDOETH",
428
+ lpToken: "cvxLDOETH",
429
+ },
430
+
431
+ stkcvxcrvUSDUSDC: {
432
+ name: "Convex stkcvxcrvUSDUSDC",
433
+ symbol: "stkcvxcrvUSDUSDC",
434
+ type: {
435
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
436
+ },
437
+ pool: "CONVEX_CRVUSD_USDC_POOL",
438
+ pid: 182,
439
+ underlying: "crvUSDUSDC",
440
+ lpToken: "cvxcrvUSDUSDC",
441
+ },
442
+
443
+ stkcvxcrvUSDUSDT: {
444
+ name: "Convex stkcvxcrvUSDUSDT",
445
+ symbol: "stkcvxcrvUSDUSDT",
446
+ type: {
447
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
448
+ },
449
+ pool: "CONVEX_CRVUSD_USDT_POOL",
450
+ pid: 179,
451
+ underlying: "crvUSDUSDT",
452
+ lpToken: "cvxcrvUSDUSDT",
453
+ },
454
+
455
+ stkcvxcrvUSDFRAX: {
456
+ name: "Convex stkcvxcrvUSDFRAX",
457
+ symbol: "stkcvxcrvUSDFRAX",
458
+ type: {
459
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
460
+ },
461
+ pool: "CONVEX_CRVUSD_FRAX_POOL",
462
+ pid: 187,
463
+ underlying: "crvUSDFRAX",
464
+ lpToken: "cvxcrvUSDFRAX",
465
+ },
466
+
467
+ stkcvxcrvUSDETHCRV: {
468
+ name: "Convex stkcvxcrvUSDETHCRV",
469
+ symbol: "stkcvxcrvUSDETHCRV",
470
+ type: {
471
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
472
+ },
473
+ pool: "CONVEX_TRI_CRV_POOL",
474
+ pid: 211,
475
+ underlying: "crvUSDETHCRV",
476
+ lpToken: "cvxcrvUSDETHCRV",
477
+ },
478
+
479
+ stkcvxGHOcrvUSD: {
480
+ name: "Convex stkcvxGHOcrvUSD",
481
+ symbol: "stkcvxGHOcrvUSD",
482
+ type: {
483
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
484
+ },
485
+ pool: "CONVEX_GHO_CRVUSD_POOL",
486
+ pid: 335,
487
+ underlying: "GHOcrvUSD",
488
+ lpToken: "cvxGHOcrvUSD",
489
+ },
490
+
491
+ stkcvxllamathena: {
492
+ name: "Convex stkcvxllamathena",
493
+ symbol: "stkcvxllamathena",
494
+ type: {
495
+ AllNetworks: TokenType.CONVEX_STAKED_TOKEN,
496
+ },
497
+ pool: "CONVEX_LLAMA_THENA_POOL",
498
+ pid: 401,
499
+ underlying: "llamathena",
500
+ lpToken: "cvxllamathena",
501
+ },
502
+ };
503
+
504
+ export const convexL2StakedTokens: Record<
505
+ ConvexL2StakedToken,
506
+ ConvexL2StakedTokenData
507
+ > = {
508
+ cvxcrvUSDT: {
509
+ name: "Convex crvUSDT vault (Arbitrum)",
510
+ symbol: "cvxcrvUSDT",
511
+ type: {
512
+ AllNetworks: TokenType.CONVEX_L2_STAKED_TOKEN,
513
+ },
514
+ pool: "CONVEX_CRVUSD_USDT_POOL_ARB",
515
+ pid: 18,
516
+ underlying: "crvUSDT",
517
+ },
518
+ };
519
+
520
+ export const convexTokens: Record<
521
+ ConvexLPToken | ConvexStakedPhantomToken | ConvexL2StakedToken,
522
+ ConvexLPTokenData | ConvexPhantomTokenData | ConvexL2StakedTokenData
523
+ > = {
524
+ ...convexLpTokens,
525
+ ...convexStakedPhantomTokens,
526
+ ...convexL2StakedTokens,
527
+ };
528
+
529
+ export const isConvexToken = (
530
+ t: unknown,
531
+ ): t is ConvexLPToken | ConvexStakedPhantomToken | ConvexL2StakedToken =>
532
+ typeof t === "string" &&
533
+ !!convexTokens[
534
+ t as ConvexLPToken | ConvexStakedPhantomToken | ConvexL2StakedToken
535
+ ];
536
+
537
+ export const isConvexLPToken = (t: unknown): t is ConvexLPToken =>
538
+ typeof t === "string" && !!convexLpTokens[t as ConvexLPToken];
539
+
540
+ export const isConvexStakedPhantomToken = (
541
+ t: unknown,
542
+ ): t is ConvexStakedPhantomToken =>
543
+ typeof t === "string" &&
544
+ !!convexStakedPhantomTokens[t as ConvexStakedPhantomToken];
545
+
546
+ export const isConvexL2StakedToken = (t: unknown): t is ConvexL2StakedToken =>
547
+ typeof t === "string" && !!convexL2StakedTokens[t as ConvexL2StakedToken];
548
+
549
+ export const convexPoolByPid = Object.values(convexLpTokens).reduce<
550
+ Record<number, SupportedContract>
551
+ >((acc, value) => {
552
+ acc[value.pid] = value.pool;
553
+ return acc;
554
+ }, {});
555
+
556
+ export const convexLpTokenByPid = Object.entries(convexLpTokens).reduce<
557
+ Record<number, SupportedToken>
558
+ >((acc, [token, data]) => {
559
+ acc[data.pid] = token as SupportedToken;
560
+ return acc;
561
+ }, {});