blockapi 2.7.0__tar.gz → 2.9.0__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.
Files changed (114) hide show
  1. {blockapi-2.7.0 → blockapi-2.9.0}/PKG-INFO +1 -1
  2. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/debank.py +34 -0
  3. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/coins.py +8 -0
  4. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/models.py +1 -0
  5. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi.egg-info/PKG-INFO +1 -1
  6. {blockapi-2.7.0 → blockapi-2.9.0}/setup.py +1 -1
  7. {blockapi-2.7.0 → blockapi-2.9.0}/LICENSE.md +0 -0
  8. {blockapi-2.7.0 → blockapi-2.9.0}/README.md +0 -0
  9. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/__init__.py +0 -0
  10. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/services.py +0 -0
  11. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/__init__.py +0 -0
  12. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/test_blockapi.py +0 -0
  13. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/test_num.py +0 -0
  14. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/test_random_user_agent.py +0 -0
  15. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/__init__.py +0 -0
  16. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/__init__.py +0 -0
  17. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/conftest.py +0 -0
  18. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/covalenth/__init__.py +0 -0
  19. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/covalenth/test_ethereum.py +0 -0
  20. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/fake_sleep_provider.py +0 -0
  21. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/nft/__init__.py +0 -0
  22. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/nft/test_magic_eden.py +0 -0
  23. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/nft/test_opensea.py +0 -0
  24. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/nft/test_simple_hash.py +0 -0
  25. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/nft/test_unisat.py +0 -0
  26. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/perpetual/__init__.py +0 -0
  27. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/perpetual/test_perpetual.py +0 -0
  28. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/synthetix/__init__.py +0 -0
  29. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/synthetix/test_synthetix.py +0 -0
  30. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_bitaps_ltc.py +0 -0
  31. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_blockchain_info.py +0 -0
  32. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_blockchainos.py +0 -0
  33. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_blockchair_btc.py +0 -0
  34. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_blockchair_doge.py +0 -0
  35. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_blockchair_ltc.py +0 -0
  36. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_cosmos.py +0 -0
  37. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_ethplorer.py +0 -0
  38. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_haskoin.py +0 -0
  39. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_litecoinspace.py +0 -0
  40. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_multisources.py +0 -0
  41. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_optimistic_etherscan.py +0 -0
  42. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_solana.py +0 -0
  43. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_subscan_polkadot.py +0 -0
  44. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_sui.py +0 -0
  45. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_terra.py +0 -0
  46. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_trezor_btc.py +0 -0
  47. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/api/test_trezor_zec.py +0 -0
  48. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/test_base.py +0 -0
  49. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/test_blockchain_api.py +0 -0
  50. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/test_blockchain_mapping.py +0 -0
  51. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/test_data.py +0 -0
  52. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/test_enumerate_classes.py +0 -0
  53. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/test_generic.py +0 -0
  54. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test/v2/test_models.py +0 -0
  55. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/test_data.py +0 -0
  56. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/utils/__init__.py +0 -0
  57. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/utils/address.py +0 -0
  58. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/utils/datetime.py +0 -0
  59. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/utils/num.py +0 -0
  60. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/utils/user_agent.py +0 -0
  61. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/__init__.py +0 -0
  62. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/__init__.py +0 -0
  63. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/bitaps.py +0 -0
  64. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/blockchain_info.py +0 -0
  65. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/blockchainos.py +0 -0
  66. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/blockchair.py +0 -0
  67. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/cosmos.py +0 -0
  68. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/__init__.py +0 -0
  69. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/arbitrum.py +0 -0
  70. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/astar.py +0 -0
  71. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/avalanche.py +0 -0
  72. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/axie.py +0 -0
  73. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/base.py +0 -0
  74. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/binance_smart_chain.py +0 -0
  75. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/ethereum.py +0 -0
  76. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/fantom.py +0 -0
  77. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/heco.py +0 -0
  78. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/iotex.py +0 -0
  79. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/klaytn.py +0 -0
  80. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/moonbeam.py +0 -0
  81. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/palm.py +0 -0
  82. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/polygon.py +0 -0
  83. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/covalenth/rsk.py +0 -0
  84. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/debank_maps.py +0 -0
  85. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/ethplorer.py +0 -0
  86. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/haskoin.py +0 -0
  87. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/litecoinspace.py +0 -0
  88. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/nft/__init__.py +0 -0
  89. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/nft/magic_eden.py +0 -0
  90. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/nft/opensea.py +0 -0
  91. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/nft/simple_hash.py +0 -0
  92. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/nft/unisat.py +0 -0
  93. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/optimistic_etherscan.py +0 -0
  94. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/perpetual/__init__.py +0 -0
  95. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/perpetual/perp_abi.py +0 -0
  96. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/perpetual/perpetual.py +0 -0
  97. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/solana.py +0 -0
  98. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/subscan.py +0 -0
  99. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/sui.py +0 -0
  100. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/synthetix/__init__.py +0 -0
  101. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/synthetix/synthetix.py +0 -0
  102. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/synthetix/synthetix_abi.py +0 -0
  103. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/terra.py +0 -0
  104. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/trezor.py +0 -0
  105. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/api/web3_utils.py +0 -0
  106. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/base.py +0 -0
  107. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/blockchain_mapping.py +0 -0
  108. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi/v2/coin_mapping.py +0 -0
  109. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi.egg-info/SOURCES.txt +0 -0
  110. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi.egg-info/dependency_links.txt +0 -0
  111. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi.egg-info/requires.txt +0 -0
  112. {blockapi-2.7.0 → blockapi-2.9.0}/blockapi.egg-info/top_level.txt +0 -0
  113. {blockapi-2.7.0 → blockapi-2.9.0}/pyproject.toml +0 -0
  114. {blockapi-2.7.0 → blockapi-2.9.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blockapi
3
- Version: 2.7.0
3
+ Version: 2.9.0
4
4
  Summary: BlockAPI library
5
5
  Home-page: https://github.com/crypkit/blockapi
6
6
  Author: Devmons s.r.o.
@@ -735,6 +735,12 @@ class DebankApi(CustomizableBlockchainApi, BalanceMixin, IPortfolio):
735
735
  'get_protocols': '/v1/protocol/all_list',
736
736
  'usage': '/v1/account/units',
737
737
  'get_complex_app_list': '/v1/user/complex_app_list?id={address}',
738
+ 'get_token_list_for_chain': (
739
+ '/v1/user/token_list?id={address}&chain_id={chain_id}&is_all={is_all}'
740
+ ),
741
+ 'get_protocol_for_address': (
742
+ '/v1/user/protocol?id={address}&protocol_id={protocol_id}'
743
+ ),
738
744
  }
739
745
 
740
746
  default_protocol_cache = DebankProtocolCache()
@@ -783,6 +789,23 @@ class DebankApi(CustomizableBlockchainApi, BalanceMixin, IPortfolio):
783
789
  address=address,
784
790
  )
785
791
 
792
+ def fetch_token_list_for_chain(self, address: str, chain_id: str) -> FetchResult:
793
+ return self.get_data(
794
+ 'get_token_list_for_chain',
795
+ headers=self._headers,
796
+ address=address,
797
+ chain_id=chain_id,
798
+ is_all=self._is_all,
799
+ )
800
+
801
+ def fetch_protocol_for_address(self, address: str, protocol_id: str) -> FetchResult:
802
+ return self.get_data(
803
+ 'get_protocol_for_address',
804
+ headers=self._headers,
805
+ address=address,
806
+ protocol_id=protocol_id,
807
+ )
808
+
786
809
  def fetch_protocols(self) -> FetchResult:
787
810
  return self.get_data(
788
811
  'get_protocols',
@@ -809,6 +832,17 @@ class DebankApi(CustomizableBlockchainApi, BalanceMixin, IPortfolio):
809
832
  self._maybe_update_protocols()
810
833
  return ParseResult(data=self._portfolio_parser.parse(fetch_result.data))
811
834
 
835
+ def parse_pool_for_address(self, fetch_result: FetchResult) -> ParseResult:
836
+ if error := self._get_error(fetch_result.data):
837
+ return ParseResult(errors=[error])
838
+
839
+ self._maybe_update_protocols()
840
+ data = fetch_result.data
841
+ # /v1/user/protocol returns a single protocol object; wrap in a list
842
+ # so the portfolio parser (which iterates) handles it uniformly.
843
+ wrapped = [data] if isinstance(data, dict) else (data or [])
844
+ return ParseResult(data=self._portfolio_parser.parse(wrapped))
845
+
812
846
  def get_protocols(self) -> Dict[str, Protocol]:
813
847
  response = self.get('get_protocols', headers=self._headers)
814
848
  if self._has_error(response):
@@ -459,6 +459,14 @@ COIN_USDC = Coin(
459
459
  info=CoinInfo(coingecko_id=CoingeckoId.USDC),
460
460
  )
461
461
 
462
+ COIN_PUSD = Coin(
463
+ symbol='pUSD',
464
+ name='Polymarket USD',
465
+ decimals=6,
466
+ blockchain=Blockchain.POLYGON,
467
+ info=CoinInfo(coingecko_id=CoingeckoId.POLYMARKET_USD),
468
+ )
469
+
462
470
  COIN_PRIME = Coin(
463
471
  symbol='PRIME',
464
472
  name='Echelon Prime',
@@ -465,6 +465,7 @@ class CoingeckoId(str, Enum):
465
465
  OSMOSIS = 'osmosis'
466
466
  PERPETUAL = 'perpetual-protocol'
467
467
  POLKADOT = 'polkadot'
468
+ POLYMARKET_USD = 'polymarket-usd'
468
469
  PRIME = 'echelon-prime'
469
470
  RONIN = 'ronin'
470
471
  RSK = 'rootstock'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blockapi
3
- Version: 2.7.0
3
+ Version: 2.9.0
4
4
  Summary: BlockAPI library
5
5
  Home-page: https://github.com/crypkit/blockapi
6
6
  Author: Devmons s.r.o.
@@ -6,7 +6,7 @@ with open("README.md", "r") as f:
6
6
 
7
7
  PACKAGES = find_packages(where='.')
8
8
 
9
- __version__ = "2.7.0"
9
+ __version__ = "2.9.0"
10
10
 
11
11
  setuptools.setup(
12
12
  name='blockapi',
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