此外,值得注意的是,在本文中提到的所有解决方案,并未涉及如何确保支付池中的资金已全部到位,从而使收款人可以连续进行提款。在我们提供的代码示例中,我们确实确保支付池有足够的资金,然后再尝试将通证调用 payingPool.withdraw() 功能时将通证转移到收款人。这里可以想到的一种方法是当支付池余额下降到特定阈值以下时发出支付池通证余额警告事件。 你可以在我们的 GitHub 代码库 [8] 中找到代码 (用于构建证明和元数据的合约和 javascript 库),代码库中的 README 文件和测试在代码级别演示了如何利用这种方法。 如果你觉得此解决方案对你有用,欢迎在你自己的合约中使用它,改进它。 译者注:如果你对空投感兴趣,还可以参考代码:Phala-Networkk 空投 及 Uniswap 空投 参考资料 [1] 登链翻译计划 : https://github.com/lbc-team/Pioneer [2] 影无双 : https://learnblockchain.cn/people/58 [3]ERC-20: https://learnblockchain.cn/tags/ERC20 [4] 这篇以太坊研究文章 : https://ethresear.ch/t/pooled-payments-scaling-solution-for-one-to-many-transactions/590 [5]Merkle 树 : https://learnblockchain.cn/tags/Merkle 树 [6]Merkle 树 : https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/ [7]Solidity 库 : https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/cryptography/MerkleProof.sol [8]GitHub 代码库 : https://github.com/cardstack/merkle-tree-payment-pool
(责任编辑:admin) |