defi-state-querier 0.5.28__py3-none-any.whl → 0.5.29__py3-none-any.whl

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 (84) hide show
  1. defi_services/__init__.py +1 -1
  2. defi_services/abis/lending/ionic/__init__.py +0 -0
  3. defi_services/abis/lending/ionic/ionic_ctoken_abi.py +1108 -0
  4. defi_services/abis/lending/moonwell/__init__.py +0 -0
  5. defi_services/abis/lending/moonwell/moonwell_comptroller_abi.py +1500 -0
  6. defi_services/abis/lending/moonwell/moonwell_ctoken_abi.py +1431 -0
  7. defi_services/abis/lending/radiant_v2/radiant_reward_converter.py +817 -0
  8. defi_services/abis/token/trc20_abi.py +304 -0
  9. defi_services/abis/vault/tcv_abi.py +1523 -0
  10. defi_services/constants/chain_constant.py +8 -1
  11. defi_services/constants/entities/dex_info_constant.py +2 -2
  12. defi_services/constants/entities/dex_services.py +13 -1
  13. defi_services/constants/entities/lending_constant.py +11 -5
  14. defi_services/constants/entities/lending_services.py +31 -4
  15. defi_services/constants/entities/vault_constant.py +2 -2
  16. defi_services/constants/entities/vault_services.py +7 -1
  17. defi_services/constants/network_constants.py +20 -361
  18. defi_services/constants/token_constant.py +3 -1
  19. defi_services/jobs/processors/cosmos_state_processor.py +3 -2
  20. defi_services/jobs/processors/ton_state_processor.py +5 -4
  21. defi_services/jobs/queriers/call_state_querier.py +2 -0
  22. defi_services/jobs/queriers/state_querier.py +3 -0
  23. defi_services/jobs/tcv.py +144 -0
  24. defi_services/services/dex/dex_info/uniswap_info.py +29 -1
  25. defi_services/services/dex/uniswap_v3_service.py +6 -2
  26. defi_services/services/lending/aave_v2_services.py +44 -29
  27. defi_services/services/lending/aave_v3_services.py +41 -20
  28. defi_services/services/lending/compound_v3_services.py +9 -5
  29. defi_services/services/lending/granary_services.py +6 -4
  30. defi_services/services/lending/ionic_service.py +167 -0
  31. defi_services/services/lending/justlend_service.py +4 -3
  32. defi_services/services/lending/lending_info/arbitrum/aave_v3_arbitrum.py +1 -1
  33. defi_services/services/lending/lending_info/arbitrum/compound_v3_arbitrum.py +96 -6
  34. defi_services/services/lending/lending_info/arbitrum/venus_arbitrum.py +10 -0
  35. defi_services/services/lending/lending_info/base/__init__.py +0 -0
  36. defi_services/services/lending/lending_info/base/aave_v3_base.py +61 -0
  37. defi_services/services/lending/lending_info/base/compound_v3_base.py +116 -0
  38. defi_services/services/lending/lending_info/base/granary_base.py +62 -0
  39. defi_services/services/lending/lending_info/base/ionic_base.py +173 -0
  40. defi_services/services/lending/lending_info/base/moonwell_base.py +89 -0
  41. defi_services/services/lending/lending_info/base/radiant_v2_base.py +57 -0
  42. defi_services/services/lending/lending_info/base/sonne_base.py +53 -0
  43. defi_services/services/lending/lending_info/base/zerolend_base.py +109 -0
  44. defi_services/services/lending/lending_info/bsc/aave_v3_bsc.py +68 -0
  45. defi_services/services/lending/lending_info/bsc/apeswap_bsc.py +1 -1
  46. defi_services/services/lending/lending_info/ethereum/aave_v3_eth.py +1 -140
  47. defi_services/services/lending/lending_info/ethereum/compound_v3_eth.py +180 -5
  48. defi_services/services/lending/lending_info/ethereum/old_aave_v3_eth.py +150 -0
  49. defi_services/services/lending/lending_info/ethereum/radiant_eth.py +69 -0
  50. defi_services/services/lending/lending_info/ethereum/venus_eth.py +10 -0
  51. defi_services/services/lending/lending_info/ethereum/zerolend_eth.py +96 -0
  52. defi_services/services/lending/lending_info/optimism/compound_v3_optimism.py +116 -0
  53. defi_services/services/lending/lending_info/optimism/moonwell_optimism.py +9 -0
  54. defi_services/services/lending/lending_info/polygon/compound_v3_polygon.py +35 -5
  55. defi_services/services/lending/lending_info/zksync/__init__.py +0 -0
  56. defi_services/services/lending/lending_info/zksync/aave_v3_zksync.py +47 -0
  57. defi_services/services/lending/lending_info/zksync/venus_zksync.py +10 -0
  58. defi_services/services/lending/lending_info/zksync/zerolend_zksync.py +138 -0
  59. defi_services/services/lending/moonwell_service.py +120 -0
  60. defi_services/services/lending/morpho_aave_v2_services.py +3 -3
  61. defi_services/services/lending/morpho_aave_v3_services.py +2 -2
  62. defi_services/services/lending/radiant_v2_services.py +52 -10
  63. defi_services/services/lending/sonne_service.py +64 -0
  64. defi_services/services/lending/trava_services.py +2 -2
  65. defi_services/services/lending/uwu_services.py +3 -3
  66. defi_services/services/lending/valas_services.py +2 -2
  67. defi_services/services/lending/venus_services.py +9 -3
  68. defi_services/services/lending/zerolend_services.py +36 -0
  69. defi_services/services/multicall/multicall_v2.py +0 -317
  70. defi_services/services/vault/tcv_vault_services.py +108 -0
  71. defi_services/services/vault/vault_info/arbitrum/__init__.py +0 -0
  72. defi_services/services/vault/vault_info/arbitrum/tcv_arb.py +58 -0
  73. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/METADATA +1 -1
  74. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/RECORD +84 -47
  75. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/__init__.py +0 -0
  76. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/aave_v2_event_abi.py +0 -0
  77. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/aave_v2_incentives_abi.py +0 -0
  78. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/lending_pool_abi.py +0 -0
  79. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/oracle_abi.py +0 -0
  80. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/staked_incentives_abi.py +0 -0
  81. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/uwu_incentives_abi.py +0 -0
  82. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/WHEEL +0 -0
  83. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/licenses/LICENSE +0 -0
  84. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.29.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,96 @@
1
+ ZEROLEND_ETH = {
2
+ "address": "0x3bc3d34c32cc98bf098d832364df8a222bbab4c0",
3
+ "name": "ZeroLend Lending Pool",
4
+ "stakedIncentiveAddress": '0x854138f891fe0a86270f6f153a06fbfabf69e0ad',
5
+ "rewardTokensList": [],
6
+ "oracleAddress": "0x1cc993f2c8b6fbc43a9bafd2a44398e739733385",
7
+ "type": "LENDING_POOL",
8
+ "poolToken": "0x11dcc26d4bdac03ffa8841f69313c38240fc429e",
9
+ "forked": "aave-v3",
10
+ "reservesList": {
11
+ "0x6b175474e89094c44da98b954eedeac495271d0f": {
12
+ "tToken": "0x29a3a6af690942a3b7665bb2839a3f563c6f987b",
13
+ "sdToken": "0x8569052157069ed81f603001596ee8ae1c85e049",
14
+ "dToken": "0x0047cac82cf5fb36954de1b9d86d657915ab3b47",
15
+ "loanToValue": 0.0,
16
+ "liquidationThreshold": 0.85
17
+ },
18
+ "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
19
+ "tToken": "0xb2feb2c46305329a340e6188532f31fce9347a5c",
20
+ "sdToken": "0x7fae822dc0a2ae436ec10b83ae5686c008fca718",
21
+ "dToken": "0x227f86fbfccb5664403b62a5b6d4e0e593968275",
22
+ "loanToValue": 0.8,
23
+ "liquidationThreshold": 0.85
24
+ },
25
+ "0xdac17f958d2ee523a2206206994597c13d831ec7": {
26
+ "tToken": "0x6c735966bc965bd4066c14fca3df443496ce14fb",
27
+ "sdToken": "0x14b0f7edb2471350dee88b1c423e0df25c37b638",
28
+ "dToken": "0xdaccf47046ae4fee3f9f3bcfe68696a95db6ccb7",
29
+ "loanToValue": 0.0,
30
+ "liquidationThreshold": 0.85
31
+ },
32
+ "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2": {
33
+ "tToken": "0xfb932a75c5f69d03b0f6e59573fde6976af0d88c",
34
+ "sdToken": "0x346623faf3cd1dbe9024c1d160cd40e6a90092ed",
35
+ "dToken": "0x7ef98cd28902ce57b7aeec66dfb06b454cda1941",
36
+ "loanToValue": 0.8,
37
+ "liquidationThreshold": 0.825
38
+ },
39
+ "0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee": {
40
+ "tToken": "0x84e55c6bc5b7e9505d87b3df6ceff7753e15a0c5",
41
+ "sdToken": "0x4931dae3f419649931918d9e545d0f52cae0dbec",
42
+ "dToken": "0x53c94fd63ef4001d45744c311d6bbe2171d4a11e",
43
+ "loanToValue": 0.7,
44
+ "liquidationThreshold": 0.8
45
+ },
46
+ "0xbf5495efe5db9ce00f80364c8b423567e58d2110": {
47
+ "tToken": "0x68fd75cf5a91f49effad0e857ef2e97e5d1f35e7",
48
+ "sdToken": "0x1e7f2afd1d534077656a0cfa7871358cb346f578",
49
+ "dToken": "0x27c1706ddd2467622ca63aaec03332127919a690",
50
+ "loanToValue": 0.7,
51
+ "liquidationThreshold": 0.8
52
+ },
53
+ "0xa1290d69c65a6fe4df752f95823fae25cb99e5a7": {
54
+ "tToken": "0xef4a41e692319ae4aa596314d282b3f2a3830bed",
55
+ "sdToken": "0x3af8bad4ca56afae60fa3a2f116cdea803c80fbc",
56
+ "dToken": "0xe4fe2d282dead5759199df364f3f419dfac17339",
57
+ "loanToValue": 0.7,
58
+ "liquidationThreshold": 0.8
59
+ },
60
+ "0xd9a442856c234a39a81a089c06451ebaa4306a72": {
61
+ "tToken": "0xdd7afc0f014a1e1716307ff040704fa12e8d33a3",
62
+ "sdToken": "0x0155719a1401fdbaa62e7c6ccd46207a0de3282a",
63
+ "dToken": "0xf99728a4b9f3371cfcf671099edf00f49b006125",
64
+ "loanToValue": 0.7,
65
+ "liquidationThreshold": 0.8
66
+ },
67
+ "0xf951e335afb289353dc249e82926178eac7ded78": {
68
+ "tToken": "0xb7cadc9cdfbbef6d230dd99a7c62e294fc44bfc6",
69
+ "sdToken": "0x9924462b20a93551efbec5eecc437b632b3cb48c",
70
+ "dToken": "0xb04adaff2f221f63b977185f5a7d8ee49aacbaff",
71
+ "loanToValue": 0.5,
72
+ "liquidationThreshold": 0.8
73
+ },
74
+ "0x8c9532a60e0e7c6bbd2b2c1303f63ace1c3e9811": {
75
+ "tToken": "0xd9855847ffd9bc0c5f3effbef67b558dbf090a71",
76
+ "sdToken": "0x7333113ac92a86e7d562fbe9f03c62d2007cd295",
77
+ "dToken": "0x8e3e54599d6f40c8306b895214f54882d98cd2b5",
78
+ "loanToValue": 0.7,
79
+ "liquidationThreshold": 0.9
80
+ },
81
+ "0x7baf258049cc8b9a78097723dc19a8b103d4098f": {
82
+ "tToken": "0x7740f60f773bc743ed76310ac1d054a4a4a17e7c",
83
+ "sdToken": "0x8983845311f9df4465b8a94713a2d5824b943251",
84
+ "dToken": "0xb8d45c7fbbbc6e1d36bc1caa7d43dcc7d0513cfd",
85
+ "loanToValue": 0.0,
86
+ "liquidationThreshold": 0.95
87
+ },
88
+ "0xf7906f274c174a52d444175729e3fa98f9bde285": {
89
+ "tToken": "0xb2db477a6c198f5c524302bb67085f8f3ab06059",
90
+ "sdToken": "0x11acaa3c40a2885dbab3265df94272ecfeb2b8fb",
91
+ "dToken": "0x8eb2f05a24b6859aadb5d26abbc129f53d10e934",
92
+ "loanToValue": 0.9,
93
+ "liquidationThreshold": 0.95
94
+ }
95
+ }
96
+ }
@@ -0,0 +1,116 @@
1
+ COMPOUND_V3_OPTIMISM = {
2
+ "name": "Compound V3 Lending Pool",
3
+ "rewardToken": "0x7e7d4467112689329f7e06571ed0e8cbad4910ee",
4
+ "rewardAddress": "0x443ea0340cb75a160f31a440722dec7b5bc3c2e9",
5
+ "factoryAddress": "0xfa454de61b317b6535a0c462267208e8fdb89f45",
6
+ "poolToken": "0x7e7d4467112689329f7e06571ed0e8cbad4910ee",
7
+ "type": "LENDING_POOL",
8
+ "forked": "compound-v3",
9
+ "reservesList": {
10
+ "0x4200000000000000000000000000000000000006": {
11
+ "comet": "0xe36a30d249f7761327fd973001a32010b521b6fd",
12
+ "assets": {
13
+ "0x1f32b1c2345538c0c6f582fcb022739c4a194ebb": {
14
+ "priceFeed": "0x295d9f81298fc44b4f329cbef57e67266091cc86",
15
+ "loanToValue": 0.88,
16
+ "liquidationThreshold": 0.93
17
+ },
18
+ "0x9bcef72be871e61ed4fbbc7630889bee758eb81d": {
19
+ "priceFeed": "0x5d409e56d886231adaf00c8775665ad0f9897b56",
20
+ "loanToValue": 0.9,
21
+ "liquidationThreshold": 0.93
22
+ },
23
+ "0x68f180fcce6836688e9084f035309e29bf0a2095": {
24
+ "priceFeed": "0x4ed39cf78ffa4428de6bcedb8d0f5ff84699e13d",
25
+ "loanToValue": 0.8,
26
+ "liquidationThreshold": 0.85
27
+ },
28
+ "0x94b008aa00579c1307b0ef2c499ad98a8ce58e58": {
29
+ "priceFeed": "0xddc326838f2b5e5625306c3cf33318666f3cf002",
30
+ "loanToValue": 0.8,
31
+ "liquidationThreshold": 0.85
32
+ },
33
+ "0x0b2c639c533813f4aa9d7837caf62653d097ff85": {
34
+ "priceFeed": "0x403f2083b6e220147f8a8832f0b284b4ed5777d1",
35
+ "loanToValue": 0.8,
36
+ "liquidationThreshold": 0.85
37
+ },
38
+ "0x2416092f143378750bb29b79ed961ab195cceea5": {
39
+ "priceFeed": "0x69dd37a0ee3d15776a54e34a7297b059e75c94ab",
40
+ "loanToValue": 0.88,
41
+ "liquidationThreshold": 0.91
42
+ },
43
+ "0x5a7facb970d094b6c7ff1df0ea68d99e6e73cbff": {
44
+ "priceFeed": "0x5a20166ed55518520b1f68cab1cf127473123814",
45
+ "loanToValue": 0.9,
46
+ "liquidationThreshold": 0.93
47
+ },
48
+ "0x87eee96d50fb761ad85b1c982d28a042169d61b1": {
49
+ "priceFeed": "0xee7b99dc798eae1957713bbbede98073098b0e68",
50
+ "loanToValue": 0.88,
51
+ "liquidationThreshold": 0.91
52
+ }
53
+ }
54
+ },
55
+ "0x0b2c639c533813f4aa9d7837caf62653d097ff85": {
56
+ "comet": "0x2e44e174f7d53f0212823acc11c01a11d58c5bcb",
57
+ "assets": {
58
+ "0x4200000000000000000000000000000000000042": {
59
+ "priceFeed": "0x0d276fc14719f9292d5c1ea2198673d1f4269246",
60
+ "loanToValue": 0.65,
61
+ "liquidationThreshold": 0.7
62
+ },
63
+ "0x4200000000000000000000000000000000000006": {
64
+ "priceFeed": "0x13e3ee699d1909e989722e753853ae30b17e08c5",
65
+ "loanToValue": 0.83,
66
+ "liquidationThreshold": 0.9
67
+ },
68
+ "0x68f180fcce6836688e9084f035309e29bf0a2095": {
69
+ "priceFeed": "0x718a5788b89454aae3a028ae9c111a29be6c2a6f",
70
+ "loanToValue": 0.8,
71
+ "liquidationThreshold": 0.85
72
+ },
73
+ "0x1f32b1c2345538c0c6f582fcb022739c4a194ebb": {
74
+ "priceFeed": "0x4f90c34def3516ca5bd0a8276e01516fb09fb2ab",
75
+ "loanToValue": 0.8,
76
+ "liquidationThreshold": 0.85
77
+ },
78
+ "0x57f5e098cad7a3d1eed53991d4d66c45c9af7812": {
79
+ "priceFeed": "0x7e86318cc4bc539043f204b39ce0ebed9f0050dc",
80
+ "loanToValue": 0.88,
81
+ "liquidationThreshold": 0.9
82
+ }
83
+ }
84
+ },
85
+ "0x94b008aa00579c1307b0ef2c499ad98a8ce58e58": {
86
+ "comet": "0x995e394b8b2437ac8ce61ee0bc610d617962b214",
87
+ "assets": {
88
+ "0x4200000000000000000000000000000000000042": {
89
+ "priceFeed": "0x0d276fc14719f9292d5c1ea2198673d1f4269246",
90
+ "loanToValue": 0.65,
91
+ "liquidationThreshold": 0.7
92
+ },
93
+ "0x4200000000000000000000000000000000000006": {
94
+ "priceFeed": "0x13e3ee699d1909e989722e753853ae30b17e08c5",
95
+ "loanToValue": 0.83,
96
+ "liquidationThreshold": 0.9
97
+ },
98
+ "0x68f180fcce6836688e9084f035309e29bf0a2095": {
99
+ "priceFeed": "0x718a5788b89454aae3a028ae9c111a29be6c2a6f",
100
+ "loanToValue": 0.8,
101
+ "liquidationThreshold": 0.85
102
+ },
103
+ "0x1f32b1c2345538c0c6f582fcb022739c4a194ebb": {
104
+ "priceFeed": "0x6846fc014a72198ee287350ddb6b0180586594e5",
105
+ "loanToValue": 0.8,
106
+ "liquidationThreshold": 0.85
107
+ },
108
+ "0x57f5e098cad7a3d1eed53991d4d66c45c9af7812": {
109
+ "priceFeed": "0x66228d797eb83ecf3465297751f6b1d4d42b7627",
110
+ "loanToValue": 0.88,
111
+ "liquidationThreshold": 0.9
112
+ }
113
+ }
114
+ }
115
+ }
116
+ }
@@ -0,0 +1,9 @@
1
+ MOONWELL_OPTIMISM = {
2
+ "name": "MoonWell Lending Pool",
3
+ "rewardToken": "",
4
+ "comptrollerAddress": "0xca889f40aae37fff165bccf69aef1e82b5c511b9",
5
+ "lensAddress": "",
6
+ "poolToken": "0xa88594d404727625a9437c3f886c7643872296ae",
7
+ "type": "LENDING_POOL",
8
+ "forked": "compound",
9
+ }
@@ -12,18 +12,18 @@ COMPOUND_V3_POLYGON = {
12
12
  "assets": {
13
13
  "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619": {
14
14
  "priceFeed": "0xf9680d99d6c9589e2a93a78a04a279e509205945",
15
- "loanToValue": 0.775,
16
- "liquidationThreshold": 0.825
15
+ "loanToValue": 0.8,
16
+ "liquidationThreshold": 0.85
17
17
  },
18
18
  "0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6": {
19
19
  "priceFeed": "0xde31f8bfbd8c84b5360cfacca3539b938dd78ae6",
20
- "loanToValue": 0.7,
21
- "liquidationThreshold": 0.75
20
+ "loanToValue": 0.75,
21
+ "liquidationThreshold": 0.85
22
22
  },
23
23
  "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270": {
24
24
  "priceFeed": "0xab594600376ec9fd91f8e885dadf0ce036862de0",
25
25
  "loanToValue": 0.65,
26
- "liquidationThreshold": 0.7
26
+ "liquidationThreshold": 0.8
27
27
  },
28
28
  "0xfa68fb4628dff1028cfec22b4162fccd0d45efb6": {
29
29
  "priceFeed": "0x5d37e4b374e6907de8fc7fb33ee3b0af403c7403",
@@ -36,6 +36,36 @@ COMPOUND_V3_POLYGON = {
36
36
  "liquidationThreshold": 0.65
37
37
  }
38
38
  }
39
+ },
40
+ "0xc2132d05d31c914a87c6611c10748aeb04b58e8f": {
41
+ "comet": "0xaeb318360f27748acb200ce616e389a6c9409a07",
42
+ "assets": {
43
+ "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270": {
44
+ "priceFeed": "0xab594600376ec9fd91f8e885dadf0ce036862de0",
45
+ "loanToValue": 0.65,
46
+ "liquidationThreshold": 0.8
47
+ },
48
+ "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619": {
49
+ "priceFeed": "0xf9680d99d6c9589e2a93a78a04a279e509205945",
50
+ "loanToValue": 0.8,
51
+ "liquidationThreshold": 0.85
52
+ },
53
+ "0xfa68fb4628dff1028cfec22b4162fccd0d45efb6": {
54
+ "priceFeed": "0x5d37e4b374e6907de8fc7fb33ee3b0af403c7403",
55
+ "loanToValue": 0.6,
56
+ "liquidationThreshold": 0.7
57
+ },
58
+ "0x3a58a54c066fdc0f2d55fc9c89f0415c92ebf3c4": {
59
+ "priceFeed": "0x97371df4492605486e23da797fa68e55fc38a13f",
60
+ "loanToValue": 0.6,
61
+ "liquidationThreshold": 0.7
62
+ },
63
+ "0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6": {
64
+ "priceFeed": "0xde31f8bfbd8c84b5360cfacca3539b938dd78ae6",
65
+ "loanToValue": 0.75,
66
+ "liquidationThreshold": 0.85
67
+ }
68
+ }
39
69
  }
40
70
  }
41
71
  }
@@ -0,0 +1,47 @@
1
+ AAVE_V3_ZKSYNC = {
2
+ "address": "0x78e30497a3c7527d953c6b1e3541b021a98ac43c",
3
+ "name": "AAVE Lending Pool",
4
+ "stakedIncentiveAddress": '0x37c972c9ddfc2138ebe33ec19dba063ab9f8966e',
5
+ "oracleAddress": "0xc7f58fca663a8d377b6d0c9703c697f56dc40088",
6
+ "rewardTokensList": [],
7
+ "type": "LENDING_POOL",
8
+ "poolToken": "",
9
+ "forked": "aave-v3",
10
+ "reservesList": {
11
+ "0x1d17cbcf0d6d143135ae902365d2e5e2a16538d4": {
12
+ "tToken": "0xe977f9b2a5ccf0457870a67231f23be4daecfbdb",
13
+ "sdToken": "0x4b57579c895cb5cd2e7bf6e94888fc6289f3ae95",
14
+ "dToken": "0x0049250d15a8550c5a14baa5af5b662a93a525b9",
15
+ "loanToValue": 0.75,
16
+ "liquidationThreshold": 0.78
17
+ },
18
+ "0x493257fd37edb34451f62edf8d2a0c418852ba4c": {
19
+ "tToken": "0xc48574bc5358c967d9447e7df70230fdb469e4e7",
20
+ "sdToken": "0x4b57579c895cb5cd2e7bf6e94888fc6289f3ae95",
21
+ "dToken": "0x8992db58077fe8c7b80c1b3a738eae8a7bddba34",
22
+ "loanToValue": 0.75,
23
+ "liquidationThreshold": 0.78
24
+ },
25
+ "0x5aea5775959fbc2557cc8789bc1bf90a239d9a91": {
26
+ "tToken": "0xb7b93bcf82519bb757fd18b23a389245dbd8ca64",
27
+ "sdToken": "0x4b57579c895cb5cd2e7bf6e94888fc6289f3ae95",
28
+ "dToken": "0x98dc737ea0e9bcb254c3f98510a71c5e11f74238",
29
+ "loanToValue": 0.75,
30
+ "liquidationThreshold": 0.78
31
+ },
32
+ "0x703b52f2b28febcb60e1372858af5b18849fe867": {
33
+ "tToken": "0xd4e607633f3d984633e946aea4eb71f92564c1c9",
34
+ "sdToken": "0x4b57579c895cb5cd2e7bf6e94888fc6289f3ae95",
35
+ "dToken": "0x6ad279f6523f6421fd5b0324a97d8f62eecd80c8",
36
+ "loanToValue": 0.71,
37
+ "liquidationThreshold": 0.76
38
+ },
39
+ "0x5a7d6b2f92c77fad6ccabd7ee0624e64907eaf3e": {
40
+ "tToken": "0xd6cd2c0fc55936498726cacc497832052a9b2d1b",
41
+ "sdToken": "0x4b57579c895cb5cd2e7bf6e94888fc6289f3ae95",
42
+ "dToken": "0x6450fd7f877b5bb726f7bc6bf0e6ffabd48d72ad",
43
+ "loanToValue": 0.4,
44
+ "liquidationThreshold": 0.45
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,10 @@
1
+ VENUS_ZKSYNC = {
2
+ "projectName": "Venus",
3
+ "name": "Venus Lending Pool",
4
+ "rewardToken": "0xd78abd81a3d57712a3af080dc4185b698fe9ac5a",
5
+ "comptrollerAddress": "",
6
+ "lensAddress": "",
7
+ "poolToken": "0xd78abd81a3d57712a3af080dc4185b698fe9ac5a",
8
+ "type": "LENDING_POOL",
9
+ "forked": "compound",
10
+ }
@@ -0,0 +1,138 @@
1
+ ZEROLEND_ZKSYNC = {
2
+ "address": "0x4d9429246ea989c9cee203b43f6d1c7d83e3b8f8",
3
+ "name": "ZeroLend Lending Pool",
4
+ "stakedIncentiveAddress": '0x86bd524c09508df7b4b9027464975351b1bc2c92',
5
+ "rewardTokensList": [],
6
+ "oracleAddress": "0x785765de3e9ac3d8eeb42b4724a7fea8990142b8",
7
+ "type": "LENDING_POOL",
8
+ "poolToken": "0x27d0a2b5316b98088294378692f4eabfb3222e36",
9
+ "forked": "aave-v3",
10
+ "reservesList": {
11
+ "0x3355df6d4c9c3035724fd0e3914de96a5a83aaf4": {
12
+ "tToken": "0x016341e6da8da66b33fd32189328c102f32da7cc",
13
+ "sdToken": "0x5fac4fd2e4bce392d34600d94aa1114274e54dff",
14
+ "dToken": "0xe60e1953af56db378184997cab20731d17c65004",
15
+ "loanToValue": 0.8,
16
+ "liquidationThreshold": 0.85
17
+ },
18
+ "0x5aea5775959fbc2557cc8789bc1bf90a239d9a91": {
19
+ "tToken": "0x9002ecb8a06060e3b56669c6b8f18e1c3b119914",
20
+ "sdToken": "0x9c9158bff47342a20b7d2ac09f89e96f3a209b9b",
21
+ "dToken": "0x56f58d9be10929cda709c4134ef7343d73b080cf",
22
+ "loanToValue": 0.8,
23
+ "liquidationThreshold": 0.825
24
+ },
25
+ "0x493257fd37edb34451f62edf8d2a0c418852ba4c": {
26
+ "tToken": "0x9ca4806fa54984bf5da4e280b7aa8bb821d21505",
27
+ "sdToken": "0x6f977fd05962d67eb7b16b15684fbea0462f442d",
28
+ "dToken": "0xa333c6ff89525939271e796fbde2a2d9a970f831",
29
+ "loanToValue": 0.75,
30
+ "liquidationThreshold": 0.8
31
+ },
32
+ "0x90059c32eeeb1a2aa1351a58860d98855f3655ad": {
33
+ "tToken": "0x52846a8d972abbf49f67d83d5509aa4129257f46",
34
+ "sdToken": "0x10eb1198b55e709309d1e6c94dbee2b9b4977924",
35
+ "dToken": "0x77dced4833e3a91437ed9891117bd5a61c2ad520",
36
+ "loanToValue": 0.0,
37
+ "liquidationThreshold": 0.0
38
+ },
39
+ "0x503234f203fc7eb888eec8513210612a43cf6115": {
40
+ "tToken": "0xd97ac0ce99329ee19b97d03e099eb42d7aa19ddb",
41
+ "sdToken": "0x029214a5cd528433b8a4eccd7ef798210db3518c",
42
+ "dToken": "0x41c618cce58fb27caf4eeb1dd25de1d03a0daac6",
43
+ "loanToValue": 0.0,
44
+ "liquidationThreshold": 0.8
45
+ },
46
+ "0xbbeb516fb02a01611cbbe0453fe3c580d7281011": {
47
+ "tToken": "0x7c65e6ec6feceb333092e6fe69672a3475c591fb",
48
+ "sdToken": "0x3f574632d049f7cded52c529238e5c530e589b36",
49
+ "dToken": "0xabd3c4e4ac6e0d81fcfa5c41a76e9583a8f81909",
50
+ "loanToValue": 0.7,
51
+ "liquidationThreshold": 0.75
52
+ },
53
+ "0xfd282f16a64c6d304ac05d1a58da15bed0467c71": {
54
+ "tToken": "0x54330d2333adbf715eb449aad38153378601cf67",
55
+ "sdToken": "0xba0ba840a827aa9f3c5ec0e6e13e6bb4dd026dde",
56
+ "dToken": "0x963cc035edd4bc0f4a89987888304580dfa9be60",
57
+ "loanToValue": 0.0,
58
+ "liquidationThreshold": 0.85
59
+ },
60
+ "0x2039bb4116b4efc145ec4f0e2ea75012d6c0f181": {
61
+ "tToken": "0xb727f8e11bc417c90d4dcaf82eda06cf590533b5",
62
+ "sdToken": "0xd47c789f91cef19c124d53087d99860ce34be4a5",
63
+ "dToken": "0x3e1f1812c2a4f356d1b4fb5ff7cca5b2ac653b94",
64
+ "loanToValue": 0.0,
65
+ "liquidationThreshold": 0.8
66
+ },
67
+ "0x4d321cd88c5680ce4f85bb58c578dfe9c2cc1ef6": {
68
+ "tToken": "0x2b1bbe3ba39b943eeef675d6d42607c958f8d20f",
69
+ "sdToken": "0xeea10809dd23febf628003b4b998821bc6af4217",
70
+ "dToken": "0x0eede84dd0dea309382d23dd5591077127759a77",
71
+ "loanToValue": 0.5,
72
+ "liquidationThreshold": 0.85
73
+ },
74
+ "0x240f765af2273b0cab6caff2880d6d8f8b285fa4": {
75
+ "tToken": "0xdb87a5493e308ee0deb24c822a559bee52460afc",
76
+ "sdToken": "0xea8d6ce63498dda36a58374106fd6dd3bed9dff7",
77
+ "dToken": "0x1f3da58fac996c2094eec9801867028953a45325",
78
+ "loanToValue": 0.0,
79
+ "liquidationThreshold": 0.0
80
+ },
81
+ "0x99bbe51be7cce6c8b84883148fd3d12ace5787f2": {
82
+ "tToken": "0x1f2da4ff84d46b12f8931766d6d728a806b410d6",
83
+ "sdToken": "0xba15a3ac405c7311dd1234bfc21cc9e1f5c1b52f",
84
+ "dToken": "0x9bad0035b31c0193fed4322d1eb2c29aead799f8",
85
+ "loanToValue": 0.0,
86
+ "liquidationThreshold": 0.3
87
+ },
88
+ "0x0e97c7a0f8b2c9885c8ac9fc6136e829cbc21d42": {
89
+ "tToken": "0xc3b6d357e0beadb18a23a53e1dc4839c2d15bdc2",
90
+ "sdToken": "0x0b272319cf39cf5fa8d2976d54189dade1e90c2c",
91
+ "dToken": "0xa734abe2a512dabf23146c97307cfc5b347ae50a",
92
+ "loanToValue": 0.6,
93
+ "liquidationThreshold": 0.9
94
+ },
95
+ "0x4b9eb6c0b6ea15176bbf62841c6b2a8a398cb656": {
96
+ "tToken": "0x15b362768465f966f1e5983b7ae87f4c5bf75c55",
97
+ "sdToken": "0xb6abb4183b98a2a85e1d8e9ac93542446461e2d7",
98
+ "dToken": "0x0325f21eb0a16802e2bacd931964434929985548",
99
+ "loanToValue": 0.0,
100
+ "liquidationThreshold": 0.8
101
+ },
102
+ "0x3a287a06c66f9e95a56327185ca2bdf5f031cecd": {
103
+ "tToken": "0x0a2374d4387e9c8d730e7c90eed23c045938fdbb",
104
+ "sdToken": "0x033599b0bc6012be8cd08b258569773b610e680b",
105
+ "dToken": "0xf001d84605b2e7dbaaec545b431088bbf8e21dea",
106
+ "loanToValue": 0.0,
107
+ "liquidationThreshold": 0.0
108
+ },
109
+ "0x703b52f2b28febcb60e1372858af5b18849fe867": {
110
+ "tToken": "0xe855e73cad110d2f3ee2288d506d6140722c04c7",
111
+ "sdToken": "0xad99d8aafb6aaa110e7883f0b91ab912219f965d",
112
+ "dToken": "0xa351d9eb46d4fb3269e0fe9b7416ec2318151bc0",
113
+ "loanToValue": 0.0,
114
+ "liquidationThreshold": 0.0
115
+ },
116
+ "0x5a7d6b2f92c77fad6ccabd7ee0624e64907eaf3e": {
117
+ "tToken": "0x072416442a0e40135e75c0eefb4be708b74b6c8a",
118
+ "sdToken": "0x09990d77de57895c9227321811afe2d6f3c8b55c",
119
+ "dToken": "0x863cd5f43a50e1141574b796d412f73232cba60c",
120
+ "loanToValue": 0.8,
121
+ "liquidationThreshold": 0.85
122
+ },
123
+ "0xe757355edba7ced7b8c0271bba4efda184ad75ab": {
124
+ "tToken": "0xafe91971600af83d23ab691b0a1a566d5f8e42c0",
125
+ "sdToken": "0xf84e6afeab770e08299f20c1f039de2c07175a12",
126
+ "dToken": "0x8450646d1ea5f4fef8ab6af95cffbb29664af011",
127
+ "loanToValue": 0.5,
128
+ "liquidationThreshold": 0.85
129
+ },
130
+ "0x1d17cbcf0d6d143135ae902365d2e5e2a16538d4": {
131
+ "tToken": "0x9e20e83d636870a887ce7c85cecfb8b3e95c9db2",
132
+ "sdToken": "0x8f44d6ab626b2c3831b9a0d84322961e20d94b26",
133
+ "dToken": "0x5c9fa0a3ee84cbc892ab9968d7c5086cc506432d",
134
+ "loanToValue": 0.8,
135
+ "liquidationThreshold": 0.85
136
+ }
137
+ }
138
+ }
@@ -0,0 +1,120 @@
1
+ import logging
2
+
3
+ from defi_services.abis.lending.moonwell.moonwell_comptroller_abi import MOONWELL_COMPTROLLER_ABI
4
+ from defi_services.abis.lending.moonwell.moonwell_ctoken_abi import MOONWELL_CTOKEN_ABI
5
+ from defi_services.abis.token.erc20_abi import ERC20_ABI
6
+ from defi_services.constants.chain_constant import Chain
7
+ from defi_services.constants.entities.lending_constant import Lending
8
+ from defi_services.constants.token_constant import Token
9
+ from defi_services.jobs.queriers.state_querier import StateQuerier
10
+ from defi_services.services.lending.lending_info.base.moonwell_base import MOONWELL_BASE
11
+ from defi_services.services.lending.venus_services import VenusStateService
12
+
13
+ logger = logging.getLogger("MoonWell Lending Pool State Service")
14
+
15
+
16
+ class MoonWellInfo:
17
+ mapping = {
18
+ Chain.base: MOONWELL_BASE
19
+ }
20
+
21
+
22
+ class MoonWellStateService(VenusStateService):
23
+ def __init__(self, state_service: StateQuerier, chain_id: str = "0x38"):
24
+ super().__init__(state_service, chain_id)
25
+ self.name = f"{chain_id}_{Lending.moonwell}"
26
+ self.chain_id = chain_id
27
+ self.pool_info = MoonWellInfo.mapping.get(chain_id)
28
+ self.state_service = state_service
29
+ self.comptroller_abi = MOONWELL_COMPTROLLER_ABI
30
+ self.vtoken_abi = MOONWELL_CTOKEN_ABI
31
+
32
+ def get_service_info(self):
33
+ info = {
34
+ Lending.moonwell: {
35
+ "chain_id": self.chain_id,
36
+ "type": "lending",
37
+ "protocol_info": self.pool_info
38
+ }
39
+ }
40
+ return info
41
+
42
+ def get_apy_lending_pool_function_info(
43
+ self,
44
+ reserves_info: dict,
45
+ block_number: int = "latest"
46
+ ):
47
+ rpc_calls = {}
48
+ for token_address, reserve_info in reserves_info.items():
49
+ if token_address != Token.native_token:
50
+ query_id = f"decimals_{token_address}_{block_number}".lower()
51
+ rpc_calls[query_id] = self.state_service.get_function_info(token_address, ERC20_ABI, "decimals", [], block_number)
52
+
53
+ ctoken = reserve_info.get("cToken")
54
+ for fn_name in ['decimals', 'totalSupply', 'totalBorrows', 'supplyRatePerTimestamp', 'borrowRatePerTimestamp', 'exchangeRateStored']:
55
+ query_id = f"{fn_name}_{ctoken}_{block_number}".lower()
56
+ rpc_calls[query_id] = self.get_ctoken_function_info(
57
+ ctoken=ctoken,
58
+ fn_name=fn_name,
59
+ block_number=block_number
60
+ )
61
+
62
+ return rpc_calls
63
+
64
+ def get_reserve_tokens_metadata(
65
+ self,
66
+ decoded_data: dict,
67
+ reserves_info: dict,
68
+ block_number: int = "latest"
69
+ ):
70
+ reserve_tokens_info = []
71
+ for token_address, reserve_info in reserves_info.items():
72
+ if token_address != Token.native_token:
73
+ underlying_decimals_query_id = f"decimals_{token_address}_{block_number}".lower()
74
+ underlying_decimals = decoded_data.get(underlying_decimals_query_id)
75
+ else:
76
+ underlying_decimals = Chain.native_decimals.get(self.chain_id, 18)
77
+
78
+ ctoken = reserve_info.get("cToken")
79
+ ctoken_decimals_query_id = f"decimals_{ctoken}_{block_number}".lower()
80
+ total_supply_query_id = f"totalSupply_{ctoken}_{block_number}".lower()
81
+ total_borrow_query_id = f"totalBorrows_{ctoken}_{block_number}".lower()
82
+ supply_rate_query_id = f"supplyRatePerTimestamp_{ctoken}_{block_number}".lower()
83
+ borrow_rate_query_id = f"borrowRatePerTimestamp_{ctoken}_{block_number}".lower()
84
+ exchange_rate_query_id = f"exchangeRateStored_{ctoken}_{block_number}".lower()
85
+
86
+ reserve_tokens_info.append({
87
+ "token": ctoken,
88
+ "token_decimals": decoded_data.get(ctoken_decimals_query_id),
89
+ "borrow_rate": decoded_data.get(borrow_rate_query_id),
90
+ "supply_rate": decoded_data.get(supply_rate_query_id),
91
+ "supply": decoded_data.get(total_supply_query_id),
92
+ "borrow": decoded_data.get(total_borrow_query_id),
93
+ "exchange_rate": decoded_data.get(exchange_rate_query_id),
94
+ "underlying_decimals": underlying_decimals,
95
+ "underlying": token_address
96
+ })
97
+ return reserve_tokens_info
98
+
99
+ @classmethod
100
+ def _calculate_interest_rates(
101
+ cls, token_info: dict, pool_decimals: int, apx_block_speed_in_seconds: float):
102
+ exchange_rate = float(token_info["exchange_rate"]) / 10 ** (18 - 8 + token_info["underlying_decimals"])
103
+
104
+ total_borrow = float(token_info["borrow"]) / 10 ** int(token_info["underlying_decimals"])
105
+ total_supply = float(token_info["supply"]) * exchange_rate / 10 ** int(token_info["token_decimals"])
106
+
107
+ supply_apy = ((token_info["supply_rate"] / 10 ** pool_decimals) * 86400 + 1) ** 365 - 1
108
+ borrow_apy = ((token_info["borrow_rate"] / 10 ** pool_decimals) * 86400 + 1) ** 365 - 1
109
+
110
+ return {
111
+ 'deposit_apy': supply_apy,
112
+ 'borrow_apy': borrow_apy,
113
+ 'total_deposit': total_supply,
114
+ 'total_borrow': total_borrow
115
+ }
116
+
117
+ def get_ctoken_function_info(self, ctoken: str, fn_name: str, fn_paras: list = None, block_number: int = "latest"):
118
+ return self.state_service.get_function_info(
119
+ ctoken, self.vtoken_abi, fn_name, fn_paras, block_number
120
+ )
@@ -3,9 +3,9 @@ import time
3
3
 
4
4
  from web3 import Web3
5
5
 
6
- from defi_services.abis.lending.aave_v2_and_forlks.aave_v2_incentives_abi import AAVE_V2_INCENTIVES_ABI
7
- from defi_services.abis.lending.aave_v2_and_forlks.lending_pool_abi import LENDING_POOL_ABI
8
- from defi_services.abis.lending.aave_v2_and_forlks.oracle_abi import ORACLE_ABI
6
+ from defi_services.abis.lending.aave_v2_and_forks.aave_v2_incentives_abi import AAVE_V2_INCENTIVES_ABI
7
+ from defi_services.abis.lending.aave_v2_and_forks.lending_pool_abi import LENDING_POOL_ABI
8
+ from defi_services.abis.lending.aave_v2_and_forks.oracle_abi import ORACLE_ABI
9
9
  from defi_services.abis.lending.morpho.morpho_aave_v2_comptroller_abi import MORPHO_AAVE_V2_COMPTROLLER
10
10
  from defi_services.abis.lending.morpho.morpho_aave_v2_lens_abi import MORPHO_AAVE_V2_LENS_ABI
11
11
  from defi_services.abis.token.erc20_abi import ERC20_ABI
@@ -3,8 +3,8 @@ import time
3
3
 
4
4
  from web3 import Web3
5
5
 
6
- from defi_services.abis.lending.aave_v2_and_forlks.aave_v2_incentives_abi import AAVE_V2_INCENTIVES_ABI
7
- from defi_services.abis.lending.aave_v2_and_forlks.oracle_abi import ORACLE_ABI
6
+ from defi_services.abis.lending.aave_v2_and_forks.aave_v2_incentives_abi import AAVE_V2_INCENTIVES_ABI
7
+ from defi_services.abis.lending.aave_v2_and_forks.oracle_abi import ORACLE_ABI
8
8
  from defi_services.abis.lending.aave.aave_v3.aave_v3_lending_pool_abi import AAVE_V3_LENDING_POOL_ABI
9
9
  from defi_services.abis.lending.morpho.morpho_aave_v3_comptroller_abi import MORPHO_AAVE_V3_COMPTROLLER_ABI
10
10
  from defi_services.abis.token.erc20_abi import ERC20_ABI