py-near 1.1.43__tar.gz → 1.1.44__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 (43) hide show
  1. {py_near-1.1.43 → py_near-1.1.44}/PKG-INFO +1 -1
  2. {py_near-1.1.43 → py_near-1.1.44}/pyproject.toml +2 -2
  3. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/providers.py +14 -3
  4. {py_near-1.1.43 → py_near-1.1.44}/LICENSE +0 -0
  5. {py_near-1.1.43 → py_near-1.1.44}/README.md +0 -0
  6. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/__init__.py +0 -0
  7. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/account.py +0 -0
  8. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/constants.py +0 -0
  9. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/__init__.py +0 -0
  10. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/__pycache__/__init__.cpython-311.pyc +0 -0
  11. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/__pycache__/core.cpython-311.pyc +0 -0
  12. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/__pycache__/fts.cpython-311.pyc +0 -0
  13. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/core.py +0 -0
  14. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/ft/__init__.py +0 -0
  15. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/ft/__pycache__/__init__.cpython-311.pyc +0 -0
  16. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/ft/__pycache__/async_client.cpython-311.pyc +0 -0
  17. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/ft/__pycache__/exceptions.cpython-311.pyc +0 -0
  18. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/ft/__pycache__/models.cpython-311.pyc +0 -0
  19. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/ft/async_client.py +0 -0
  20. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/ft/exceptions.py +0 -0
  21. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/ft/models.py +0 -0
  22. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/fts.py +0 -0
  23. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/keypom/__init__.py +0 -0
  24. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/keypom/async_client.py +0 -0
  25. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/keypom/exceptions.py +0 -0
  26. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/keypom/models.py +0 -0
  27. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/staking/__init__.py +0 -0
  28. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/staking/__pycache__/__init__.cpython-311.pyc +0 -0
  29. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/staking/__pycache__/async_client.cpython-311.pyc +0 -0
  30. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/staking/__pycache__/exceptions.cpython-311.pyc +0 -0
  31. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/staking/__pycache__/models.cpython-311.pyc +0 -0
  32. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/staking/async_client.py +0 -0
  33. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/staking/exceptions.py +0 -0
  34. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/dapps/staking/models.py +0 -0
  35. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/exceptions/__init__.py +0 -0
  36. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/exceptions/__pycache__/__init__.cpython-311.pyc +0 -0
  37. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/exceptions/__pycache__/exceptions.cpython-311.pyc +0 -0
  38. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/exceptions/__pycache__/provider.cpython-311.pyc +0 -0
  39. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/exceptions/exceptions.py +0 -0
  40. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/exceptions/provider.py +0 -0
  41. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/models.py +0 -0
  42. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/transactions.py +0 -0
  43. {py_near-1.1.43 → py_near-1.1.44}/src/py_near/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py-near
3
- Version: 1.1.43
3
+ Version: 1.1.44
4
4
  Summary: Pretty simple and fully asynchronous framework for working with NEAR blockchain
5
5
  Author: pvolnov
6
6
  Author-email: petr@herewallet.app
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "py-near"
3
- version = "1.1.43"
3
+ version = "1.1.44"
4
4
  description="Pretty simple and fully asynchronous framework for working with NEAR blockchain"
5
5
  authors = ["pvolnov <petr@herewallet.app>"]
6
6
  readme = "README.md"
@@ -22,7 +22,7 @@ base58 = "^2.1.1"
22
22
 
23
23
  [project]
24
24
  name = "py-near"
25
- version = "1.1.43"
25
+ version = "1.1.44"
26
26
  description = "Pretty simple and fully asynchronous framework for working with NEAR blockchaink"
27
27
  authors = [ {name = "pvolnov", email = "petr@herewallet.app"} ]
28
28
  requires-python = ">=3.7"
@@ -81,7 +81,8 @@ class JsonProvider(object):
81
81
  await asyncio.sleep(3)
82
82
 
83
83
  if not self._available_rpcs:
84
- raise RpcNotAvailableError("All RPCs are unavailable")
84
+ self._available_rpcs = self._rpc_addresses.copy()
85
+ logger.error("All RPCs are async, reset to default list")
85
86
 
86
87
  async def _check_available_rpcs(self):
87
88
  available_rpcs = []
@@ -93,8 +94,15 @@ class JsonProvider(object):
93
94
  "params": {"finality": "final"},
94
95
  "id": 1,
95
96
  }
97
+ auth_key = "py-near"
98
+ if "@" in rpc_addr:
99
+ auth_key = rpc_addr.split("//")[1].split("@")[0]
100
+ rpc_addr = rpc_addr.replace(auth_key + "@", "")
96
101
  async with aiohttp.ClientSession() as session:
97
- async with session.post(rpc_addr, json=data) as r:
102
+ async with session.post(rpc_addr, json=data, headers={
103
+ "Referer": "https://tgapp.herewallet.app",
104
+ "Authorization": f"Bearer {auth_key}",
105
+ }) as r:
98
106
  if r.status == 200:
99
107
  data = json.loads(await r.text())["result"]
100
108
  if data["sync_info"]["syncing"]:
@@ -119,6 +127,7 @@ class JsonProvider(object):
119
127
  except Exception as e:
120
128
  if rpc_addr in self._available_rpcs:
121
129
  logger.error(f"Remove rpc: {e}")
130
+ logger.error(f"Rpc check error: {e}")
122
131
  self._available_rpcs = available_rpcs
123
132
 
124
133
  @staticmethod
@@ -163,6 +172,7 @@ class JsonProvider(object):
163
172
  ]
164
173
 
165
174
  responses = []
175
+ correct_responses = []
166
176
  while pending and len(pending):
167
177
  done, pending = await asyncio.wait(
168
178
  pending, return_when=asyncio.FIRST_COMPLETED
@@ -175,7 +185,7 @@ class JsonProvider(object):
175
185
  responses.append(result)
176
186
  except Exception as e:
177
187
  logger.warning(e)
178
- if responses:
188
+ if responses and threshold:
179
189
  array = [hash(json.dumps(x)) for x in responses]
180
190
  most_frequent_element = self.most_frequent_by_hash(array)
181
191
  correct_responses = [
@@ -185,6 +195,7 @@ class JsonProvider(object):
185
195
  for task in pending:
186
196
  task.cancel()
187
197
  return most_frequent_element
198
+ raise RpcEmptyResponse(f"Threshold not reached: {len(correct_responses)}/{threshold}")
188
199
  else:
189
200
  for rpc_addr in self._available_rpcs:
190
201
  try:
File without changes
File without changes
File without changes
File without changes