[英]Transactions using solana python
我正在尝试制作套利程序。 虽然我无法使用 solana 编写交易代码。 我确实从这里参考过( 使用 python 发送 solana 交易)。 我已经创建了 2 个帐户,一个使用 phantom,另一个使用 solflare。 因此,以下代码中的帐户具有来自 phantom 的公钥,而 new_account 具有来自 solflare 的公钥。
def perform_transaction():
private_key = PRIVATEKEYPHANTOM
keypair = get_keypair(private_key)
cli = Client('https://solana-api.projectserum.com')
account = Account(keypair[:32])
new_account = Account(KEYPAIRSOLFLARE[:32])
# 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(a_public_key),
)))
send_tx = cli.send_transaction(transaction, new_account)
print(transaction)
我收到以下错误
raise ValueError("invalid public key input:", value) from err
ValueError: ('invalid public key input:', '<solana.account.Account object at 0x7f8ca6429d00>')
我从未处理过加密交易,这可能是一个非常简单的错误。 这里出了什么问题?
您可以尝试几件事。 首先,您可以改用Keypair
类型,因为不推荐使用Account
,特别是使用from_secret_key
: https://github.com/michaelhly/solana-py/blob/a366253a3f043979bc6f61869ee8faad98292dc2/solana/keypair.py#L46
如果仍然不起作用,则私钥的格式可能不正确。 Phantom 将私钥生成为 base-64 字符串,而这些函数需要字节 arrays。您可以使用Import phantom wallet private key into solana CLI中的一些答案在两者之间进行转换
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.