题目描述

解题过程
题目源码
// SPDX-License-Identifier: MITpragma solidity ^0.6.0;contract Instance {string public password;uint8 public infoNum = 42;string public theMethodName = 'The method name is method7123949.';bool private cleared = false;// constructorconstructor(string memory _password) public {password = _password;}function info() public pure returns (string memory) {return 'You will find what you need in info1().';}function info1() public pure returns (string memory) {return 'Try info2(), but with "hello" as a parameter.';}function info2(string memory param) public pure returns (string memory) {if(keccak256(abi.encodePacked(param)) == keccak256(abi.encodePacked('hello'))) {return 'The property infoNum holds the number of the next info method to call.';}return 'Wrong parameter.';}function info42() public pure returns (string memory) {return 'theMethodName is the name of the next method.';}function method7123949() public pure returns (string memory) {return 'If you know the password, submit it to authenticate().';}function authenticate(string memory passkey) public {if(keccak256(abi.encodePacked(passkey)) == keccak256(abi.encodePacked(password))) {cleared = true;}}function getCleared() public view returns (bool) {return cleared;}}
主要是了解使用方法和基本操作
await contract.info()// "You will find what you need in info1()."await contract.info1()// "Try info2(), but with "hello" as a parameter."await contract.info2('hello')// "The property infoNum holds the number of the next info method to call."await contract.infoNum()// 42await contract.info42()// "theMethodName is the name of the next method."await contract.theMethodName()// "The method name is method7123949."await contract.method7123949()// "If you know the password, submit it to authenticate()."await contract.password()// "ethernaut0"await contract.authenticate('ethernaut0')

