@defisaver/positions-sdk 0.0.165 → 0.0.166-dev

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 (83) hide show
  1. package/cjs/config/contracts.d.ts +72 -0
  2. package/cjs/config/contracts.js +6 -0
  3. package/cjs/contracts.d.ts +1 -0
  4. package/cjs/contracts.js +2 -1
  5. package/cjs/eulerV2/index.d.ts +40 -0
  6. package/cjs/eulerV2/index.js +207 -0
  7. package/cjs/helpers/eulerHelpers/index.d.ts +27 -0
  8. package/cjs/helpers/eulerHelpers/index.js +232 -0
  9. package/cjs/helpers/index.d.ts +1 -0
  10. package/cjs/helpers/index.js +2 -1
  11. package/cjs/index.d.ts +2 -1
  12. package/cjs/index.js +3 -1
  13. package/cjs/markets/compound/marketsAssets.js +3 -3
  14. package/cjs/markets/euler/index.d.ts +10 -0
  15. package/cjs/markets/euler/index.js +41 -0
  16. package/cjs/markets/index.d.ts +1 -0
  17. package/cjs/markets/index.js +3 -1
  18. package/cjs/markets/morphoBlue/index.d.ts +0 -4
  19. package/cjs/markets/morphoBlue/index.js +1 -36
  20. package/cjs/markets/spark/marketAssets.js +1 -1
  21. package/cjs/services/utils.d.ts +2 -0
  22. package/cjs/services/utils.js +4 -1
  23. package/cjs/staking/staking.js +1 -22
  24. package/cjs/types/contracts/generated/EulerV2View.d.ts +333 -0
  25. package/cjs/types/contracts/generated/EulerV2View.js +5 -0
  26. package/cjs/types/contracts/generated/index.d.ts +1 -0
  27. package/cjs/types/euler.d.ts +148 -0
  28. package/cjs/types/euler.js +15 -0
  29. package/cjs/types/index.d.ts +1 -0
  30. package/cjs/types/index.js +1 -0
  31. package/cjs/types/morphoBlue.d.ts +1 -3
  32. package/cjs/types/morphoBlue.js +0 -2
  33. package/esm/config/contracts.d.ts +72 -0
  34. package/esm/config/contracts.js +6 -0
  35. package/esm/contracts.d.ts +1 -0
  36. package/esm/contracts.js +1 -0
  37. package/esm/eulerV2/index.d.ts +40 -0
  38. package/esm/eulerV2/index.js +199 -0
  39. package/esm/helpers/eulerHelpers/index.d.ts +27 -0
  40. package/esm/helpers/eulerHelpers/index.js +219 -0
  41. package/esm/helpers/index.d.ts +1 -0
  42. package/esm/helpers/index.js +1 -0
  43. package/esm/index.d.ts +2 -1
  44. package/esm/index.js +2 -1
  45. package/esm/markets/compound/marketsAssets.js +3 -3
  46. package/esm/markets/euler/index.d.ts +10 -0
  47. package/esm/markets/euler/index.js +34 -0
  48. package/esm/markets/index.d.ts +1 -0
  49. package/esm/markets/index.js +1 -0
  50. package/esm/markets/morphoBlue/index.d.ts +0 -4
  51. package/esm/markets/morphoBlue/index.js +0 -33
  52. package/esm/markets/spark/marketAssets.js +1 -1
  53. package/esm/services/utils.d.ts +2 -0
  54. package/esm/services/utils.js +2 -0
  55. package/esm/staking/staking.js +1 -22
  56. package/esm/types/contracts/generated/EulerV2View.d.ts +333 -0
  57. package/esm/types/contracts/generated/EulerV2View.js +4 -0
  58. package/esm/types/contracts/generated/index.d.ts +1 -0
  59. package/esm/types/euler.d.ts +148 -0
  60. package/esm/types/euler.js +12 -0
  61. package/esm/types/index.d.ts +1 -0
  62. package/esm/types/index.js +1 -0
  63. package/esm/types/morphoBlue.d.ts +1 -3
  64. package/esm/types/morphoBlue.js +0 -2
  65. package/package.json +5 -9
  66. package/src/config/contracts.js +6 -0
  67. package/src/contracts.ts +2 -0
  68. package/src/eulerV2/index.ts +286 -0
  69. package/src/helpers/eulerHelpers/index.ts +231 -0
  70. package/src/helpers/index.ts +2 -1
  71. package/src/index.ts +2 -0
  72. package/src/markets/compound/marketsAssets.ts +3 -3
  73. package/src/markets/euler/index.ts +38 -0
  74. package/src/markets/index.ts +3 -1
  75. package/src/markets/morphoBlue/index.ts +0 -37
  76. package/src/markets/spark/marketAssets.ts +1 -1
  77. package/src/services/utils.ts +3 -0
  78. package/src/staking/staking.ts +2 -24
  79. package/src/types/contracts/generated/EulerV2View.ts +434 -0
  80. package/src/types/contracts/generated/index.ts +1 -0
  81. package/src/types/euler.ts +171 -0
  82. package/src/types/index.ts +2 -1
  83. package/src/types/morphoBlue.ts +0 -2
package/esm/index.d.ts CHANGED
@@ -18,5 +18,6 @@ import * as chickenBonds from './chickenBonds';
18
18
  import * as exchange from './exchange';
19
19
  import * as morphoBlue from './morphoBlue';
20
20
  import * as llamaLend from './llamaLend';
21
+ import * as eulerV2 from './eulerV2';
21
22
  export * from './types';
22
- export { aaveV2, aaveV3, morphoAaveV2, morphoAaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, maker, chickenBonds, exchange, staking, multicall, moneymarket, markets, helpers, morphoBlue, llamaLend, };
23
+ export { aaveV2, aaveV3, morphoAaveV2, morphoAaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, maker, chickenBonds, exchange, staking, multicall, moneymarket, markets, helpers, morphoBlue, llamaLend, eulerV2, };
package/esm/index.js CHANGED
@@ -18,5 +18,6 @@ import * as chickenBonds from './chickenBonds';
18
18
  import * as exchange from './exchange';
19
19
  import * as morphoBlue from './morphoBlue';
20
20
  import * as llamaLend from './llamaLend';
21
+ import * as eulerV2 from './eulerV2';
21
22
  export * from './types';
22
- export { aaveV2, aaveV3, morphoAaveV2, morphoAaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, maker, chickenBonds, exchange, staking, multicall, moneymarket, markets, helpers, morphoBlue, llamaLend, };
23
+ export { aaveV2, aaveV3, morphoAaveV2, morphoAaveV3, compoundV2, compoundV3, spark, curveUsd, liquity, maker, chickenBonds, exchange, staking, multicall, moneymarket, markets, helpers, morphoBlue, llamaLend, eulerV2, };
@@ -4,7 +4,7 @@ export const compoundV2CollateralAssets = [
4
4
  'cETH', 'cDAI', 'cBAT', 'cZRX', 'cUSDC', 'cWBTC Legacy', 'cWBTC', 'cUSDT',
5
5
  'cTUSD', 'cLINK', 'cUSDP', 'cUNI', 'cCOMP', 'cMKR', 'cSUSHI', 'cAAVE', 'cYFI',
6
6
  ].map((symbol) => getAssetInfo(symbol));
7
- export const v3USDCCollAssetsEth = ['COMP', 'WBTC', 'ETH', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC'];
7
+ export const v3USDCCollAssetsEth = ['COMP', 'WBTC', 'ETH', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'rswETH'];
8
8
  export const v3USDCCollAssetsArb = ['ARB', 'ETH', 'GMX', 'WBTC', 'wstETH', 'ezETH'];
9
9
  export const v3USDCCollAssetsBase = ['ETH', 'cbETH', 'wstETH', 'cbBTC'];
10
10
  export const v3USDCCollAssetsOpt = ['ETH', 'OP', 'WBTC', 'wstETH'];
@@ -23,7 +23,7 @@ export const v3USDCeCollAssets = {
23
23
  [NetworkNumber.Arb]: v3USDCeCollAssetsArb,
24
24
  [NetworkNumber.Base]: [],
25
25
  };
26
- export const v3ETHCollAssetsEth = ['cbETH', 'wstETH', 'rETH', 'rsETH', 'weETH', 'osETH', 'WBTC', 'ezETH', 'cbBTC', 'rswETH', 'tBTC'];
26
+ export const v3ETHCollAssetsEth = ['cbETH', 'wstETH', 'rETH', 'rsETH', 'weETH', 'osETH', 'WBTC', 'ezETH', 'cbBTC', 'rswETH'];
27
27
  export const v3ETHCollAssetsBase = ['cbETH', 'ezETH', 'wstETH', 'USDC', 'weETH', 'wrsETH', 'cbBTC'];
28
28
  export const v3ETHCollAssetsArb = ['weETH', 'rETH', 'wstETH', 'WBTC', 'rsETH', 'ezETH', 'USDC', 'USDT'];
29
29
  export const v3ETHCollAssetsOpt = ['rETH', 'wstETH', 'WBTC', 'ezETH', 'USDC', 'USDT', 'weETH', 'wrsETH'];
@@ -42,7 +42,7 @@ export const v3USDbCCollAssets = {
42
42
  [NetworkNumber.Arb]: [],
43
43
  [NetworkNumber.Base]: v3USDbCCollAssetsBase,
44
44
  };
45
- export const v3USDTCollAssetsEth = ['COMP', 'ETH', 'WBTC', 'UNI', 'LINK', 'wstETH', 'cbBTC', 'tBTC'];
45
+ export const v3USDTCollAssetsEth = ['ETH', 'WBTC', 'wstETH', 'COMP', 'UNI', 'LINK', 'cbBTC'];
46
46
  export const v3USDTCollAssetsArb = ['ETH', 'WBTC', 'wstETH', 'ARB', 'GMX'];
47
47
  export const v3USDTCollAssetsOpt = ['ETH', 'WBTC', 'OP', 'wstETH'];
48
48
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
@@ -0,0 +1,10 @@
1
+ import { NetworkNumber } from '../../types/common';
2
+ import { EulerV2Market } from '../../types';
3
+ export declare const eUSDC2: (networkId: NetworkNumber) => EulerV2Market;
4
+ export declare const eUSDC8: (networkId: NetworkNumber) => EulerV2Market;
5
+ export declare const eWETH2: (networkId: NetworkNumber) => EulerV2Market;
6
+ export declare const EulerV2Markets: (networkId: NetworkNumber) => {
7
+ readonly "eUSDC-2": EulerV2Market;
8
+ readonly "eUSDC-8": EulerV2Market;
9
+ readonly "eWETH-2": EulerV2Market;
10
+ };
@@ -0,0 +1,34 @@
1
+ import { NetworkNumber } from '../../types/common';
2
+ import { EulerV2Versions } from '../../types';
3
+ export const eUSDC2 = (networkId) => ({
4
+ chainIds: [NetworkNumber.Eth],
5
+ label: 'Euler Prime USDC',
6
+ shortLabel: 'eUSDC-2',
7
+ value: EulerV2Versions.eUSDC2,
8
+ asset: 'USDC',
9
+ secondLabel: 'Market',
10
+ marketAddress: '0x797DD80692c3b2dAdabCe8e30C07fDE5307D48a9',
11
+ });
12
+ export const eUSDC8 = (networkId) => ({
13
+ chainIds: [NetworkNumber.Eth],
14
+ label: 'Stablecoin Maxi USDC',
15
+ shortLabel: 'eUSDC-8',
16
+ value: EulerV2Versions.eUSDC8,
17
+ asset: 'USDC',
18
+ secondLabel: 'Market',
19
+ marketAddress: '0xce45EF0414dE3516cAF1BCf937bF7F2Cf67873De',
20
+ });
21
+ export const eWETH2 = (networkId) => ({
22
+ chainIds: [NetworkNumber.Eth],
23
+ label: 'Euler Prime WETH',
24
+ shortLabel: 'eWETH-2',
25
+ value: EulerV2Versions.eWETH2,
26
+ asset: 'WETH',
27
+ secondLabel: 'Market',
28
+ marketAddress: '0xD8b27CF359b7D15710a5BE299AF6e7Bf904984C2',
29
+ });
30
+ export const EulerV2Markets = (networkId) => ({
31
+ [EulerV2Versions.eUSDC2]: eUSDC2(networkId),
32
+ [EulerV2Versions.eUSDC8]: eUSDC8(networkId),
33
+ [EulerV2Versions.eWETH2]: eWETH2(networkId),
34
+ });
@@ -4,3 +4,4 @@ export { SparkMarkets } from './spark';
4
4
  export { CrvUsdMarkets } from './curveUsd';
5
5
  export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
6
6
  export { LlamaLendMarkets } from './llamaLend';
7
+ export { EulerV2Markets } from './euler';
@@ -4,3 +4,4 @@ export { SparkMarkets } from './spark';
4
4
  export { CrvUsdMarkets } from './curveUsd';
5
5
  export { MorphoBlueMarkets, findMorphoBlueMarket } from './morphoBlue';
6
6
  export { LlamaLendMarkets } from './llamaLend';
7
+ export { EulerV2Markets } from './euler';
@@ -30,7 +30,6 @@ export declare const MORPHO_BLUE_USDE_DAI_770: (networkId?: NetworkNumber) => Mo
30
30
  export declare const MORPHO_BLUE_USDE_DAI_860: (networkId?: NetworkNumber) => MorphoBlueMarketData;
31
31
  export declare const MORPHO_BLUE_USDE_DAI_915: (networkId?: NetworkNumber) => MorphoBlueMarketData;
32
32
  export declare const MORPHO_BLUE_USDE_DAI_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
33
- export declare const MORPHO_BLUE_RETH_ETH_945: (networkId?: NetworkNumber) => MorphoBlueMarketData;
34
33
  export declare const MORPHO_BLUE_CBETH_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
35
34
  export declare const MORPHO_BLUE_WSTETH_ETH_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
36
35
  export declare const MORPHO_BLUE_WSTETH_ETH_965_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
@@ -42,7 +41,6 @@ export declare const MORPHO_BLUE_RETH_USDC_860_BASE: (networkId?: NetworkNumber)
42
41
  export declare const MORPHO_BLUE_RETH_ETH_945_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
43
42
  export declare const MORPHO_BLUE_CBBTC_ETH_915_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
44
43
  export declare const MORPHO_BLUE_CBBTC_USDC_860_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
45
- export declare const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE: (networkId?: NetworkNumber) => MorphoBlueMarketData;
46
44
  export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
47
45
  readonly morphobluewstethusdc: MorphoBlueMarketData;
48
46
  readonly morphobluesdaiusdc: MorphoBlueMarketData;
@@ -63,7 +61,6 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
63
61
  readonly morphobluetbtcusdc: MorphoBlueMarketData;
64
62
  readonly morphobluecbbtceth: MorphoBlueMarketData;
65
63
  readonly morphobluecbbtcusdc: MorphoBlueMarketData;
66
- readonly morphoblueretheth_945: MorphoBlueMarketData;
67
64
  readonly morphobluewstetheth_945: MorphoBlueMarketData;
68
65
  readonly morphobluewstetheth_945_exchange_rate: MorphoBlueMarketData;
69
66
  readonly morphobluewstetheth_965_exchange_rate: MorphoBlueMarketData;
@@ -82,7 +79,6 @@ export declare const MorphoBlueMarkets: (networkId: NetworkNumber) => {
82
79
  readonly morphoblueretheth_945_base: MorphoBlueMarketData;
83
80
  readonly morphobluecbbtceth_915_base: MorphoBlueMarketData;
84
81
  readonly morphobluecbbtcusdc_860_base: MorphoBlueMarketData;
85
- readonly morphobluewsuperoethbweth_915_base: MorphoBlueMarketData;
86
82
  readonly morphobluecbetheth_945_base: MorphoBlueMarketData;
87
83
  readonly morphobluecbetheth_965_base: MorphoBlueMarketData;
88
84
  readonly morphobluewstetheth_945_base: MorphoBlueMarketData;
@@ -454,21 +454,6 @@ export const MORPHO_BLUE_USDE_DAI_945 = (networkId = NetworkNumber.Eth) => ({
454
454
  marketId: '0xdb760246f6859780f6c1b272d47a8f64710777121118e56e0cdb4b8b744a3094',
455
455
  protocolName: 'morpho-blue',
456
456
  });
457
- export const MORPHO_BLUE_RETH_ETH_945 = (networkId = NetworkNumber.Eth) => ({
458
- chainIds: [1],
459
- label: 'Morpho',
460
- shortLabel: 'rETH/ETH',
461
- value: MorphoBlueVersions.MorphoBlueREthEth_945,
462
- url: 'retheth-3c83f77b',
463
- loanToken: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
464
- collateralToken: '0xae78736Cd615f374D3085123A210448E74Fc6393',
465
- oracle: '0x1b4A3F92e5Fffd1d35A98751c9FE4472483579bB',
466
- oracleType: MorphoBlueOracleType.MARKET_RATE,
467
- irm: '0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC',
468
- lltv: 0.945,
469
- marketId: '0x3c83f77bde9541f8d3d82533b19bbc1f97eb2f1098bb991728acbfbede09cc5d',
470
- protocolName: 'morpho-blue',
471
- });
472
457
  // BASE
473
458
  export const MORPHO_BLUE_CBETH_USDC_860_BASE = (networkId = NetworkNumber.Eth) => ({
474
459
  chainIds: [NetworkNumber.Base],
@@ -635,21 +620,6 @@ export const MORPHO_BLUE_CBBTC_USDC_860_BASE = (networkId = NetworkNumber.Eth) =
635
620
  marketId: '0x9103c3b4e834476c9a62ea009ba2c884ee42e94e6e314a26f04d312434191836',
636
621
  protocolName: 'morpho-blue',
637
622
  });
638
- export const MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE = (networkId = NetworkNumber.Eth) => ({
639
- chainIds: [NetworkNumber.Base],
640
- label: 'Morpho',
641
- shortLabel: 'wsuperOETHb/WETH',
642
- value: MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base,
643
- url: 'wsuperoethbweth-144bf18d',
644
- loanToken: '0x4200000000000000000000000000000000000006',
645
- collateralToken: '0x7FcD174E80f264448ebeE8c88a7C4476AAF58Ea6',
646
- oracle: '0x28C964c985fe84736fAdc7Cf0bBd58B54bc7CF93',
647
- oracleType: MorphoBlueOracleType.MARKET_RATE,
648
- irm: '0x46415998764C29aB2a25CbeA6254146D50D22687',
649
- lltv: 0.915,
650
- marketId: '0x144bf18d6bf4c59602548a825034f73bf1d20177fc5f975fc69d5a5eba929b45',
651
- protocolName: 'morpho-blue',
652
- });
653
623
  export const MorphoBlueMarkets = (networkId) => ({
654
624
  [MorphoBlueVersions.MorphoBlueWstEthUSDC]: MORPHO_BLUE_WSTETH_USDC(networkId),
655
625
  [MorphoBlueVersions.MorphoBlueSDAIUSDC]: MORPHO_BLUE_SDAI_USDC(networkId),
@@ -670,7 +640,6 @@ export const MorphoBlueMarkets = (networkId) => ({
670
640
  [MorphoBlueVersions.MorphoBlueTBTCUSDC]: MORPHO_BLUE_TBTC_USDC(networkId),
671
641
  [MorphoBlueVersions.MorphoBlueCbBTCEth_915]: MORPHO_BLUE_CBBTC_ETH_915(networkId),
672
642
  [MorphoBlueVersions.MorphoBlueCbBTCUSDC_860]: MORPHO_BLUE_CBBTC_USDC_860(networkId),
673
- [MorphoBlueVersions.MorphoBlueREthEth_945]: MORPHO_BLUE_RETH_ETH_945(networkId),
674
643
  // wstETH/WETH
675
644
  [MorphoBlueVersions.MorphoBlueWstEthEth_945]: MORPHO_BLUE_WSTETH_ETH_945(networkId),
676
645
  [MorphoBlueVersions.MorphoBlueWstEthEth_945_Exchange_Rate]: MORPHO_BLUE_WSTETH_ETH_945_EXCHANGE_RATE(networkId),
@@ -693,8 +662,6 @@ export const MorphoBlueMarkets = (networkId) => ({
693
662
  [MorphoBlueVersions.MorphoBlueREthEth_945_Base]: MORPHO_BLUE_RETH_ETH_945_BASE(networkId),
694
663
  [MorphoBlueVersions.MorphoBlueCbBTCEth_915_Base]: MORPHO_BLUE_CBBTC_ETH_915_BASE(networkId),
695
664
  [MorphoBlueVersions.MorphoBlueCbBTCUSDC_860_Base]: MORPHO_BLUE_CBBTC_USDC_860_BASE(networkId),
696
- // wsuperOETHb/WETH Base
697
- [MorphoBlueVersions.MorphoBlueWsuperOETHbWETH_915_Base]: MORPHO_BLUE_WSUPEROETHB_WETH_915_BASE(networkId),
698
665
  // cbETH/WETH Base
699
666
  [MorphoBlueVersions.MorphoBlueCbEthEth_945_Base]: MORPHO_BLUE_CBETH_ETH_945_BASE(networkId),
700
667
  [MorphoBlueVersions.MorphoBlueCbEthEth_965_Base]: MORPHO_BLUE_CBETH_ETH_965_BASE(networkId),
@@ -1,5 +1,5 @@
1
1
  import { NetworkNumber } from '../../types/common';
2
- export const sparkAssetsDefaultMarketEth = ['DAI', 'sDAI', 'USDC', 'ETH', 'wstETH', 'WBTC', 'GNO', 'rETH', 'USDT', 'weETH', 'cbBTC', 'sUSDS'];
2
+ export const sparkAssetsDefaultMarketEth = ['DAI', 'sDAI', 'USDC', 'ETH', 'wstETH', 'WBTC', 'GNO', 'rETH', 'USDT', 'weETH', 'cbBTC'];
3
3
  // @dev Keep assets in array, do not assign directly, so we can parse it and edit it programmatically with `scripts/updateMarkets`
4
4
  export const sparkAssetsDefaultMarket = {
5
5
  [NetworkNumber.Eth]: sparkAssetsDefaultMarketEth,
@@ -20,3 +20,5 @@ export declare const bytesToString: (hex: string) => string;
20
20
  */
21
21
  export declare const mapRange: (input: number | string, minInput: number | string, maxInput: number | string, minOutput: number | string, maxOutput: number | string) => number;
22
22
  export declare const isEnabledOnBitmap: (bitmap: number, assetId: number) => bigint;
23
+ export declare const MAXUINT: string;
24
+ export declare const isMaxuint: (amount: string) => boolean;
@@ -33,3 +33,5 @@ export const mapRange = (input, minInput, maxInput, minOutput, maxOutput) => {
33
33
  };
34
34
  // eslint-disable-next-line no-bitwise
35
35
  export const isEnabledOnBitmap = (bitmap, assetId) => (BigInt(bitmap) >> BigInt(assetId)) & BigInt(1);
36
+ export const MAXUINT = '115792089237316195423570985008687907853269984665640564039457584007913129639935';
37
+ export const isMaxuint = (amount) => compareAddresses(MAXUINT, amount);
@@ -76,32 +76,13 @@ export const getDsrApy = (web3, blockNumber = 'latest') => __awaiter(void 0, voi
76
76
  .mul(100)
77
77
  .toString();
78
78
  });
79
- const getSuperOETHApy = () => __awaiter(void 0, void 0, void 0, function* () {
80
- console.log('getSuperOETHApy');
81
- const res = yield fetch('https://origin.squids.live/origin-squid/graphql', {
82
- method: 'POST',
83
- headers: {
84
- 'Content-Type': 'application/json',
85
- },
86
- body: JSON.stringify({
87
- query: '\n query OTokenApy($chainId: Int!, $token: String!) {\n oTokenApies(\n limit: 1\n orderBy: timestamp_DESC\n where: {chainId_eq: $chainId, otoken_containsInsensitive: $token}\n ) {\n apy7DayAvg\n apy14DayAvg\n apy30DayAvg\n apr\n apy\n }\n}\n ',
88
- variables: {
89
- token: '0xdbfefd2e8460a6ee4955a68582f85708baea60a3',
90
- chainId: 8453,
91
- },
92
- }),
93
- });
94
- const data = yield res.json();
95
- return new Dec(data.data.oTokenApies[0].apy).mul(100).toString();
96
- });
97
79
  const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function* () {
98
80
  const res = yield fetch(`https://app.defisaver.com/api/staking/apy?asset=${asset}`);
99
81
  const data = yield res.json();
100
82
  return data.apy;
101
83
  });
102
- export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb'];
84
+ export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH'];
103
85
  export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = undefined) => {
104
- console.log('getStakingApy', asset, blockNumber, fromBlock);
105
86
  try {
106
87
  if (asset === 'stETH' || asset === 'wstETH')
107
88
  return getStETHApr(web3, fromBlock, blockNumber);
@@ -125,8 +106,6 @@ export const getStakingApy = (asset, web3, blockNumber = 'latest', fromBlock = u
125
106
  return getApyFromDfsApi('rsETH');
126
107
  if (asset === 'pufETH')
127
108
  return getApyFromDfsApi('pufETH');
128
- if (asset === 'wsuperOETHb')
129
- return getSuperOETHApy();
130
109
  }
131
110
  catch (e) {
132
111
  console.error(`Failed to fetch APY for ${asset}`);
@@ -0,0 +1,333 @@
1
+ /// <reference types="node" />
2
+ import type BN from "bn.js";
3
+ import type { ContractOptions } from "web3-eth-contract";
4
+ import type { EventLog } from "web3-core";
5
+ import type { EventEmitter } from "events";
6
+ import type { Callback, NonPayableTransactionObject, BlockType, BaseContract } from "./types";
7
+ export interface EventOptions {
8
+ filter?: object;
9
+ fromBlock?: BlockType;
10
+ topics?: string[];
11
+ }
12
+ export declare namespace EulerV2View {
13
+ type LiquidityChangeParamsStruct = [string, boolean, number | string | BN, number | string | BN] | {
14
+ vault: string;
15
+ isBorrowOperation: boolean;
16
+ liquidityAdded: number | string | BN;
17
+ liquidityRemoved: number | string | BN;
18
+ };
19
+ type LiquidityChangeParamsStructOutputArray = [
20
+ string,
21
+ boolean,
22
+ string,
23
+ string
24
+ ];
25
+ type LiquidityChangeParamsStructOutputStruct = {
26
+ vault: string;
27
+ isBorrowOperation: boolean;
28
+ liquidityAdded: string;
29
+ liquidityRemoved: string;
30
+ };
31
+ type LiquidityChangeParamsStructOutput = LiquidityChangeParamsStructOutputArray & LiquidityChangeParamsStructOutputStruct;
32
+ type UserCollateralInfoStruct = [
33
+ string,
34
+ boolean,
35
+ number | string | BN,
36
+ number | string | BN,
37
+ number | string | BN
38
+ ] | {
39
+ collateralVault: string;
40
+ usedInBorrow: boolean;
41
+ collateralAmountInUnit: number | string | BN;
42
+ collateralAmountInAsset: number | string | BN;
43
+ collateralAmountInUSD: number | string | BN;
44
+ };
45
+ type UserCollateralInfoStructOutputArray = [
46
+ string,
47
+ boolean,
48
+ string,
49
+ string,
50
+ string
51
+ ];
52
+ type UserCollateralInfoStructOutputStruct = {
53
+ collateralVault: string;
54
+ usedInBorrow: boolean;
55
+ collateralAmountInUnit: string;
56
+ collateralAmountInAsset: string;
57
+ collateralAmountInUSD: string;
58
+ };
59
+ type UserCollateralInfoStructOutput = UserCollateralInfoStructOutputArray & UserCollateralInfoStructOutputStruct;
60
+ type UserDataStruct = [
61
+ string,
62
+ string,
63
+ boolean,
64
+ boolean,
65
+ string,
66
+ number | string | BN,
67
+ number | string | BN,
68
+ EulerV2View.UserCollateralInfoStruct[]
69
+ ] | {
70
+ user: string;
71
+ owner: string;
72
+ inLockDownMode: boolean;
73
+ inPermitDisabledMode: boolean;
74
+ borrowVault: string;
75
+ borrowAmountInUnit: number | string | BN;
76
+ borrowAmountInAsset: number | string | BN;
77
+ collaterals: EulerV2View.UserCollateralInfoStruct[];
78
+ };
79
+ type UserDataStructOutputArray = [
80
+ string,
81
+ string,
82
+ boolean,
83
+ boolean,
84
+ string,
85
+ string,
86
+ string,
87
+ EulerV2View.UserCollateralInfoStructOutput[]
88
+ ];
89
+ type UserDataStructOutputStruct = {
90
+ user: string;
91
+ owner: string;
92
+ inLockDownMode: boolean;
93
+ inPermitDisabledMode: boolean;
94
+ borrowVault: string;
95
+ borrowAmountInUnit: string;
96
+ borrowAmountInAsset: string;
97
+ collaterals: EulerV2View.UserCollateralInfoStructOutput[];
98
+ };
99
+ type UserDataStructOutput = UserDataStructOutputArray & UserDataStructOutputStruct;
100
+ type CollateralInfoStruct = [
101
+ string,
102
+ string,
103
+ string,
104
+ number | string | BN,
105
+ number | string | BN,
106
+ number | string | BN,
107
+ number | string | BN,
108
+ number | string | BN,
109
+ number | string | BN,
110
+ number | string | BN,
111
+ number | string | BN,
112
+ number | string | BN,
113
+ number | string | BN,
114
+ number | string | BN,
115
+ number | string | BN,
116
+ number | string | BN
117
+ ] | {
118
+ vaultAddr: string;
119
+ assetAddr: string;
120
+ vaultSymbol: string;
121
+ decimals: number | string | BN;
122
+ sharePriceInUnit: number | string | BN;
123
+ assetPriceInUnit: number | string | BN;
124
+ cash: number | string | BN;
125
+ totalBorrows: number | string | BN;
126
+ supplyCap: number | string | BN;
127
+ borrowLTV: number | string | BN;
128
+ liquidationLTV: number | string | BN;
129
+ initialLiquidationLTV: number | string | BN;
130
+ targetTimestamp: number | string | BN;
131
+ rampDuration: number | string | BN;
132
+ interestFee: number | string | BN;
133
+ interestRate: number | string | BN;
134
+ };
135
+ type CollateralInfoStructOutputArray = [
136
+ string,
137
+ string,
138
+ string,
139
+ string,
140
+ string,
141
+ string,
142
+ string,
143
+ string,
144
+ string,
145
+ string,
146
+ string,
147
+ string,
148
+ string,
149
+ string,
150
+ string,
151
+ string
152
+ ];
153
+ type CollateralInfoStructOutputStruct = {
154
+ vaultAddr: string;
155
+ assetAddr: string;
156
+ vaultSymbol: string;
157
+ decimals: string;
158
+ sharePriceInUnit: string;
159
+ assetPriceInUnit: string;
160
+ cash: string;
161
+ totalBorrows: string;
162
+ supplyCap: string;
163
+ borrowLTV: string;
164
+ liquidationLTV: string;
165
+ initialLiquidationLTV: string;
166
+ targetTimestamp: string;
167
+ rampDuration: string;
168
+ interestFee: string;
169
+ interestRate: string;
170
+ };
171
+ type CollateralInfoStructOutput = CollateralInfoStructOutputArray & CollateralInfoStructOutputStruct;
172
+ type VaultInfoFullStruct = [
173
+ string,
174
+ string,
175
+ string,
176
+ string,
177
+ number | string | BN,
178
+ number | string | BN,
179
+ number | string | BN,
180
+ number | string | BN,
181
+ number | string | BN,
182
+ number | string | BN,
183
+ number | string | BN,
184
+ EulerV2View.CollateralInfoStruct[],
185
+ number | string | BN,
186
+ number | string | BN,
187
+ boolean,
188
+ string,
189
+ number | string | BN,
190
+ string,
191
+ number | string | BN,
192
+ number | string | BN,
193
+ number | string | BN,
194
+ string,
195
+ string,
196
+ string,
197
+ string,
198
+ number | string | BN
199
+ ] | {
200
+ vaultAddr: string;
201
+ assetAddr: string;
202
+ name: string;
203
+ symbol: string;
204
+ decimals: number | string | BN;
205
+ totalSupplyShares: number | string | BN;
206
+ cash: number | string | BN;
207
+ totalBorrows: number | string | BN;
208
+ totalAssets: number | string | BN;
209
+ supplyCap: number | string | BN;
210
+ borrowCap: number | string | BN;
211
+ collaterals: EulerV2View.CollateralInfoStruct[];
212
+ maxLiquidationDiscount: number | string | BN;
213
+ liquidationCoolOffTime: number | string | BN;
214
+ badDebtSocializationEnabled: boolean;
215
+ unitOfAccount: string;
216
+ unitOfAccountInUsd: number | string | BN;
217
+ oracle: string;
218
+ assetPriceInUnit: number | string | BN;
219
+ sharePriceInUnit: number | string | BN;
220
+ interestRate: number | string | BN;
221
+ irm: string;
222
+ balanceTrackerAddress: string;
223
+ creator: string;
224
+ governorAdmin: string;
225
+ interestFee: number | string | BN;
226
+ };
227
+ type VaultInfoFullStructOutputArray = [
228
+ string,
229
+ string,
230
+ string,
231
+ string,
232
+ string,
233
+ string,
234
+ string,
235
+ string,
236
+ string,
237
+ string,
238
+ string,
239
+ EulerV2View.CollateralInfoStructOutput[],
240
+ string,
241
+ string,
242
+ boolean,
243
+ string,
244
+ string,
245
+ string,
246
+ string,
247
+ string,
248
+ string,
249
+ string,
250
+ string,
251
+ string,
252
+ string,
253
+ string
254
+ ];
255
+ type VaultInfoFullStructOutputStruct = {
256
+ vaultAddr: string;
257
+ assetAddr: string;
258
+ name: string;
259
+ symbol: string;
260
+ decimals: string;
261
+ totalSupplyShares: string;
262
+ cash: string;
263
+ totalBorrows: string;
264
+ totalAssets: string;
265
+ supplyCap: string;
266
+ borrowCap: string;
267
+ collaterals: EulerV2View.CollateralInfoStructOutput[];
268
+ maxLiquidationDiscount: string;
269
+ liquidationCoolOffTime: string;
270
+ badDebtSocializationEnabled: boolean;
271
+ unitOfAccount: string;
272
+ unitOfAccountInUsd: string;
273
+ oracle: string;
274
+ assetPriceInUnit: string;
275
+ sharePriceInUnit: string;
276
+ interestRate: string;
277
+ irm: string;
278
+ balanceTrackerAddress: string;
279
+ creator: string;
280
+ governorAdmin: string;
281
+ interestFee: string;
282
+ };
283
+ type VaultInfoFullStructOutput = VaultInfoFullStructOutputArray & VaultInfoFullStructOutputStruct;
284
+ }
285
+ export interface EulerV2View extends BaseContract {
286
+ constructor(jsonInterface: any[], address?: string, options?: ContractOptions): EulerV2View;
287
+ clone(): EulerV2View;
288
+ methods: {
289
+ USD(): NonPayableTransactionObject<string>;
290
+ feedRegistry(): NonPayableTransactionObject<string>;
291
+ fetchUsedAccounts(_account: string, _page: number | string | BN, _perPage: number | string | BN): NonPayableTransactionObject<[
292
+ string,
293
+ string[]
294
+ ] & {
295
+ owner: string;
296
+ accounts: string[];
297
+ }>;
298
+ getAaveTokenPriceInETH(_tokenAddr: string): NonPayableTransactionObject<string>;
299
+ getAaveTokenPriceInUSD(_tokenAddr: string): NonPayableTransactionObject<string>;
300
+ getAaveV3TokenPriceInETH(_tokenAddr: string): NonPayableTransactionObject<string>;
301
+ getAaveV3TokenPriceInUSD(_tokenAddr: string): NonPayableTransactionObject<string>;
302
+ getAddrForChainlinkOracle(_inputTokenAddr: string): NonPayableTransactionObject<string>;
303
+ getApyAfterValuesEstimation(params: EulerV2View.LiquidityChangeParamsStruct[]): NonPayableTransactionObject<string[]>;
304
+ getChainlinkPriceInETH(_inputTokenAddr: string): NonPayableTransactionObject<string>;
305
+ getChainlinkPriceInUSD(_inputTokenAddr: string, _useFallback: boolean): NonPayableTransactionObject<string>;
306
+ getPriceInETH(_inputTokenAddr: string): NonPayableTransactionObject<string>;
307
+ getPriceInUSD(_inputTokenAddr: string): NonPayableTransactionObject<string>;
308
+ "getRoundInfo(address,uint80,address)"(_inputTokenAddr: string, _roundId: number | string | BN, aggregator: string): NonPayableTransactionObject<[
309
+ string,
310
+ string
311
+ ] & {
312
+ updateTimestamp: string;
313
+ }>;
314
+ "getRoundInfo(address,uint80)"(_inputTokenAddr: string, _roundId: number | string | BN): NonPayableTransactionObject<[
315
+ string,
316
+ string
317
+ ] & {
318
+ updateTimestamp: string;
319
+ }>;
320
+ getSparkTokenPriceInETH(_tokenAddr: string): NonPayableTransactionObject<string>;
321
+ getSparkTokenPriceInUSD(_tokenAddr: string): NonPayableTransactionObject<string>;
322
+ getUserData(_user: string): NonPayableTransactionObject<EulerV2View.UserDataStructOutput>;
323
+ getUsersData(_users: string[]): NonPayableTransactionObject<EulerV2View.UserDataStructOutput[]>;
324
+ getVaultCollaterals(_vault: string): NonPayableTransactionObject<EulerV2View.CollateralInfoStructOutput[]>;
325
+ getVaultInfoFull(_vault: string): NonPayableTransactionObject<EulerV2View.VaultInfoFullStructOutput>;
326
+ getVaultsInfosFull(_vaults: string[]): NonPayableTransactionObject<EulerV2View.VaultInfoFullStructOutput[]>;
327
+ getWBtcPrice(_btcPrice: number | string | BN): NonPayableTransactionObject<string>;
328
+ getWStEthPrice(_stEthPrice: number | string | BN): NonPayableTransactionObject<string>;
329
+ };
330
+ events: {
331
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
332
+ };
333
+ }
@@ -0,0 +1,4 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export {};
@@ -26,6 +26,7 @@ export type { CompoundLoanInfo } from "./CompoundLoanInfo";
26
26
  export type { Comptroller } from "./Comptroller";
27
27
  export type { ETHPriceFeed } from "./ETHPriceFeed";
28
28
  export type { Erc20 } from "./Erc20";
29
+ export type { EulerV2View } from "./EulerV2View";
29
30
  export type { FeedRegistry } from "./FeedRegistry";
30
31
  export type { GHO } from "./GHO";
31
32
  export type { GhoDiscountRateStrategy } from "./GhoDiscountRateStrategy";