abstract-solana 0.0.0.59__tar.gz → 0.0.0.61__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.

Files changed (25) hide show
  1. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/PKG-INFO +1 -1
  2. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/setup.py +1 -1
  3. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/pumpFun/buy_sell_pump.py +15 -16
  4. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/pumpFun/pump_fun_keys.py +3 -3
  5. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/pumpFun/token_utils.py +15 -2
  6. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana.egg-info/PKG-INFO +1 -1
  7. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/test/test_abstract_solana.py +3 -2
  8. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/README.md +0 -0
  9. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/setup.cfg +0 -0
  10. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/__init__.py +0 -0
  11. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/account_key_utils.py +0 -0
  12. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/constants.py +0 -0
  13. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/genesis_functions.py +0 -0
  14. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/index_utils.py +0 -0
  15. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/keypair_utils.py +0 -0
  16. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/log_message_functions.py +0 -0
  17. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/price_utils.py +0 -0
  18. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/pubkey_utils.py +0 -0
  19. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/pumpFun/__init__.py +0 -0
  20. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/signature_data_parse.py +0 -0
  21. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana/utils.py +0 -0
  22. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana.egg-info/SOURCES.txt +0 -0
  23. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana.egg-info/dependency_links.txt +0 -0
  24. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana.egg-info/requires.txt +0 -0
  25. {abstract_solana-0.0.0.59 → abstract_solana-0.0.0.61}/src/abstract_solana.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: abstract_solana
3
- Version: 0.0.0.59
3
+ Version: 0.0.0.61
4
4
  Home-page: https://github.com/AbstractEndeavors/abstract_solana
5
5
  Author: putkoff
6
6
  Author-email: partners@abstractendeavors.com
@@ -4,7 +4,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
4
4
  long_description = fh.read()
5
5
  setuptools.setup(
6
6
  name='abstract_solana',
7
- version='0.0.0.59',
7
+ version='0.0.0.61',
8
8
  author='putkoff',
9
9
  author_email='partners@abstractendeavors.com',
10
10
  description="",
@@ -65,9 +65,9 @@ def confirm_txn(txn_sig, max_retries=20, retry_interval=3):
65
65
  time.sleep(retry_interval)
66
66
  print("Max retries reached. Transaction confirmation failed.")
67
67
  return None
68
- def buildTxn(mint,payer_pubkey, amount, slippage, token_account_pubkey,sol_in=0,token_price=0,token_balance=0,token_account_instructions=None,close_token_account=False,buy=True):
68
+ 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):
69
69
  # Get keys for the transaction, pass the token account's pubkey instead of the AccountMeta object
70
- keys = getKeys(mint, token_account_pubkey=token_account_pubkey, payer_pubkey=payer_pubkey,buy=buy)
70
+ keys = getKeys(mint, token_account=token_account, payer_pubkey=payer_pubkey,buy=buy)
71
71
  slippage_adjustment = 1 - (slippage / 100)
72
72
  sol_change = sol_in if buy else float(token_balance) * float(token_price)
73
73
  sol_change_with_slippage = sol_change * slippage_adjustment
@@ -93,8 +93,8 @@ def buildTxn(mint,payer_pubkey, amount, slippage, token_account_pubkey,sol_in=0,
93
93
  txn.add(close_account_instructions)
94
94
  return txn
95
95
 
96
- def get_all_buy_sell_info(mint,payer_pubkey,token_balance=None,sol_in=0):
97
- try:
96
+ def get_all_buy_sell_info(mint,payer_pubkey,token_balance=None,sol_in=0,buy=True):
97
+
98
98
  print("Owner Public Key:", payer_pubkey)
99
99
  mint_str = str(mint)
100
100
  if not get_pubkey(mint_str).is_on_curve():
@@ -116,17 +116,16 @@ def get_all_buy_sell_info(mint,payer_pubkey,token_balance=None,sol_in=0):
116
116
  print(f"Token Price: {token_price:.20f} SOL")
117
117
  amount = int(LAMPORTS_PER_SOL * token_price)
118
118
  print("Calculated Amount:", amount)
119
- if token_balance == None:
120
- token_balance = get_token_balance(token_account,mint_str)
121
- print("Token Balance:", token_balance)
122
- if token_balance == 0:
123
- return False
119
+ if buy == False:
120
+ if token_balance == None:
121
+ token_balance = get_token_balance(token_account,mint_str)
122
+ print("Token Balance:", token_balance)
123
+ if token_balance == 0:
124
+ return False
124
125
  return mint,amount,token_balance,token_price,token_account_pubkey,token_account_instructions
125
- except Exception as e:
126
- print(e)
127
-
126
+
128
127
  def pump_fun_sell(mint: str,payer_pubkey:Pubkey, token_balance: Optional[Union[int, float]] = None, slippage: int = 25, close_token_account: bool = True) -> bool:
129
- mint,amount,token_balance,token_price,token_account_pubkey,token_account_instructions = get_all_buy_sell_info(mint,payer_pubkey,token_balance=token_balance)
128
+ mint,amount,token_balance,token_price,token_account,token_account_instructions = get_all_buy_sell_info(mint,payer_pubkey,token_balance=token_balance,buy=False)
130
129
  return buildTxn(mint=mint,
131
130
  payer_pubkey=payer_pubkey,
132
131
  amount=amount,
@@ -134,12 +133,12 @@ def pump_fun_sell(mint: str,payer_pubkey:Pubkey, token_balance: Optional[Union[i
134
133
  sol_in=0,
135
134
  token_balance=token_balance,
136
135
  token_price=token_price,
137
- token_account_pubkey=token_account_pubkey,
136
+ token_account=token_account,
138
137
  token_account_instructions=token_account_instructions,
139
138
  buy=False)
140
139
 
141
140
  def pump_fun_buy(mint: str,payer_pubkey:Pubkey, sol_in: float = 0.001, slippage: int = 25) -> bool:
142
- mint,amount,token_balance,token_price,token_account_pubkey,token_account_instructions = get_all_buy_sell_info(mint,payer_pubkey,sol_in=sol_in)
141
+ mint,amount,token_balance,token_price,token_account,token_account_instructions = get_all_buy_sell_info(mint,payer_pubkey,sol_in=sol_in,buy=True,)
143
142
  # Build the transaction
144
143
  return buildTxn(mint=mint,
145
144
  payer_pubkey=payer_pubkey,
@@ -148,7 +147,7 @@ def pump_fun_buy(mint: str,payer_pubkey:Pubkey, sol_in: float = 0.001, slippage:
148
147
  sol_in=sol_in,
149
148
  token_balance=0,
150
149
  token_price=0,
151
- token_account_pubkey=token_account_pubkey,
150
+ token_account=token_account,
152
151
  token_account_instructions=token_account_instructions,
153
152
  buy=True)
154
153
  return True
@@ -103,13 +103,13 @@ def get_pump_fun_data(mint_str: str):
103
103
 
104
104
  return txn_types
105
105
 
106
- def getKeys(mint_str,token_account_pubkey,payer_pubkey,buy=True):
106
+ def getKeys(mint_str,token_account,payer_pubkey,buy=True):
107
107
  coin_data = get_pump_fun_data(str(mint_str))
108
108
  MINT = get_pubkey(str(mint_str))
109
109
  BONDING_CURVE = get_pubkey(coin_data['bonding_curve'])
110
110
  ASSOCIATED_BONDING_CURVE = get_pubkey(coin_data['associated_bonding_curve'])
111
- ASSOCIATED_USER = get_pubkey(token_account_pubkey)
112
- USER = get_pubkey(payer_pubkey)
111
+ ASSOCIATED_USER = Pubkey.from_string(str(token_account))
112
+ USER = Pubkey.from_string(str(payer_pubkey))
113
113
  PUMP_FUN_TOKEN_PROGRAM_SWITCH = TOKEN_PROGRAM_ID_PUBKEY if buy else PUMP_FUN_ASSOC_TOKEN_ACC_PROG_PUBKEY
114
114
  PUMP_FUN_RENT_PROGRAM_SWITCH = RENT_PUBKEY if buy else TOKEN_PROGRAM_ID_PUBKEY
115
115
  # Build account key list
@@ -4,6 +4,7 @@ from .pump_fun_keys import get_pump_fun_data
4
4
  from abstract_solcatcher import getTokenAccountBalance,getTokenAccountsByOwner
5
5
  from spl.token.instructions import create_associated_token_account, get_associated_token_address
6
6
  from abstract_utilities import get_any_value
7
+ import requests
7
8
  def get_token_balance(payer,mint: str):
8
9
  response = getTokenAccountBalance(str(payer),str(mint))
9
10
  response=response.get('value',response)
@@ -24,8 +25,20 @@ def get_token_price(mint: str) -> float:
24
25
  except Exception as e:
25
26
  print(f"Error calculating token price: {e}")
26
27
  return None
27
- def get_account_by_owner(payer, mint: str) -> dict:
28
- result = getTokenAccountsByOwner(**{"account":payer,"mint":str(mint),"encoding":"jsonParsed"})
28
+ def get_account_by_owner(payer, mint_str: str) -> dict:
29
+ payload = {
30
+ "jsonrpc": "2.0",
31
+ "id": 1,
32
+ "method": "getTokenAccountsByOwner",
33
+ "params": [payer, {"mint": mint_str}, {"encoding": "jsonParsed"}]
34
+ }
35
+ response = requests.post(
36
+ url="https://rpc.ankr.com/solana/c3b7fd92e298d5682b6ef095eaa4e92160989a713f5ee9ac2693b4da8ff5a370",
37
+ json=payload
38
+ )
39
+ response_json = response.json()
40
+
41
+ result = response_json.get('result')
29
42
  if not result or 'value' not in result:
30
43
  return None
31
44
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: abstract_solana
3
- Version: 0.0.0.59
3
+ Version: 0.0.0.61
4
4
  Home-page: https://github.com/AbstractEndeavors/abstract_solana
5
5
  Author: putkoff
6
6
  Author-email: partners@abstractendeavors.com
@@ -1,10 +1,11 @@
1
1
  from spl.token.instructions import CloseAccountParams
2
- from abstract_solana import pump_fun_sell,load_from_private_key,sendTransaction,load_from_private_key
2
+ from src.abstract_solana import get_pubkey,confirm_txn,pump_fun_sell,pump_fun_buy,load_from_private_key,sendTransaction,load_from_private_key
3
3
  from solana.rpc.types import TxOpts
4
4
  payer_keypair = load_from_private_key()
5
- payer_pubkey = payer_keypair.pubkey()
5
+ payer_pubkey = get_pubkey(payer_keypair.pubkey())
6
6
  mint_str = "3bb6QmvustnZ627Kg2QvwTSi8gmxp7Y6orwXUokEwUyV"
7
7
  txn = pump_fun_sell(mint=mint_str,payer_pubkey=payer_pubkey, token_balance=None, slippage=25)
8
+ #txn = pump_fun_buy(mint=mint_str,payer_pubkey=payer_pubkey)
8
9
  txn.sign(payer_keypair)
9
10
  txn_sig = sendTransaction(txn, payer_keypair, TxOpts(skip_preflight=True))
10
11
  print("Transaction Signature", txn_sig)