shadowPaySDK 0.2.0.25__py3-none-any.whl → 0.2.0.26__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.
shadowPaySDK/const.py CHANGED
@@ -548,3 +548,8 @@ __SHADOWPAY_CONTRACT_ADDRESS__ERC721__ = {
548
548
  "0x1": "0x3c5b8d6f2e"
549
549
  }
550
550
 
551
+ SOLANA_SYSTEM_PROGRAMM = "11111111111111111111111111111111"
552
+ LAMPORTS_PER_SOL = 1_000_000_000
553
+ WRAPED_SOL = "So11111111111111111111111111111111111111112"
554
+ TOKEN_PROGRAM_ID = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
555
+ NATIVE_DECIMALS: int = 9
@@ -5,21 +5,140 @@ import solders
5
5
  from shadowPaySDK.interface.sol import SOL
6
6
  import solders
7
7
  import spl.token.constants as spl_constants
8
+ from solana.rpc.api import Client
8
9
 
10
+ from types import Optional, Union
11
+ import asyncio
12
+ import solana
13
+ from solana.rpc.async_api import AsyncClient, GetTokenAccountsByOwnerResp
14
+ from solders.transaction import Transaction
15
+ from solders.system_program import TransferParams as p
16
+ from solders.instruction import Instruction, AccountMeta
17
+ from solders.rpc.config import RpcSendTransactionConfig
18
+ from solders.message import Message
19
+ import spl
20
+ import spl.token
21
+ import spl.token.constants
22
+ from spl.token.instructions import get_associated_token_address, create_associated_token_account, transfer, close_account, TransferParams
23
+ from solders.system_program import transfer as ts
24
+ from solders.system_program import TransferParams as tsf
25
+ from solders.pubkey import Pubkey
26
+ import os
27
+ from spl.token.constants import TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID
28
+ from solana.rpc.types import TxOpts, TokenAccountOpts
29
+ from solana.rpc.types import TxOpts
30
+ import solders
31
+ from solders.message import Message
32
+ from solders.system_program import create_account,CreateAccountParams
33
+
34
+ # from solders.pubkey import Pubkey
35
+ # from solders.keypair import Keypair
36
+ # from solders.signature import Signature
37
+ # from solders.transaction import Transaction
38
+ from spl.token.async_client import AsyncToken
39
+
40
+
41
+ from solana.rpc.commitment import Confirmed
42
+ from solana.rpc.async_api import AsyncClient
43
+ import anchorpy
44
+ from anchorpy import Provider, Wallet, Idl
45
+ from typing import Optional, Union
46
+ import pprint
47
+ import httpx
48
+ import base64
49
+ import re
50
+ import struct
51
+ from shadowPaySDK.const import LAMPORTS_PER_SOL
9
52
 
10
53
 
54
+ # PROGRAM_ID = "5nfYDCgBgm72XdpYFEtWX2X1JQSyZdeBH2uuBZ6ZvQfi"
55
+
11
56
  class SOLCheque:
12
- def __init__(self, rpc_url: str = "https://api.mainnet-beta.solana.com", keystore: Wallet = None):
57
+ def __init__(self, rpc_url: str = "https://api.mainnet-beta.solana.com", key: Wallet = None):
13
58
  self.rpc_url = rpc_url
14
- self.keystore = keystore
15
- self.provider = Provider(self.rpc_url, self.keystore)
59
+ self.key = solders.keypair.Keypair.from_base58_string(key)
60
+ self.provider = Client(rpc_url)
16
61
  self.WRAPED_SOL = spl_constants.WRAPPED_SOL_MINT # wrapped SOL token mint address
17
62
  # self.idl = Idl.from_json(sol_interface.Idl) # Load the IDL for the program
18
63
  def get(self, keypair = None):
19
64
  pubkey = SOL.get_pubkey(KEYPAIR=solders.keypair.Keypair.from_base58_string(self.keystore))
20
65
 
21
66
  return pubkey
22
-
67
+ def set_params(self, rpc_url: Optional[str] = None, key: Optional[Wallet] = None):
68
+ if rpc_url:
69
+ self.rpc_url = rpc_url
70
+ self.provider = Client(rpc_url)
71
+ if key:
72
+ self.key = key
73
+
74
+ def init_cheque(self, cheque_amount, recipient: str, memo: Optional[str] = None):
75
+ """
76
+ Initialize a cheque withc the specified amount and recipient.
77
+ """
78
+ if not self.key:
79
+ raise ValueError("Keypair is not set. Please set the keypair before initializing a cheque.")
80
+ PROGRAM_ID = Pubkey.from_string("5nfYDCgBgm72XdpYFEtWX2X1JQSyZdeBH2uuBZ6ZvQfi")
81
+
82
+ CHEQUE_SPACE = 100
83
+ CHEQUE_RENT = self.provider.get_minimum_balance_for_rent_exemption(CHEQUE_SPACE)
84
+ print("Minimum balance for rent exemption:", CHEQUE_RENT.value)
85
+ sol = SOL()
86
+ payer = self.key
87
+ pubkey = self.key.pubkey
88
+ newAccount = sol.gen_wallet()
89
+ newAccountPubkey = newAccount["pubkey"]
90
+ ix_create = create_account(
91
+ params=CreateAccountParams(
92
+ from_pubkey=pubkey,
93
+ to_pubkey=newAccountPubkey,
94
+ lamports=CHEQUE_RENT.value,
95
+ space=CHEQUE_SPACE,
96
+ owner=PROGRAM_ID
97
+ )
98
+ )
99
+ recent_blockhash = self.provider.get_latest_blockhash().value.blockhash
100
+ message = Message(instructions=[ix_create], payer=pubkey)
101
+
102
+ t = Transaction(message=message, from_keypairs=[payer, newAccount["keypair"]], recent_blockhash=recent_blockhash)
103
+ r = self.provider.send_transaction(t,opts=TxOpts(skip_preflight=True))
104
+ print("✅ CreateCheque Signature:", r.value)
105
+ CHEQUE_PDA = newAccountPubkey # замените на актуальный адрес PDA
106
+
107
+ # === Автор ===
108
+
109
+ # === Получатели ===
110
+
111
+ # === Сумма ===
112
+ total_lamports = int(cheque_amount * LAMPORTS_PER_SOL)
113
+
114
+
115
+ r = Pubkey.from_string(recipient)
116
+
117
+ # 1 byte - tag
118
+ # 32 bytes - recipient pubkey
119
+ # 8 bytes - lamports (u64 LE)
120
+ data = bytes([0]) + bytes(r) + struct.pack("<Q", total_lamports)
121
+
122
+ # === Инструкция ===
123
+
124
+
125
+ instruction = Instruction(
126
+ program_id=PROGRAM_ID,
127
+ data=data,
128
+ accounts=[
129
+ AccountMeta(pubkey=pubkey, is_signer=True, is_writable=True), # payer
130
+ AccountMeta(pubkey=CHEQUE_PDA, is_signer=False, is_writable=True), # cheque PDA
131
+ AccountMeta(pubkey=Pubkey.from_string("11111111111111111111111111111111"), is_signer=False, is_writable=False)
132
+
133
+ ]
134
+ )
135
+
136
+ # === Отправка транзакции ===
137
+ recent_blockhash = self.provider.get_latest_blockhash().value.blockhash
138
+ message = Message(instructions=[instruction], payer=pubkey)
139
+ tx = Transaction(message=message, from_keypairs=[payer], recent_blockhash=recent_blockhash)
140
+ response = self.provider.send_transaction(tx,opts=TxOpts(skip_preflight=True))
141
+ print("✅ InitCheque Signature:", response.value)
23
142
 
24
143
 
25
144
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shadowPaySDK
3
- Version: 0.2.0.25
3
+ Version: 0.2.0.26
4
4
  Summary: ShadowPay SDK for ERC20/ERC721 and P2P smart contract interaction
5
5
  Author: dazay(aka dazarius_)
6
6
  Author-email: your@email.com
@@ -1,17 +1,17 @@
1
1
  shadowPaySDK/__init__.py,sha256=CMwAuP_6hJN-WueU-XlTNta9Oyd28sFo8OojdgD_pxA,681
2
2
  shadowPaySDK/api.py,sha256=cv5Z171cOh-Idi-lMA4AORzeGDPPrk8BCQ9e5V9MAaM,1461
3
- shadowPaySDK/const.py,sha256=uUkzYTm-12iK3IsnQICnoT9tpmZ9aYh3pqXbSd-GNh8,9898
3
+ shadowPaySDK/const.py,sha256=ogzTSFbJ_hQK49qEo2ZfxPiI_CTZLh7a706OKN41KYM,10140
4
4
  shadowPaySDK/interface/__init__.py,sha256=ggSZCV22udnzXm_Wv_3x6VN3hNIAEiwgwHZc2Jwc688,146
5
5
  shadowPaySDK/interface/erc20.py,sha256=7p8eU5LzhI2MsH80PZhq6IRhbfMGlNYucGl3OtyS9SI,4669
6
6
  shadowPaySDK/interface/erc721.py,sha256=4AlWfDjrvl85wFocnN93j-oM54kTsLLwv9SdtcLj4eM,3094
7
7
  shadowPaySDK/interface/sol.py,sha256=TDp62OtQkR8Wy9I4UBVmL_K_FQeMVS--Lojgbvq5T2E,8146
8
8
  shadowPaySDK/types/EVMcheque.py,sha256=8M1EzpZGqf4uidrd9yDKiR7BvIl85p93A_9AMZtshSs,14570
9
- shadowPaySDK/types/SOLcheque.py,sha256=S6LnKxiWDj1KGRgFFAaHy03c7mxv4msaR-2cfVIhD2Y,818
9
+ shadowPaySDK/types/SOLcheque.py,sha256=C-a7FsVgF-as-JQ0PgR6YBBaacXjVZBfSM87Nxo1s1Q,5782
10
10
  shadowPaySDK/types/__init__.py,sha256=sG6pNZfKGvENXqsnv6MrQtKrJ898fAXkMvAZY1k1-Qg,97
11
11
  shadowPaySDK/utils/__init__.py,sha256=aja3iYO4rT-ptMM-pzw0GRFTziBdXdcEi-4kE84zH64,61
12
12
  shadowPaySDK/utils/utils.py,sha256=g4bGvLDdjhNGsAj1eaZnNWFNaiN-cVhhM-5PrnG5aIQ,720
13
- shadowpaysdk-0.2.0.25.dist-info/licenses/LICENSE,sha256=EG13vNmyBfkG3oKj40oOYfUGLKko8OouU6PfO6MlAk4,1066
14
- shadowpaysdk-0.2.0.25.dist-info/METADATA,sha256=FJ4DYapfQp_ErnsQmrz-O2T8_HR-O4ea9JyTjOZBKAI,964
15
- shadowpaysdk-0.2.0.25.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
16
- shadowpaysdk-0.2.0.25.dist-info/top_level.txt,sha256=RSJc73GEf31NMdZp9KovEduzfhm10eQ2t5GTZ44aN1U,13
17
- shadowpaysdk-0.2.0.25.dist-info/RECORD,,
13
+ shadowpaysdk-0.2.0.26.dist-info/licenses/LICENSE,sha256=EG13vNmyBfkG3oKj40oOYfUGLKko8OouU6PfO6MlAk4,1066
14
+ shadowpaysdk-0.2.0.26.dist-info/METADATA,sha256=sHw5afWWsEXT_Y_C2PQ8G38pwQL3WOyrZQ_9clfl7i0,964
15
+ shadowpaysdk-0.2.0.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
16
+ shadowpaysdk-0.2.0.26.dist-info/top_level.txt,sha256=RSJc73GEf31NMdZp9KovEduzfhm10eQ2t5GTZ44aN1U,13
17
+ shadowpaysdk-0.2.0.26.dist-info/RECORD,,