All*_*ing 4 rust solana anchor-solana
我使用 Solana PDA 构建类似哈希图的结构,使用用户的钱包地址作为种子之一。PDA 称为 MyNodes,包含一些特定于用户的数据,包括应计奖励。
现在我正在尝试建立一个推荐系统。我有一个用户的 MyNodes PDA,并且我想将另一个用户的 PDA 的地址存储在第一个 PDA 中。因此,一个用户的 PDA 将指向另一用户的 PDA,即其“推荐人”或“附属机构”。我需要这种联系,以便为推荐者和被推荐者正确处理联属奖励。
但是,当尝试使用锚点构建帐户结构时,我遇到了问题。
#[account]
pub struct MyNodes {
xyz: u32,
abc: u32,
etc: u64,
aff_account: Account<MyNodes>,
}
Run Code Online (Sandbox Code Playgroud)
但它给出了我的编译错误:
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
Run Code Online (Sandbox Code Playgroud)
编译器的建议都不起作用。会导致新的错误。
如何使用 Anchor 正确地将 PDA 相互链接?