`

使用其它合约

 
阅读更多
// 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);
  }
}

分享到:
评论

相关推荐

    TRC20发布合约代码

    - `Migrations.sol`: 这个合约用于在Tron网络上部署其他合约,通常是Truffle框架的一部分。 - `test/`: 这个目录可能包含测试脚本,用于验证合约的行为是否符合预期。 - `truffle-config.js`: Truffle配置文件,定义...

    智能合约白皮书

    智能合约不仅在金融公司中得到应用,在其他多个行业也开始发挥重要作用,这表明其已经成为一个不可逆转的技术趋势。随着技术的进一步发展,智能合约有望在更多领域展现其自动化和优化流程的能力,从而实现各种业务...

    智能合约事件应该这么用.pdf

    公链中的数据都是公开的, 如何兼顾数据隐私,而又准确提供历史交易记录,我发现了一个非常优雅解决方案: 状态变量中只应该保存 Solidity 智能合约需要使用的数据, 而其他数据都应该利用智能合约的事件机制转储到...

    201806 智能合约安全之形式化验证研究报告.pdf

    形式化验证是一种使用数学中的形式化方法对算法的性质进行证明或证伪的技术。主要有两种方法: 1. **模型检验**:列出系统的所有可能状态,并逐一进行检验。这种方法适用于小型系统,可以实现全自动化。 2. **...

    智能合约安全的那些事.pdf

    `delegatecall`是一种特殊类型的调用,它允许合约调用其他合约,并且执行过程中保持调用者的`msg.sender`和`msg.value`不变,但使用被调用合约的代码执行。如果使用不当,它可能会导致调用者合约的状态被错误地修改...

    Go-OpenZeppelin一个在Ethereum上构建安全智能合约的框架

    例如,如果你想要创建一个符合ERC20标准的通证,你可以直接使用OpenZeppelin的`ERC20`合约,它已经包含了转移、批准和其他必要功能的实现,这样就避免了从零开始编写所有逻辑。 OpenZeppelin还引入了一些关键的安全...

    基于深度学习的区块链蜜罐陷阱合约检测.docx

    - **蜜罐陷阱合约**:这是一种恶意合约,旨在模仿正常合约的行为来吸引用户或投资者,从而实施诈骗或其他恶意活动。 - **挑战**:随着智能合约的应用范围扩大,其安全性问题也日益凸显,尤其是蜜罐陷阱合约的隐蔽性...

    mtxm项目的开源合约

    智能合约的使用通常与分布式应用程序(DApps)开发、去中心化金融(DeFi)、身份验证、供应链管理、投票和其他领域相关联。在mtxm项目中,这些合约可能被设计用于实现特定的功能,比如创建去中心化的交易市场、实施...

    smart-contracts-white-paper.pdf(智能合约白皮书:12种商业及其它使用案例)

    这份白皮书详细介绍了12种智能合约在商业及其他领域的使用案例,并由尼克·萨博(Nick Szabo)撰写了前言。尼克·萨博是智能合约领域的先驱者,早在20多年前就提出了智能合约的概念。这份文件不仅涉及技术方面,还...

    Vue+NodeJs+Ganache 本地部署、调用 web3 智能合约区块链.zip

    在本项目中,我们探索了如何使用Vue.js前端框架、Node.js后端服务以及Ganache作为以太坊区块链模拟器来本地部署并调用基于web3的智能合约。这个项目涉及的技术栈广泛,涵盖了前端开发、后端开发以及区块链应用开发的...

    区块链毕业设计 基于智能合约和React前端的去中心化学生社团组织治理网站源码+详细文档+全部资料(高分项目).zip

    【资源说明】 区块链毕业设计 基于智能合约和React前端的去中心化学生...4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    RAP-智能合约部署运行信息1

    1. **合约编写**:开发者使用Solidity或其他支持的语言编写智能合约代码,这些代码定义了合约的规则和操作,比如转移代币、执行条件判断等。 2. **编译**:编写好的智能合约代码需要被编译成EVM(以太坊虚拟机)或...

    Avast! U3无限升级合约和补丁!

    U3无限升级合约和补丁!"是指一种方法,通过这个方法,用户可以确保他们的Avast! U3版本能够持续获得更新和升级,即使官方可能已经停止对某些版本的支持。这通常是通过非正式的补丁或许可证文件来实现的,这些文件...

    智能合约消息调用攻防.pdf

    3. gas 限制:智能合约应该对gas的使用进行限制,以防止DoS攻击。 4. 代码审查:智能合约的代码应该经过严格的审查,以防止Reentrancy漏洞和其他安全漏洞。 智能合约消息调用攻防是指智能合约之间的消息调用可能...

    智能合约实战技术50问

    建议尝试使用其他测试网,如Rinkeby,并确保正确配置了MetaMask和其他相关工具。 #### 6. ERC721智能合约与ERC20代币的交互 - **交互设计**:可以在ERC721智能合约中编写一个方法,该方法检查是否有特定数量的ERC...

    保密合约.docx

    复制机密资料须得到权利方明确许可,且必须妥善保管,一旦发现不当使用或泄露,应立即通知权利方并采取补救措施。义务方不能将机密资料用于未经权利方同意的其他用途。如果因为法律要求必须披露,义务方需提前通知...

    web3.js实现公投合约-demo演示

    2. 编译合约:使用solc或者其他Solidity编译器将源代码编译成字节码,以便部署到以太坊网络。 3. 部署合约:使用web3.js的`contract.deploy()`方法,将编译后的合约部署到网络上,获取合约地址。 4. 交互合约:部署...

    土地出租合约word.rar

    2. 土地信息:合约需详细描述出租的土地,包括地理位置、面积、四至边界、土地性质(如农业用地、工业用地、商业用地等)、权属证明(如土地使用权证)等。 3. 出租条款:这部分会规定租金的金额、支付方式(一次性...

    毕业设计 基于以太坊的区块链智能合约彩票源码+详细文档+全部资料(高分项目).zip

    毕业设计 基于以太坊的区块链智能合约彩票源码+详细文档+全部资料(高分项目).zip毕业设计 基于以太坊的区块链智能合约彩票源码+详细文档+全部资料(高分项目).zip毕业设计 基于以太坊的区块链智能合约彩票源码+...

Global site tag (gtag.js) - Google Analytics