繁体   English   中英

我可以将 SOL 从 PDA 帐户转移到 solana 中的另一个普通帐户吗?

[英]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 ,您只能从帐户中扣除灯,这仅在调用assigncreate_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM