首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用solana python的事务

使用solana python的事务
EN

Stack Overflow用户
提问于 2021-10-05 10:18:47
回答 1查看 1.7K关注 0票数 0

我在试着做套利程序。尽管我不能使用solana编写事务代码。我在这里指的是(Sending solana transactions with python)。我有两个账户,一个是幻影账户,另一个是solflare账户。因此,以下代码中的帐户具有来自幻影的公钥,而new_account具有来自solflare的公钥。

代码语言:javascript
复制
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)  

我得到以下错误

代码语言:javascript
复制
raise ValueError("invalid public key input:", value) from err
ValueError: ('invalid public key input:', '<solana.account.Account object at 0x7f8ca6429d00>')

我从来没有处理过加密交易,这可能是一个非常简单的错误。这是怎么回事?

EN

回答 1

Stack Overflow用户

发布于 2021-10-06 20:20:28

您可以尝试以下几种方法。首先,您可以改用Keypair类型,因为Account已被弃用,尤其是使用from_secret_keyhttps://github.com/michaelhly/solana-py/blob/a366253a3f043979bc6f61869ee8faad98292dc2/solana/keypair.py#L46

如果这仍然不起作用,那么私钥的格式可能不正确。Phantom以base-64字符串的形式生成私钥,而这些函数需要字节数组。您可以使用Import phantom wallet private key into solana CLI上的一些答案在两者之间进行转换

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69448716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档