通过智能合约限制 solana 转账

Restricting solana transfers via smart contract

我想使用 anchor/rust 智能合约实施限制 SOL 传输,但在他们的文档中找不到任何相关信息。 是否没有过滤选项或我的链上代码可以连接到的某种 event/callback ?如 https://ethereum.stackexchange.com/questions/41659/how-can-i-decline-a-smart-contract-transaction

中所述,Etherium 有一些东西可以促进这种称为“要求”的东西

solana 有类似的东西吗?

对于简单的转账,您不能阻止别人直接将 sol 发送到您的地址。

另一方面,如果您想将程序的执行限制为需要最低付款,那很容易。只需在您的指令中传输最低要求的 sol。用户不需要自己执行任何转账。

在 Solana 中,一旦有人签署交易,他们就可以不受限制地访问任何调用的程序的所有帐户余额。如果他们的帐户中有余额并且他们签署了交易,那么您的程序可以随心所欲。如果他们的余额不足,则指令将失败,从而阻止整个交易的任何部分持续存在。换句话说,除非他们有最低要求的可用金额,否则不会执行任何转账。