abstract-solana 0.0.0.19__tar.gz → 0.0.0.21__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.
Potentially problematic release.
This version of abstract-solana might be problematic. Click here for more details.
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/PKG-INFO +1 -1
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/setup.py +1 -1
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/log_message_functions.py +2 -7
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana.egg-info/PKG-INFO +1 -1
- abstract_solana-0.0.0.21/test/test_abstract_solana.py +54 -0
- abstract_solana-0.0.0.19/test/test_abstract_solana.py +0 -18
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/README.md +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/setup.cfg +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/__init__.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/account_key_utils.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/constants.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/genesis_functions.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/index_utils.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/price_utils.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/pubkey_utils.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/signature_data_parse.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/utils.py +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana.egg-info/SOURCES.txt +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana.egg-info/dependency_links.txt +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana.egg-info/requires.txt +0 -0
- {abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana.egg-info/top_level.txt +0 -0
{abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/log_message_functions.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from abstract_utilities import make_list
|
|
2
2
|
import json,pprint
|
|
3
|
-
from .
|
|
3
|
+
from .price_utils import *
|
|
4
4
|
from .signature_data_parse import get_log_messages_from_txn,get_instructions_from_txn,get_inner_instructions_from_txn
|
|
5
5
|
from .account_key_utils import get_all_account_keys
|
|
6
6
|
from .constants import TOKEN_PROGRAM_ID
|
|
@@ -126,12 +126,7 @@ def associate_logs_with_instructions(txnData):
|
|
|
126
126
|
instruction_stack_height = instruction.get('stackHeight', 1)
|
|
127
127
|
if instruction_program_id == log_programId and instruction_stack_height == log_stackHeight:
|
|
128
128
|
# Add log data to the matching instruction
|
|
129
|
-
instruction
|
|
130
|
-
instruction['event'] = None if log['events'] == [] else log['events'][0]
|
|
131
|
-
instruction['start'] = log['start']
|
|
132
|
-
instruction['end'] = log['end']
|
|
133
|
-
instruction['stackHeight'] = instruction_stack_height
|
|
134
|
-
instruction['programId'] = instruction_program_id
|
|
129
|
+
instruction.update(log)
|
|
135
130
|
instruction['associatedAccounts'] = [accountKeys[index] for index in instruction['accounts']]
|
|
136
131
|
if instIndex == 0:
|
|
137
132
|
instructions[i] = instruction
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from abstract_solana import *
|
|
2
|
+
from spl.token.instructions import create_associated_token_account, get_associated_token_address
|
|
3
|
+
from price_functions import *
|
|
4
|
+
from abstract_solcatcher import *
|
|
5
|
+
def get_solcatcher_api(endpoint,*args,**kwargs):
|
|
6
|
+
return get_async_response(get_solcatcher_endpoint,endpoint=endpoint,*args,**kwargs)
|
|
7
|
+
def get_create_map():
|
|
8
|
+
return [{'instruction_number': '1', 'instruction_name': 'Mint', 'token_address': 'AkAUSJg1v9xYT3HUxdALH7NsrC6owmwoZuP9MLw8fxTL', 'token_name': '3CAT'},
|
|
9
|
+
{'instruction_number': '2', 'instruction_name': 'Mint Authority', 'token_address': 'TSLvdd1pWpHVjahSpsvCXUbgwsL3JAcvokwaKt1eokM', 'token_name': 'Pump.fun Token Mint Authority'},
|
|
10
|
+
{'instruction_number': '3', 'instruction_name': 'Bonding Curve', 'token_address': '9nhxvNxfSUaJddVco6oa6NodtsCscqCScp6UU1hZkfGm', 'token_name': 'Pump.fun (3CAT) Bonding Curve'},
|
|
11
|
+
{'instruction_number': '4', 'instruction_name': 'Associated Bonding Curve', 'token_address': '889XLp3qvVAHpTYQmhn6cBpYSppV8Gi8E2Rgp9RH2vRy', 'token_name': 'Pump.fun (3CAT) Vault'},
|
|
12
|
+
{'instruction_number': '5', 'instruction_name': 'Global', 'token_address': '4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf', 'token_name': '4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf'},
|
|
13
|
+
{'instruction_number': '6', 'instruction_name': 'Mpl Token Metadata', 'token_address': 'metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s', 'token_name': 'Metaplex Token Metadata'},
|
|
14
|
+
{'instruction_number': '7', 'instruction_name': 'Metadata', 'token_address': 'CH41RxpjSXHqr1vfLTVYJMsfNs2fBCCWoAE13tPihXh7', 'token_name': 'CH41RxpjSXHqr1vfLTVYJMsfNs2fBCCWoAE13tPihXh7'},
|
|
15
|
+
{'instruction_number': '8', 'instruction_name': 'User', 'token_address': 'Fuy5MvbgzjSok1U8hH6mUY6WnLynzUextDxfEWMiTkn4', 'token_name': 'Fuy5MvbgzjSok1U8hH6mUY6WnLynzUextDxfEWMiTkn4'},
|
|
16
|
+
{'instruction_number': '9', 'instruction_name': 'System Program', 'token_address': '11111111111111111111111111111111', 'token_name': 'System Program'},
|
|
17
|
+
{'instruction_number': '10', 'instruction_name': 'Token Program', 'token_address': 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', 'token_name': 'Token Program'},
|
|
18
|
+
{'instruction_number': '11', 'instruction_name': 'Associated Token Program', 'token_address': 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', 'token_name': 'Associated Token Account Program'},
|
|
19
|
+
{'instruction_number': '12', 'instruction_name': 'Rent', 'token_address': 'SysvarRent111111111111111111111111111111111', 'token_name': 'Rent Program'},
|
|
20
|
+
{'instruction_number': '13', 'instruction_name': 'Event Authority', 'token_address': 'Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1', 'token_name': 'Ce6TQqeHC9p8KetsN6JsjHK7UTZk7nasjjnr7XxXp9F1'},
|
|
21
|
+
{'instruction_number': '14', 'instruction_name': 'Program', 'token_address': '6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P', 'token_name': 'Pump.fun'}]
|
|
22
|
+
|
|
23
|
+
def getTxnTypes(signature,maps=None):
|
|
24
|
+
maps = maps or get_create_pump_map()
|
|
25
|
+
token_types = {}
|
|
26
|
+
txnData = get_solcatcher_api('getTransaction',signature=signature)
|
|
27
|
+
txnData = get_for_program_ids_info(txnData)
|
|
28
|
+
for new_map in maps:
|
|
29
|
+
instructions = txnData['transaction']['message']['instructions']
|
|
30
|
+
innerInstructions = txnData['meta']['innerInstructions'][0]['instructions']
|
|
31
|
+
allInstructions = instructions+innerInstructions
|
|
32
|
+
for instruction in allInstructions:
|
|
33
|
+
input(instruction.get('event'))
|
|
34
|
+
if new_map.get('instruction_name') in instruction.get('events'):
|
|
35
|
+
account = instruction.get('accounts')[new_map.get('account')]
|
|
36
|
+
token_types[new_map.get('address_type')]=account
|
|
37
|
+
break
|
|
38
|
+
return token_types
|
|
39
|
+
def getTxnTypesFromMint(mint):
|
|
40
|
+
mintPubKey = get_pubkey(mint)
|
|
41
|
+
if not mintPubKey.is_on_curve():
|
|
42
|
+
print('not on curve')
|
|
43
|
+
return
|
|
44
|
+
bonding_curve = str(derive_bonding_curve(mint)[0])
|
|
45
|
+
bonding_curve_signature = get_solcatcher_api("getGenesisSignature",account=str(bonding_curve))
|
|
46
|
+
txnTypes = getTxnTypes(bonding_curve_signature,maps=get_create_map())
|
|
47
|
+
txnTypes['signature']=bonding_curve_signature
|
|
48
|
+
return txnTypes
|
|
49
|
+
mint = "911eA3wRZ85ZiSTpmCH1hksPGLGgzyVpfMXtJ4zSzVJ5"
|
|
50
|
+
input(getTxnTypesFromMint(mint))
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from abstract_solana import *
|
|
2
|
-
from spl.token.instructions import create_associated_token_account, get_associated_token_address
|
|
3
|
-
from price_functions import *
|
|
4
|
-
from abstract_solcatcher import *
|
|
5
|
-
def get_solcatcher_api(endpoint,*args,**kwargs):
|
|
6
|
-
return get_async_response(get_solcatcher_endpoint,endpoint=endpoint,*args,**kwargs)
|
|
7
|
-
|
|
8
|
-
mint = "911eA3wRZ85ZiSTpmCH1hksPGLGgzyVpfMXtJ4zSzVJ5"
|
|
9
|
-
bonding_curve = str(derive_bonding_curve(mint)[0])
|
|
10
|
-
bonding_curve_signature = get_solcatcher_api("getGenesisSignature",account=str(bonding_curve))
|
|
11
|
-
transfers = []
|
|
12
|
-
txnData = get_solcatcher_api("getTransaction",tx_sig=str(bonding_curve_signature))
|
|
13
|
-
txnData = get_transfer_instructions(txnData)
|
|
14
|
-
input(txnData)
|
|
15
|
-
txnData = get_for_program_ids_info(txnData)
|
|
16
|
-
input(txnData)
|
|
17
|
-
|
|
18
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/account_key_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/genesis_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana/signature_data_parse.py
RENAMED
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana.egg-info/requires.txt
RENAMED
|
File without changes
|
{abstract_solana-0.0.0.19 → abstract_solana-0.0.0.21}/src/abstract_solana.egg-info/top_level.txt
RENAMED
|
File without changes
|