defi-state-querier 0.5.15__py3-none-any.whl → 0.5.17__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- defi_services/__init__.py +1 -1
- defi_services/abis/vault/tcv_abi.py +1523 -0
- defi_services/constants/entities/vault_constant.py +2 -2
- defi_services/constants/entities/vault_services.py +7 -1
- defi_services/jobs/queriers/state_querier.py +3 -0
- defi_services/jobs/tcv.py +110 -0
- defi_services/services/vault/tcv_vault_services.py +109 -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.15.dist-info → defi_state_querier-0.5.17.dist-info}/METADATA +1 -1
- {defi_state_querier-0.5.15.dist-info → defi_state_querier-0.5.17.dist-info}/RECORD +14 -9
- {defi_state_querier-0.5.15.dist-info → defi_state_querier-0.5.17.dist-info}/WHEEL +1 -1
- {defi_state_querier-0.5.15.dist-info → defi_state_querier-0.5.17.dist-info}/LICENSE +0 -0
- {defi_state_querier-0.5.15.dist-info → defi_state_querier-0.5.17.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,6 @@
|
|
1
1
|
from defi_services.constants.chain_constant import Chain
|
2
2
|
from defi_services.constants.entities.vault_constant import Vault
|
3
|
+
from defi_services.services.vault.tcv_vault_services import TCVVaultStateService
|
3
4
|
from defi_services.services.vault.trava_vault_services import TravaVaultStateService
|
4
5
|
|
5
6
|
|
@@ -17,8 +18,13 @@ class VaultServices:
|
|
17
18
|
Vault.trava_vault: TravaVaultStateService
|
18
19
|
}
|
19
20
|
|
21
|
+
arbitrum = {
|
22
|
+
Vault.tcv_vault: TCVVaultStateService
|
23
|
+
}
|
24
|
+
|
20
25
|
mapping = {
|
21
26
|
Chain.bsc: bsc,
|
22
27
|
Chain.ethereum: ethereum,
|
23
|
-
Chain.fantom: fantom
|
28
|
+
Chain.fantom: fantom,
|
29
|
+
Chain.arbitrum: arbitrum
|
24
30
|
}
|
@@ -26,6 +26,9 @@ class StateQuerier:
|
|
26
26
|
def get_client_querier(self):
|
27
27
|
return self.client_querier
|
28
28
|
|
29
|
+
def get_provider(self):
|
30
|
+
return self.provider_uri
|
31
|
+
|
29
32
|
@staticmethod
|
30
33
|
def get_function_info(address: str, abi: list, fn_name: str, fn_paras: list = None, block_number: int = 'latest'):
|
31
34
|
if fn_paras is None:
|
@@ -0,0 +1,110 @@
|
|
1
|
+
from defi_services.constants.entities.dex_constant import Dex
|
2
|
+
from defi_services.constants.query_constant import Query
|
3
|
+
from defi_services.jobs.processors.state_processor import StateProcessor
|
4
|
+
from defi_services.services.vault.vault_info.arbitrum.tcv_arb import TCV_VAULT_ARBITRUM
|
5
|
+
|
6
|
+
class TCV:
|
7
|
+
def __init__(self, provider_uri, chain_id):
|
8
|
+
self.state_processor = StateProcessor(provider_uri, chain_id)
|
9
|
+
|
10
|
+
def get_tvl_info(
|
11
|
+
self,
|
12
|
+
address,
|
13
|
+
reserves_info,
|
14
|
+
block_number: int = "latest",
|
15
|
+
):
|
16
|
+
queries = [
|
17
|
+
{
|
18
|
+
"query_id": "tcv-vault",
|
19
|
+
"entity_id": "tcv-vault",
|
20
|
+
"query_type": Query.staking_reward
|
21
|
+
},
|
22
|
+
]
|
23
|
+
res = self.state_processor.run(address, queries, block_number)
|
24
|
+
result = res[0].get("staking_reward")
|
25
|
+
for token, information in reserves_info.items():
|
26
|
+
pool = information.get("pool")
|
27
|
+
lp_token_dict = {
|
28
|
+
pool: reserves_info[token]["poolInfo"]
|
29
|
+
}
|
30
|
+
dex_lp_info = self.get_lp_token_info(token, Dex.uniswap_v3, lp_token_dict)
|
31
|
+
token_nfts = self.get_user_nft(token, Dex.uniswap_v3)
|
32
|
+
token_info = self.get_user_info(token, Dex.uniswap_v3, token_nfts)
|
33
|
+
token_balance = self.get_user_token_balance(token, Dex.uniswap_v3, token_info, dex_lp_info)
|
34
|
+
tvl = {}
|
35
|
+
for balance_info in token_balance:
|
36
|
+
for token_id, info in balance_info['dex_user_token_balance'].items():
|
37
|
+
if info['token0'] not in tvl:
|
38
|
+
tvl[info['token0']] = 0
|
39
|
+
if info['token1'] not in tvl:
|
40
|
+
tvl[info['token1']] = 0
|
41
|
+
tvl[info['token0']] += info['token0_amount']
|
42
|
+
tvl[info['token1']] += info['token1_amount']
|
43
|
+
result[token].update({"tvl": tvl})
|
44
|
+
return result
|
45
|
+
|
46
|
+
def get_user_nft(self, wallet, dex_protocol):
|
47
|
+
queries = [
|
48
|
+
{
|
49
|
+
'query_id': f'{dex_protocol}_usernft',
|
50
|
+
"entity_id": dex_protocol,
|
51
|
+
'query_type': Query.dex_user_nft
|
52
|
+
}
|
53
|
+
]
|
54
|
+
|
55
|
+
res = self.state_processor.run(wallet, queries, batch_size=100, max_workers=8, ignore_error=True)
|
56
|
+
return res
|
57
|
+
|
58
|
+
def get_user_info(self, wallet, dex_protocol, user_nfts):
|
59
|
+
queries = [
|
60
|
+
{
|
61
|
+
'query_id': f'{dex_protocol}_userinfo',
|
62
|
+
"entity_id": dex_protocol,
|
63
|
+
'query_type': Query.dex_user_info,
|
64
|
+
'supplied_data': {
|
65
|
+
'user_data': user_nfts[0][Query.dex_user_nft],
|
66
|
+
}
|
67
|
+
}
|
68
|
+
]
|
69
|
+
|
70
|
+
res = self.state_processor.run(wallet, queries, batch_size=100, max_workers=8, ignore_error=True)
|
71
|
+
return res
|
72
|
+
|
73
|
+
def get_user_token_balance(self, wallet, dex_protocol, user_info, dex_lp_info):
|
74
|
+
queries = [
|
75
|
+
{
|
76
|
+
'query_id': f'{dex_protocol}_usertokenbalance',
|
77
|
+
"entity_id": dex_protocol,
|
78
|
+
'query_type': Query.dex_user_token_balance,
|
79
|
+
'supplied_data': {
|
80
|
+
'user_data': user_info[0][Query.dex_user_info],
|
81
|
+
'lp_token_info': dex_lp_info[0][Query.lp_token_info]
|
82
|
+
|
83
|
+
}
|
84
|
+
}
|
85
|
+
]
|
86
|
+
|
87
|
+
res = self.state_processor.run(wallet, queries, batch_size=100, max_workers=8, ignore_error=True)
|
88
|
+
return res
|
89
|
+
|
90
|
+
def get_lp_token_info(self, wallet, dex_protocol, lp_token_list):
|
91
|
+
queries = [
|
92
|
+
{
|
93
|
+
'query_id': f'{dex_protocol}_lptokeninfo',
|
94
|
+
"entity_id": dex_protocol,
|
95
|
+
'query_type': Query.lp_token_info,
|
96
|
+
'supplied_data': {
|
97
|
+
'lp_token_info': lp_token_list}
|
98
|
+
},
|
99
|
+
{
|
100
|
+
'query_id': f'{dex_protocol}_lptokenbalance',
|
101
|
+
"entity_id": dex_protocol,
|
102
|
+
'query_type': Query.token_pair_balance,
|
103
|
+
'supplied_data': {
|
104
|
+
'lp_token_info': lp_token_list}
|
105
|
+
}
|
106
|
+
]
|
107
|
+
res = self.state_processor.run(wallet, queries, batch_size=100, max_workers=8, ignore_error=True)
|
108
|
+
return res
|
109
|
+
|
110
|
+
|
@@ -0,0 +1,109 @@
|
|
1
|
+
import logging
|
2
|
+
|
3
|
+
from defi_services.abis.vault.tcv_abi import TCV_ABI
|
4
|
+
from defi_services.constants.chain_constant import Chain
|
5
|
+
from defi_services.constants.entities.vault_constant import Vault
|
6
|
+
from defi_services.constants.token_constant import Token
|
7
|
+
from defi_services.jobs.queriers.state_querier import StateQuerier
|
8
|
+
from defi_services.services.protocol_services import ProtocolServices
|
9
|
+
from defi_services.services.vault.vault_info.arbitrum.tcv_arb import TCV_VAULT_ARBITRUM
|
10
|
+
|
11
|
+
logger = logging.getLogger("Trava Vault State Service")
|
12
|
+
|
13
|
+
|
14
|
+
class TCVVaultInfo:
|
15
|
+
mapping = {
|
16
|
+
Chain.arbitrum: TCV_VAULT_ARBITRUM
|
17
|
+
}
|
18
|
+
|
19
|
+
|
20
|
+
class TCVVaultStateService(ProtocolServices):
|
21
|
+
def __init__(self, state_service: StateQuerier, chain_id: str = "0xa4b1"):
|
22
|
+
super().__init__()
|
23
|
+
self.name = f"{chain_id}_{Vault.trava_vault}"
|
24
|
+
self.chain_id = chain_id
|
25
|
+
self.pool_info = TCVVaultInfo.mapping.get(chain_id)
|
26
|
+
self.vault_abi = TCV_ABI
|
27
|
+
self.state_service = state_service
|
28
|
+
|
29
|
+
# BASIC FUNCTION
|
30
|
+
def get_service_info(self):
|
31
|
+
info = {
|
32
|
+
Vault.trava_vault: {
|
33
|
+
"chain_id": self.chain_id,
|
34
|
+
"type": "vault",
|
35
|
+
"protocol_info": self.pool_info
|
36
|
+
}
|
37
|
+
}
|
38
|
+
return info
|
39
|
+
|
40
|
+
def get_token_list(self):
|
41
|
+
reward_token = self.pool_info.get('rewardToken')
|
42
|
+
|
43
|
+
tokens = []
|
44
|
+
if isinstance(reward_token, list):
|
45
|
+
tokens += reward_token
|
46
|
+
elif isinstance(reward_token, str):
|
47
|
+
tokens.append(reward_token)
|
48
|
+
|
49
|
+
for token, info in self.pool_info.get("reservesList", {}).items():
|
50
|
+
asset_address = info['tokenIn']
|
51
|
+
if asset_address == Token.native_token:
|
52
|
+
tokens.append(Token.wrapped_token.get(self.chain_id))
|
53
|
+
else:
|
54
|
+
tokens.append(asset_address)
|
55
|
+
|
56
|
+
tokens = list(set(tokens))
|
57
|
+
return tokens
|
58
|
+
|
59
|
+
# WALLET STAKING BALANCE
|
60
|
+
def get_wallet_staking_balance_function_info(
|
61
|
+
self,
|
62
|
+
wallet: str,
|
63
|
+
reserves_info: dict,
|
64
|
+
block_number: int = "latest",
|
65
|
+
return_reward: bool = False
|
66
|
+
):
|
67
|
+
rpc_calls = {}
|
68
|
+
for token in reserves_info:
|
69
|
+
rpc_calls[f'currentNow_{token}_{wallet}_{block_number}'.lower()] = self.state_service.get_function_info(
|
70
|
+
token, TCV_ABI, "currentNow", [wallet], block_number=block_number)
|
71
|
+
rpc_calls[f'totalLiquidityNFT_{token}_{wallet}_{block_number}'.lower()] = self.state_service.get_function_info(
|
72
|
+
token, TCV_ABI, "totalLiquidityNFT", block_number=block_number)
|
73
|
+
|
74
|
+
return rpc_calls
|
75
|
+
|
76
|
+
def calculate_wallet_staking_balance(
|
77
|
+
self,
|
78
|
+
wallet: str,
|
79
|
+
reserves_info: dict,
|
80
|
+
decoded_data: dict,
|
81
|
+
token_prices: dict,
|
82
|
+
block_number: int = 'latest',
|
83
|
+
return_reward: bool = False
|
84
|
+
):
|
85
|
+
result = {}
|
86
|
+
for token, information in reserves_info.items():
|
87
|
+
liquidity_user_key = f'currentNow_{token}_{wallet}_{block_number}'.lower()
|
88
|
+
liquidity_of_vault_key = f'totalLiquidityNFT_{token}_{wallet}_{block_number}'.lower()
|
89
|
+
liquidity_user = decoded_data[liquidity_user_key]
|
90
|
+
liquidity_of_vault = decoded_data[liquidity_of_vault_key]
|
91
|
+
result[token] = {
|
92
|
+
"liquidity_user": liquidity_user,
|
93
|
+
"liquidity_of_vault": liquidity_of_vault
|
94
|
+
}
|
95
|
+
return result
|
96
|
+
|
97
|
+
|
98
|
+
# REWARDS BALANCE
|
99
|
+
def get_rewards_balance_function_info(
|
100
|
+
self,
|
101
|
+
wallet,
|
102
|
+
reserves_info: dict = None,
|
103
|
+
block_number: int = "latest"
|
104
|
+
):
|
105
|
+
pass
|
106
|
+
|
107
|
+
def calculate_rewards_balance(
|
108
|
+
self, wallet: str, reserves_info: dict, decoded_data: dict, block_number: int = "latest"):
|
109
|
+
pass
|
File without changes
|
@@ -0,0 +1,58 @@
|
|
1
|
+
TCV_VAULT_ARBITRUM = {
|
2
|
+
"name": "TCV Vault",
|
3
|
+
"rewardToken": "0x3cd16d9372fc938ac84444d1f47701bb4faa97ec",
|
4
|
+
"airdropAddress": "0x9094264783f48880c12e703cdd1f11c4dff7f1ac",
|
5
|
+
"reservesList": {
|
6
|
+
"0xe467db55710cf35e2dc0402104e23221f0e12e66": {
|
7
|
+
"vaultName": "eth/usdc",
|
8
|
+
"tokenIn": "0xe467db55710cf35e2dc0402104e23221f0e12e66",
|
9
|
+
"pool": '0xc6962004f452be9203591991d15f6b388e09e8d0',
|
10
|
+
"poolInfo":{
|
11
|
+
"token0": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
|
12
|
+
"token1": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
|
13
|
+
"fee": 500
|
14
|
+
}
|
15
|
+
},
|
16
|
+
"0x9403be93fddedf88a3ed7d11bfb643b13e5cbc27": {
|
17
|
+
"vaultName": "eth/usdt",
|
18
|
+
"tokenIn": "0x9403be93fddedf88a3ed7d11bfb643b13e5cbc27",
|
19
|
+
"pool": '0x641c00a822e8b671738d32a431a4fb6074e5c79d',
|
20
|
+
"poolInfo":{
|
21
|
+
"token0": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
|
22
|
+
"token1": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
|
23
|
+
"fee": 500
|
24
|
+
}
|
25
|
+
|
26
|
+
},
|
27
|
+
"0xae83866e6b48e29b225a10bc236f2665cc4f081e": {
|
28
|
+
"vaultName": "eth/arb",
|
29
|
+
"tokenIn": "0xae83866e6b48e29b225a10bc236f2665cc4f081e",
|
30
|
+
"pool": '0xc6f780497a95e246eb9449f5e4770916dcd6396a',
|
31
|
+
"poolInfo":{
|
32
|
+
"token0": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
|
33
|
+
"token1": "0x912ce59144191c1204e64559fe8253a0e49e6548",
|
34
|
+
"fee": 500
|
35
|
+
}
|
36
|
+
},
|
37
|
+
"0xaae3866f0233aec20580c21a3c10791afd38c8c1": {
|
38
|
+
"vaultName": "eth/usdc(bridgeusdc)",
|
39
|
+
"tokenIn": "0xaae3866f0233aec20580c21a3c10791afd38c8c1",
|
40
|
+
"pool": '0xc31e54c7a869b9fcbecc14363cf510d1c41fa443',
|
41
|
+
"poolInfo":{
|
42
|
+
"token0": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
|
43
|
+
"token1": "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
|
44
|
+
"fee": 500
|
45
|
+
}
|
46
|
+
},
|
47
|
+
"0xa02d1ecbe8eefaf7d64871ee0ae6404318df9702": {
|
48
|
+
"vaultName": "eth/usdc",
|
49
|
+
"tokenIn": "0xa02d1ecbe8eefaf7d64871ee0ae6404318df9702",
|
50
|
+
"pool": '0xc473e2aee3441bf9240be85eb122abb059a3b57c',
|
51
|
+
"poolInfo":{
|
52
|
+
"token0": "0x82af49447d8a07e3bd95bd0d56f35241523fbab1",
|
53
|
+
"token1": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
|
54
|
+
"fee": 3000
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
defi_services/__init__.py,sha256=
|
1
|
+
defi_services/__init__.py,sha256=eTYwDNLzKHSbjCHVWroT3O32gupVQHi6Yycx9Qc9Thg,23
|
2
2
|
defi_services/abis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
defi_services/abis/multicall_v3_abi.py,sha256=0aPxjrJJFU17fODjvYFRDn5Y5J1yi_AJKc8v1uohNGY,12352
|
4
4
|
defi_services/abis/dex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -231,6 +231,7 @@ defi_services/abis/token/erc20_abi.py,sha256=BQKzaRjwCdc7Pt1X0GqHlnXTmec6f67wIpW
|
|
231
231
|
defi_services/abis/token/erc721_abi.py,sha256=VXopcqKiof1ZH05WsKmDH7YA9RaPGzCYGts7XxxSnY4,6354
|
232
232
|
defi_services/abis/vault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
233
233
|
defi_services/abis/vault/incentive_abi.py,sha256=dstg33YRuAtqdM4r77fOhP15Cda-tQexL8U9i1fph68,12332
|
234
|
+
defi_services/abis/vault/tcv_abi.py,sha256=uyqQ5b_EAVCnXP5PBMzYxb_5jsPRRiuziDrCD7Ov0j8,34157
|
234
235
|
defi_services/abis/vault/trava_vault_abi.py,sha256=eiAc8ImfAQ1lSkN0gRN4T4YlxCxmAC649LYvuujnErc,31318
|
235
236
|
defi_services/abis/vault/valuator_abi.py,sha256=j44uj0hqmKj7lY0ajfUaY4N3xjVEaSBYaWilploBlDI,598
|
236
237
|
defi_services/abis/vault/ve_abi.py,sha256=uoc08LyW9_Y7xxDVIgXOzLjo_kOy1YGP3cUAOZhyizw,38341
|
@@ -309,9 +310,10 @@ defi_services/constants/entities/dex_info_constant.py,sha256=gFjF6gWLZ-e_iLoUeSF
|
|
309
310
|
defi_services/constants/entities/dex_services.py,sha256=OWY_Q7m8R0_Gz_ficgCH497_SFZvd84TYuKOfSNZQ08,2201
|
310
311
|
defi_services/constants/entities/lending_constant.py,sha256=uUb3CnIlZP0lqdVPUt4IdlUXZwNpsMVDTmqMw0NK47g,1009
|
311
312
|
defi_services/constants/entities/lending_services.py,sha256=EeCRUi-K4O3MlB6m5f9QKMYlTtPb5VtYd7hVSkAh_38,4958
|
312
|
-
defi_services/constants/entities/vault_constant.py,sha256=
|
313
|
-
defi_services/constants/entities/vault_services.py,sha256=
|
313
|
+
defi_services/constants/entities/vault_constant.py,sha256=XaFp2VpmePfym42Gn-5IeT8qnQBq1JcRNrH7r2_tWxo,122
|
314
|
+
defi_services/constants/entities/vault_services.py,sha256=uwcvxwnyXNU3_3mcI6PGWyvGe40tzHmTrmigotLWeMM,752
|
314
315
|
defi_services/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
316
|
+
defi_services/jobs/tcv.py,sha256=b-Gd_w3dMyljHXVS0__dk1HSaLZBksyhaCtEo9KgBKc,4245
|
315
317
|
defi_services/jobs/processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
316
318
|
defi_services/jobs/processors/call_state_processor.py,sha256=WseX0OaMA5D_ANYofrz7W2BooSMdHlGRay4NuiABmM4,436
|
317
319
|
defi_services/jobs/processors/cosmos_state_processor.py,sha256=eVAs_-dSjlR7ijHAG9ytAysGesiyQYyK-sAMg8rUPYw,1898
|
@@ -324,7 +326,7 @@ defi_services/jobs/processors/ton_state_processor.py,sha256=YcNZqMlZI-7UDL4Cxxa8
|
|
324
326
|
defi_services/jobs/queriers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
325
327
|
defi_services/jobs/queriers/call_state_querier.py,sha256=1aTPFwX28dY6SDQ7wHDAdwSGxYHMR7sZzaIJl8bJqZw,4880
|
326
328
|
defi_services/jobs/queriers/solana_state_querier.py,sha256=TQELYo6GUoF8s-LfetqYbclNaH8bakQqC7y2ifACIb8,3239
|
327
|
-
defi_services/jobs/queriers/state_querier.py,sha256=
|
329
|
+
defi_services/jobs/queriers/state_querier.py,sha256=kvZv0UTUTcGCpBk-YqWSJt6gh_luit46FHP1Ycfvbi0,7446
|
328
330
|
defi_services/jobs/queriers/substrate_state_querier.py,sha256=_T0Dk06sP_uBKaxgj2J_EBtJDoq-hi8jU7Np4iuO0LA,3858
|
329
331
|
defi_services/jobs/queriers/ton_state_querier.py,sha256=IkCMGwFgERcX7M_DzBxHxD-nKzbwSWrg8gxuKSERiJw,1148
|
330
332
|
defi_services/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -448,8 +450,11 @@ defi_services/services/multicall/batch_queries_service.py,sha256=HzgKOdkP6kpjR7g
|
|
448
450
|
defi_services/services/multicall/multicall_v2.py,sha256=5JAqb3Jn5Z-23-Gwz5lMa5DokES-Pf7WtigHMGlG-7k,18695
|
449
451
|
defi_services/services/multicall/state_query_service.py,sha256=1Ob5NX0tXmVUrSB1_mOvFBkOUA8KZJPwH2DMiHwlGhI,23709
|
450
452
|
defi_services/services/vault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
453
|
+
defi_services/services/vault/tcv_vault_services.py,sha256=AijdbNloHqsod1_YEsUtZgQVsRjB08p-nLa-0AMFqqs,3831
|
451
454
|
defi_services/services/vault/trava_vault_services.py,sha256=9Sj5W6o7o478MKu7ZOUdqkTtPUzT59eS9yBcU8O4UrM,7705
|
452
455
|
defi_services/services/vault/vault_info/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
456
|
+
defi_services/services/vault/vault_info/arbitrum/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
457
|
+
defi_services/services/vault/vault_info/arbitrum/tcv_arb.py,sha256=7e4oAi_EFaLwlpyLmFARbG3iRfNu2yQKcH82lq2bqRo,2467
|
453
458
|
defi_services/services/vault/vault_info/bsc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
454
459
|
defi_services/services/vault/vault_info/bsc/trava_bsc.py,sha256=v1Nv5SmjDYLvCke_H5ZtgdjNXo0_9X-P5OQldezP0XM,1586
|
455
460
|
defi_services/services/vault/vault_info/ethereum/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -470,8 +475,8 @@ defi_services/utils/memory_storage.py,sha256=BOT8laB0iVSCGE-oDlpWJQLbSC6X2blKX4z
|
|
470
475
|
defi_services/utils/sqrt_price_math.py,sha256=9lgUeWFT4wjl3Vq3b7-jZ2bGvvZx7dDBSfVnM3lsZ8o,5575
|
471
476
|
defi_services/utils/thread_proxy.py,sha256=5Z8biAyEReUkh3vfJSvEv7GwMe3CsE5M8CbghkQtePw,2951
|
472
477
|
defi_services/utils/ton_decode_address.py,sha256=EWKwmC7KtbXpdKgiNK-5j-5lX7fCr17I4EWYs9b43eU,443
|
473
|
-
defi_state_querier-0.5.
|
474
|
-
defi_state_querier-0.5.
|
475
|
-
defi_state_querier-0.5.
|
476
|
-
defi_state_querier-0.5.
|
477
|
-
defi_state_querier-0.5.
|
478
|
+
defi_state_querier-0.5.17.dist-info/LICENSE,sha256=6jmfxa8nUIwfKnzZUxAHJSJ_IS7h7mpbJq26cWjoo-o,1063
|
479
|
+
defi_state_querier-0.5.17.dist-info/METADATA,sha256=A43EptJRlxIi09CXdxGYXuz9xPeTaZDP83mNshTDTuw,4413
|
480
|
+
defi_state_querier-0.5.17.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
481
|
+
defi_state_querier-0.5.17.dist-info/top_level.txt,sha256=C-OTxHK6MknKK-nAbEzCPDUl1M6pktRhgJrmsozdf6g,14
|
482
|
+
defi_state_querier-0.5.17.dist-info/RECORD,,
|
File without changes
|
File without changes
|