首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >陷入试图用Solana-py创建程序派生地址(PDA)的问题:“没有足够的值来解压(预期的2,得到1)”

陷入试图用Solana-py创建程序派生地址(PDA)的问题:“没有足够的值来解压(预期的2,得到1)”
EN

Stack Overflow用户
提问于 2021-12-23 02:44:34
回答 1查看 209关注 0票数 0
代码语言:javascript
复制
    params = system_program.CreateAccountWithSeedParams(
    base_pubkey = keypair.public_key,
    from_pubkey = keypair.public_key,
    lamports = 200,
    new_account_pubkey = greeted,
    program_id = program_id,
    seed = 'hello',
    space = 8
)

我得到了输出

CreateAccountWithSeedParams(from_pubkey=2ASw3tjK5bSxQxFEMsM6J3DnBozNh7drVErSwc7AtzJv,new_account_pubkey=BkuEamVXuHugbAAVurExanW1FGAejsEAa7hECYsP1j6o,base_pubkey=2ASw3tjK5bSxQxFEMsM6J3DnBozNh7drVErSwc7AtzJv,

seed='hello',lamports=200,space=8,program_id=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA)

当我用

transaction_Params = system_program.create_account_with_seed(params)

我得到了大量的错误,其长话短说是:没有足够的值来解包(预期的2,得到1)

完整的故事:

任何帮助都会得到更多的珍惜和感激,但也会得到大量的感恩欢呼。

EN

回答 1

Stack Overflow用户

发布于 2021-12-23 18:05:23

看起来,所提供的seed实际上应该是一个直接序列化到Rust字符串的dict。下面是一个这样做的测试:https://github.com/michaelhly/solana-py/blob/b507d4dfe16cdaccc754b1f2bac5ed9e258ea039/tests/unit/test_system_program.py#L64

另外,如果您试图创建一个程序派生的地址,您实际上需要使用程序中的invoke_signed在程序中创建它。不可能从外部创建程序派生的地址,因为您需要该程序为该程序派生的地址“签名”。查看https://solanacookbook.com/recipes/accounts.html#program-derived-addresshttps://solanacookbook.com/recipes/accounts.html#create-account-with-seed之间的差异

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

https://stackoverflow.com/questions/70457160

复制
相关文章

相似问题

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