@defisaver/positions-sdk 1.0.7 → 1.0.9

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 (78) hide show
  1. package/.mocharc.json +4 -4
  2. package/.nvmrc +1 -1
  3. package/README.md +69 -69
  4. package/cjs/aaveV3/index.js +1 -1
  5. package/cjs/helpers/morphoBlueHelpers/index.js +66 -66
  6. package/cjs/markets/fluid/index.js +6 -6
  7. package/esm/aaveV3/index.js +1 -1
  8. package/esm/helpers/morphoBlueHelpers/index.js +66 -66
  9. package/esm/markets/fluid/index.js +6 -6
  10. package/package.json +54 -54
  11. package/src/aaveV2/index.ts +227 -227
  12. package/src/aaveV3/index.ts +624 -624
  13. package/src/assets/index.ts +60 -60
  14. package/src/chickenBonds/index.ts +123 -123
  15. package/src/compoundV2/index.ts +220 -220
  16. package/src/compoundV3/index.ts +291 -291
  17. package/src/config/contracts.js +1147 -1147
  18. package/src/constants/index.ts +6 -6
  19. package/src/contracts.ts +134 -134
  20. package/src/curveUsd/index.ts +239 -239
  21. package/src/eulerV2/index.ts +303 -303
  22. package/src/exchange/index.ts +17 -17
  23. package/src/fluid/index.ts +354 -354
  24. package/src/helpers/aaveHelpers/index.ts +203 -203
  25. package/src/helpers/chickenBondsHelpers/index.ts +23 -23
  26. package/src/helpers/compoundHelpers/index.ts +248 -248
  27. package/src/helpers/curveUsdHelpers/index.ts +40 -40
  28. package/src/helpers/eulerHelpers/index.ts +234 -234
  29. package/src/helpers/fluidHelpers/index.ts +56 -56
  30. package/src/helpers/index.ts +11 -11
  31. package/src/helpers/liquityV2Helpers/index.ts +80 -80
  32. package/src/helpers/llamaLendHelpers/index.ts +53 -53
  33. package/src/helpers/makerHelpers/index.ts +94 -94
  34. package/src/helpers/morphoBlueHelpers/index.ts +367 -367
  35. package/src/helpers/sparkHelpers/index.ts +154 -154
  36. package/src/index.ts +52 -52
  37. package/src/liquity/index.ts +116 -116
  38. package/src/liquityV2/index.ts +295 -295
  39. package/src/llamaLend/index.ts +275 -275
  40. package/src/maker/index.ts +117 -117
  41. package/src/markets/aave/index.ts +152 -152
  42. package/src/markets/aave/marketAssets.ts +44 -44
  43. package/src/markets/compound/index.ts +213 -213
  44. package/src/markets/compound/marketsAssets.ts +82 -82
  45. package/src/markets/curveUsd/index.ts +69 -69
  46. package/src/markets/euler/index.ts +26 -26
  47. package/src/markets/fluid/index.ts +2012 -2012
  48. package/src/markets/index.ts +27 -27
  49. package/src/markets/liquityV2/index.ts +54 -54
  50. package/src/markets/llamaLend/contractAddresses.ts +141 -141
  51. package/src/markets/llamaLend/index.ts +235 -235
  52. package/src/markets/morphoBlue/index.ts +895 -895
  53. package/src/markets/spark/index.ts +29 -29
  54. package/src/markets/spark/marketAssets.ts +10 -10
  55. package/src/moneymarket/moneymarketCommonService.ts +80 -80
  56. package/src/morphoAaveV2/index.ts +256 -256
  57. package/src/morphoAaveV3/index.ts +630 -630
  58. package/src/morphoBlue/index.ts +202 -202
  59. package/src/multicall/index.ts +33 -33
  60. package/src/services/priceService.ts +91 -91
  61. package/src/services/utils.ts +59 -59
  62. package/src/setup.ts +8 -8
  63. package/src/spark/index.ts +460 -460
  64. package/src/staking/staking.ts +217 -217
  65. package/src/types/aave.ts +275 -275
  66. package/src/types/chickenBonds.ts +45 -45
  67. package/src/types/common.ts +84 -84
  68. package/src/types/compound.ts +133 -133
  69. package/src/types/curveUsd.ts +119 -119
  70. package/src/types/euler.ts +173 -173
  71. package/src/types/fluid.ts +268 -268
  72. package/src/types/index.ts +11 -11
  73. package/src/types/liquity.ts +30 -30
  74. package/src/types/liquityV2.ts +119 -119
  75. package/src/types/llamaLend.ts +155 -155
  76. package/src/types/maker.ts +50 -50
  77. package/src/types/morphoBlue.ts +194 -194
  78. package/src/types/spark.ts +135 -135
@@ -1,27 +1,27 @@
1
- export {
2
- AaveMarkets,
3
- aaveV1AssetsDefaultMarket,
4
- aaveV2AssetsDefaultMarket,
5
- aaveV3AssetsDefaultMarket,
6
- morphoAaveV2AssetDefaultMarket,
7
- morphoAaveV3AssetEthMarket,
8
- getAaveV3MarketByMarketAddress,
9
- } from './aave';
10
- export {
11
- CompoundMarkets,
12
- compoundV2CollateralAssets,
13
- v3ETHCollAssets,
14
- v3USDbCCollAssets,
15
- v3USDCCollAssets,
16
- v3USDCeCollAssets,
17
- v3USDTCollAssets,
18
- } from './compound';
19
- export { SparkMarkets } from './spark';
20
- export { CrvUsdMarkets } from './curveUsd';
21
- export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
22
- export { LlamaLendMarkets } from './llamaLend';
23
- export { LiquityV2Markets, findLiquityV2MarketByAddress } from './liquityV2';
24
- export { EulerV2Markets } from './euler';
25
- export {
26
- FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, getFluidMarketInfoByAddress,
27
- } from './fluid';
1
+ export {
2
+ AaveMarkets,
3
+ aaveV1AssetsDefaultMarket,
4
+ aaveV2AssetsDefaultMarket,
5
+ aaveV3AssetsDefaultMarket,
6
+ morphoAaveV2AssetDefaultMarket,
7
+ morphoAaveV3AssetEthMarket,
8
+ getAaveV3MarketByMarketAddress,
9
+ } from './aave';
10
+ export {
11
+ CompoundMarkets,
12
+ compoundV2CollateralAssets,
13
+ v3ETHCollAssets,
14
+ v3USDbCCollAssets,
15
+ v3USDCCollAssets,
16
+ v3USDCeCollAssets,
17
+ v3USDTCollAssets,
18
+ } from './compound';
19
+ export { SparkMarkets } from './spark';
20
+ export { CrvUsdMarkets } from './curveUsd';
21
+ export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
22
+ export { LlamaLendMarkets } from './llamaLend';
23
+ export { LiquityV2Markets, findLiquityV2MarketByAddress } from './liquityV2';
24
+ export { EulerV2Markets } from './euler';
25
+ export {
26
+ FluidMarkets, getFluidVersionsDataForNetwork, getFluidMarketInfoById, getFTokenAddress, getFluidMarketInfoByAddress,
27
+ } from './fluid';
@@ -1,55 +1,55 @@
1
- import { compareAddresses } from '../../services/utils';
2
- import { EthAddress, NetworkNumber } from '../../types/common';
3
- import { LiquityV2MarketInfo, LiquityV2Versions } from '../../types/liquityV2';
4
-
5
- export const LIQUITY_V2_ETH_MARKET = (networkId: NetworkNumber = NetworkNumber.Eth): LiquityV2MarketInfo => ({
6
- chainIds: [NetworkNumber.Eth],
7
- label: 'Liquity V2 ETH',
8
- shortLabel: 'ETH',
9
- value: LiquityV2Versions.LiquityV2Eth,
10
- url: 'eth',
11
- debtToken: 'BOLD',
12
- collateralToken: 'ETH',
13
- marketAddress: '0x38e1f07b954cfab7239d7acab49997fbaad96476',
14
- protocolName: 'liquity-v2',
15
- });
16
-
17
- export const LIQUITY_V2_WSTETH_MARKET = (networkId: NetworkNumber = NetworkNumber.Eth): LiquityV2MarketInfo => ({
18
- chainIds: [NetworkNumber.Eth],
19
- label: 'Liquity V2 wstETH',
20
- shortLabel: 'wstETH',
21
- value: LiquityV2Versions.LiquityV2WstEth,
22
- url: 'wsteth',
23
- debtToken: 'BOLD',
24
- collateralToken: 'wstETH',
25
- marketAddress: '0x2d4ef56cb626e9a4c90c156018ba9ce269573c61',
26
- protocolName: 'liquity-v2',
27
- });
28
-
29
- export const LIQUITY_V2_RETH_MARKET = (networkId: NetworkNumber = NetworkNumber.Eth): LiquityV2MarketInfo => ({
30
- chainIds: [NetworkNumber.Eth],
31
- label: 'Liquity V2 rETH',
32
- shortLabel: 'rETH',
33
- value: LiquityV2Versions.LiquityV2REth,
34
- url: 'reth',
35
- debtToken: 'BOLD',
36
- collateralToken: 'rETH',
37
- marketAddress: '0x3b48169809dd827f22c9e0f2d71ff12ea7a94a2f',
38
- protocolName: 'liquity-v2',
39
- });
40
-
41
- export const LiquityV2Markets = (networkId: NetworkNumber) => ({
42
- [LiquityV2Versions.LiquityV2Eth]: LIQUITY_V2_ETH_MARKET(networkId),
43
- [LiquityV2Versions.LiquityV2WstEth]: LIQUITY_V2_WSTETH_MARKET(networkId),
44
- [LiquityV2Versions.LiquityV2REth]: LIQUITY_V2_RETH_MARKET(networkId),
45
- }) as const;
46
-
47
- export const findLiquityV2MarketByAddress = (marketAddress: EthAddress) => {
48
- const markets = LiquityV2Markets(NetworkNumber.Eth);
49
- for (const market of Object.values(markets)) {
50
- if (compareAddresses(market.marketAddress, marketAddress)) {
51
- return market;
52
- }
53
- }
54
- return null;
1
+ import { compareAddresses } from '../../services/utils';
2
+ import { EthAddress, NetworkNumber } from '../../types/common';
3
+ import { LiquityV2MarketInfo, LiquityV2Versions } from '../../types/liquityV2';
4
+
5
+ export const LIQUITY_V2_ETH_MARKET = (networkId: NetworkNumber = NetworkNumber.Eth): LiquityV2MarketInfo => ({
6
+ chainIds: [NetworkNumber.Eth],
7
+ label: 'Liquity V2 ETH',
8
+ shortLabel: 'ETH',
9
+ value: LiquityV2Versions.LiquityV2Eth,
10
+ url: 'eth',
11
+ debtToken: 'BOLD',
12
+ collateralToken: 'ETH',
13
+ marketAddress: '0x38e1f07b954cfab7239d7acab49997fbaad96476',
14
+ protocolName: 'liquity-v2',
15
+ });
16
+
17
+ export const LIQUITY_V2_WSTETH_MARKET = (networkId: NetworkNumber = NetworkNumber.Eth): LiquityV2MarketInfo => ({
18
+ chainIds: [NetworkNumber.Eth],
19
+ label: 'Liquity V2 wstETH',
20
+ shortLabel: 'wstETH',
21
+ value: LiquityV2Versions.LiquityV2WstEth,
22
+ url: 'wsteth',
23
+ debtToken: 'BOLD',
24
+ collateralToken: 'wstETH',
25
+ marketAddress: '0x2d4ef56cb626e9a4c90c156018ba9ce269573c61',
26
+ protocolName: 'liquity-v2',
27
+ });
28
+
29
+ export const LIQUITY_V2_RETH_MARKET = (networkId: NetworkNumber = NetworkNumber.Eth): LiquityV2MarketInfo => ({
30
+ chainIds: [NetworkNumber.Eth],
31
+ label: 'Liquity V2 rETH',
32
+ shortLabel: 'rETH',
33
+ value: LiquityV2Versions.LiquityV2REth,
34
+ url: 'reth',
35
+ debtToken: 'BOLD',
36
+ collateralToken: 'rETH',
37
+ marketAddress: '0x3b48169809dd827f22c9e0f2d71ff12ea7a94a2f',
38
+ protocolName: 'liquity-v2',
39
+ });
40
+
41
+ export const LiquityV2Markets = (networkId: NetworkNumber) => ({
42
+ [LiquityV2Versions.LiquityV2Eth]: LIQUITY_V2_ETH_MARKET(networkId),
43
+ [LiquityV2Versions.LiquityV2WstEth]: LIQUITY_V2_WSTETH_MARKET(networkId),
44
+ [LiquityV2Versions.LiquityV2REth]: LIQUITY_V2_RETH_MARKET(networkId),
45
+ }) as const;
46
+
47
+ export const findLiquityV2MarketByAddress = (marketAddress: EthAddress) => {
48
+ const markets = LiquityV2Markets(NetworkNumber.Eth);
49
+ for (const market of Object.values(markets)) {
50
+ if (compareAddresses(market.marketAddress, marketAddress)) {
51
+ return market;
52
+ }
53
+ }
54
+ return null;
55
55
  };
@@ -1,141 +1,141 @@
1
- import {
2
- LlamaLendVersions, LlamaLendVersionsType, LLVersionsArb, LLVersionsEth,
3
- } from '../../types';
4
- import { NetworkNumber } from '../../types/common';
5
-
6
- type LLAddresses = {
7
- controllerAddress: string,
8
- vaultAddress: string
9
- controllerId: number,
10
- };
11
-
12
- const ethAddresses: Record<LLVersionsEth, LLAddresses> = {
13
- [LlamaLendVersions.LLWstethCrvusd]: {
14
- controllerId: 0,
15
- controllerAddress: '0x1E0165DbD2019441aB7927C018701f3138114D71',
16
- vaultAddress: '0x8cf1DE26729cfB7137AF1A6B2a665e099EC319b5',
17
- },
18
- [LlamaLendVersions.LLWstethCrvusd2]: {
19
- controllerId: 13,
20
- controllerAddress: '0x5756A035F276a8095A922931F224F4ed06149608',
21
- vaultAddress: '0x21CF1c5Dc48C603b89907FE6a7AE83EA5e3709aF',
22
- },
23
- [LlamaLendVersions.LLSusdeCrvusd]: {
24
- controllerId: 7,
25
- controllerAddress: '0x98fc283d6636f6dcff5a817a00ac69a3add96907',
26
- vaultAddress: '0x52096539ed1391CB50C6b9e4Fd18aFd2438ED23b',
27
- },
28
- [LlamaLendVersions.LLSusdeCrvusd2]: {
29
- controllerId: 11,
30
- controllerAddress: '0xB536FEa3a01c95Dd09932440eC802A75410139D6',
31
- vaultAddress: '0x4a7999c55d3a93dAf72EA112985e57c2E3b9e95D',
32
- },
33
- [LlamaLendVersions.LLCrvCrvusd]: {
34
- controllerId: 3,
35
- controllerAddress: '0xEdA215b7666936DEd834f76f3fBC6F323295110A',
36
- vaultAddress: '0xCeA18a8752bb7e7817F9AE7565328FE415C0f2cA',
37
- },
38
- [LlamaLendVersions.LLCrvusdCrv]: {
39
- controllerId: 4,
40
- controllerAddress: '0xC510d73Ad34BeDECa8978B6914461aA7b50CF3Fc',
41
- vaultAddress: '0x4D2f44B0369f3C20c3d670D2C26b048985598450',
42
- },
43
- [LlamaLendVersions.LLTbtcCrvusd]: {
44
- controllerId: 2,
45
- controllerAddress: '0x413FD2511BAD510947a91f5c6c79EBD8138C29Fc',
46
- vaultAddress: '0xb2b23C87a4B6d1b03Ba603F7C3EB9A81fDC0AAC9',
47
- },
48
- [LlamaLendVersions.LLCrvusdTbtc]: {
49
- controllerId: 6,
50
- controllerAddress: '0xe438658874b0acf4d81c24172e137f0ee00621b8',
51
- vaultAddress: '0x99Cff9Dc26A44dc2496B4448ebE415b5E894bd30',
52
- },
53
- [LlamaLendVersions.LLWethCrvusd]: {
54
- controllerId: 1,
55
- controllerAddress: '0xaade9230aa9161880e13a38c83400d3d1995267b',
56
- vaultAddress: '0x5AE28c9197a4a6570216fC7e53E7e0221D7A0FEF',
57
- },
58
- [LlamaLendVersions.LLCrvusdWeth]: {
59
- controllerId: 5,
60
- controllerAddress: '0xa5d9137d2a1ee912469d911a8e74b6c77503bac8',
61
- vaultAddress: '0x46196C004de85c7a75C8b1bB9d54Afb0f8654A45',
62
- },
63
- [LlamaLendVersions.LLWethCrvusd2]: {
64
- controllerId: 12,
65
- controllerAddress: '0x23F5a668A9590130940eF55964ead9787976f2CC',
66
- vaultAddress: '0x8fb1c7AEDcbBc1222325C39dd5c1D2d23420CAe3',
67
- },
68
- [LlamaLendVersions.LLWbtcCrvusd]: {
69
- controllerId: 9,
70
- controllerAddress: '0xcaD85b7fe52B1939DCEebEe9bCf0b2a5Aa0cE617',
71
- vaultAddress: '0xccd37EB6374Ae5b1f0b85ac97eFf14770e0D0063',
72
- },
73
- // temp disabled
74
- // [LlamaLendVersions.LLPufethCrvusd]: {
75
- // controllerId: 10,
76
- // controllerAddress: '0x4f87158350c296955966059C50263F711cE0817C',
77
- // vaultAddress: '0xff467c6E827ebbEa64DA1ab0425021E6c89Fbe0d',
78
- // },
79
- [LlamaLendVersions.LLUsdeCrvusd]: {
80
- controllerId: 14,
81
- controllerAddress: '0x74f88Baa966407b50c10B393bBD789639EFfE78B',
82
- vaultAddress: '0xc687141c18F20f7Ba405e45328825579fDdD3195',
83
- },
84
- };
85
-
86
- const arbAddresses: Record<LLVersionsArb, LLAddresses> = {
87
- [LlamaLendVersions.LLArbCrvusd]: {
88
- controllerId: 5,
89
- controllerAddress: '0x76709bc0da299ab0234eec51385e900922ae98f5',
90
- vaultAddress: '0x65592b1F12c07D434e95c7BF87F4f2f464e950e4',
91
- },
92
- [LlamaLendVersions.LLArbCrvusd2]: {
93
- controllerId: 11,
94
- controllerAddress: '0xeCF99dE21c31eC75b4Fb97e980F9d084b1d8Da8f',
95
- vaultAddress: '0xa6C2E6A83D594e862cDB349396856f7FFE9a979B',
96
- },
97
- [LlamaLendVersions.LLFxnCrvusd]: {
98
- controllerId: 7,
99
- controllerAddress: '0x7adcc491f0b7f9bc12837b8f5edf0e580d176f1f',
100
- vaultAddress: '0xebA51f6472F4cE1C47668c2474ab8f84B32E1ae7',
101
- },
102
- [LlamaLendVersions.LLWbtcCrvusd]: {
103
- controllerId: 1,
104
- controllerAddress: '0x013be86e1cdb0f384daf24bd974fe75edffe6b68',
105
- vaultAddress: '0x60D38b12d22BF423F28082bf396ff8F28cC506B1',
106
- },
107
- [LlamaLendVersions.LLWbtcCrvusd2]: {
108
- controllerId: 10,
109
- controllerAddress: '0xb9aDddCf4e01c2f64F8F2CD9a050DC35585ea053',
110
- vaultAddress: '0xe07f1151887b8FDC6800f737252f6b91b46b5865',
111
- },
112
- [LlamaLendVersions.LLCrvCrvusd]: {
113
- controllerId: 4,
114
- controllerAddress: '0x88f88e937db48bbfe8e3091718576430704e47ab',
115
- vaultAddress: '0xeEaF2ccB73A01deb38Eca2947d963D64CfDe6A32',
116
- },
117
- [LlamaLendVersions.LLWethCrvusd]: {
118
- controllerId: 0,
119
- controllerAddress: '0xb5b6f0e69c283aa32425fa18220e64283b51f0a4',
120
- vaultAddress: '0x49014A8eB1585cBee6A7a9A50C3b81017BF6Cc4d',
121
- },
122
- [LlamaLendVersions.LLWethCrvusd2]: {
123
- controllerId: 9,
124
- controllerAddress: '0xB5c6082d3307088C98dA8D79991501E113e6365d',
125
- vaultAddress: '0xd3cA9BEc3e681b0f578FD87f20eBCf2B7e0bb739',
126
- },
127
- };
128
-
129
- export const getLLamaLendAddresses = (networkId: NetworkNumber, version: LlamaLendVersionsType) => {
130
- let addresses: LLAddresses | undefined;
131
- if (networkId === NetworkNumber.Eth) {
132
- addresses = ethAddresses[version as any as LLVersionsEth];
133
- } else if (networkId === NetworkNumber.Arb) {
134
- addresses = arbAddresses[version as any as LLVersionsArb];
135
- } else {
136
- throw new Error(`Invalid LlamaLend network ${networkId} for version ${version}`);
137
- }
138
- return addresses;
139
- };
140
-
141
-
1
+ import {
2
+ LlamaLendVersions, LlamaLendVersionsType, LLVersionsArb, LLVersionsEth,
3
+ } from '../../types';
4
+ import { NetworkNumber } from '../../types/common';
5
+
6
+ type LLAddresses = {
7
+ controllerAddress: string,
8
+ vaultAddress: string
9
+ controllerId: number,
10
+ };
11
+
12
+ const ethAddresses: Record<LLVersionsEth, LLAddresses> = {
13
+ [LlamaLendVersions.LLWstethCrvusd]: {
14
+ controllerId: 0,
15
+ controllerAddress: '0x1E0165DbD2019441aB7927C018701f3138114D71',
16
+ vaultAddress: '0x8cf1DE26729cfB7137AF1A6B2a665e099EC319b5',
17
+ },
18
+ [LlamaLendVersions.LLWstethCrvusd2]: {
19
+ controllerId: 13,
20
+ controllerAddress: '0x5756A035F276a8095A922931F224F4ed06149608',
21
+ vaultAddress: '0x21CF1c5Dc48C603b89907FE6a7AE83EA5e3709aF',
22
+ },
23
+ [LlamaLendVersions.LLSusdeCrvusd]: {
24
+ controllerId: 7,
25
+ controllerAddress: '0x98fc283d6636f6dcff5a817a00ac69a3add96907',
26
+ vaultAddress: '0x52096539ed1391CB50C6b9e4Fd18aFd2438ED23b',
27
+ },
28
+ [LlamaLendVersions.LLSusdeCrvusd2]: {
29
+ controllerId: 11,
30
+ controllerAddress: '0xB536FEa3a01c95Dd09932440eC802A75410139D6',
31
+ vaultAddress: '0x4a7999c55d3a93dAf72EA112985e57c2E3b9e95D',
32
+ },
33
+ [LlamaLendVersions.LLCrvCrvusd]: {
34
+ controllerId: 3,
35
+ controllerAddress: '0xEdA215b7666936DEd834f76f3fBC6F323295110A',
36
+ vaultAddress: '0xCeA18a8752bb7e7817F9AE7565328FE415C0f2cA',
37
+ },
38
+ [LlamaLendVersions.LLCrvusdCrv]: {
39
+ controllerId: 4,
40
+ controllerAddress: '0xC510d73Ad34BeDECa8978B6914461aA7b50CF3Fc',
41
+ vaultAddress: '0x4D2f44B0369f3C20c3d670D2C26b048985598450',
42
+ },
43
+ [LlamaLendVersions.LLTbtcCrvusd]: {
44
+ controllerId: 2,
45
+ controllerAddress: '0x413FD2511BAD510947a91f5c6c79EBD8138C29Fc',
46
+ vaultAddress: '0xb2b23C87a4B6d1b03Ba603F7C3EB9A81fDC0AAC9',
47
+ },
48
+ [LlamaLendVersions.LLCrvusdTbtc]: {
49
+ controllerId: 6,
50
+ controllerAddress: '0xe438658874b0acf4d81c24172e137f0ee00621b8',
51
+ vaultAddress: '0x99Cff9Dc26A44dc2496B4448ebE415b5E894bd30',
52
+ },
53
+ [LlamaLendVersions.LLWethCrvusd]: {
54
+ controllerId: 1,
55
+ controllerAddress: '0xaade9230aa9161880e13a38c83400d3d1995267b',
56
+ vaultAddress: '0x5AE28c9197a4a6570216fC7e53E7e0221D7A0FEF',
57
+ },
58
+ [LlamaLendVersions.LLCrvusdWeth]: {
59
+ controllerId: 5,
60
+ controllerAddress: '0xa5d9137d2a1ee912469d911a8e74b6c77503bac8',
61
+ vaultAddress: '0x46196C004de85c7a75C8b1bB9d54Afb0f8654A45',
62
+ },
63
+ [LlamaLendVersions.LLWethCrvusd2]: {
64
+ controllerId: 12,
65
+ controllerAddress: '0x23F5a668A9590130940eF55964ead9787976f2CC',
66
+ vaultAddress: '0x8fb1c7AEDcbBc1222325C39dd5c1D2d23420CAe3',
67
+ },
68
+ [LlamaLendVersions.LLWbtcCrvusd]: {
69
+ controllerId: 9,
70
+ controllerAddress: '0xcaD85b7fe52B1939DCEebEe9bCf0b2a5Aa0cE617',
71
+ vaultAddress: '0xccd37EB6374Ae5b1f0b85ac97eFf14770e0D0063',
72
+ },
73
+ // temp disabled
74
+ // [LlamaLendVersions.LLPufethCrvusd]: {
75
+ // controllerId: 10,
76
+ // controllerAddress: '0x4f87158350c296955966059C50263F711cE0817C',
77
+ // vaultAddress: '0xff467c6E827ebbEa64DA1ab0425021E6c89Fbe0d',
78
+ // },
79
+ [LlamaLendVersions.LLUsdeCrvusd]: {
80
+ controllerId: 14,
81
+ controllerAddress: '0x74f88Baa966407b50c10B393bBD789639EFfE78B',
82
+ vaultAddress: '0xc687141c18F20f7Ba405e45328825579fDdD3195',
83
+ },
84
+ };
85
+
86
+ const arbAddresses: Record<LLVersionsArb, LLAddresses> = {
87
+ [LlamaLendVersions.LLArbCrvusd]: {
88
+ controllerId: 5,
89
+ controllerAddress: '0x76709bc0da299ab0234eec51385e900922ae98f5',
90
+ vaultAddress: '0x65592b1F12c07D434e95c7BF87F4f2f464e950e4',
91
+ },
92
+ [LlamaLendVersions.LLArbCrvusd2]: {
93
+ controllerId: 11,
94
+ controllerAddress: '0xeCF99dE21c31eC75b4Fb97e980F9d084b1d8Da8f',
95
+ vaultAddress: '0xa6C2E6A83D594e862cDB349396856f7FFE9a979B',
96
+ },
97
+ [LlamaLendVersions.LLFxnCrvusd]: {
98
+ controllerId: 7,
99
+ controllerAddress: '0x7adcc491f0b7f9bc12837b8f5edf0e580d176f1f',
100
+ vaultAddress: '0xebA51f6472F4cE1C47668c2474ab8f84B32E1ae7',
101
+ },
102
+ [LlamaLendVersions.LLWbtcCrvusd]: {
103
+ controllerId: 1,
104
+ controllerAddress: '0x013be86e1cdb0f384daf24bd974fe75edffe6b68',
105
+ vaultAddress: '0x60D38b12d22BF423F28082bf396ff8F28cC506B1',
106
+ },
107
+ [LlamaLendVersions.LLWbtcCrvusd2]: {
108
+ controllerId: 10,
109
+ controllerAddress: '0xb9aDddCf4e01c2f64F8F2CD9a050DC35585ea053',
110
+ vaultAddress: '0xe07f1151887b8FDC6800f737252f6b91b46b5865',
111
+ },
112
+ [LlamaLendVersions.LLCrvCrvusd]: {
113
+ controllerId: 4,
114
+ controllerAddress: '0x88f88e937db48bbfe8e3091718576430704e47ab',
115
+ vaultAddress: '0xeEaF2ccB73A01deb38Eca2947d963D64CfDe6A32',
116
+ },
117
+ [LlamaLendVersions.LLWethCrvusd]: {
118
+ controllerId: 0,
119
+ controllerAddress: '0xb5b6f0e69c283aa32425fa18220e64283b51f0a4',
120
+ vaultAddress: '0x49014A8eB1585cBee6A7a9A50C3b81017BF6Cc4d',
121
+ },
122
+ [LlamaLendVersions.LLWethCrvusd2]: {
123
+ controllerId: 9,
124
+ controllerAddress: '0xB5c6082d3307088C98dA8D79991501E113e6365d',
125
+ vaultAddress: '0xd3cA9BEc3e681b0f578FD87f20eBCf2B7e0bb739',
126
+ },
127
+ };
128
+
129
+ export const getLLamaLendAddresses = (networkId: NetworkNumber, version: LlamaLendVersionsType) => {
130
+ let addresses: LLAddresses | undefined;
131
+ if (networkId === NetworkNumber.Eth) {
132
+ addresses = ethAddresses[version as any as LLVersionsEth];
133
+ } else if (networkId === NetworkNumber.Arb) {
134
+ addresses = arbAddresses[version as any as LLVersionsArb];
135
+ } else {
136
+ throw new Error(`Invalid LlamaLend network ${networkId} for version ${version}`);
137
+ }
138
+ return addresses;
139
+ };
140
+
141
+