如何将索尔与索拉纳生锈合同一起发送 [英] How to send SOL with a solana rust contract
本文介绍了如何将索尔与索拉纳生锈合同一起发送的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是一名noob Rust/Solana开发人员,我觉得我遇到了一个对大多数新手有帮助的问题。
我想知道如何在指令期间将SOL从帐户转移到程序,然后能够将SOL发送回调用指令的帐户。
我已阅读https://docs.solana.com/,但找不到有关通过程序进行SOL传输的任何内容。
示例:
Acc1调用Program1中的Gamble指令,该指令从调用者传输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
- 只有源帐户和目标帐户,没有所有者
- 使用源帐户签名
- 传入系统程序而不是令牌程序
这篇关于如何将索尔与索拉纳生锈合同一起发送的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文