每次我的智能合约收到ETH时,我如何更新变量



所以在过去的几周里,我把空闲时间花在了dApp上,我几乎完成了,还有最后一件事我必须实现,但我真的很难做到。

所以我的dApp基本上就是一个游戏。为了获得更多的玩家,我添加了一个玩家可以赚取的代币。我希望他们用代币下注,以获得游戏的部分利润。游戏中所有的ETH都会进入一个资金合约。这就是人们可以在代币上下注的相同合同。我希望他们有一个";未决ETH奖励";他们可以自费提取。与sushiswap类似,不同之处在于每个区块没有固定的奖励金额。因此,基本上,我希望智能合约根据代币持有者的赌注将其收到的以太币分配给他们。我不希望Eth直接发送到赌注者的地址,因为这会很昂贵。

起初我以为这很容易,但后来我仔细研究了一下,浪费了很多时间,发现我不知道该怎么做。我如何让我的合同知道它收到了ETH,并且每次收到ETH都应该做些什么?我们非常感谢您的每一种帮助!

我目前的想法是制作一个名为"的结构数组;用户";。每个用户存储地址、挂起的EThread和赌注代币的数量。每个用户都应该映射到用户的地址。问题:我不知道如何在每次合同收到ETH时更新每个用户的变量pendingETHreward。

  1. 您将编写一个智能合约函数,执行您描述的逻辑->这只是编程的问题,超出了这个问题的范围-如果你还没有达到Solidity编程的水平,你可以做到这一点,那么我建议你使用教程和在线课程
  2. 在Solidity中将您的功能标记为应付
  3. 用户将从他们的MetaMask调用您的智能合约功能,然后附加任意数量的ETH作为交易的有效载荷
  4. 然后,智能合约可以持有这个ETH,并根据Solidity代码中的msg.sender地址对其归属进行内部核算

相关内容

  • 没有找到相关文章

最新更新