我想用 python 购买 Solana 硬币和 nfts,但我不确定通过区块链进行的交易究竟是如何工作的。假设我想做这个交易:https://solscan.io/tx/5fzuhifWuBFRPtRGHRRsWsJVHuoxcgEN4USzNBu3ZS8VxwL6Fdw8BFaqU4iAEGibQpEAJyG19QhB335K1HiRtQWX 这是我的代码:
import solana.system_program as sp
from solana.publickey import PublicKey
from solana.account import Account
from solana.rpc.api import Client
from solana.transaction import Transaction, TransactionInstruction, AccountMeta
# keypair = your key pair
cli = Client('https://solana-api.projectserum.com')
account = Account(keypair[:32])
new_account = Account()
print(new_account.public_key())
print(new_account.keypair())
transaction = Transaction()
transaction.add(sp.create_account(sp.CreateAccountParams(
from_pubkey=account.public_key(),
new_account_pubkey=new_account.public_key(),
lamports=cli.get_minimum_balance_for_rent_exemption(88).get('result'),
space=88,
program_id=PublicKey('CJsLwbP1iu5DuUikHEJnLfANgKy6stB2uFgvBBHoyxwz'),
)))
send_tx = cli.send_transaction(transaction, new_account)
print(send_tx)
我知道我现在的测试钱包中没有足够的 solana,但更多的是关于发送交易和与程序 ID 交互的一般方式。sollet.io 交易中显示了一些数据,但我不确定是否也必须发送这些数据?如果必须,我应该在哪里以及如何包含它?每笔交易的数据是否都会发生变化?我收到错误消息:
{'code': -32602, 'message': 'invalid transaction: index out of bounds'}