Solidity - 可升级的彩票投注游戏

193 阅读1分钟

今天写了一个彩票投注游戏合约,游戏的规则是:

  1. 可升级
  2. 彩民每投注一次收取1 ether 费用
  3. 部署合约的账户为管理员,可以负责开奖
  4. 开奖后,95%给到中奖者,5%给到管理员
  5. 新合约将95%给中奖者修改为90%,5%给管理员修改为10%

具体合约部署流程为:

1.部署old_lottery.sol合约,合约地址为0x32f99155646d147b8A4846470b64a96dD9cBa414

执行initialize方法,参数传入部署合约的用户地址。

执行getInitializeData方法,参数传入部署合约的用户地址。

2.部署ProxyAdmin.sol合约,合约地址为0x8750c1719E32294260e596c80a04818533e2C643

3.部署new_lottery.sol合约,合约地址为0xc5c97AAd92a962396229cbC8392e62585B04DfB3

4.部署TransparentUpgradeableProxy.sol合约,合约地址为0x86BA8f41279c2B029EE140698D09c0766A71419f

5.执行proxyAdmin合约的upgrade方法,参数传入TransparentUpgradeableProxy合约地址和new_lottery合约地址

6.复制TransparentUpgradeableProxy,at address到new_lottery合约

7.执行合约地址为TransparentUpgradeableProxy合约的new_lottery合约

以上流程就完成了彩票投注游戏可升级的具体流程。合约源码为github.com/zhihaozhong…