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.
- defi_services/__init__.py +1 -1
- defi_services/abis/lending/ionic/__init__.py +0 -0
- defi_services/abis/lending/ionic/ionic_ctoken_abi.py +1108 -0
- defi_services/abis/lending/kinza/__init__.py +0 -0
- defi_services/abis/lending/kinza/kinza_incentive.py +928 -0
- defi_services/abis/lending/kinza/kinza_lending_pool.py +1791 -0
- defi_services/abis/lending/moonwell/__init__.py +0 -0
- defi_services/abis/lending/moonwell/moonwell_comptroller_abi.py +1500 -0
- defi_services/abis/lending/moonwell/moonwell_ctoken_abi.py +1431 -0
- defi_services/abis/lending/radiant_v2/radiant_reward_converter.py +817 -0
- defi_services/abis/lending/seamless/__init__.py +0 -0
- defi_services/abis/lending/seamless/seamless_incentive.py +1049 -0
- defi_services/abis/lending/seamless/seamless_lending_pool.py +1738 -0
- defi_services/abis/lending/seamless/seamless_oracle.py +233 -0
- defi_services/abis/token/trc20_abi.py +304 -0
- defi_services/abis/vault/tcv_abi.py +1523 -0
- defi_services/constants/chain_constant.py +8 -1
- defi_services/constants/entities/dex_info_constant.py +2 -2
- defi_services/constants/entities/dex_services.py +13 -1
- defi_services/constants/entities/lending_constant.py +14 -5
- defi_services/constants/entities/lending_services.py +41 -4
- defi_services/constants/entities/vault_constant.py +2 -2
- defi_services/constants/entities/vault_services.py +7 -1
- defi_services/constants/network_constants.py +20 -361
- defi_services/constants/token_constant.py +3 -1
- defi_services/jobs/processors/cosmos_state_processor.py +3 -2
- defi_services/jobs/processors/ton_state_processor.py +5 -4
- defi_services/jobs/queriers/call_state_querier.py +2 -0
- defi_services/jobs/queriers/state_querier.py +3 -0
- defi_services/jobs/tcv.py +144 -0
- defi_services/services/dex/dex_info/uniswap_info.py +29 -1
- defi_services/services/dex/uniswap_v3_service.py +6 -2
- defi_services/services/lending/aave_v2_services.py +44 -29
- defi_services/services/lending/aave_v3_services.py +41 -20
- defi_services/services/lending/avalon_services.py +34 -0
- defi_services/services/lending/compound_v3_services.py +9 -5
- defi_services/services/lending/granary_services.py +6 -4
- defi_services/services/lending/ionic_service.py +167 -0
- defi_services/services/lending/justlend_service.py +4 -3
- defi_services/services/lending/kinza_services.py +315 -0
- defi_services/services/lending/lending_info/arbitrum/aave_v3_arbitrum.py +1 -1
- defi_services/services/lending/lending_info/arbitrum/compound_v3_arbitrum.py +96 -6
- defi_services/services/lending/lending_info/arbitrum/venus_arbitrum.py +10 -0
- defi_services/services/lending/lending_info/base/__init__.py +0 -0
- defi_services/services/lending/lending_info/base/aave_v3_base.py +61 -0
- defi_services/services/lending/lending_info/base/compound_v3_base.py +116 -0
- defi_services/services/lending/lending_info/base/granary_base.py +62 -0
- defi_services/services/lending/lending_info/base/ionic_base.py +173 -0
- defi_services/services/lending/lending_info/base/moonwell_base.py +89 -0
- defi_services/services/lending/lending_info/base/radiant_v2_base.py +57 -0
- defi_services/services/lending/lending_info/base/seamless_base.py +145 -0
- defi_services/services/lending/lending_info/base/sonne_base.py +53 -0
- defi_services/services/lending/lending_info/base/xlend_base.py +91 -0
- defi_services/services/lending/lending_info/base/zerolend_base.py +109 -0
- defi_services/services/lending/lending_info/bsc/aave_v3_bsc.py +68 -0
- defi_services/services/lending/lending_info/bsc/apeswap_bsc.py +1 -1
- defi_services/services/lending/lending_info/bsc/avalon_bsc.py +75 -0
- defi_services/services/lending/lending_info/bsc/kinza_bsc.py +182 -0
- defi_services/services/lending/lending_info/ethereum/aave_v3_eth.py +1 -140
- defi_services/services/lending/lending_info/ethereum/compound_v3_eth.py +180 -5
- defi_services/services/lending/lending_info/ethereum/kinza_eth.py +119 -0
- defi_services/services/lending/lending_info/ethereum/old_aave_v3_eth.py +150 -0
- defi_services/services/lending/lending_info/ethereum/radiant_eth.py +69 -0
- defi_services/services/lending/lending_info/ethereum/venus_eth.py +10 -0
- defi_services/services/lending/lending_info/ethereum/zerolend_eth.py +96 -0
- defi_services/services/lending/lending_info/optimism/compound_v3_optimism.py +116 -0
- defi_services/services/lending/lending_info/optimism/moonwell_optimism.py +9 -0
- defi_services/services/lending/lending_info/optimism/xlend_optimism.py +112 -0
- defi_services/services/lending/lending_info/polygon/compound_v3_polygon.py +35 -5
- defi_services/services/lending/lending_info/zksync/__init__.py +0 -0
- defi_services/services/lending/lending_info/zksync/aave_v3_zksync.py +47 -0
- defi_services/services/lending/lending_info/zksync/venus_zksync.py +10 -0
- defi_services/services/lending/lending_info/zksync/zerolend_zksync.py +138 -0
- defi_services/services/lending/liqee_service.py +2 -2
- defi_services/services/lending/moonwell_service.py +120 -0
- defi_services/services/lending/morpho_aave_v2_services.py +3 -3
- defi_services/services/lending/morpho_aave_v3_services.py +2 -2
- defi_services/services/lending/onyx_service.py +2 -1
- defi_services/services/lending/radiant_v2_services.py +52 -10
- defi_services/services/lending/seamless_services.py +313 -0
- defi_services/services/lending/sonne_service.py +64 -0
- defi_services/services/lending/trava_services.py +2 -2
- defi_services/services/lending/uwu_services.py +3 -3
- defi_services/services/lending/valas_services.py +2 -2
- defi_services/services/lending/venus_services.py +9 -3
- defi_services/services/lending/xlend_services.py +325 -0
- defi_services/services/lending/zerolend_services.py +36 -0
- defi_services/services/multicall/multicall_v2.py +0 -317
- defi_services/services/vault/tcv_vault_services.py +108 -0
- defi_services/services/vault/vault_info/arbitrum/__init__.py +0 -0
- defi_services/services/vault/vault_info/arbitrum/tcv_arb.py +58 -0
- {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/METADATA +1 -1
- {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/RECORD +103 -49
- /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/__init__.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/aave_v2_event_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/aave_v2_incentives_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/lending_pool_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/oracle_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/staked_incentives_abi.py +0 -0
- /defi_services/abis/lending/{aave_v2_and_forlks → aave_v2_and_forks}/uwu_incentives_abi.py +0 -0
- {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/WHEEL +0 -0
- {defi_state_querier-0.5.28.dist-info → defi_state_querier-0.5.30.dist-info}/licenses/LICENSE +0 -0
- {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.
|
16
|
-
"liquidationThreshold": 0.
|
15
|
+
"loanToValue": 0.8,
|
16
|
+
"liquidationThreshold": 0.85
|
17
17
|
},
|
18
18
|
"0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6": {
|
19
19
|
"priceFeed": "0xde31f8bfbd8c84b5360cfacca3539b938dd78ae6",
|
20
|
-
"loanToValue": 0.
|
21
|
-
"liquidationThreshold": 0.
|
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.
|
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
|
}
|
File without changes
|
@@ -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.
|
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.
|
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.
|
7
|
-
from defi_services.abis.lending.
|
8
|
-
from defi_services.abis.lending.
|
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.
|
7
|
-
from defi_services.abis.lending.
|
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
|
-
|
69
|
-
|
70
|
-
|
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
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
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
|
+
)
|