solidity结构以及部分方法

admin 2023年12月18日17:12:21评论35 views字数 1770阅读5分54秒阅读模式

点击蓝字,立即关注


合约结构

    // SPDX-License-Identifier: GPL-3.0 //或者 UNLICENSED表示非开源,无法审核

pragma solidity >=0.4.0 <0.9.0; //solidity版本设置import "name1.sol"; //引入remix含有的合约import "../name2.sol"; //通过路径引入合约import{name as name_1} from "../name2.sol"; //name_1为自定义别名

//单行注释

/*

多行注释

*/

contract contract_name{function function_name() function_modifier {//方法名 修饰符...//内容}}

    Modifier方法

    modifier:代替重复的判断

用法:modifier modifier_name(){...//内容require( A , “operation failed” );//require方法可用于判断 如果A成立则继续执行否则弹//出“operation failed”require(A1 , “”);_;//使用require方法添加}例:function function_name(type parameter 1) public modifier_name{C;//当A成立时执行C否则弹出“operation failed”}

    Event:事件是合约的可继承成员。发出一个事件,它存储在事务日志中传递的参数。这些日志存储在区块链上,并且可以使用合约地址访问,直到合约出现在区块链上。生成的事件无法从合同中访问,即使是创建和发出它们的人也无法访问。可以使用 event 关键字声明事件。

event Deposit(address _from, string _name, uint256 _value);//将值写入logs日志中function deposit(string memory _name) public payable{emit Deposit(msg.sender , _name , msg.value);}

    Enum:枚举将变量限制为只有几个预定义值之一。此枚举列表中的值称为枚举。

contract test {enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }FreshJuiceSize choice;FreshJuiceSize constant defaultChoice = FreshJuiceSize.MEDIUM;

function setLarge() public {choice = FreshJuiceSize.LARGE;}function getChoice() public view returns (FreshJuiceSize) {return choice;}function getDefaultChoice() public pure returns (uint) {return uint(defaultChoice);}}

    输出://输出的值为012顺序输出

uint8: 2uint256: 1

    Error自定义:

//error Unauthorized(string error);单个参数error Unauthorized(string error,address _address);contract ErrorExample {address payable owner = payable(msg.sender);
function withraw() public{if(msg.sender != owner)//revert Unauthorized("Unauthorized"); //单个参数revert Unauthorized({error:"Unauthorized",_address:msg.sender});//条件满足if的内容,就会输出error:"Unauthorized",_address:msg.senderowner.transfer(address(this).balance);}}


solidity结构以及部分方法
Solidity

微信号:hanlu_security
QQ交流群:553897268



原文始发于微信公众号(寒鹭网络安全团队):solidity结构以及部分方法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月18日17:12:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   solidity结构以及部分方法http://cn-sec.com/archives/2312665.html

发表评论

匿名网友 填写信息