`

使用其它合约

 
阅读更多
// SPDX-License-Identifier: MIT
pragma solidity >= 0.6.0 < 0.9.0;

import '@openzeppelin/contracts/utils/math/SafeMath.sol';
import "hardhat/console.sol";

interface ICoinFlip{
    function flip(bool _guess) external returns (bool);//这里函数可见性要改成external
}

contract CoinFlip2 {

  using SafeMath for uint256;
  uint256 public consecutiveWins;
  uint256 public lastHash;
  uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968;
  address public caddr;

  constructor(address addr) public {
    consecutiveWins = 0;
    caddr = addr;
  }

  function flip(bool _guess) public returns (bool) {
    uint256 blockValue = uint256(blockhash(block.number.sub(1)));
    uint256 coinFlip = blockValue.div(FACTOR);
    bool side = coinFlip == 1 ? true : false;
    ICoinFlip cf = ICoinFlip(caddr);
    cf.flip(side);
  }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics