今天写了一个彩票投注游戏合约,游戏的规则是:
- 可升级
- 彩民每投注一次收取1 ether 费用
- 部署合约的账户为管理员,可以负责开奖
- 开奖后,95%给到中奖者,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…