defi-state-querier 0.5.28__py3-none-any.whl → 0.5.30__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 (103) 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/kinza/__init__.py +0 -0
  5. defi_services/abis/lending/kinza/kinza_incentive.py +928 -0
  6. defi_services/abis/lending/kinza/kinza_lending_pool.py +1791 -0
  7. defi_services/abis/lending/moonwell/__init__.py +0 -0
  8. defi_services/abis/lending/moonwell/moonwell_comptroller_abi.py +1500 -0
  9. defi_services/abis/lending/moonwell/moonwell_ctoken_abi.py +1431 -0
  10. defi_services/abis/lending/radiant_v2/radiant_reward_converter.py +817 -0
  11. defi_services/abis/lending/seamless/__init__.py +0 -0
  12. defi_services/abis/lending/seamless/seamless_incentive.py +1049 -0
  13. defi_services/abis/lending/seamless/seamless_lending_pool.py +1738 -0
  14. defi_services/abis/lending/seamless/seamless_oracle.py +233 -0
  15. defi_services/abis/token/trc20_abi.py +304 -0
  16. defi_services/abis/vault/tcv_abi.py +1523 -0
  17. defi_services/constants/chain_constant.py +8 -1
  18. defi_services/constants/entities/dex_info_constant.py +2 -2
  19. defi_services/constants/entities/dex_services.py +13 -1
  20. defi_services/constants/entities/lending_constant.py +14 -5
  21. defi_services/constants/entities/lending_services.py +41 -4
  22. defi_services/constants/entities/vault_constant.py +2 -2
  23. defi_services/constants/entities/vault_services.py +7 -1
  24. defi_services/constants/network_constants.py +20 -361
  25. defi_services/constants/token_constant.py +3 -1
  26. defi_services/jobs/processors/cosmos_state_processor.py +3 -2
  27. defi_services/jobs/processors/ton_state_processor.py +5 -4
  28. defi_services/jobs/queriers/call_state_querier.py +2 -0
  29. defi_services/jobs/queriers/state_querier.py +3 -0
  30. defi_services/jobs/tcv.py +144 -0
  31. defi_services/services/dex/dex_info/uniswap_info.py +29 -1
  32. defi_services/services/dex/uniswap_v3_service.py +6 -2
  33. defi_services/services/lending/aave_v2_services.py +44 -29
  34. defi_services/services/lending/aave_v3_services.py +41 -20
  35. defi_services/services/lending/avalon_services.py +34 -0
  36. defi_services/services/lending/compound_v3_services.py +9 -5
  37. defi_services/services/lending/granary_services.py +6 -4
  38. defi_services/services/lending/ionic_service.py +167 -0
  39. defi_services/services/lending/justlend_service.py +4 -3
  40. defi_services/services/lending/kinza_services.py +315 -0
  41. defi_services/services/lending/lending_info/arbitrum/aave_v3_arbitrum.py +1 -1
  42. defi_services/services/lending/lending_info/arbitrum/compound_v3_arbitrum.py +96 -6
  43. defi_services/services/lending/lending_info/arbitrum/venus_arbitrum.py +10 -0
  44. defi_services/services/lending/lending_info/base/__init__.py +0 -0
  45. defi_services/services/lending/lending_info/base/aave_v3_base.py +61 -0
  46. defi_services/services/lending/lending_info/base/compound_v3_base.py +116 -0
  47. defi_services/services/lending/lending_info/base/granary_base.py +62 -0
  48. defi_services/services/lending/lending_info/base/ionic_base.py +173 -0
  49. defi_services/services/lending/lending_info/base/moonwell_base.py +89 -0
  50. defi_services/services/lending/lending_info/base/radiant_v2_base.py +57 -0
  51. defi_services/services/lending/lending_info/base/seamless_base.py +145 -0
  52. defi_services/services/lending/lending_info/base/sonne_base.py +53 -0
  53. defi_services/services/lending/lending_info/base/xlend_base.py +91 -0
  54. defi_services/services/lending/lending_info/base/zerolend_base.py +109 -0
  55. defi_services/services/lending/lending_info/bsc/aave_v3_bsc.py +68 -0
  56. defi_services/services/lending/lending_info/bsc/apeswap_bsc.py +1 -1
  57. defi_services/services/lending/lending_info/bsc/avalon_bsc.py +75 -0
  58. defi_services/services/lending/lending_info/bsc/kinza_bsc.py +182 -0
  59. defi_services/services/lending/lending_info/ethereum/aave_v3_eth.py +1 -140
  60. defi_services/services/lending/lending_info/ethereum/compound_v3_eth.py +180 -5
  61. defi_services/services/lending/lending_info/ethereum/kinza_eth.py +119 -0
  62. defi_services/services/lending/lending_info/ethereum/old_aave_v3_eth.py +150 -0
  63. defi_services/services/lending/lending_info/ethereum/radiant_eth.py +69 -0
  64. defi_services/services/lending/lending_info/ethereum/venus_eth.py +10 -0
  65. defi_services/services/lending/lending_info/ethereum/zerolend_eth.py +96 -0
  66. defi_services/services/lending/lending_info/optimism/compound_v3_optimism.py +116 -0
  67. defi_services/services/lending/lending_info/optimism/moonwell_optimism.py +9 -0
  68. defi_services/services/lending/lending_info/optimism/xlend_optimism.py +112 -0
  69. defi_services/services/lending/lending_info/polygon/compound_v3_polygon.py +35 -5
  70. defi_services/services/lending/lending_info/zksync/__init__.py +0 -0
  71. defi_services/services/lending/lending_info/zksync/aave_v3_zksync.py +47 -0
  72. defi_services/services/lending/lending_info/zksync/venus_zksync.py +10 -0
  73. defi_services/services/lending/lending_info/zksync/zerolend_zksync.py +138 -0
  74. defi_services/services/lending/liqee_service.py +2 -2
  75. defi_services/services/lending/moonwell_service.py +120 -0
  76. defi_services/services/lending/morpho_aave_v2_services.py +3 -3
  77. defi_services/services/lending/morpho_aave_v3_services.py +2 -2
  78. defi_services/services/lending/onyx_service.py +2 -1
  79. defi_services/services/lending/radiant_v2_services.py +52 -10
  80. defi_services/services/lending/seamless_services.py +313 -0
  81. defi_services/services/lending/sonne_service.py +64 -0
  82. defi_services/services/lending/trava_services.py +2 -2
  83. defi_services/services/lending/uwu_services.py +3 -3
  84. defi_services/services/lending/valas_services.py +2 -2
  85. defi_services/services/lending/venus_services.py +9 -3
  86. defi_services/services/lending/xlend_services.py +325 -0
  87. defi_services/services/lending/zerolend_services.py +36 -0
  88. defi_services/services/multicall/multicall_v2.py +0 -317
  89. defi_services/services/vault/tcv_vault_services.py +108 -0
  90. defi_services/services/vault/vault_info/arbitrum/__init__.py +0 -0
  91. defi_services/services/vault/vault_info/arbitrum/tcv_arb.py +58 -0
  92. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/METADATA +1 -1
  93. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/RECORD +103 -49
  94. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/__init__.py +0 -0
  95. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/aave_v2_event_abi.py +0 -0
  96. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/aave_v2_incentives_abi.py +0 -0
  97. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/lending_pool_abi.py +0 -0
  98. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/oracle_abi.py +0 -0
  99. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/staked_incentives_abi.py +0 -0
  100. /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/uwu_incentives_abi.py +0 -0
  101. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/WHEEL +0 -0
  102. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/licenses/LICENSE +0 -0
  103. {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,112 @@
1
+ XLEND_OPTIMISM = {
2
+ "address": "0x345d2827f36621b02b783f7d5004b4a2fec00186",
3
+ "name": "Xlend Lending Pool",
4
+ "addressProvider": "0xa98cc6031ba6908d73dc5615ca82b607096d721d",
5
+ "dataProvider": "0xcc61e9470b5f0ce21a3f6255c73032b47aaea9c0",
6
+ "stakedIncentiveAddress": '0x3bbf68f18a792d34a288407f34734d16829b457e',
7
+ "rewardTokensList": ["0x2dad3a13ef0c6366220f989157009e501e7938f8"],
8
+ "oracleAddress": "0x1bc889345c912d5462b71e019f9dccba33d83db4",
9
+ "type": "LENDING_POOL",
10
+ "poolToken": "0x2dad3a13ef0c6366220f989157009e501e7938f8",
11
+ "forked": "aave-v3",
12
+ "reservesList": {
13
+ "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1": {
14
+ "tToken": "0x82e64f49ed5ec1bc6e43dad4fc8af9bb3a2312ee",
15
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
16
+ "dToken": "0x8619d80fb0141ba7f184cbf22fd724116d9f7ffc",
17
+ "loanToValue": 0.63,
18
+ "liquidationThreshold": 0.77
19
+ },
20
+ "0x350a791bfc2c21f9ed5d10980dad2e2638ffa7f6": {
21
+ "tToken": "0x191c10aa4af7c30e871e70c95db0e4eb77237530",
22
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
23
+ "dToken": "0x953a573793604af8d41f306feb8274190db4ae0e",
24
+ "loanToValue": 0.66,
25
+ "liquidationThreshold": 0.71
26
+ },
27
+ "0x7f5c764cbc14f9669b88837ca1490cca17c31607": {
28
+ "tToken": "0x625e7708f30ca75bfd92586e17077590c60eb4cd",
29
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
30
+ "dToken": "0xfccf3cabbe80101232d343252614b6a3ee81c989",
31
+ "loanToValue": 0.75,
32
+ "liquidationThreshold": 0.785
33
+ },
34
+ "0x68f180fcce6836688e9084f035309e29bf0a2095": {
35
+ "tToken": "0x078f358208685046a11c85e8ad32895ded33a249",
36
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
37
+ "dToken": "0x92b42c66840c7ad907b4bf74879ff3ef7c529473",
38
+ "loanToValue": 0.73,
39
+ "liquidationThreshold": 0.78
40
+ },
41
+ "0x4200000000000000000000000000000000000006": {
42
+ "tToken": "0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8",
43
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
44
+ "dToken": "0x0c84331e39d6658cd6e6b9ba04736cc4c4734351",
45
+ "loanToValue": 0.8,
46
+ "liquidationThreshold": 0.83
47
+ },
48
+ "0x94b008aa00579c1307b0ef2c499ad98a8ce58e58": {
49
+ "tToken": "0x6ab707aca953edaefbc4fd23ba73294241490620",
50
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
51
+ "dToken": "0xfb00ac187a8eb5afae4eace434f493eb62672df7",
52
+ "loanToValue": 0.75,
53
+ "liquidationThreshold": 0.78
54
+ },
55
+ "0x76fb31fb4af56892a25e32cfc43de717950c9278": {
56
+ "tToken": "0xf329e36c7bf6e5e86ce2150875a84ce77f477375",
57
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
58
+ "dToken": "0xe80761ea617f66f96274ea5e8c37f03960ecc679",
59
+ "loanToValue": 0.63,
60
+ "liquidationThreshold": 0.7
61
+ },
62
+ "0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9": {
63
+ "tToken": "0x6d80113e533a2c0fe82eabd35f1875dcea89ea97",
64
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
65
+ "dToken": "0x4a1c3ad6ed28a636ee1751c69071f6be75deb8b8",
66
+ "loanToValue": 0.0,
67
+ "liquidationThreshold": 0.7
68
+ },
69
+ "0x4200000000000000000000000000000000000042": {
70
+ "tToken": "0x513c7e3a9c69ca3e22550ef58ac1c0088e918fff",
71
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
72
+ "dToken": "0x77ca01483f379e58174739308945f044e1a764dc",
73
+ "loanToValue": 0.58,
74
+ "liquidationThreshold": 0.63
75
+ },
76
+ "0x1f32b1c2345538c0c6f582fcb022739c4a194ebb": {
77
+ "tToken": "0xc45a479877e1e9dfe9fcd4056c699575a1045daa",
78
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
79
+ "dToken": "0x34e2ed44ef7466d5f9e0b782b5c08b57475e7907",
80
+ "loanToValue": 0.75,
81
+ "liquidationThreshold": 0.79
82
+ },
83
+ "0xc40f949f8a4e094d1b49a23ea9241d289b7b2819": {
84
+ "tToken": "0x8eb270e296023e9d92081fdf967ddd7878724424",
85
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
86
+ "dToken": "0xce186f6cccb0c955445bb9d10c59cae488fea559",
87
+ "loanToValue": 0.0,
88
+ "liquidationThreshold": 0.0
89
+ },
90
+ "0xdfa46478f9e5ea86d57387849598dbfb2e964b02": {
91
+ "tToken": "0x8ffdf2de812095b1d19cb146e4c004587c0a0692",
92
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
93
+ "dToken": "0xa8669021776bc142dfca87c21b4a52595bcbb40a",
94
+ "loanToValue": 0.0,
95
+ "liquidationThreshold": 0.01
96
+ },
97
+ "0x9bcef72be871e61ed4fbbc7630889bee758eb81d": {
98
+ "tToken": "0x724dc807b04555b71ed48a6896b6f41593b8c637",
99
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
100
+ "dToken": "0xf611aeb5013fd2c0511c9cd55c7dc5c1140741a6",
101
+ "loanToValue": 0.69,
102
+ "liquidationThreshold": 0.74
103
+ },
104
+ "0x0b2c639c533813f4aa9d7837caf62653d097ff85": {
105
+ "tToken": "0x38d693ce1df5aadf7bc62595a37d667ad57922e5",
106
+ "sdToken": "0xd94112b5b62d53c9402e7a60289c6810def1dc9b",
107
+ "dToken": "0x5d557b07776d12967914379c71a1310e917c7555",
108
+ "loanToValue": 0.75,
109
+ "liquidationThreshold": 0.78
110
+ }
111
+ }
112
+ }
@@ -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
+ }
@@ -35,7 +35,7 @@ class LiqeeStateService(CompoundStateService):
35
35
  self.state_service = state_service
36
36
  self.lending_data_abi = LIQEE_LENDING_DATA_ABI
37
37
  self.controller_abi = LIQEE_CONTROLLER_ABI
38
- self.lquee_token_abi = LIQEE_TOKEN_ABI
38
+ self.liqee_token_abi = LIQEE_TOKEN_ABI
39
39
 
40
40
  # BASIC FUNCTIONS
41
41
  def get_service_info(self):
@@ -60,7 +60,7 @@ class LiqeeStateService(CompoundStateService):
60
60
  reserves_info = {}
61
61
  for token in ctokens:
62
62
  address = _w3.to_checksum_address(token)
63
- contract = _w3.eth.contract(address=address, abi=self.lquee_token_abi)
63
+ contract = _w3.eth.contract(address=address, abi=self.liqee_token_abi)
64
64
  underlying = contract.functions.underlying().call(block_identifier=block_number)
65
65
  liquidation_threshold = comptroller_contract.functions.markets(address).call(block_identifier=block_number)
66
66
  liquidation_threshold = liquidation_threshold[0] / 10 ** 18
@@ -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
@@ -55,6 +55,8 @@ class OnyxStateService(CompoundStateService):
55
55
  # if token in [ContractAddresses.LUNA.lower(), ContractAddresses.UST.lower(), ContractAddresses.LUNA,
56
56
  # ContractAddresses.UST]:
57
57
  # continue
58
+ if token == '0x1933f1183c421d44d531ed40a5d2445f6a91646d':
59
+ continue
58
60
  ctokens.append(token)
59
61
 
60
62
  lens_contract = _w3.eth.contract(
@@ -78,7 +80,6 @@ class OnyxStateService(CompoundStateService):
78
80
  "liquidationThreshold": lt,
79
81
  "loanToValue": ltv
80
82
  }
81
-
82
83
  return reserves_info
83
84
 
84
85
  # PROTOCOL APY
@@ -1,11 +1,15 @@
1
1
  import logging
2
2
 
3
+ from defi_services.abis.lending.radiant_v2.radiant_reward_converter import RADIANT_REWARD_CONVERTER_ABI
3
4
  from defi_services.abis.lending.radiant_v2.radiant_v2_incentive_abi import RADIANT_V2_INCENTIVE_ABI
5
+ from defi_services.abis.token.erc20_abi import ERC20_ABI
4
6
  from defi_services.constants.chain_constant import Chain
5
7
  from defi_services.constants.entities.lending_constant import Lending
6
8
  from defi_services.jobs.queriers.state_querier import StateQuerier
7
9
  from defi_services.services.lending.lending_info.arbitrum.radiant_arbitrum import RADIANT_ARB
10
+ from defi_services.services.lending.lending_info.base.radiant_v2_base import RADIANT_BASE
8
11
  from defi_services.services.lending.lending_info.bsc.radiant_bsc import RADIANT_BSC
12
+ from defi_services.services.lending.lending_info.ethereum.radiant_eth import RADIANT_ETH
9
13
  from defi_services.services.lending.valas_services import ValasStateService
10
14
  from defi_services.utils.apy import apr_to_apy
11
15
 
@@ -15,7 +19,9 @@ logger = logging.getLogger("Radiant Lending Pool State Service")
15
19
  class RadiantInfo:
16
20
  mapping = {
17
21
  Chain.arbitrum: RADIANT_ARB,
18
- Chain.bsc: RADIANT_BSC
22
+ Chain.bsc: RADIANT_BSC,
23
+ Chain.ethereum: RADIANT_ETH,
24
+ Chain.base: RADIANT_BASE
19
25
  }
20
26
 
21
27
 
@@ -65,19 +71,55 @@ class RadiantStateService(ValasStateService):
65
71
  block_number: int = "latest"
66
72
  ):
67
73
  rpc_calls = {}
68
- key = f"allPendingRewards_{self.name}_{wallet}_{block_number}".lower()
69
- rpc_calls[key] = self.get_function_incentive_info(
70
- "allPendingRewards", [wallet], block_number)
74
+ if self.chain_id != Chain.base:
75
+ key = f"allPendingRewards_{self.name}_{wallet}_{block_number}".lower()
76
+ rpc_calls[key] = self.get_function_incentive_info(
77
+ "allPendingRewards", [wallet], block_number)
78
+ else:
79
+ # key = f"viewPendingRewards_{self.name}_{wallet}_{block_number}".lower()
80
+ # rpc_calls[key] = self.get_function_reward_converter_info(
81
+ # "viewPendingRewards", [wallet], block_number)
82
+ for token in self.pool_info.get('rewardToken'):
83
+ key = f"decimals_{token}"
84
+ rpc_calls[key] = self.state_service.get_function_info(
85
+ token, ERC20_ABI, "decimals"
86
+ )
71
87
 
72
88
  return rpc_calls
73
89
 
74
90
  def calculate_rewards_balance(
75
91
  self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
76
- reward_token = self.pool_info['rewardToken']
77
- key = f"allPendingRewards_{self.name}_{wallet}_{block_number}".lower()
78
- rewards = decoded_data.get(key) / 10 ** 18
79
- result = {
80
- reward_token: {"amount": rewards}
81
- }
92
+ if self.chain_id != Chain.base:
93
+ reward_token = self.pool_info['rewardToken']
94
+ key = f"allPendingRewards_{self.name}_{wallet}_{block_number}".lower()
95
+ rewards = decoded_data.get(key) / 10 ** 18
96
+ result = {
97
+ reward_token: {"amount": rewards}
98
+ }
99
+ else:
100
+ # key = f"viewPendingRewards_{self.name}_{wallet}_{block_number}".lower()
101
+ # rewards = decoded_data.get(key)
102
+ result = {}
103
+ w3 = self.state_service.get_w3()
104
+ contract = w3.eth.contract(w3.to_checksum_address(
105
+ self.pool_info.get('rewardConverter')), abi=RADIANT_REWARD_CONVERTER_ABI
106
+ )
107
+ rewards = contract.functions.viewPendingRewards(w3.to_checksum_address(wallet)).call()
108
+ amts = rewards[1]
109
+ tokens = rewards[0]
110
+ for idx in range(len(tokens)):
111
+ amount = amts[idx]
112
+ token = tokens[idx].lower()
113
+ if token not in self.pool_info.get('rewardToken', []):
114
+ continue
115
+ decimal_key = f"decimals_{token}"
116
+ result.update({
117
+ token.lower(): {"amount": amount / 10**decoded_data.get(decimal_key)}
118
+ })
82
119
 
83
120
  return result
121
+
122
+ def get_function_reward_converter_info(self, fn_name: str, fn_paras=None, block_number: int = 'latest'):
123
+ return self.state_service.get_function_info(
124
+ self.pool_info['rewardConverter'], self.incentive_abi, fn_name, fn_paras, block_number
125
+ )