abstract-solana 0.0.2.120__py3-none-any.whl → 0.0.2.122__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.

Potentially problematic release.


This version of abstract-solana might be problematic. Click here for more details.

@@ -1,2 +1,3 @@
1
1
  from .abstract_solana_utils import *
2
2
  from .pumpFun import *
3
+ from .rpc_utils import *
@@ -1,6 +1,7 @@
1
1
  from abstract_apis import get_headers,get_response,get_text_response,load_inner_json
2
2
  from abstract_solcatcher import call_solcatcher_db,async_call_solcatcher_py,async_make_rate_limited_call
3
3
  from abstract_utilities import get_any_value,make_list
4
+ from ..rpc_utils import get_signatures
4
5
  import asyncio,httpx,logging
5
6
  def get_block_time_from_txn(txnData):
6
7
  return int(get_any_value(txnData,'blockTime') or 0)
@@ -19,19 +20,35 @@ def return_oldest_last_and_original_length_from_signature_array(signatureArray):
19
20
  return {"oldest":return_oldest_from_signature_array(signatureArray),
20
21
  "oldestValid":return_oldest_from_signature_array(signatureArray,errorless=True),
21
22
  "length":len(signatureArray or '')}
22
- async def getGenesisSignature(address, limit=1000, before=None,encoding='jsonParsed',commitment=0,errorProof=True):
23
+ def get_first_sigs(address, until=None, limit=1000):
24
+ original_length=None
25
+ while True:
26
+ signatureArray = get_signatures(address, until=until, limit=limit)
27
+ if signatureArray:
28
+ original_length = len(signatureArray)
29
+ if original_length:
30
+ return signatureArray
31
+ async def async_getGenesisSignature(address, limit=1000, until=None,encoding='jsonParsed',commitment=0,errorProof=True,url_1_only=True,url_2_only=False):
23
32
  method = "getGenesisSignature"
24
33
  validBefore=None
25
- oldest=None
26
- validOldest=None
34
+ signatureArray = get_first_sigs(address, until=until, limit=limit)
35
+ original_length=len(signatureArray)
27
36
  while True:
28
- signatureArray = await async_make_rate_limited_call(method ="getSignaturesForAddress",params=[address, {"limit":limit, "until":before}],solcatcherSettings={"getResponse":True,"getResult":'result'})
29
- original_length = len(signatureArray or '')
37
+ if validBefore != None:
38
+ signatureArray = get_signatures(address, until=until, limit=limit)
39
+ if signatureArray:
40
+ original_length = len(signatureArray)
41
+ else:
42
+ original_length = 0
30
43
  signature_array_data = return_oldest_last_and_original_length_from_signature_array(signatureArray)
31
- oldest = signature_array_data.get('oldest',oldest) or oldest
32
- validOldest = signature_array_data.get('oldestValid',validOldest) or validOldest
33
- if original_length < limit or original_length == 0 or (original_length>0 and (oldest == validOldest or oldest == before) and last_sig != None):
44
+ oldest = signature_array_data.get('oldest')
45
+ validOldest = signature_array_data.get('oldestValid')
46
+ if original_length < limit or original_length == 0 or (original_length>0 and (oldest == validOldest or oldest == validBefore) and oldest != None):
34
47
  return validOldest
48
+ validBefore = oldest
49
+ return asyncio.run(async_getGenesisSignature(*args,**kwargs))
50
+ def getGenesisSignature(*args,**kwargs):
51
+ return asyncio.run(async_getGenesisSignature(*args,**kwargs))
35
52
 
36
53
 
37
54
 
@@ -0,0 +1 @@
1
+ from .rpc_utils import *
@@ -0,0 +1,42 @@
1
+ def get_if_None(obj,fallBack):
2
+ return obj if obj != None else fallBack
3
+ def get_rpc_payload(method,params=None,id=None,jsonrpc=None):
4
+ if method == None:
5
+ return None
6
+ params=get_if_None(params,[])
7
+ rpc_id=int(get_if_None(id,1))
8
+ jsonrpc=str(get_if_None(jsonrpc,"2.0"))
9
+ return {
10
+ "jsonrpc": jsonrpc,
11
+ "id": rpc_id,
12
+ "method": method,
13
+ "params": params
14
+ }
15
+ def get_result(response):
16
+ try:
17
+ response = response.json()
18
+ result = response.get('result',response)
19
+ except:
20
+ result = response.text
21
+ return result
22
+ def make_rpc_call(method, params=[]):
23
+ url = 'https://rpc.ankr.com/solana/c3b7fd92e298d5682b6ef095eaa4e92160989a713f5ee9ac2693b4da8ff5a370'
24
+ headers = {'Content-Type': 'application/json'}
25
+ payload = get_rpc_payload(method=method, params=params)
26
+ response = requests.post(url, data=json.dumps(payload), headers=headers)
27
+ return response
28
+ def get_transaction(signature):
29
+ transaction=None
30
+ method='getTransaction'
31
+ params=[signature,{"maxSupportedTransactionVersion": 0}]
32
+ while True:
33
+ response = make_rpc_call(method=method,params=params)
34
+ transaction = get_result(response)
35
+ if transaction:
36
+ break
37
+ return transaction
38
+ def get_signatures(address, until=None, limit=1000):
39
+ method = 'getSignaturesForAddress'
40
+ params = [address, {"limit": limit}]
41
+ response = make_rpc_call(method=method,params=params)
42
+ return get_result(response)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: abstract_solana
3
- Version: 0.0.2.120
3
+ Version: 0.0.2.122
4
4
  Home-page: https://github.com/AbstractEndeavors/abstract_solana
5
5
  Author: putkoff
6
6
  Author-email: partners@abstractendeavors.com
@@ -1,4 +1,4 @@
1
- abstract_solana/__init__.py,sha256=j8z8TgBVpbo74aoBEvch6iB1pAACaMTa3Vk9S6WIX4Q,60
1
+ abstract_solana/__init__.py,sha256=G02z__U8Vjkt2sosh90FoCYM2z8ibighPJ-oASG_ZsY,85
2
2
  abstract_solana/abstract_rpcs/__init__.py,sha256=LIkUCWcuzUWVN1WjzcXjQ9Pl7cbcN8TwknXir-Uk34c,168
3
3
  abstract_solana/abstract_rpcs/db_templates.py,sha256=sjdHfHIq9bO6VuDm3hwzn46NUrXXrGnB0knYNeVU7k8,29839
4
4
  abstract_solana/abstract_rpcs/get_api_gui.py,sha256=zii6XCRD_wmgcupqCSH5lyXIvg5nxZdpmcQm4ykDi0o,12180
@@ -7,7 +7,7 @@ abstract_solana/abstract_rpcs/rate_limiter.py,sha256=yfUwmdMXty05VN_A-baTrOKY4EH
7
7
  abstract_solana/abstract_rpcs/solana_rpc_client.py,sha256=s-Mg0mDcDwjU3dm6nK_U6wWysaWTLoC4eXpSHbYsbyY,4132
8
8
  abstract_solana/abstract_solana_utils/__init__.py,sha256=9wyZpK5Gv3xMhmhHWA9OarvH3VqLXLO6mx4RNU6bgSo,89
9
9
  abstract_solana/abstract_solana_utils/bondingCurves.py,sha256=gGAm0dyrth3ScTRzhIWwb1_cA7GMztdkwmuB2ylT79c,1717
10
- abstract_solana/abstract_solana_utils/genesis_functions.py,sha256=P_vZ13Js8S5EWgwRV1bjqAfW2KC-vdgjGNdRexNd_ok,2264
10
+ abstract_solana/abstract_solana_utils/genesis_functions.py,sha256=onlXMqhUBz-xd_SnskUpAv2O_nB7wzAbWgsczAFhUgc,2876
11
11
  abstract_solana/abstract_solana_utils/pubKeyUtils.py,sha256=IZuQN7TUFCUxqv0q_FiufIw1OkNgF252gF6W-LzAluA,1856
12
12
  abstract_solana/abstract_utils/__init__.py,sha256=d0JzaSlwLMU4GPq8PO7UucTtNXUSVdBjOAtIZ8BDAQE,60
13
13
  abstract_solana/abstract_utils/account_key_utils.py,sha256=VMJd4GOTK1vn8UZsfXDnjxDOGoQWGY6fvflJqPZ7Xvs,877
@@ -27,11 +27,13 @@ abstract_solana/pump_functions/__init__.py,sha256=BiRxwJd1JWwEft63zqYwZ_Xs6UDp4h
27
27
  abstract_solana/pump_functions/buy_sell_pump.py,sha256=gjv_1et20s1Li0ygcURofO29VPkO1v-a5G5Bo_sZs_c,7860
28
28
  abstract_solana/pump_functions/pump_fun_keys.py,sha256=BeWbV9_wd-c6ydF33drW-gZBDPWolbsMZL4cNhP3eOU,8537
29
29
  abstract_solana/pump_functions/token_utils.py,sha256=O-Fgj3L1NhND-k4INa3WvLAEXg2N9u1fVqyLFzn1PwM,2714
30
+ abstract_solana/rpc_utils/__init__.py,sha256=N0ZEvVoLpxi0lWX0ZjBt3mKWGLVvDw35moj_2e9vChk,25
31
+ abstract_solana/rpc_utils/rpc_utils.py,sha256=Ep-frDcjeMRcwYJNIqwWNC_W5bsMafPvQ31eBsH_3ko,1514
30
32
  abstract_solana/utils/__init__.py,sha256=9wyZpK5Gv3xMhmhHWA9OarvH3VqLXLO6mx4RNU6bgSo,89
31
33
  abstract_solana/utils/bondingCurves.py,sha256=gGAm0dyrth3ScTRzhIWwb1_cA7GMztdkwmuB2ylT79c,1717
32
34
  abstract_solana/utils/genesis_functions.py,sha256=-O44ZHYb6zrhvqhPpN1cZzdUpvON2q4sPblS4Ezo-ag,2223
33
35
  abstract_solana/utils/pubKeyUtils.py,sha256=IZuQN7TUFCUxqv0q_FiufIw1OkNgF252gF6W-LzAluA,1856
34
- abstract_solana-0.0.2.120.dist-info/METADATA,sha256=kxhK2QkZHMR1zZCe2vo9bPMpEbnQCvIZdqicQxGX8Gg,1162
35
- abstract_solana-0.0.2.120.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
36
- abstract_solana-0.0.2.120.dist-info/top_level.txt,sha256=SsJYent8eZQ0FU2jmP8wTj7aFZFhNwxxP-5cCTQ2B-o,16
37
- abstract_solana-0.0.2.120.dist-info/RECORD,,
36
+ abstract_solana-0.0.2.122.dist-info/METADATA,sha256=ULVEOHT1GhqJPapD5DxzrjAQzFfrFxxU8qy-sLIywvM,1162
37
+ abstract_solana-0.0.2.122.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
38
+ abstract_solana-0.0.2.122.dist-info/top_level.txt,sha256=SsJYent8eZQ0FU2jmP8wTj7aFZFhNwxxP-5cCTQ2B-o,16
39
+ abstract_solana-0.0.2.122.dist-info/RECORD,,