如何使用 solana rust 合约发送 SOL
How to send SOL with a solana rust contract
我是菜鸟 Rust/Solana 开发人员,我觉得我遇到了一个对大多数菜鸟都有帮助的问题。
我想知道如何在指令期间将 SOL 从帐户转移到程序,然后能够将 SOL 发送回调用指令的帐户。
我阅读了 https://docs.solana.com/ 但我找不到任何关于通过程序进行 SOL 传输的信息。
示例:
Acc1调用Program1中的赌博指令,从调用者那里转出1个SOL,然后运行一个可验证的随机函数。如果 Acct1 赢了赌局,Program1 然后将 2 SOL 发送回 Acct1。
非常感谢您的帮助,谢谢!
您可以在食谱中找到与此类似的程序:https://solanacookbook.com/references/programs.html#how-to-do-cross-program-invocation
您的情况不同之处在于:
- 使用
solana_program::system_instruction::transfer
代替spl_token::instruction::transfer
- 只有源账户和目标账户,没有所有者
- 使用源账号签名
- 传入系统程序而不是令牌程序
我是菜鸟 Rust/Solana 开发人员,我觉得我遇到了一个对大多数菜鸟都有帮助的问题。
我想知道如何在指令期间将 SOL 从帐户转移到程序,然后能够将 SOL 发送回调用指令的帐户。
我阅读了 https://docs.solana.com/ 但我找不到任何关于通过程序进行 SOL 传输的信息。
示例:
Acc1调用Program1中的赌博指令,从调用者那里转出1个SOL,然后运行一个可验证的随机函数。如果 Acct1 赢了赌局,Program1 然后将 2 SOL 发送回 Acct1。
非常感谢您的帮助,谢谢!
您可以在食谱中找到与此类似的程序:https://solanacookbook.com/references/programs.html#how-to-do-cross-program-invocation
您的情况不同之处在于:
- 使用
solana_program::system_instruction::transfer
代替spl_token::instruction::transfer
- 只有源账户和目标账户,没有所有者
- 使用源账号签名
- 传入系统程序而不是令牌程序