gpt4 book ai didi

rust - 将 Solana PDA 相互连接

转载 作者:行者123 更新时间:2023-12-05 01:50:58 25 4
gpt4 key购买 nike

我正在使用 Solana PDA 构建类似 HashMap 的结构,使用用户的钱包地址作为种子之一。 PDA 称为 MyNodes,包含一些特定于用户的数据,包括应计奖励。

现在我正在尝试构建一个推荐系统。我有一个用户的 MyNodes PDA,我想在第一个 PDA 中存储另一个用户的 PDA 地址。因此,一个用户的 PDA 将指向另一个用户的 PDA,即它的“推荐人”或“关联方”。我需要这种联系,以便为推荐人和被推荐人正确处理成员(member)奖励。

但是,当尝试使用 anchor 构建帐户结构时,我遇到了问题。

#[account]
pub struct MyNodes {
xyz: u32,
abc: u32,
etc: u64,
aff_account: Account<MyNodes>,
}

但它给出了我的编译错误:

BPF SDK: /Users/bb/solana/bin/sdk/bpf
cargo-build-bpf child: rustup toolchain list -v
cargo-build-bpf child: cargo +bpf build --target bpfel-unknown-unknown --release
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package: /Users/bb/app/nodestore/programs/nodeshop/Cargo.toml
workspace: /Users/bb/app/nodestore/Cargo.toml
Compiling nodeshop v0.1.0 (/Users/bb/app/nodestore/programs/nodeshop)
error[E0106]: missing lifetime specifier
--> programs/nodeshop/src/lib.rs:129:26
|
129 | aff_account: Account<MyNodes>,
| ^ expected named lifetime parameter
|
help: consider introducing a named lifetime parameter
|
123 ~ pub struct MyNodes<'a> {
128 | last_unclaimed: u64,
...

error[E0106]: missing lifetime specifier
--> programs/nodeshop/src/lib.rs:129:26
|
129 | aff_account: Account<MyNodes>,
| ^ expected named lifetime parameter
|
help: consider introducing a named lifetime parameter
|
122 ~ #[account]<'a>
123 | pub struct MyNodes {
...

For more information about this error, try `rustc --explain E0106`.
error: could not compile `nodeshop` due to 3 previous errors

所有编译器建议都不起作用。将导致新的错误。

如何使用 Anchor 正确地将 PDA 相互链接?

最佳答案

可以存储其他PDA的Pubkey,并在指令中传递Pubkey以访问数据

关于rust - 将 Solana PDA 相互连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72635867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com