defi-state-querier 0.5.15__py3-none-any.whl → 0.5.16__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/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.16.dist-info}/METADATA +1 -1
- {defi_state_querier-0.5.15.dist-info → defi_state_querier-0.5.16.dist-info}/RECORD +14 -9
- {defi_state_querier-0.5.15.dist-info → defi_state_querier-0.5.16.dist-info}/WHEEL +1 -1
- {defi_state_querier-0.5.15.dist-info → defi_state_querier-0.5.16.dist-info}/LICENSE +0 -0
- {defi_state_querier-0.5.15.dist-info → defi_state_querier-0.5.16.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)
|
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=n5QSM4vnUUdmglsGavjALmg_0KNH7BfHYHUyz2Houzs,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=sL1VgKgTytl3PlyWxtcuASHJnxY6jc_2xJnbW9TExVM,4236
|
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.16.dist-info/LICENSE,sha256=6jmfxa8nUIwfKnzZUxAHJSJ_IS7h7mpbJq26cWjoo-o,1063
|
479
|
+
defi_state_querier-0.5.16.dist-info/METADATA,sha256=YJjyozTQuZZr3p0qc5V27OhH8KSF0LAmGOEo2oL82i0,4413
|
480
|
+
defi_state_querier-0.5.16.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
481
|
+
defi_state_querier-0.5.16.dist-info/top_level.txt,sha256=C-OTxHK6MknKK-nAbEzCPDUl1M6pktRhgJrmsozdf6g,14
|
482
|
+
defi_state_querier-0.5.16.dist-info/RECORD,,
|
File without changes
|
File without changes
|