blockapi 2.10.4__tar.gz → 2.10.6__tar.gz
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.
- {blockapi-2.10.4 → blockapi-2.10.6}/PKG-INFO +1 -1
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/debank.py +7 -19
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/models.py +4 -4
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi.egg-info/PKG-INFO +1 -1
- {blockapi-2.10.4 → blockapi-2.10.6}/setup.py +1 -1
- {blockapi-2.10.4 → blockapi-2.10.6}/LICENSE.md +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/README.md +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/services.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/test_blockapi.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/test_num.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/test_random_user_agent.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/conftest.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/covalenth/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/covalenth/test_ethereum.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/fake_sleep_provider.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/nft/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/nft/test_magic_eden.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/nft/test_opensea.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/nft/test_simple_hash.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/nft/test_unisat.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_bitaps_ltc.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_blockchain_info.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_blockchainos.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_blockchair_btc.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_blockchair_doge.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_blockchair_ltc.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_cosmos.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_ethplorer.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_haskoin.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_litecoinspace.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_multisources.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_optimistic_etherscan.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_solana.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_subscan_polkadot.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_sui.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_terra.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_trezor_btc.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/api/test_trezor_zec.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/test_base.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/test_blockchain_api.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/test_blockchain_mapping.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/test_data.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/test_enumerate_classes.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/test_generic.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test/v2/test_models.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/test_data.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/utils/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/utils/address.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/utils/datetime.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/utils/num.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/utils/user_agent.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/bitaps.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/blockchain_info.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/blockchainos.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/blockchair.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/cosmos.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/arbitrum.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/astar.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/avalanche.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/axie.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/base.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/binance_smart_chain.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/ethereum.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/fantom.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/heco.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/iotex.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/klaytn.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/moonbeam.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/palm.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/polygon.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/covalenth/rsk.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/debank_maps.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/ethplorer.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/haskoin.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/litecoinspace.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/nft/__init__.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/nft/magic_eden.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/nft/opensea.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/nft/simple_hash.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/nft/unisat.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/optimistic_etherscan.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/solana.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/subscan.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/sui.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/terra.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/api/trezor.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/base.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/blockchain_mapping.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/coin_mapping.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi/v2/coins.py +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi.egg-info/SOURCES.txt +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi.egg-info/dependency_links.txt +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi.egg-info/requires.txt +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/blockapi.egg-info/top_level.txt +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/pyproject.toml +0 -0
- {blockapi-2.10.4 → blockapi-2.10.6}/setup.cfg +0 -0
|
@@ -161,7 +161,7 @@ class DebankModelChain(BaseModel):
|
|
|
161
161
|
|
|
162
162
|
|
|
163
163
|
class DebankChain(BaseModel):
|
|
164
|
-
chain: Blockchain
|
|
164
|
+
chain: Union[Blockchain, str]
|
|
165
165
|
community_id: int
|
|
166
166
|
name: str
|
|
167
167
|
logo_url: str
|
|
@@ -180,10 +180,7 @@ class DebankProtocolParser:
|
|
|
180
180
|
|
|
181
181
|
@staticmethod
|
|
182
182
|
def parse_item(item: DebankModelProtocol) -> Optional[Protocol]:
|
|
183
|
-
blockchain = get_blockchain_from_debank_chain(item.chain)
|
|
184
|
-
if not blockchain:
|
|
185
|
-
logger.warning(f'No blockchain found for protocol {item.id}. Skipping.')
|
|
186
|
-
return None
|
|
183
|
+
blockchain = get_blockchain_from_debank_chain(item.chain) or item.chain
|
|
187
184
|
|
|
188
185
|
return Protocol.from_api(
|
|
189
186
|
protocol_id=item.id,
|
|
@@ -207,13 +204,8 @@ class DebankChainParser:
|
|
|
207
204
|
return list(sorted(chains, key=lambda x: x.name))
|
|
208
205
|
|
|
209
206
|
@staticmethod
|
|
210
|
-
def parse_item(item: DebankModelChain) ->
|
|
211
|
-
blockchain = get_blockchain_from_debank_chain(item.id)
|
|
212
|
-
if not blockchain:
|
|
213
|
-
logger.warning(
|
|
214
|
-
f'No blockchain found for debank chain {item.id} ({item.name}, {item.community_id}). Skipping.'
|
|
215
|
-
)
|
|
216
|
-
return None
|
|
207
|
+
def parse_item(item: DebankModelChain) -> DebankChain:
|
|
208
|
+
blockchain = get_blockchain_from_debank_chain(item.id) or item.id
|
|
217
209
|
|
|
218
210
|
return DebankChain(
|
|
219
211
|
chain=blockchain,
|
|
@@ -329,12 +321,6 @@ class DebankBalanceParser:
|
|
|
329
321
|
)
|
|
330
322
|
return None
|
|
331
323
|
|
|
332
|
-
if not coin.blockchain:
|
|
333
|
-
logger.error(
|
|
334
|
-
f'DeBank: Skipping balance - could not parse blockchain "{balance_item.chain}". Amount={amount} (raw={raw_amount})'
|
|
335
|
-
)
|
|
336
|
-
return None
|
|
337
|
-
|
|
338
324
|
if asset_type == AssetType.INVESTMENT and amount < 0:
|
|
339
325
|
asset_type = AssetType.DEBT
|
|
340
326
|
amount = -amount
|
|
@@ -363,7 +349,9 @@ class DebankBalanceParser:
|
|
|
363
349
|
|
|
364
350
|
def get_coin(self, balance_item: DebankModelBalanceItem) -> Coin:
|
|
365
351
|
contract = balance_item.id
|
|
366
|
-
blockchain =
|
|
352
|
+
blockchain = (
|
|
353
|
+
get_blockchain_from_debank_chain(balance_item.chain) or balance_item.chain
|
|
354
|
+
)
|
|
367
355
|
symbol = self.get_symbol(balance_item)
|
|
368
356
|
|
|
369
357
|
coingecko_id = get_coingecko_id(contract, symbol)
|
|
@@ -561,7 +561,7 @@ class Coin:
|
|
|
561
561
|
symbol: str
|
|
562
562
|
name: str
|
|
563
563
|
decimals: int
|
|
564
|
-
blockchain: Blockchain
|
|
564
|
+
blockchain: Union[Blockchain, str]
|
|
565
565
|
address: Optional[str] = attr.ib(default=None)
|
|
566
566
|
standards: Optional[List[str]] = attr.ib(default=None)
|
|
567
567
|
protocol_id: Optional[str] = attr.ib(default=None)
|
|
@@ -576,7 +576,7 @@ class Coin:
|
|
|
576
576
|
@classmethod
|
|
577
577
|
def from_api(
|
|
578
578
|
cls,
|
|
579
|
-
blockchain: Blockchain,
|
|
579
|
+
blockchain: Union[Blockchain, str],
|
|
580
580
|
decimals: Union[int, str],
|
|
581
581
|
symbol: Optional[str] = None,
|
|
582
582
|
name: Optional[str] = None,
|
|
@@ -607,7 +607,7 @@ class CoingeckoMapping:
|
|
|
607
607
|
@attr.s(auto_attribs=True, slots=True, frozen=True)
|
|
608
608
|
class Protocol:
|
|
609
609
|
protocol_id: str
|
|
610
|
-
chain: Blockchain
|
|
610
|
+
chain: Union[Blockchain, str]
|
|
611
611
|
name: str
|
|
612
612
|
user_deposit: Decimal
|
|
613
613
|
site_url: Optional[str] = attr.ib(default=None)
|
|
@@ -619,7 +619,7 @@ class Protocol:
|
|
|
619
619
|
cls,
|
|
620
620
|
*,
|
|
621
621
|
protocol_id: str,
|
|
622
|
-
chain: Blockchain,
|
|
622
|
+
chain: Union[Blockchain, str],
|
|
623
623
|
name: str,
|
|
624
624
|
user_deposit: Union[str, float, int],
|
|
625
625
|
site_url: Optional[str] = None,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|