defi-state-querier 0.4.1__py3-none-any.whl → 0.4.3__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 (48) hide show
  1. defi_services/__init__.py +1 -1
  2. defi_services/constants/chain_constant.py +4 -1
  3. defi_services/constants/entities/vault_constant.py +5 -0
  4. defi_services/constants/entities/vault_services.py +24 -0
  5. defi_services/constants/query_constant.py +1 -0
  6. defi_services/jobs/processors/state_processor.py +4 -2
  7. defi_services/services/lending/aave_v2_services.py +1 -1
  8. defi_services/services/lending/aave_v3_services.py +1 -1
  9. defi_services/services/lending/apeswap_services.py +5 -2
  10. defi_services/services/lending/compound_service.py +7 -2
  11. defi_services/services/lending/compound_v3_services.py +1 -4
  12. defi_services/services/lending/flux_services.py +6 -5
  13. defi_services/services/lending/granary_services.py +1 -4
  14. defi_services/services/lending/iron_bank_service.py +17 -6
  15. defi_services/services/lending/justlend_service.py +21 -6
  16. defi_services/services/lending/lending_info/bsc/liqee_bsc.py +154 -106
  17. defi_services/services/lending/lending_info/ethereum/liqee_eth.py +160 -110
  18. defi_services/services/lending/liqee_service.py +7 -4
  19. defi_services/services/lending/morpho_aave_v2_services.py +1 -1
  20. defi_services/services/lending/morpho_aave_v3_services.py +1 -4
  21. defi_services/services/lending/morpho_compound_services.py +1 -5
  22. defi_services/services/lending/onyx_service.py +7 -5
  23. defi_services/services/lending/radiant_v2_services.py +1 -4
  24. defi_services/services/lending/silo_services.py +1 -1
  25. defi_services/services/lending/strike_service.py +7 -2
  26. defi_services/services/lending/trava_services.py +5 -5
  27. defi_services/services/lending/uwu_services.py +1 -1
  28. defi_services/services/lending/valas_services.py +1 -1
  29. defi_services/services/lending/venus_services.py +28 -16
  30. defi_services/services/lending/wepiggy_services.py +7 -2
  31. defi_services/services/protocol_services.py +34 -2
  32. defi_services/services/vault/__init__.py +0 -0
  33. defi_services/services/vault/trava_vault_services.py +196 -0
  34. defi_services/services/vault/vault_info/__init__.py +0 -0
  35. defi_services/services/vault/vault_info/bsc/__init__.py +0 -0
  36. defi_services/services/vault/vault_info/bsc/trava_bsc.py +41 -0
  37. defi_services/services/vault/vault_info/ethereum/__init__.py +0 -0
  38. defi_services/services/vault/vault_info/ethereum/trava_eth.py +22 -0
  39. defi_services/services/vault/vault_info/fantom/__init__.py +0 -0
  40. defi_services/services/vault/vault_info/fantom/trava_ftm.py +31 -0
  41. defi_services/utils/init_services.py +5 -0
  42. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/METADATA +1 -1
  43. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/RECORD +46 -37
  44. defi_services/jobs/queriers/cosmos_state_querier.py +0 -83
  45. defi_services/services/cosmos_token_services.py +0 -46
  46. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/LICENSE +0 -0
  47. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/WHEEL +0 -0
  48. {defi_state_querier-0.4.1.dist-info → defi_state_querier-0.4.3.dist-info}/top_level.txt +0 -0
@@ -1,113 +1,163 @@
1
1
  LIQEE_ETH = {
2
- "name": "Liqee Lending Pool",
3
- "rewardToken": "0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0",
4
- "comptrollerAddress": "",
5
- "lensAddress": "",
6
- "controllerAddress": "0x8b53ab2c0df3230ea327017c91eb909f815ad113",
7
- "lendingDataAddress": "0x4b30c26d61be2f76bc7d9f2c5edbacba84982358",
8
- "poolToken": "0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0",
9
- "type": "LENDING_POOL",
10
- "forked": "compound",
11
- "reservesList": {
12
- "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599": {
13
- "cToken": "0x5812fcf91adc502a765e5707ebb3f36a07f63c02",
14
- "liquidationThreshold": 0.8
15
- },
16
- "0x0000000000000000000000000000000000000000": {
17
- "cToken": "0x5acd75f21659a59ffab9aebaf350351a8bfaabc0",
18
- "liquidationThreshold": 0.85
19
- },
20
- "0xdac17f958d2ee523a2206206994597c13d831ec7": {
21
- "cToken": "0x1180c114f7fadcb6957670432a3cf8ef08ab5354",
22
- "liquidationThreshold": 0.85
23
- },
24
- "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
25
- "cToken": "0x2f956b2f801c6dad74e87e7f45c94f6283bf0f45",
26
- "liquidationThreshold": 0.85
27
- },
28
- "0x6b175474e89094c44da98b954eedeac495271d0f": {
29
- "cToken": "0x298f243ad592b6027d4717fbe9decda668e3c3a8",
30
- "liquidationThreshold": 0.85
31
- },
32
- "0x4fabb145d64652a948d72533023f6e7a623c7c53": {
33
- "cToken": "0x24677e213dec0ea53a430404cf4a11a6dc889fce",
34
- "liquidationThreshold": 0.75
35
- },
36
- "0x0316eb71485b0ab14103307bf65a021042c6d380": {
37
- "cToken": "0x47566acd7af49d2a192132314826ed3c3c5f3698",
38
- "liquidationThreshold": 0.8
39
- },
40
- "0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0": {
41
- "cToken": "0xb3dc7425e63e1855eb41107134d471dd34d7b239",
42
- "liquidationThreshold": 0.6
43
- },
44
- "0x355c665e101b9da58704a8fddb5feef210ef20c0": {
45
- "cToken": "0x164315ea59169d46359baa4bcc6479bb421764b6",
46
- "liquidationThreshold": 0.8
47
- },
48
- "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984": {
49
- "cToken": "0xbec9a824d6da8d0f923fd9fbec4faa949d396320",
50
- "liquidationThreshold": 0.7
51
- },
52
- "0x0a5e677a6a24b2f1a2bf4f3bffc443231d2fdec8": {
53
- "cToken": "0xd1254d280e7504836e1b0e36535ebff248483cee",
54
- "liquidationThreshold": 0.7
55
- },
56
- "0xb986f3a2d91d3704dc974a24fb735dcc5e3c1e70": {
57
- "cToken": "0x591595bfae3f5d51a820ecd20a1e3fbb6638f34b",
58
- "liquidationThreshold": 0.7
59
- },
60
- "0x527ec46ac094b399265d1d71eff7b31700aa655d": {
61
- "cToken": "0xfa2e831c674b61475c175b2206e81a5938b298dd",
62
- "liquidationThreshold": 0.7
63
- },
64
- "0x8d2cb35893c01fa8b564c84bd540c5109d9d278e": {
65
- "cToken": "0x028db7a9d133301bd49f27b5e41f83f56ab0faa6",
66
- "liquidationThreshold": 0.7
67
- },
68
- "0x514910771af9ca656af840dff83e8264ecf986ca": {
69
- "cToken": "0xa3068aa78611ed29d381e640bb2c02abcf3ca7de",
70
- "liquidationThreshold": 0.7
71
- },
72
- "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2": {
73
- "cToken": "0x039e7ef6a674f3ec1d88829b8215ed45385c24bc",
74
- "liquidationThreshold": 0.7
75
- },
76
- "0x0000000000085d4780b73119b644ae5ecd22b376": {
77
- "cToken": "0x6e6a689a5964083dff9fd7a0f788baf620ea2dbe",
78
- "liquidationThreshold": 0.8
79
- },
80
- "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0": {
81
- "cToken": "0xbfd291da8a403daaf7e5e9dc1ec0aceacd4848b9",
82
- "liquidationThreshold": 0.825
83
- },
84
- "0x853d955acef822db058eb8505911ed77f175b99e": {
85
- "cToken": "0x71173e3c6999c2c72ccf363f4ae7b67bcc7e8f63",
86
- "liquidationThreshold": 0.0
87
- },
88
- "0x956f47f50a910163d8bf957cf5846d573e7f87ca": {
89
- "cToken": "0x47c19a2ab52da26551a22e2b2aeed5d19ef4022f",
90
- "liquidationThreshold": 0.0
91
- },
92
- "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9": {
93
- "cToken": "0x3e5cb932d7a1c0ca096b71cc486b2ad7e0dc3d0e",
94
- "liquidationThreshold": 0.7
95
- },
96
- "0xd533a949740bb3306d119cc777fa900ba034cd52": {
97
- "cToken": "0xe39672dfa87c824bcb3b38aa480ef684687cbc09",
98
- "liquidationThreshold": 0.65
99
- },
100
- "0xd5147bc8e386d91cc5dbe72099dac6c9b99276f5": {
101
- "cToken": "0x59055220e00da46c891283ea1d79363c769158b9",
102
- "liquidationThreshold": 0.0
103
- },
104
- "0x83f20f44975d03b1b09e64809b757c47f942beea": {
105
- "cToken": "0x5f02fb5f1203a502c701a12fd409548993f795ba",
106
- "liquidationThreshold": 0.85
107
- },
108
- "0xae78736cd615f374d3085123a210448e74fc6393": {
109
- "cToken": "0x33b5edc15e05d3dac27fccad77cf550c5f3f02aa",
110
- "liquidationThreshold": 0.7
111
- }
2
+ "comptrollerAddress": "",
3
+ "controllerAddress": "0x8b53ab2c0df3230ea327017c91eb909f815ad113",
4
+ "forked": "compound",
5
+ "lendingDataAddress": "0x4b30c26d61be2f76bc7d9f2c5edbacba84982358",
6
+ "lensAddress": "",
7
+ "name": "Liqee Lending Pool",
8
+ "poolToken": "0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0",
9
+ "reservesList": {
10
+ "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599": {
11
+ "cToken": "0x5812fcf91adc502a765e5707ebb3f36a07f63c02",
12
+ "exchangeRate": 1.000012067974307,
13
+ "liquidationThreshold": 0.8,
14
+ "loanToValue": 0.8
15
+ },
16
+ "0x0000000000000000000000000000000000000000": {
17
+ "cToken": "0x5acd75f21659a59ffab9aebaf350351a8bfaabc0",
18
+ "exchangeRate": 1.0092559004684867,
19
+ "liquidationThreshold": 0.85,
20
+ "loanToValue": 0.85
21
+ },
22
+ "0xdac17f958d2ee523a2206206994597c13d831ec7": {
23
+ "cToken": "0x1180c114f7fadcb6957670432a3cf8ef08ab5354",
24
+ "exchangeRate": 1.0653006831932572,
25
+ "liquidationThreshold": 0.85,
26
+ "loanToValue": 0.85
27
+ },
28
+ "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": {
29
+ "cToken": "0x2f956b2f801c6dad74e87e7f45c94f6283bf0f45",
30
+ "exchangeRate": 1.0618162566733447,
31
+ "liquidationThreshold": 0.85,
32
+ "loanToValue": 0.85
33
+ },
34
+ "0x6b175474e89094c44da98b954eedeac495271d0f": {
35
+ "cToken": "0x298f243ad592b6027d4717fbe9decda668e3c3a8",
36
+ "exchangeRate": 1.0671526314936417,
37
+ "liquidationThreshold": 0.85,
38
+ "loanToValue": 0.85
39
+ },
40
+ "0x4fabb145d64652a948d72533023f6e7a623c7c53": {
41
+ "cToken": "0x24677e213dec0ea53a430404cf4a11a6dc889fce",
42
+ "exchangeRate": 1.000000000000008,
43
+ "liquidationThreshold": 0.75,
44
+ "loanToValue": 0.75
45
+ },
46
+ "0x0316eb71485b0ab14103307bf65a021042c6d380": {
47
+ "cToken": "0x47566acd7af49d2a192132314826ed3c3c5f3698",
48
+ "exchangeRate": 1,
49
+ "liquidationThreshold": 0.8,
50
+ "loanToValue": 0.8
51
+ },
52
+ "0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0": {
53
+ "cToken": "0xb3dc7425e63e1855eb41107134d471dd34d7b239",
54
+ "exchangeRate": 1.0001004296452365,
55
+ "liquidationThreshold": 0.6,
56
+ "loanToValue": 0.6
57
+ },
58
+ "0x355c665e101b9da58704a8fddb5feef210ef20c0": {
59
+ "cToken": "0x164315ea59169d46359baa4bcc6479bb421764b6",
60
+ "exchangeRate": 1,
61
+ "liquidationThreshold": 0.8,
62
+ "loanToValue": 0.8
63
+ },
64
+ "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984": {
65
+ "cToken": "0xbec9a824d6da8d0f923fd9fbec4faa949d396320",
66
+ "exchangeRate": 1,
67
+ "liquidationThreshold": 0.7,
68
+ "loanToValue": 0.7
69
+ },
70
+ "0x0a5e677a6a24b2f1a2bf4f3bffc443231d2fdec8": {
71
+ "cToken": "0xd1254d280e7504836e1b0e36535ebff248483cee",
72
+ "exchangeRate": 1,
73
+ "liquidationThreshold": 0.7,
74
+ "loanToValue": 0.7
75
+ },
76
+ "0xb986f3a2d91d3704dc974a24fb735dcc5e3c1e70": {
77
+ "cToken": "0x591595bfae3f5d51a820ecd20a1e3fbb6638f34b",
78
+ "exchangeRate": 1,
79
+ "liquidationThreshold": 0.7,
80
+ "loanToValue": 0.7
81
+ },
82
+ "0x527ec46ac094b399265d1d71eff7b31700aa655d": {
83
+ "cToken": "0xfa2e831c674b61475c175b2206e81a5938b298dd",
84
+ "exchangeRate": 1,
85
+ "liquidationThreshold": 0.7,
86
+ "loanToValue": 0.7
87
+ },
88
+ "0x8d2cb35893c01fa8b564c84bd540c5109d9d278e": {
89
+ "cToken": "0x028db7a9d133301bd49f27b5e41f83f56ab0faa6",
90
+ "exchangeRate": 1,
91
+ "liquidationThreshold": 0.7,
92
+ "loanToValue": 0.7
93
+ },
94
+ "0x514910771af9ca656af840dff83e8264ecf986ca": {
95
+ "cToken": "0xa3068aa78611ed29d381e640bb2c02abcf3ca7de",
96
+ "exchangeRate": 1,
97
+ "liquidationThreshold": 0.7,
98
+ "loanToValue": 0.7
99
+ },
100
+ "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2": {
101
+ "cToken": "0x039e7ef6a674f3ec1d88829b8215ed45385c24bc",
102
+ "exchangeRate": 1,
103
+ "liquidationThreshold": 0.7,
104
+ "loanToValue": 0.7
105
+ },
106
+ "0x0000000000085d4780b73119b644ae5ecd22b376": {
107
+ "cToken": "0x6e6a689a5964083dff9fd7a0f788baf620ea2dbe",
108
+ "exchangeRate": 1,
109
+ "liquidationThreshold": 0,
110
+ "loanToValue": 0
111
+ },
112
+ "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0": {
113
+ "cToken": "0xbfd291da8a403daaf7e5e9dc1ec0aceacd4848b9",
114
+ "exchangeRate": 1,
115
+ "liquidationThreshold": 0.825,
116
+ "loanToValue": 0.825
117
+ },
118
+ "0x853d955acef822db058eb8505911ed77f175b99e": {
119
+ "cToken": "0x71173e3c6999c2c72ccf363f4ae7b67bcc7e8f63",
120
+ "exchangeRate": 1.000056097645922,
121
+ "liquidationThreshold": 0,
122
+ "loanToValue": 0
123
+ },
124
+ "0x956f47f50a910163d8bf957cf5846d573e7f87ca": {
125
+ "cToken": "0x47c19a2ab52da26551a22e2b2aeed5d19ef4022f",
126
+ "exchangeRate": 1,
127
+ "liquidationThreshold": 0,
128
+ "loanToValue": 0
129
+ },
130
+ "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9": {
131
+ "cToken": "0x3e5cb932d7a1c0ca096b71cc486b2ad7e0dc3d0e",
132
+ "exchangeRate": 1,
133
+ "liquidationThreshold": 0.7,
134
+ "loanToValue": 0.7
135
+ },
136
+ "0xd533a949740bb3306d119cc777fa900ba034cd52": {
137
+ "cToken": "0xe39672dfa87c824bcb3b38aa480ef684687cbc09",
138
+ "exchangeRate": 1,
139
+ "liquidationThreshold": 0.65,
140
+ "loanToValue": 0.65
141
+ },
142
+ "0xd5147bc8e386d91cc5dbe72099dac6c9b99276f5": {
143
+ "cToken": "0x59055220e00da46c891283ea1d79363c769158b9",
144
+ "exchangeRate": 1,
145
+ "liquidationThreshold": 0,
146
+ "loanToValue": 0
147
+ },
148
+ "0x83f20f44975d03b1b09e64809b757c47f942beea": {
149
+ "cToken": "0x5f02fb5f1203a502c701a12fd409548993f795ba",
150
+ "exchangeRate": 1,
151
+ "liquidationThreshold": 0.85,
152
+ "loanToValue": 0.85
153
+ },
154
+ "0xae78736cd615f374d3085123a210448e74fc6393": {
155
+ "cToken": "0x33b5edc15e05d3dac27fccad77cf550c5f3f02aa",
156
+ "exchangeRate": 1,
157
+ "liquidationThreshold": 0.7,
158
+ "loanToValue": 0.7
112
159
  }
160
+ },
161
+ "rewardToken": "0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0",
162
+ "type": "LENDING_POOL"
113
163
  }
@@ -60,14 +60,17 @@ class LiqeeStateService(CompoundStateService):
60
60
  reserves_info = {}
61
61
  for token in ctokens:
62
62
  address = _w3.toChecksumAddress(token)
63
- contract = _w3.eth.contract(
64
- address=address, abi=self.lquee_token_abi)
63
+ contract = _w3.eth.contract(address=address, abi=self.lquee_token_abi)
65
64
  underlying = contract.functions.underlying().call(block_identifier=block_number)
66
65
  liquidation_threshold = comptroller_contract.functions.markets(address).call(block_identifier=block_number)
67
- liquidation_threshold = liquidation_threshold[0] / 10**18
66
+ liquidation_threshold = liquidation_threshold[0] / 10 ** 18
67
+
68
+ exchange_rate = contract.functions.exchangeRateStored().call(block_identifier=block_number)
69
+ exchange_rate = exchange_rate / 10 ** 18
68
70
 
69
71
  reserves_info[underlying.lower()] = {
70
72
  "cToken": token.lower(),
73
+ "exchangeRate": exchange_rate,
71
74
  "liquidationThreshold": liquidation_threshold,
72
75
  "loanToValue": liquidation_threshold
73
76
  }
@@ -184,7 +187,7 @@ class LiqeeStateService(CompoundStateService):
184
187
  get_reward_id = f"getAccountRewardAmount_{self.name}_{wallet}_{block_number}".lower()
185
188
  return {get_reward_id: rpc_call}
186
189
 
187
- def calculate_rewards_balance(self, decoded_data: dict, wallet: str, block_number: int = "latest"):
190
+ def calculate_rewards_balance(self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
188
191
  get_reward_id = f"getAccountRewardAmount_{self.name}_{wallet}_{block_number}".lower()
189
192
  rewards = decoded_data.get(get_reward_id) / 10 ** 18
190
193
  reward_token = self.pool_info.get("rewardToken")
@@ -180,7 +180,7 @@ class MorphoAaveV2StateService(MorphoCompoundStateService):
180
180
  ):
181
181
  return {}
182
182
 
183
- def calculate_rewards_balance(self, decoded_data: dict, wallet: str, block_number: int = "latest"):
183
+ def calculate_rewards_balance(self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
184
184
  return {}
185
185
 
186
186
  def get_function_lending_pool_info(self, fn_name: str, fn_paras=None, block_number: int = 'latest'):
@@ -111,10 +111,7 @@ class MorphoAaveV3StateService(MorphoCompoundStateService):
111
111
  return {}
112
112
 
113
113
  def calculate_rewards_balance(
114
- self,
115
- decoded_data: dict,
116
- wallet: str,
117
- block_number: int = "latest"):
114
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
118
115
  return {}
119
116
 
120
117
  # WALLET DEPOSIT BORROW BALANCE
@@ -204,11 +204,7 @@ class MorphoCompoundStateService(ProtocolServices):
204
204
  return {get_reward_id: rpc_call}
205
205
 
206
206
  def calculate_rewards_balance(
207
- self,
208
- decoded_data: dict,
209
- wallet: str,
210
- block_number: int = "latest"
211
- ):
207
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
212
208
  get_reward_id = f"getUserUnclaimedRewards_{self.name}_{wallet}_{block_number}".lower()
213
209
  rewards = decoded_data.get(get_reward_id) / 10 ** 18
214
210
  reward_token = self.pool_info.get("rewardToken")
@@ -8,7 +8,7 @@ from defi_services.abis.lending.onyx.onyx_token_abi import ONYX_TOKEN_ABI
8
8
  from defi_services.abis.token.erc20_abi import ERC20_ABI
9
9
  from defi_services.constants.chain_constant import Chain, BlockTime
10
10
  from defi_services.constants.entities.lending_constant import Lending
11
- from defi_services.constants.token_constant import ContractAddresses, Token
11
+ from defi_services.constants.token_constant import Token
12
12
  from defi_services.jobs.queriers.state_querier import StateQuerier
13
13
  from defi_services.services.lending.compound_service import CompoundStateService
14
14
  from defi_services.services.lending.lending_info.ethereum.onyx_eth import ONYX_ETH
@@ -68,8 +68,13 @@ class OnyxStateService(CompoundStateService):
68
68
  ctoken = data[0].lower()
69
69
  lt = data[10] / 10 ** 18
70
70
  ltv = data[10] / 10 ** 18
71
+
72
+ underlying_decimal = int(data[13])
73
+ exchange_rate = data[1] / 10 ** (18 - 8 + underlying_decimal)
74
+
71
75
  reserves_info[underlying] = {
72
76
  "cToken": ctoken,
77
+ "exchangeRate": exchange_rate,
73
78
  "liquidationThreshold": lt,
74
79
  "loanToValue": ltv
75
80
  }
@@ -156,10 +161,7 @@ class OnyxStateService(CompoundStateService):
156
161
  return {get_reward_id: rpc_call}
157
162
 
158
163
  def calculate_rewards_balance(
159
- self,
160
- decoded_data: dict,
161
- wallet: str,
162
- block_number: int = "latest"):
164
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
163
165
  get_reward_id = f"xcnAccrued_{self.name}_{wallet}_{block_number}".lower()
164
166
  rewards = decoded_data.get(get_reward_id) / 10 ** 18
165
167
  reward_token = self.pool_info.get("rewardToken")
@@ -72,10 +72,7 @@ class RadiantStateService(ValasStateService):
72
72
  return rpc_calls
73
73
 
74
74
  def calculate_rewards_balance(
75
- self,
76
- decoded_data: dict,
77
- wallet: str,
78
- block_number: int = "latest"):
75
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
79
76
  reward_token = self.pool_info['rewardToken']
80
77
  key = f"allPendingRewards_{self.name}_{wallet}_{block_number}".lower()
81
78
  rewards = decoded_data.get(key) / 10 ** 18
@@ -240,7 +240,7 @@ class SiloStateService(ProtocolServices):
240
240
  decimals_id = f"decimals_{self.name}_{reward_token}_{block_number}".lower()
241
241
  return {get_reward_id: rpc_call, decimals_id: decimals_call}
242
242
 
243
- def calculate_rewards_balance(self, decoded_data: dict, wallet: str, block_number: int = "latest"):
243
+ def calculate_rewards_balance(self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
244
244
  reward_token = self.pool_info.get("rewardToken")
245
245
  get_reward_id = f"getUserUnclaimedRewards_{self.name}_{wallet}_{block_number}".lower()
246
246
  decimals_id = f"decimals_{self.name}_{reward_token}_{block_number}".lower()
@@ -7,7 +7,7 @@ from defi_services.abis.lending.strike.strike_lens_abi import STRIKE_LENS_ABI
7
7
  from defi_services.abis.token.erc20_abi import ERC20_ABI
8
8
  from defi_services.constants.chain_constant import Chain, BlockTime
9
9
  from defi_services.constants.entities.lending_constant import Lending
10
- from defi_services.constants.token_constant import ContractAddresses, Token
10
+ from defi_services.constants.token_constant import Token
11
11
  from defi_services.jobs.queriers.state_querier import StateQuerier
12
12
  from defi_services.services.lending.compound_service import CompoundStateService
13
13
  from defi_services.services.lending.lending_info.ethereum.strike_eth import STRIKE_ETH
@@ -66,8 +66,13 @@ class StrikeStateService(CompoundStateService):
66
66
  ctoken = data[0].lower()
67
67
  lt = data[10] / 10 ** 18
68
68
  ltv = data[10] / 10 ** 18
69
+
70
+ underlying_decimal = int(data[13])
71
+ exchange_rate = data[1] / 10 ** (18 - 8 + underlying_decimal)
72
+
69
73
  reserves_info[underlying] = {
70
74
  "cToken": ctoken,
75
+ "exchangeRate": exchange_rate,
71
76
  "liquidationThreshold": lt,
72
77
  "loanToValue": ltv
73
78
  }
@@ -118,7 +123,7 @@ class StrikeStateService(CompoundStateService):
118
123
  return {get_reward_id: rpc_call}
119
124
 
120
125
  def calculate_rewards_balance(
121
- self, decoded_data: dict, wallet: str, block_number: int = "latest"):
126
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
122
127
  get_reward_id = f"strikeAccrued_{self.name}_{wallet}_{block_number}".lower()
123
128
  rewards = decoded_data.get(get_reward_id) / 10 ** 18
124
129
  reward_token = self.pool_info.get("rewardToken")
@@ -388,7 +388,7 @@ class TravaStateService(ProtocolServices):
388
388
  # REWARDS BALANCE
389
389
  def get_rewards_balance_function_info(
390
390
  self,
391
- wallet_address,
391
+ wallet,
392
392
  reserves_info: dict = None,
393
393
  block_number: int = "latest"
394
394
  ):
@@ -397,16 +397,16 @@ class TravaStateService(ProtocolServices):
397
397
  for token, value in reserves_info.items():
398
398
  atoken, debt_token = Web3.toChecksumAddress(value['tToken']), Web3.toChecksumAddress(value['dToken'])
399
399
  tokens += [atoken, debt_token]
400
- key = f"getRewardsBalance_{self.name}_{wallet_address}_{block_number}".lower()
400
+ key = f"getRewardsBalance_{self.name}_{wallet}_{block_number}".lower()
401
401
  rpc_calls[key] = self.get_function_incentive_info(
402
- "getRewardsBalance", [tokens, wallet_address], block_number)
402
+ "getRewardsBalance", [tokens, wallet], block_number)
403
403
 
404
404
  return rpc_calls
405
405
 
406
406
  def calculate_rewards_balance(
407
- self, decoded_data: dict, wallet_address: str, block_number: int = "latest"):
407
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
408
408
  reward_token = self.pool_info['rewardToken']
409
- key = f"getRewardsBalance_{self.name}_{wallet_address}_{block_number}".lower()
409
+ key = f"getRewardsBalance_{self.name}_{wallet}_{block_number}".lower()
410
410
  rewards = decoded_data.get(key) / 10 ** 18
411
411
  result = {
412
412
  reward_token: {"amount": rewards}
@@ -295,7 +295,7 @@ class UwuStateService(ProtocolServices):
295
295
  return rpc_calls
296
296
 
297
297
  def calculate_rewards_balance(
298
- self, decoded_data: dict, wallet: str, block_number: int = "latest"):
298
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
299
299
  reward_token = self.pool_info['rewardToken']
300
300
  key = f"claimableReward_{self.name}_{wallet}_{block_number}".lower()
301
301
  rewards = sum(decoded_data.get(key)) / 10 ** 18
@@ -443,7 +443,7 @@ class ValasStateService(ProtocolServices):
443
443
  return rpc_calls
444
444
 
445
445
  def calculate_rewards_balance(
446
- self, decoded_data: dict, wallet: str, block_number: int = "latest"):
446
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
447
447
  reward_token = self.pool_info['rewardToken']
448
448
  key = f"earnedBalances_{self.name}_{wallet}_{block_number}".lower()
449
449
  rewards = decoded_data.get(key)[0] / 10 ** 18
@@ -8,7 +8,7 @@ from defi_services.abis.lending.venus.vtoken_abi import VTOKEN_ABI
8
8
  from defi_services.abis.token.erc20_abi import ERC20_ABI
9
9
  from defi_services.constants.chain_constant import Chain
10
10
  from defi_services.constants.entities.lending_constant import Lending
11
- from defi_services.constants.token_constant import ContractAddresses, Token
11
+ from defi_services.constants.token_constant import Token
12
12
  from defi_services.jobs.queriers.state_querier import StateQuerier
13
13
  from defi_services.services.lending.compound_service import CompoundStateService
14
14
  from defi_services.services.lending.lending_info.bsc.venus_bsc import VENUS_BSC
@@ -62,25 +62,37 @@ class VenusStateService(CompoundStateService):
62
62
  tokens = [Web3.toChecksumAddress(i) for i in ctokens]
63
63
  queries = {}
64
64
  for token in tokens:
65
- key = f"underlying_{token}_latest".lower()
65
+ key = f"underlying_{token}_{block_number}".lower()
66
66
  queries[key] = {
67
- "address": token,
68
- "abi": self.vtoken_abi,
69
- "params": [],
70
- "function": "underlying",
71
- "block_number": "latest"
67
+ "address": token, "abi": self.vtoken_abi, "params": [],
68
+ "function": "underlying", "block_number": block_number
72
69
  }
73
- markets = f"markets_{token}_latest".lower()
70
+
71
+ exchange_rate_query_id = f'exchangeRateStored_{token}_{block_number}'
72
+ queries[exchange_rate_query_id] = self.get_ctoken_function_info(
73
+ ctoken=token, fn_name='exchangeRateStored', block_number=block_number)
74
+
75
+ markets = f"markets_{token}_{block_number}".lower()
74
76
  queries[markets] = self.get_comptroller_function_info("markets", [token])
75
77
  decoded_data = self.state_service.query_state_data(queries)
76
78
  for token in tokens:
77
- key = f"underlying_{token}_latest".lower()
79
+ key = f"underlying_{token}_{block_number}".lower()
78
80
  underlying = decoded_data.get(key).lower()
79
- markets = f"markets_{token}_latest".lower()
81
+ markets = f"markets_{token}_{block_number}".lower()
80
82
  liquidation_threshold = decoded_data.get(markets)[1] / 10 ** 18
81
83
  ltv = liquidation_threshold
84
+
85
+ if underlying != Token.native_token:
86
+ underlying_contract = _w3.eth.contract(address=Web3.toChecksumAddress(underlying), abi=ERC20_ABI)
87
+ underlying_decimal = underlying_contract.functions.decimals().call()
88
+ else:
89
+ underlying_decimal = Chain.native_decimals.get(self.chain_id, 18)
90
+ exchange_rate_query_id = f'exchangeRateStored_{token}_{block_number}'
91
+ exchange_rate = decoded_data.get(exchange_rate_query_id) / 10 ** (18 - 8 + underlying_decimal)
92
+
82
93
  reserves_info[underlying] = {
83
94
  'cToken': token.lower(),
95
+ "exchangeRate": exchange_rate,
84
96
  "liquidationThreshold": liquidation_threshold,
85
97
  "loanToValue": ltv
86
98
  }
@@ -128,17 +140,17 @@ class VenusStateService(CompoundStateService):
128
140
  # REWARDS BALANCE
129
141
  def get_rewards_balance_function_info(
130
142
  self,
131
- wallets: str,
143
+ wallet: str,
132
144
  reserves_info: dict = None,
133
145
  block_number: int = "latest",
134
146
  ):
135
- rpc_call = self.get_comptroller_function_info("venusAccrued", [wallets], block_number)
136
- get_reward_id = f"venusAccrued_{self.name}_{wallets}_{block_number}".lower()
147
+ rpc_call = self.get_comptroller_function_info("venusAccrued", [wallet], block_number)
148
+ get_reward_id = f"venusAccrued_{self.name}_{wallet}_{block_number}".lower()
137
149
  return {get_reward_id: rpc_call}
138
150
 
139
- def calculate_rewards_balance(self, decoded_data: dict, wallets: str,
140
- block_number: int = "latest"):
141
- get_reward_id = f"venusAccrued_{self.name}_{wallets}_{block_number}".lower()
151
+ def calculate_rewards_balance(
152
+ self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
153
+ get_reward_id = f"venusAccrued_{self.name}_{wallet}_{block_number}".lower()
142
154
  rewards = decoded_data.get(get_reward_id) / 10 ** 18
143
155
  reward_token = self.pool_info.get("rewardToken")
144
156
  result = {
@@ -8,7 +8,7 @@ from defi_services.abis.lending.wepiggy.wepiggy_lens_abi import WEPIGGY_LENS_ABI
8
8
  from defi_services.abis.token.erc20_abi import ERC20_ABI
9
9
  from defi_services.constants.chain_constant import Chain, BlockTime
10
10
  from defi_services.constants.entities.lending_constant import Lending
11
- from defi_services.constants.token_constant import ContractAddresses, Token
11
+ from defi_services.constants.token_constant import Token
12
12
  from defi_services.jobs.queriers.state_querier import StateQuerier
13
13
  from defi_services.services.lending.compound_service import CompoundStateService
14
14
  from defi_services.services.lending.lending_info.arbitrum.wepiggy_arbitrum import WEPIGGY_ARB
@@ -80,8 +80,13 @@ class WepiggyStateService(CompoundStateService):
80
80
  ctoken = data[0].lower()
81
81
  lt = data[10] / 10 ** 18
82
82
  ltv = data[10] / 10 ** 18
83
+
84
+ underlying_decimal = int(data[3])
85
+ exchange_rate = data[6] / 10 ** (18 - 8 + underlying_decimal)
86
+
83
87
  reserves_info[underlying] = {
84
88
  "cToken": ctoken,
89
+ "exchangeRate": exchange_rate,
85
90
  "liquidationThreshold": lt,
86
91
  "loanToValue": ltv
87
92
  }
@@ -135,7 +140,7 @@ class WepiggyStateService(CompoundStateService):
135
140
  get_reward_id = f"wpcAccrued_{self.name}_{wallet}_{block_number}".lower()
136
141
  return {get_reward_id: rpc_call}
137
142
 
138
- def calculate_rewards_balance(self, decoded_data: dict, wallet: str, block_number: int = "latest"):
143
+ def calculate_rewards_balance(self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
139
144
  get_reward_id = f"wpcAccrued_{self.name}_{wallet}_{block_number}".lower()
140
145
  rewards = decoded_data.get(get_reward_id) / 10 ** 18
141
146
  reward_token = self.pool_info.get("rewardToken")