blockapi 0.44.0__tar.gz → 0.45.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 (155) hide show
  1. {blockapi-0.44.0 → blockapi-0.45.0}/PKG-INFO +1 -1
  2. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_solana.py +7 -0
  3. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/solana.py +44 -10
  4. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/base.py +2 -1
  5. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/models.py +2 -1
  6. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi.egg-info/PKG-INFO +1 -1
  7. {blockapi-0.44.0 → blockapi-0.45.0}/setup.py +1 -1
  8. {blockapi-0.44.0 → blockapi-0.45.0}/LICENSE.md +0 -0
  9. {blockapi-0.44.0 → blockapi-0.45.0}/README.md +0 -0
  10. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/__init__.py +0 -0
  11. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/__init__.py +0 -0
  12. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/alethio.py +0 -0
  13. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/amberdata.py +0 -0
  14. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/binance.py +0 -0
  15. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/blockchaininfo.py +0 -0
  16. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/blockchainos.py +0 -0
  17. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/blockchair.py +0 -0
  18. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/blockcypher.py +0 -0
  19. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/blockonomics.py +0 -0
  20. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/blockscout.py +0 -0
  21. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/btc.py +0 -0
  22. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/cardanoexplorer.py +0 -0
  23. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/chainso.py +0 -0
  24. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/cosmos.py +0 -0
  25. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/cryptoid.py +0 -0
  26. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/dcrdata.py +0 -0
  27. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/digonchain.py +0 -0
  28. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/eospark.py +0 -0
  29. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/etherscan.py +0 -0
  30. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/ethplorer.py +0 -0
  31. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/greymass.py +0 -0
  32. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/insight.py +0 -0
  33. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/kyber.py +0 -0
  34. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/neoscan.py +0 -0
  35. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/ontology.py +0 -0
  36. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/solana.py +0 -0
  37. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/stellar.py +0 -0
  38. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/subscan.py +0 -0
  39. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/terra_money.py +0 -0
  40. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/trezor.py +0 -0
  41. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/tronscan.py +0 -0
  42. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/tzscan.py +0 -0
  43. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/tzstats.py +0 -0
  44. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/zchain.py +0 -0
  45. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/api/zensystem.py +0 -0
  46. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/services.py +0 -0
  47. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/__init__.py +0 -0
  48. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/__init__.py +0 -0
  49. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_amberdata.py +0 -0
  50. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_balances.py +0 -0
  51. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_binance.py +0 -0
  52. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_blockchainos.py +0 -0
  53. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_blockchair.py +0 -0
  54. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_blockscout.py +0 -0
  55. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_btc.py +0 -0
  56. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_cosmos.py +0 -0
  57. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_dcrdata.py +0 -0
  58. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_digonchain.py +0 -0
  59. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_insight.py +0 -0
  60. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_kyber.py +0 -0
  61. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_ontio.py +0 -0
  62. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_solana.py +0 -0
  63. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_subscan.py +0 -0
  64. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_terra_money.py +0 -0
  65. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_tronscan.py +0 -0
  66. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_tzscan.py +0 -0
  67. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/api/test_tzstats.py +0 -0
  68. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/test_blockapi.py +0 -0
  69. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/test_num.py +0 -0
  70. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/test_random_user_agent.py +0 -0
  71. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/__init__.py +0 -0
  72. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/__init__.py +0 -0
  73. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/conftest.py +0 -0
  74. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/covalenth/__init__.py +0 -0
  75. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/covalenth/test_ethereum.py +0 -0
  76. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/fake_sleep_provider.py +0 -0
  77. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/nft/__init__.py +0 -0
  78. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/nft/test_magic_eden.py +0 -0
  79. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/nft/test_opensea.py +0 -0
  80. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/nft/test_simple_hash.py +0 -0
  81. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/perpetual/__init__.py +0 -0
  82. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/perpetual/test_perpetual.py +0 -0
  83. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/synthetix/__init__.py +0 -0
  84. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/synthetix/test_synthetix.py +0 -0
  85. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_blockchainos.py +0 -0
  86. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_blockchair_btc.py +0 -0
  87. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_blockchair_doge.py +0 -0
  88. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_blockchair_ltc.py +0 -0
  89. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_cosmos.py +0 -0
  90. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_ethplorer.py +0 -0
  91. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_multisources.py +0 -0
  92. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_optimistic_etherscan.py +0 -0
  93. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_subscan_polkadot.py +0 -0
  94. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/api/test_trezor_btc.py +0 -0
  95. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/test_blockchain_api.py +0 -0
  96. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/test_blockchain_mapping.py +0 -0
  97. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/test_data.py +0 -0
  98. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/test_enumerate_classes.py +0 -0
  99. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/test_generic.py +0 -0
  100. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test/v2/test_models.py +0 -0
  101. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/test_data.py +0 -0
  102. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/utils/__init__.py +0 -0
  103. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/utils/address.py +0 -0
  104. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/utils/datetime.py +0 -0
  105. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/utils/ethereum.py +0 -0
  106. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/utils/num.py +0 -0
  107. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/utils/user_agent.py +0 -0
  108. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/__init__.py +0 -0
  109. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/__init__.py +0 -0
  110. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/blockchainos.py +0 -0
  111. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/blockchair.py +0 -0
  112. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/cosmos.py +0 -0
  113. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/__init__.py +0 -0
  114. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/arbitrum.py +0 -0
  115. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/astar.py +0 -0
  116. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/avalanche.py +0 -0
  117. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/axie.py +0 -0
  118. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/base.py +0 -0
  119. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/binance_smart_chain.py +0 -0
  120. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/ethereum.py +0 -0
  121. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/fantom.py +0 -0
  122. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/heco.py +0 -0
  123. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/iotex.py +0 -0
  124. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/klaytn.py +0 -0
  125. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/moonbeam.py +0 -0
  126. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/palm.py +0 -0
  127. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/polygon.py +0 -0
  128. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/covalenth/rsk.py +0 -0
  129. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/debank.py +0 -0
  130. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/debank_maps.py +0 -0
  131. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/ethplorer.py +0 -0
  132. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/nft/__init__.py +0 -0
  133. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/nft/magic_eden.py +0 -0
  134. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/nft/opensea.py +0 -0
  135. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/nft/simple_hash.py +0 -0
  136. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/optimistic_etherscan.py +0 -0
  137. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/perpetual/__init__.py +0 -0
  138. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/perpetual/perp_abi.py +0 -0
  139. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/perpetual/perpetual.py +0 -0
  140. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/subscan.py +0 -0
  141. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/synthetix/__init__.py +0 -0
  142. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/synthetix/synthetix.py +0 -0
  143. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/synthetix/synthetix_abi.py +0 -0
  144. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/terra.py +0 -0
  145. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/trezor.py +0 -0
  146. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/api/web3_utils.py +0 -0
  147. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/blockchain_mapping.py +0 -0
  148. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/coin_mapping.py +0 -0
  149. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi/v2/coins.py +0 -0
  150. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi.egg-info/SOURCES.txt +0 -0
  151. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi.egg-info/dependency_links.txt +0 -0
  152. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi.egg-info/requires.txt +0 -0
  153. {blockapi-0.44.0 → blockapi-0.45.0}/blockapi.egg-info/top_level.txt +0 -0
  154. {blockapi-0.44.0 → blockapi-0.45.0}/pyproject.toml +0 -0
  155. {blockapi-0.44.0 → blockapi-0.45.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: blockapi
3
- Version: 0.44.0
3
+ Version: 0.45.0
4
4
  Summary: BlockAPI library
5
5
  Home-page: UNKNOWN
6
6
  Author: Devmons s.r.o.
@@ -70,6 +70,7 @@ def test_use_base_url_in_post(
70
70
  solana_value_response,
71
71
  solana_response,
72
72
  staked_solana_response,
73
+ rent_reserve_solana_response,
73
74
  token_list_sol_response,
74
75
  token_list_jup_ag_response,
75
76
  token_list_sonar_response,
@@ -83,6 +84,7 @@ def test_use_base_url_in_post(
83
84
  solana_response,
84
85
  '{"result": {"value": []}}',
85
86
  staked_solana_response,
87
+ rent_reserve_solana_response,
86
88
  ]
87
89
  )
88
90
 
@@ -312,6 +314,11 @@ def staked_solana_response():
312
314
  return read_file('data/solana/staked_solana_response.json')
313
315
 
314
316
 
317
+ @pytest.fixture
318
+ def rent_reserve_solana_response():
319
+ return read_file('data/solana/rent_reserve_solana_response.json')
320
+
321
+
315
322
  @pytest.fixture
316
323
  def token_list_sol_response():
317
324
  return read_file('data/solana/token-list-solana.json')
@@ -31,7 +31,10 @@ JUP_AG_TOKEN_LIST_URL = (
31
31
  JUP_AG_BAN_LIST_URL = (
32
32
  'https://raw.githubusercontent.com/jup-ag/token-list/main/banned-tokens.csv'
33
33
  )
34
- SONAR_TOKEN_LIST_URL = 'https://cdn.jsdelivr.net/npm/@sonarwatch/token-lists/build/sonarwatch.solana.tokenlist.json'
34
+ SONAR_TOKEN_LIST_URL = (
35
+ 'https://cdn.jsdelivr.net/npm/@sonarwatch'
36
+ '/token-lists/build/sonarwatch.solana.tokenlist.json'
37
+ )
35
38
 
36
39
 
37
40
  class SolanaApi(CustomizableBlockchainApi, BalanceMixin):
@@ -127,7 +130,21 @@ class SolanaApi(CustomizableBlockchainApi, BalanceMixin):
127
130
  {'encoding': 'jsonParsed'},
128
131
  ],
129
132
  )
130
- raw_staked_sol = self._request(
133
+ raw_staked_sol = self._fetch_staked_sol(address)
134
+ raw_rent_reserve = self._fetch_stake_rent_reserve(raw_staked_sol)
135
+
136
+ return FetchResult(
137
+ data=data,
138
+ extra=dict(
139
+ raw_token_balances=raw_token_balances,
140
+ raw_token2022_balances=raw_token2022_balances,
141
+ raw_staked_sol=raw_staked_sol,
142
+ raw_rent_reserve=raw_rent_reserve,
143
+ ),
144
+ )
145
+
146
+ def _fetch_staked_sol(self, address: str) -> dict:
147
+ return self._request(
131
148
  method='getProgramAccounts',
132
149
  params=[
133
150
  'Stake11111111111111111111111111111111111111',
@@ -150,19 +167,19 @@ class SolanaApi(CustomizableBlockchainApi, BalanceMixin):
150
167
  ],
151
168
  )
152
169
 
153
- return FetchResult(
154
- data=data,
155
- extra=dict(
156
- raw_token_balances=raw_token_balances,
157
- raw_token2022_balances=raw_token2022_balances,
158
- raw_staked_sol=raw_staked_sol,
159
- ),
160
- )
170
+ def _fetch_stake_rent_reserve(self, raw_staked_sol: dict) -> list[dict]:
171
+ stake_accounts = [r['pubkey'] for r in raw_staked_sol['result']]
172
+ results = []
173
+ for a in stake_accounts:
174
+ results.append(self._request(method='getBalance', params=[a]))
175
+
176
+ return results
161
177
 
162
178
  def parse_balances(self, fetch_result: FetchResult) -> ParseResult:
163
179
  raw_token_balances = fetch_result.extra['raw_token_balances']
164
180
  raw_token2022_balances = fetch_result.extra['raw_token2022_balances']
165
181
  raw_staked_sol = fetch_result.extra['raw_staked_sol']
182
+ raw_rent_reserve = fetch_result.extra['raw_rent_reserve']
166
183
 
167
184
  balances = []
168
185
  if sol_balance := self._get_sol_balance(fetch_result.data):
@@ -170,6 +187,10 @@ class SolanaApi(CustomizableBlockchainApi, BalanceMixin):
170
187
 
171
188
  if staked_sol_balance := self._get_staked_sol_balance(raw_staked_sol):
172
189
  balances.append(staked_sol_balance)
190
+ rent_reserve_balance = self._get_stake_rent_reserve(
191
+ staked_sol_balance, raw_rent_reserve
192
+ )
193
+ balances.append(rent_reserve_balance)
173
194
 
174
195
  token_balances = list(self._yield_token_balances(raw_token_balances))
175
196
  token_balances.extend(self._yield_token_balances(raw_token2022_balances))
@@ -222,6 +243,19 @@ class SolanaApi(CustomizableBlockchainApi, BalanceMixin):
222
243
  raw=response['result'],
223
244
  )
224
245
 
246
+ def _get_stake_rent_reserve(
247
+ self, staked_sol: BalanceItem, responses: list[dict]
248
+ ) -> BalanceItem:
249
+ total_raw = sum(r['result']['value'] for r in responses)
250
+ available_raw = total_raw - int(staked_sol.balance_raw)
251
+
252
+ return BalanceItem.from_api(
253
+ balance_raw=available_raw,
254
+ coin=self.coin,
255
+ asset_type=AssetType.RENT_RESERVE,
256
+ raw=responses,
257
+ )
258
+
225
259
  def _yield_token_balances(self, response: dict) -> Iterable[BalanceItem]:
226
260
  for raw_balance in response['result']['value']:
227
261
  balance = self._parse_token_balance(raw_balance)
@@ -113,7 +113,8 @@ class CustomizableBlockchainApi(ABC):
113
113
  seconds = 60
114
114
 
115
115
  logger.warning(
116
- f'Too Many Requests: Will retry after {seconds}s sleep. Remaining attempts {retries}.'
116
+ f'Too Many Requests: Will retry after {seconds}s sleep.'
117
+ f' Remaining attempts {retries}.'
117
118
  )
118
119
  self.sleep_provider.sleep(self.base_url, seconds=seconds)
119
120
  continue
@@ -280,6 +280,7 @@ class AssetType(str, Enum):
280
280
  NFT = 'nft'
281
281
  PENDING_TRANSACTION = 'pending_transaction'
282
282
  PRICED_VESTING = 'priced_vesting'
283
+ RENT_RESERVE = 'rent_reserve'
283
284
  REWARDS = 'rewards'
284
285
  STAKED = 'staked'
285
286
  UNREALIZED_AVAILABLE = 'unrealized_available'
@@ -539,7 +540,7 @@ class BalanceItem:
539
540
  balance_raw: Union[int, float, str, Decimal],
540
541
  coin: Coin,
541
542
  asset_type: AssetType = AssetType.AVAILABLE,
542
- raw: Dict,
543
+ raw: Union[Dict, List[Dict]],
543
544
  last_updated: Optional[Union[int, str]] = None,
544
545
  protocol: Optional[Protocol] = None,
545
546
  is_wallet: bool = True,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: blockapi
3
- Version: 0.44.0
3
+ Version: 0.45.0
4
4
  Summary: BlockAPI library
5
5
  Home-page: UNKNOWN
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__ = "0.44.0"
9
+ __version__ = "0.45.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