【发布时间】:2021-12-09 21:54:46
【问题描述】:
我是智能合约的新手,但想在 Solana 中创建一个简单的权益合约。 但不明白何时需要更新每个用户的奖励计数器?因为合约与写账户交互,只有当用户为此付费时。但在所有质押协议中,我们可以看到质押后的奖励计数。这怎么行? 以及如何一次性更改 APY?
我只发明了一种方法——在链下程序中保存计数器,但认为这不是正确的方法
【问题讨论】:
标签: blockchain smartcontracts solana
我是智能合约的新手,但想在 Solana 中创建一个简单的权益合约。 但不明白何时需要更新每个用户的奖励计数器?因为合约与写账户交互,只有当用户为此付费时。但在所有质押协议中,我们可以看到质押后的奖励计数。这怎么行? 以及如何一次性更改 APY?
我只发明了一种方法——在链下程序中保存计数器,但认为这不是正确的方法
【问题讨论】:
标签: blockchain smartcontracts solana
其中很多都归结为设计,但有一些建议:
但不明白何时需要更新每个用户的奖励计数器?
您不一定需要一直更新。事实上,许多质押协议会跟踪用户最后一次支付奖励的时间,但在用户尝试提款之前不会真正改变价值。对于前端,只需要根据用户的位置进行动态计算即可。
通过查看协议的源代码,您可能会发现更多有趣的信息。例如,Orca 的合约基于 SPL 的代币交换:https://github.com/solana-labs/solana-program-library/tree/master/token-swap
否则,https://github.com/solana-labs/solana-program-library/tree/master/farms 可能会有更多通用客户端和代码
【讨论】: