[英]Can I transfer SOL from a PDA Account to another normal account in solana?
我尝试将 sol 令牌从我的 pda 帐户发送到另一个帐户
**pdaaccount.to_account_info().try_borrow_mut_lamports()? -= 12000;
**receiver.to_account_info().try_borrow_mut_lamports()? += 12000;
这仅在调用此函数的帐户也是接收者时才有效。 我希望只有管理员能够调用此功能并将其转移到任何帐户
PDA 仅由程序控制。 作为程序所有者,您可以编写任何您想要的指令。
您需要编写的指令需要“管理员”签名,然后可以将灯从 PDA 移动到提供的帐户。
如果您的程序是帐户的owner
,您只能从帐户中扣除灯,这仅在调用assign
或create_account
时发生。
如果 PDA 仍归系统程序所有,这是默认行为,您需要在 PDA 上使用“签名”在系统程序中执行 CPI,即:
invoke_signed(
&system_instruction::transfer(pda_account_info.key, recipient_account_info.key, lamports),
&[
pda_account_info.clone(),
recipient_account_info.clone(),
],
&[&[&pda_seed1.as_ref(), &[pda_bump_seed]]]
)?;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.