@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,421 @@
1
+ import type { ERC4626LPToken } from "./erc4626";
2
+ import type { NormalToken } from "./normal";
3
+ import type { TokenBase } from "./token";
4
+ import type { TokenNetwork } from "./tokenType";
5
+ import { TokenType } from "./tokenType";
6
+ import type { WrappedToken } from "./wrapped";
7
+
8
+ export type BalancerLPToken =
9
+ | "USDC_DAI_USDT"
10
+ | "B_rETH_STABLE"
11
+ | "weETH_rETH"
12
+ | "osETH_wETH_BPT"
13
+ | "B_80BAL_20WETH"
14
+ | "50WETH_50AURA"
15
+ | "ezETH_WETH_BPT"
16
+ | "weETH_ezETH_rswETH"
17
+ | "GHO_USDT_USDC"
18
+ | "rsETH_WETH"
19
+ | "trenSTETH"
20
+ | "sUSDe_USDC_BPT"
21
+ | "pumpBTC_WBTC_BPT"
22
+ | "eBTC_WBTC_BPT"
23
+ | "B_50WBTC_50WETH"
24
+ | "tETH_wstETH_BPT"
25
+ // Optimism
26
+ | "BPT_rETH_ETH"
27
+ | "BPT_WSTETH_ETH"
28
+ | "BPT_ROAD"
29
+ | "ECLP_wstETH_WETH"
30
+ | "bpt_ethtri"
31
+ // Arbitrum
32
+ | "wstETH_WETH_BPT"
33
+ | "wstETH_rETH_sfrxETH"
34
+ | "wstETH_rETH_cbETH"
35
+ | "rETH_WETH_BPT_deprecated"
36
+ | "cbETH_rETH_wstETH"
37
+ | "rETH_wETH_BPT"
38
+ | "33AURA_33ARB_33BAL"
39
+ | "ezETH_wstETH"
40
+ | "rsETH_wETH_Arb"
41
+ // Sonic
42
+ | "bpt_rsb"
43
+ | "bpt_sss"
44
+ | "BPT_scUSD_stS"
45
+ | "BPT_USDCe_stS";
46
+
47
+ export type BalancerLpTokenData = {
48
+ symbol: BalancerLPToken;
49
+ type: Partial<Record<TokenNetwork, TokenType.BALANCER_LP_TOKEN>>;
50
+ underlying: Array<
51
+ NormalToken | WrappedToken | BalancerLPToken | ERC4626LPToken
52
+ >;
53
+ poolId: string;
54
+ } & TokenBase;
55
+
56
+ export const balancerLpTokens: Record<BalancerLPToken, BalancerLpTokenData> = {
57
+ "50WETH_50AURA": {
58
+ name: "Balancer 50WETH-50AURA",
59
+ symbol: "50WETH_50AURA",
60
+ type: {
61
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
62
+ },
63
+ underlying: ["WETH", "AURA"],
64
+ poolId:
65
+ "0xcfca23ca9ca720b6e98e3eb9b6aa0ffc4a5c08b9000200000000000000000274",
66
+ },
67
+ B_80BAL_20WETH: {
68
+ name: "Balancer 80BAL-20WETH",
69
+ symbol: "B_80BAL_20WETH",
70
+ type: {
71
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
72
+ },
73
+ underlying: ["BAL", "WETH"],
74
+ poolId:
75
+ "0x5c6ee304399dbdb9c8ef030ab642b10820db8f56000200000000000000000014",
76
+ },
77
+
78
+ USDC_DAI_USDT: {
79
+ name: "Balancer USDC_DAI_USDT",
80
+ symbol: "USDC_DAI_USDT",
81
+ type: {
82
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
83
+ },
84
+ underlying: ["USDC", "DAI", "USDT"],
85
+ poolId:
86
+ "0x79c58f70905f734641735bc61e45c19dd9ad60bc0000000000000000000004e7",
87
+ },
88
+
89
+ B_rETH_STABLE: {
90
+ name: "Balancer rETH Stable Pool",
91
+ symbol: "B_rETH_STABLE",
92
+ type: {
93
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
94
+ },
95
+ underlying: ["rETH", "WETH"],
96
+ poolId:
97
+ "0x1e19cf2d73a72ef1332c882f20534b6519be0276000200000000000000000112",
98
+ },
99
+
100
+ weETH_rETH: {
101
+ name: "Balancer weETH/rETH Stable pool",
102
+ symbol: "weETH_rETH",
103
+ type: {
104
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
105
+ },
106
+ underlying: ["rETH", "weETH"],
107
+ poolId:
108
+ "0x05ff47afada98a98982113758878f9a8b9fdda0a000000000000000000000645",
109
+ },
110
+
111
+ osETH_wETH_BPT: {
112
+ name: "Balancer osETH/WETH Stable pool",
113
+ symbol: "osETH_wETH_BPT",
114
+ type: {
115
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
116
+ },
117
+ underlying: ["WETH", "osETH"],
118
+ poolId:
119
+ "0xdacf5fa19b1f720111609043ac67a9818262850c000000000000000000000635",
120
+ },
121
+
122
+ ezETH_WETH_BPT: {
123
+ name: "Balancer ezETH/WETH Stable pool",
124
+ symbol: "ezETH_WETH_BPT",
125
+ type: {
126
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
127
+ },
128
+ underlying: ["ezETH", "WETH"],
129
+ poolId:
130
+ "0x596192bb6e41802428ac943d2f1476c1af25cc0e000000000000000000000659",
131
+ },
132
+
133
+ sUSDe_USDC_BPT: {
134
+ name: "Balancer sUSDe/USDC Stable pool",
135
+ symbol: "sUSDe_USDC_BPT",
136
+ type: {
137
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
138
+ },
139
+ underlying: ["sUSDe", "USDC"],
140
+ poolId:
141
+ "0xb819feef8f0fcdc268afe14162983a69f6bf179e000000000000000000000689",
142
+ },
143
+ pumpBTC_WBTC_BPT: {
144
+ name: "Balancer pumpBTC/wBTC",
145
+ symbol: "pumpBTC_WBTC_BPT",
146
+ type: {
147
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
148
+ },
149
+ underlying: ["pumpBTC", "WBTC"],
150
+ poolId:
151
+ "0x2238ab6c8c58473a5e81b86ec352322fb3f5edd80000000000000000000006de",
152
+ },
153
+ eBTC_WBTC_BPT: {
154
+ name: "Balancer eBTC/wBTC",
155
+ symbol: "eBTC_WBTC_BPT",
156
+ type: {
157
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
158
+ },
159
+ underlying: ["eBTC", "WBTC"],
160
+ poolId:
161
+ "0xda17f3663c5d04c0b316cfa1a04aa53ebbc8c12c0000000000000000000006e7",
162
+ },
163
+
164
+ trenSTETH: {
165
+ name: "Balancer Total Rewards Enhanced stETH",
166
+ symbol: "trenSTETH",
167
+ type: {
168
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
169
+ },
170
+ underlying: ["amphrETH", "rstETH", "wstETH", "Re7LRT", "steakLRT"],
171
+ poolId:
172
+ "0x4216d5900a6109bba48418b5e2ab6cc4e61cf4770000000000000000000006a1",
173
+ },
174
+
175
+ weETH_ezETH_rswETH: {
176
+ name: "Balancer ezETH/weETH/rswETH",
177
+ symbol: "weETH_ezETH_rswETH",
178
+ type: {
179
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
180
+ },
181
+ underlying: ["ezETH", "weETH", "rswETH"],
182
+ poolId:
183
+ "0x848a5564158d84b8a8fb68ab5d004fae11619a5400000000000000000000066a",
184
+ },
185
+
186
+ GHO_USDT_USDC: {
187
+ name: "Balancer GHO/USDT/USDC",
188
+ symbol: "GHO_USDT_USDC",
189
+ type: {
190
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
191
+ },
192
+ underlying: ["GHO", "USDC", "USDT"],
193
+ poolId:
194
+ "0x8353157092ed8be69a9df8f95af097bbf33cb2af0000000000000000000005d9",
195
+ },
196
+ rsETH_WETH: {
197
+ name: "Balancer rsETH/WETH Stable",
198
+ symbol: "rsETH_WETH",
199
+ type: {
200
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
201
+ },
202
+ underlying: ["rsETH", "WETH"],
203
+ poolId:
204
+ "0x58aadfb1afac0ad7fca1148f3cde6aedf5236b6d00000000000000000000067f",
205
+ },
206
+
207
+ B_50WBTC_50WETH: {
208
+ name: "Balancer WBTC/WETH",
209
+ symbol: "B_50WBTC_50WETH",
210
+ type: {
211
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
212
+ },
213
+ underlying: ["WBTC", "WETH"],
214
+ poolId:
215
+ "0xa6f548df93de924d73be7d25dc02554c6bd66db500020000000000000000000e",
216
+ },
217
+
218
+ rsETH_wETH_Arb: {
219
+ name: "Balancer rsETH/WETH Pool (Arbitrum)",
220
+ symbol: "rsETH_wETH_Arb",
221
+ type: {
222
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
223
+ },
224
+ underlying: ["rsETH", "WETH"],
225
+ poolId:
226
+ "0x90e6cb5249f5e1572afbf8a96d8a1ca6acffd73900000000000000000000055c",
227
+ },
228
+
229
+ BPT_rETH_ETH: {
230
+ name: "BeethovenX rETH-ETH Pool",
231
+ symbol: "BPT_rETH_ETH",
232
+ type: {
233
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
234
+ },
235
+ underlying: ["WETH", "rETH"],
236
+ poolId:
237
+ "0x4fd63966879300cafafbb35d157dc5229278ed2300020000000000000000002b",
238
+ },
239
+
240
+ BPT_WSTETH_ETH: {
241
+ name: "BeethovenX wstETH-ETH Pool",
242
+ symbol: "BPT_WSTETH_ETH",
243
+ type: {
244
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
245
+ },
246
+ underlying: ["wstETH", "WETH"],
247
+ poolId:
248
+ "0x7b50775383d3d6f0215a8f290f2c9e2eebbeceb200020000000000000000008b",
249
+ },
250
+
251
+ BPT_ROAD: {
252
+ name: "BeethovenX WETH-OP-USDC Pool",
253
+ symbol: "BPT_ROAD",
254
+ type: {
255
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
256
+ },
257
+ underlying: ["WETH", "OP", "USDC"],
258
+ poolId:
259
+ "0x39965c9dab5448482cf7e002f583c812ceb53046000100000000000000000003",
260
+ },
261
+
262
+ ECLP_wstETH_WETH: {
263
+ name: "BeethovenX ECLP wstETH-ETH Pool",
264
+ symbol: "ECLP_wstETH_WETH",
265
+ type: {
266
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
267
+ },
268
+ underlying: ["wstETH", "WETH"],
269
+ poolId:
270
+ "0x7ca75bdea9dede97f8b13c6641b768650cb837820002000000000000000000d5",
271
+ },
272
+
273
+ wstETH_WETH_BPT: {
274
+ name: "Balancer wstETH/WETH Pool (Arbitrum)",
275
+ symbol: "wstETH_WETH_BPT",
276
+ type: {
277
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
278
+ },
279
+ underlying: ["wstETH", "WETH"],
280
+ poolId:
281
+ "0x9791d590788598535278552eecd4b211bfc790cb000000000000000000000498",
282
+ },
283
+
284
+ wstETH_rETH_sfrxETH: {
285
+ name: "Balancer wstETH/rETH/sfrxETH Pool (Arbitrum)",
286
+ symbol: "wstETH_rETH_sfrxETH",
287
+ type: {
288
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
289
+ },
290
+ underlying: ["wstETH", "rETH", "sfrxETH"],
291
+ poolId:
292
+ "0x0c8972437a38b389ec83d1e666b69b8a4fcf8bfd00000000000000000000049e",
293
+ },
294
+ wstETH_rETH_cbETH: {
295
+ name: "Balancer wstETH/rETH/cbETH Pool (Arbitrum)",
296
+ symbol: "wstETH_rETH_cbETH",
297
+ type: {
298
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
299
+ },
300
+ underlying: ["cbETH", "wstETH", "rETH"],
301
+ poolId:
302
+ "0x4a2f6ae7f3e5d715689530873ec35593dc28951b000000000000000000000481",
303
+ },
304
+
305
+ cbETH_rETH_wstETH: {
306
+ name: "Balancer wstETH/rETH/cbETH Pool (Arbitrum)",
307
+ symbol: "cbETH_rETH_wstETH",
308
+ type: {
309
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
310
+ },
311
+ underlying: ["cbETH", "wstETH", "rETH"],
312
+ poolId:
313
+ "0x2d6ced12420a9af5a83765a8c48be2afcd1a8feb000000000000000000000500",
314
+ },
315
+
316
+ rETH_WETH_BPT_deprecated: {
317
+ name: "Balancer rETH/WETH Pool (Arbitrum)",
318
+ symbol: "rETH_WETH_BPT_deprecated",
319
+ type: {
320
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
321
+ },
322
+ underlying: ["WETH", "rETH"],
323
+ poolId:
324
+ "0xade4a71bb62bec25154cfc7e6ff49a513b491e81000000000000000000000497",
325
+ },
326
+
327
+ rETH_wETH_BPT: {
328
+ name: "Balancer rETH/WETH Pool (Arbitrum)",
329
+ symbol: "rETH_wETH_BPT",
330
+ type: {
331
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
332
+ },
333
+ underlying: ["WETH", "rETH"],
334
+ poolId:
335
+ "0xd0ec47c54ca5e20aaae4616c25c825c7f48d40690000000000000000000004ef",
336
+ },
337
+
338
+ "33AURA_33ARB_33BAL": {
339
+ name: "Balancer AURA/ARB/BAL Pool (Arbitrum)",
340
+ symbol: "33AURA_33ARB_33BAL",
341
+ type: {
342
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
343
+ },
344
+ underlying: ["BAL", "AURA", "ARB"],
345
+ poolId:
346
+ "0xbcaa6c053cab3dd73a2e898d89a4f84a180ae1ca000100000000000000000458",
347
+ },
348
+ ezETH_wstETH: {
349
+ name: "Balancer ezETH/wstETH (Arbitrum)",
350
+ symbol: "ezETH_wstETH",
351
+ type: {
352
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
353
+ },
354
+ underlying: ["ezETH", "wstETH"],
355
+ poolId:
356
+ "0xb61371ab661b1acec81c699854d2f911070c059e000000000000000000000516",
357
+ },
358
+ bpt_ethtri: {
359
+ name: "Ethereum Triplets",
360
+ symbol: "bpt_ethtri",
361
+ type: {
362
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
363
+ },
364
+ underlying: ["wstETH", "sfrxETH", "rETH"],
365
+ poolId:
366
+ "0x5f8893506ddc4c271837187d14a9c87964a074dc000000000000000000000106",
367
+ },
368
+ bpt_rsb: {
369
+ name: "Ringing Stable Beets",
370
+ symbol: "bpt_rsb",
371
+ type: {
372
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
373
+ },
374
+ underlying: ["USDC", "scUSD"],
375
+ poolId:
376
+ "0xcd4d2b142235d5650ffa6a38787ed0b7d7a51c0c000000000000000000000037",
377
+ },
378
+ bpt_sss: {
379
+ name: "Staked Sonic Symphony",
380
+ symbol: "bpt_sss",
381
+ type: {
382
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
383
+ },
384
+ underlying: ["wS", "stS"],
385
+ poolId:
386
+ "0x374641076b68371e69d03c417dac3e5f236c32fa000000000000000000000006",
387
+ },
388
+ BPT_scUSD_stS: {
389
+ name: "Put A Ring On It",
390
+ symbol: "BPT_scUSD_stS",
391
+ type: {
392
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
393
+ },
394
+ underlying: ["scUSD", "stS"],
395
+ poolId:
396
+ "0x25ca5451cd5a50ab1d324b5e64f32c0799661891000200000000000000000018",
397
+ },
398
+ BPT_USDCe_stS: {
399
+ name: "Staked Sonic & Circle Concerto",
400
+ symbol: "BPT_USDCe_stS",
401
+ type: {
402
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
403
+ },
404
+ underlying: ["USDC", "stS"],
405
+ poolId:
406
+ "0x713fb5036dc70012588d77a5b066f1dd05c712d7000200000000000000000041",
407
+ },
408
+ tETH_wstETH_BPT: {
409
+ name: "Balancer tETH/wstETH",
410
+ symbol: "tETH_wstETH_BPT",
411
+ type: {
412
+ AllNetworks: TokenType.BALANCER_LP_TOKEN,
413
+ },
414
+ underlying: ["tETH", "wstETH"],
415
+ poolId:
416
+ "0x1d13531bf6344c102280ce4c458781fbf14dad140000000000000000000006df",
417
+ },
418
+ };
419
+
420
+ export const isBalancerLPToken = (t: unknown): t is BalancerLPToken =>
421
+ typeof t === "string" && !!balancerLpTokens[t as BalancerLPToken];
@@ -0,0 +1,79 @@
1
+ import type { NormalToken } from "./normal";
2
+ import type { TokenBase } from "./token";
3
+ import type { TokenNetwork } from "./tokenType";
4
+ import { TokenType } from "./tokenType";
5
+
6
+ export type CompoundV2LPToken =
7
+ | "cDAI"
8
+ | "cUSDC"
9
+ | "cETH"
10
+ | "cUSDT"
11
+ | "cLINK"
12
+ | "fUSDC";
13
+
14
+ export type CompoundV2PoolTokenData = {
15
+ symbol: CompoundV2LPToken;
16
+ type: Partial<Record<TokenNetwork, TokenType.COMPOUND_V2_C_TOKEN>>;
17
+ underlying: NormalToken;
18
+ } & TokenBase;
19
+
20
+ export const compoundV2Tokens: Record<
21
+ CompoundV2LPToken,
22
+ CompoundV2PoolTokenData
23
+ > = {
24
+ cDAI: {
25
+ name: "CompoundV2 cDAI",
26
+ symbol: "cDAI",
27
+ type: {
28
+ AllNetworks: TokenType.COMPOUND_V2_C_TOKEN,
29
+ },
30
+ underlying: "DAI",
31
+ },
32
+
33
+ cUSDC: {
34
+ name: "CompoundV2 cUSDC",
35
+ symbol: "cUSDC",
36
+ type: {
37
+ AllNetworks: TokenType.COMPOUND_V2_C_TOKEN,
38
+ },
39
+ underlying: "USDC",
40
+ },
41
+
42
+ cUSDT: {
43
+ name: "CompoundV2 cUSDT",
44
+ symbol: "cUSDT",
45
+ type: {
46
+ AllNetworks: TokenType.COMPOUND_V2_C_TOKEN,
47
+ },
48
+ underlying: "USDT",
49
+ },
50
+
51
+ cETH: {
52
+ name: "CompoundV2 cETH",
53
+ symbol: "cETH",
54
+ type: {
55
+ AllNetworks: TokenType.COMPOUND_V2_C_TOKEN,
56
+ },
57
+ underlying: "WETH",
58
+ },
59
+ cLINK: {
60
+ name: "CompoundV2 cLINK",
61
+ symbol: "cLINK",
62
+ type: {
63
+ AllNetworks: TokenType.COMPOUND_V2_C_TOKEN,
64
+ },
65
+ underlying: "LINK",
66
+ },
67
+
68
+ fUSDC: {
69
+ name: "Flux fUSDC",
70
+ symbol: "fUSDC",
71
+ type: {
72
+ AllNetworks: TokenType.COMPOUND_V2_C_TOKEN,
73
+ },
74
+ underlying: "USDC",
75
+ },
76
+ };
77
+
78
+ export const isCompoundV2LPToken = (t: unknown): t is CompoundV2LPToken =>
79
+ typeof t === "string" && !!compoundV2Tokens[t as CompoundV2LPToken];