abstract-solana 0.0.0.67__tar.gz → 0.0.0.69__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.67 → abstract_solana-0.0.0.69}/PKG-INFO +1 -1
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/setup.py +1 -1
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pumpFun/buy_sell_pump.py +40 -31
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana.egg-info/PKG-INFO +1 -1
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/README.md +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/setup.cfg +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/__init__.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/account_key_utils.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/constants.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/genesis_functions.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/index_utils.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/keypair_utils.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/log_message_functions.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/price_utils.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pubkey_utils.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pumpFun/__init__.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pumpFun/pump_fun_keys.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pumpFun/token_utils.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/signature_data_parse.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/utils.py +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana.egg-info/SOURCES.txt +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana.egg-info/dependency_links.txt +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana.egg-info/requires.txt +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana.egg-info/top_level.txt +0 -0
- {abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/test/test_abstract_solana.py +0 -0
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pumpFun/buy_sell_pump.py
RENAMED
|
@@ -13,30 +13,6 @@ from ..constants import PUMP_FUN_PROGRAM_PUBKEY,LAMPORTS_PER_SOL,UNIT_PRICE,UNIT
|
|
|
13
13
|
from solders.compute_budget import set_compute_unit_limit, set_compute_unit_price
|
|
14
14
|
from .token_utils import get_token_balance,check_existing_token_account,get_token_price
|
|
15
15
|
from .pump_fun_keys import getKeys
|
|
16
|
-
async def confirm_txn(txn_sig, max_retries=20, retry_interval=3):
|
|
17
|
-
retries = 0
|
|
18
|
-
while retries < max_retries:
|
|
19
|
-
txn_res = getTransaction(signature=str(txn_sig))
|
|
20
|
-
print(txn_res)
|
|
21
|
-
if txn_res:
|
|
22
|
-
print(txn_res)
|
|
23
|
-
print(f"\n\nhttps://solscan.io/tx/{str(txn_sig)}")
|
|
24
|
-
return txn_res
|
|
25
|
-
retries += 1
|
|
26
|
-
print(f"Retrying... ({retries}/{max_retries})")
|
|
27
|
-
await asyncio.sleep(retry_interval)
|
|
28
|
-
print(f"Failed to confirm transaction after {max_retries} attempts.")
|
|
29
|
-
return txn_sig
|
|
30
|
-
def complete_txn(txn, payer_keypair):
|
|
31
|
-
txn_sig = sendTransaction(txn=txn,payer_keypair=payer_keypair, skip_preflight=True)
|
|
32
|
-
print("Transaction Signature", txn_sig)
|
|
33
|
-
confirm = asyncio.run(confirm_txn(txn_sig))
|
|
34
|
-
while not confirm:
|
|
35
|
-
print("Waiting for transaction confirmation...")
|
|
36
|
-
time.sleep(1) # Wait for 1 second before checking again
|
|
37
|
-
confirm = confirm_txn(txn_sig)
|
|
38
|
-
print("Transaction confirmed:", confirm)
|
|
39
|
-
return confirm
|
|
40
16
|
def buildTxn(mint,payer_pubkey, amount, slippage, token_account,sol_in=0,token_price=0,token_balance=0,token_account_instructions=None,close_token_account=False,buy=True):
|
|
41
17
|
# Get keys for the transaction, pass the token account's pubkey instead of the AccountMeta object
|
|
42
18
|
keys = getKeys(mint, token_account=token_account, payer_pubkey=payer_pubkey,buy=buy)
|
|
@@ -126,22 +102,55 @@ def pump_fun_buy(mint: str,payer_pubkey:Pubkey, sol_in: float = 0.001, slippage:
|
|
|
126
102
|
token_account_instructions=token_account_instructions,
|
|
127
103
|
buy=True)
|
|
128
104
|
return True
|
|
105
|
+
async def confirm_txn(txn_sig, max_retries=20, retry_interval=3):
|
|
106
|
+
retries = 0
|
|
107
|
+
while retries < max_retries:
|
|
108
|
+
txn_res = getTransaction(signature=str(txn_sig))
|
|
109
|
+
if txn_res:
|
|
110
|
+
print(f"\n\nhttps://solscan.io/tx/{str(txn_sig)}")
|
|
111
|
+
return txn_res
|
|
112
|
+
retries += 1
|
|
113
|
+
print(f"Retrying... ({retries}/{max_retries})")
|
|
114
|
+
await asyncio.sleep(retry_interval)
|
|
115
|
+
print(f"Failed to confirm transaction after {max_retries} attempts.")
|
|
116
|
+
return txn_sig
|
|
117
|
+
async def complete_txn(txn, payer_keypair):
|
|
118
|
+
txn_sig = await sendTransaction(txn=txn, payer_keypair=payer_keypair, skip_preflight=True) # Await this async call
|
|
119
|
+
print("Transaction Signature", txn_sig)
|
|
120
|
+
confirm = await confirm_txn(txn_sig) # Await confirmation
|
|
129
121
|
|
|
130
|
-
|
|
122
|
+
while not confirm:
|
|
123
|
+
print("Waiting for transaction confirmation...")
|
|
124
|
+
await asyncio.sleep(1) # Use asyncio.sleep instead of time.sleep to avoid blocking
|
|
125
|
+
confirm = await confirm_txn(txn_sig) # Await confirmation check again
|
|
126
|
+
|
|
127
|
+
print("Transaction confirmed:", confirm)
|
|
128
|
+
return confirm
|
|
129
|
+
|
|
130
|
+
async def buy_pump_sync(mint: str, payer_keypair: Pubkey, sol_in=None, slippage=None):
|
|
131
131
|
sol_in = sol_in or 0.001
|
|
132
132
|
slippage = slippage or 25
|
|
133
133
|
payer_pubkey = get_pubkey(payer_keypair.pubkey())
|
|
134
|
-
txn = pump_fun_buy(mint=mint, payer_pubkey=payer_pubkey,sol_in=sol_in,slippage=slippage)
|
|
135
|
-
|
|
134
|
+
txn = pump_fun_buy(mint=mint, payer_pubkey=payer_pubkey, sol_in=sol_in, slippage=slippage)
|
|
135
|
+
|
|
136
|
+
completed = await complete_txn(txn, payer_keypair) # Await here since `complete_txn` is async
|
|
136
137
|
if not completed:
|
|
137
138
|
print("Buy transaction failed")
|
|
138
139
|
return completed
|
|
139
|
-
|
|
140
|
-
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
async def sell_pump_sync(mint: str, payer_keypair: Pubkey, token_balance=None, slippage=None):
|
|
141
143
|
slippage = slippage or 25
|
|
142
144
|
payer_pubkey = get_pubkey(payer_keypair.pubkey())
|
|
143
145
|
txn = pump_fun_sell(mint=mint, payer_pubkey=payer_pubkey, token_balance=token_balance, slippage=slippage)
|
|
144
|
-
|
|
146
|
+
|
|
147
|
+
completed = await complete_txn(txn, payer_keypair) # Await here since `complete_txn` is async
|
|
145
148
|
if not completed:
|
|
146
|
-
print("
|
|
149
|
+
print("Sell transaction failed")
|
|
147
150
|
return completed
|
|
151
|
+
|
|
152
|
+
def buy_pump(mint: str, payer_keypair: Pubkey, sol_in=None, slippage=None):
|
|
153
|
+
return asyncio.run(buy_pump_sync(mint, payer_keypair, sol_in, slippage))
|
|
154
|
+
|
|
155
|
+
def sell_pump(mint: str, payer_keypair: Pubkey, token_balance=None, slippage=None):
|
|
156
|
+
return asyncio.run(sell_pump_sync(mint, payer_keypair, token_balance, slippage))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/account_key_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/genesis_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/log_message_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pumpFun/__init__.py
RENAMED
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pumpFun/pump_fun_keys.py
RENAMED
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/pumpFun/token_utils.py
RENAMED
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana/signature_data_parse.py
RENAMED
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana.egg-info/requires.txt
RENAMED
|
File without changes
|
{abstract_solana-0.0.0.67 → abstract_solana-0.0.0.69}/src/abstract_solana.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|