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)
完整的故事:

任何帮助都会得到更多的珍惜和感激,但也会得到大量的感恩欢呼。
发布于 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-address和https://solanacookbook.com/recipes/accounts.html#create-account-with-seed之间的差异
https://stackoverflow.com/questions/70457160
复制相似问题