solidity的modifier修饰符

solidity的modifier修饰符

什么是modifier修饰符

修饰器(modifier)是solidity特有的语法,类似于面向对象编程中的decorator,声明函数拥有的特性,并减少代码冗余。

Solidity 中关键字 modifier 用于声明一个函数修改器。当它作用于一个函数上,可以在函数执行前或后(依赖于具体实现)预先执行modifier中的逻辑。

结合现实场景中的应用。在一些敏感操作中,我们需要设定特定的权限才允许执行相关操作;再者我们可以利用函数修改器进行数据的校验;

常用于如:检查输入条件、权限控制、重入控制、防止重复初始化等场景。

定义修饰符

函数修改器的定义语法如下:

modifier 修改器名 {条件体.._;
}function a() 修改器名 {函数体..
}

函数修改器中有一行代码只有下划线 _ ,在实际执行中,我们可以将被修饰函数的代码视为下划线处的代码。即,下划线实际上帮我们标记了被modifier修饰函数的执行位置。

onlyOwner示例
pragma solidity >=0.8.0;contract owned {function owned() public { owner = msg.sender; }address owner;modifier onlyOwner {require(msg.sender == owner, "Only owner can call this function.");_;}function transferOwner(address _newO) public onlyOwner {owner = _newO;}
}

在这个示例中,onlyOwner修饰器用于限制只有合约所有者可以调用该函数。如果条件满足就继续往下走,不满足返回字符串“Not owner”。

“_;” 表示在执行修饰器之后将控制流交给被修饰函数的实际执行代码块。

参考

[推荐,视频讲解清晰]【20】Solidity的modifier函数修改器
参考URL: https://www.bilibili.com/video/BV1am411k7VW/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

electron调用dll时应用程序闪退

electron调用dll时,直接闪退,且用如下方式监听无任何输出: window-all-closed 或 will-quit 此时需要检查传给dll的参数及参数类型是否正确,特别是使用ffi-napi时调用dll,使用 ref-napi定义类型,经常容易…

go 源码学习1:scanner学习

scanner所在包是scanner.go type scanner struct {// 步骤是一个函数,用于执行下一个转换。// 也尝试使用整数常量和单个函数以及带有开关的函数,// 但是直接使用函数在64位Mac Mini上快了10%,// 而且阅读起来更直观。step func(*scanner, …

域名区分英文大小写吗?

在互联网的早期,域名系统(DNS)的设计并没有考虑大小写敏感性。然而,随着技术的发展和用户需求的多样化,域名的大小写问题逐渐引起了人们的关注。本文将探讨域名是否区分英文大小写,以及这一特性对网站运营和用户体验的影响。 一、…

【Android】Git Patch生成的文件怎么合并到项目里面和遇到的一些问题

前言 Git patch是一种描述文件,它记录了一系列的文件变更(如新增、修改、删除)以及变更的具体内容。通过使用patch文件,可以将这些变更应用到其他代码库中,从而实现代码的同步和更新。 Git 提供了两种补丁方案&#…

Java使用OpenCV计算两张图片相似度

业务:找出两个表的重复的图片。 图片在表里存的是二进制值,存在大量由于一些特殊情况例如扫描有差异,导致图片存的二进制值不同,但图片其实是一样来的。 所以找出两个表重复相同的图片,不可能只是单纯的比较二进制值…

flask招聘数据分析及展示平台-计算机毕业设计源码39292

目 录 摘要 1 绪论 1.1研究意义 1.2国内外研究进展 1.3flask框架介绍 2 1.4论文结构与章节安排 3 2 招聘数据分析及展示平台分析 4 2.1 可行性分析 4 2.2 系统流程分析 4 2.2.1数据增加流程 5 2.3.2数据修改流程 5 2.3.3数据删除流程 5 2.3 系统功能分析 5 2.3.1 功能性分…

亚马逊新品如何快速吸引流量?自养号测评助卖家一臂之力

在亚马逊平台上每天都会有大量的新品推出,而这些新品中有部分可能并没有什么流量和订单,有些可能上架后立马就能获得流量了,那么亚马逊上新品一般几天出单? 一、亚马逊上新品一般几天出单? 亚马逊上新品出单的时间因…

DispatcherTimer应用

DispatcherTimer 是 WPF 中用于执行定时任务的类,用于在指定的时间间隔内执行任务。它与 UI 线程的 Dispatcher 相关联,因此可以用来更新 UI 元素,而不必担心线程安全问题。 关键特性: 线程安全:DispatcherTimer 确保…

人工智能时代,想转型AI产品经理?这篇文章你不应该错过

前言 在这个日新月异的智能时代,人工智能(AI)已经从未来概念转变为推动各行各业发展的核心驱动力。作为连接技术与市场的桥梁,AI产品经理的角色愈发关键,他们不仅是技术的翻译者,更是创新的推动者。如果你…

Mintegral解析休闲游戏如何靠创意素材吸引玩家

核心玩法简单清晰、容易让人无限上头的休闲游戏,玩法机制一般比较明确、简单,如果要在短时间内吸引玩家注意,除了完整展示游戏流程以外,开发者需要在素材中设置更多亮点性的内容,如吸睛的剧情、爆炸性的视听效果等元素…

组件的注册和引用

在Vue中,开发者可以将页面中独立的、可重用的部分封装成组件,对组件的结构,样式和行为进行设置。组件是 Vue 的基本结构单元,组件之间可以相互引用。 一.注册组件 当在Vue项目中定义了一个新的组件后,要想在其他组件中…

Vue3_对接腾讯云COS_大文件分片上传和下载

目录 一、腾讯云后台配置 二、安装SDK 1.script 引入方式 2.webpack 引入方式 三、文件上传 1.new COS 实例 2.上传文件 四、文件下载 腾讯云官方文档: 腾讯云官方文档https://cloud.tencent.com/document/product/436/11459 一、腾讯云后台配置 1.登录 对…

[职场] 为什么不能加薪? #学习方法#知识分享#微信

为什么不能加薪? 不能加薪的根本原因,终于被我找到了! 朋友们!职场这个地方是个很神奇的世界,有些规则并不是你想象的那样。我们都希望能在这个世界里施展自己的才华,获得升职加薪的荣耀。然而&#xff0c…

seerfar丨OZON运营工具,OZON选品插件

随着全球电商市场的蓬勃发展,OZON作为俄罗斯及东欧地区的重要电商平台,吸引了众多中国商家的目光。然而,如何在OZON平台上脱颖而出,实现高效的商品运营,成为了众多商家亟待解决的问题。在这样的背景下,seer…

tailwindcss的@apply使用

tailwindcss的apply是把在html写的tailwindcss可以挪到style里面 简化页面的可读性 没写之前的 <section class"block-risk absolute flex flex-col items-center p-4 text-center left-0 text-white;" :style"{ top, left: 60px }"> </section…

浅析软件开发技术的发展历程与展望

随着信息技术的飞速发展&#xff0c;软件开发技术也在不断演进。本文旨在深入探讨软件开发技术的发展历程&#xff0c;并分析其未来的发展趋势和展望。 软件开发技术的发展历程 在回顾软件开发技术的发展历程时&#xff0c;我们不禁惊叹于这一领域的飞速进步。从早期的手工编写…

被拖欠6000万,代工大厂倒闭了····

6月7日消息&#xff0c;据综合媒体报道&#xff0c;电子烟代工大厂佳斯特电子&#xff08;东莞&#xff09;发布公告&#xff0c;将自6月3日起停止一切经营活动&#xff0c;开始自行清算工作。根据佳斯特电子科技&#xff08;东莞&#xff09;有限公司的通告&#xff0c;由于公…

pyqt6 任务栏不显示设置的icon

添加这段代码即可解决 import ctypes myappid mycompany.myproduct.subproduct.version ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)

TypeScript环境安装与VScode编辑器的使用

说明大背景环境&#xff0c;我用的是window10系统。 1.安装node.js 。 去官网下载安装包。 虽然我去的是官网&#xff0c;但是不知为何下载了个不知名的东西&#xff0c;后来又找了个链接才下载正确了。 实际上就是一个.msi的文件。我用的版本&#xff1a;node-v18.19.0-x6…

最大矩形问题

柱状图中最大的矩形 题目 分析 矩形的面积等于宽乘以高&#xff0c;因此只要能确定每个矩形的宽和高&#xff0c;就能计算它的面积。如果直方图中一个矩形从下标为 i 的柱子开始&#xff0c;到下标为 j 的柱子结束&#xff0c;那么这两根柱子之间的矩形&#xff08;含两端的柱…