草庐IT

Solidity之Mappings篇

全部标签

【从0学习Solidity】33. 发送空投

【从0学习Solidity】33.发送空投博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!在币圈,最开心的一件事就是领空投,空手套白狼。这一讲,我们将学习如何使用智能合约发送ERC20代币空投。空投Airdrop空投是币圈中一种营销策略,项目方将代

solidity函数重载以及调用

如何调用重载方法web3.js调用call调用重载方法查数据constweb3=newWeb3('https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161')constcontract=newweb3.eth.Contract(ContractAbi,ContractAddress)constrewardsBalance=awaitcontract.methods['f(uint256,address)'](1,"0x0000000000000000000000000000000000000000").call()console

【ES笔记01】ElasticSearch数据库之index索引、doc文档、alias别名、mappings映射结构的基本操作

这篇文章,主要介绍ElasticSearch数据库之index索引、doc文档、alias别名、mappings映射结构的基本操作。目录一、索引index相关操作1.1、创建索引1.2、查询索引1.3、查询所有索引1.4、删除索引二、文档doc相关操作2.1、创建文档2.2、更新文档(1)全量更新(2)增量更新2.3、删除文档2.4、查询文档三、别名alias相关操作3.1、查询别名3.2、添加别名(1)第一种方式(2)第二种方式3.3、删除别名(1)第一种方式(2)第二种方式3.4、重命名别名四、映射mapping相关操作4.1、查询mapping结构4.2、创建mapping映射Elast

区块链智能合约solidity的中的一些关键字

目 录pragmamappingmsg对象block对象contractconstructorstruct数据地址地址类型addresspayablerevert以下场景使用revert():require以下场景使用require():assert以下场景使用assert():访问权限关键字internalpublicprivateexternalfunctionreturnsreturnviewpureconstanteventemitmodifierpragma        pragma是指定当前Solidity文件编译器版本的指令。在pragma指令的帮助下,我们可以针对自己的代码选

Solidity——Create2

Solidity——Create2介绍君士坦丁堡硬升级中引入了一个新操作码CREATE2,它使用新的方式来计算常见的合约地址,让生成的合约地址更具有可控性。具体内容在CREATE2以前,CREATE指令创建的合约地址是通通过交易发起者(sender)的地址以及交易序号(nonce)来计算确定的。sender和nonce进行RLP编码,然后用Keccak-256进行hash计算(伪码):keccak256(rlp([sender,nonce]))而CREATE2指令则主要是根据创建合约的初始化代码(init_code)及盐(slat)生成(伪码):一般而言init_code==bytecode,

在 Solidity 中 ++i 为什么比 i++ 更省 Gas?

前言作为一个初学者,“在Solidity中++i为什么比i++更省Gas?”这个问题始终在每个寂静的深夜困扰着我。也曾在网上搜索过相关问题,但没有得到根本性的解答。最终决定扒拉一下它们的字节码,从较为底层的层面看一下它们的差别究竟在哪里。Solidity代码选择Solidity版本选用了 0.8.4 (随手选的没啥说法),代码选用了两个简单的合约,分别是 Test(i++) 和 Test2(++i) ,两个合约都有一个全局变量 i ,修改值的时候从 storage 中取值然后进行修改。选择全局变量的这个形式是想要通过定位 SLOAD 和 SSTORE 两个比较有特征的操作码来进行比较。当然,这

Solidity基础五

暂时的一事无成也代表将来万事皆有可能!目录一、对Solidity文件的理解二、Solidity的导sol文件(库、合约)三、Solidity的继承1.继承的分类2.继承的可见性 3.父合约构造函数的传参4.调用父合约成员5.重写四、Solidity的抽象合约五、Solidity接口合约实现接口六、Solidity的库库合约的存在形式七、Solidity的对象 一、对Solidity文件的理解Solidity文件是Solidity语言文件,里面包含Solidity语言代码,用于编写合约,文件名以.sol结尾。一个sol文件可以创建(含有)许多的contract(合约),不单单只有一个那同一个so

以太坊智能合约开发:Solidity语言中的构造函数

Solidity语言中关于构造函数的定义:构造函数是使用constructor关键字声明的一个可选函数;构造函数只在合约部署时调用一次,并用于初始化合约的状态变量;如果没有显式定义的构造函数,则由编译器创建默认构造函数。声明语法构造函数声明语法如下:constructor(){ //todo}其中:**constructor:**声明构造函数的关键字;**:**构造函数的参数列表,非必须;**:**访问修饰符(即函数可见性)。构造函数的可见性可以是内部的(internal)也可以是公共的(public),内部构造函数必须将合约标记为抽象合约(在合约前添加abstract关键字)。抽象合约的参数

solidity开篇:区块链基础

solidity开篇:区块链基础1、事务2.交易3.地址4.区块5.存储/内存/栈2️⃣HelloWorld1.例子代码2.HelloWorld例子分析3️⃣合约代码中的三种注释1.单行注释2.块注释3.NatSpec描述注释solidity开篇:区块链基础Solidity是在兼容EVM的区块链上开发智能合约的语言,我们不需要关心所在区块链底层逻辑,只要是兼容EVM的公链,我们都可以使用Solidity进行智能合约的编码。简单了解以下的区块链概念:事务交易地址区块存储/内存/栈1、事务事务意味着你想做的事情,要么一点没做,要么全部完成。具有原子性,不存在修改一半的情况。比如从A地址向B地址转账

solidity

目录1.本地环境2.在线开发环境3.基础语法4.第一个程序5.数据类型6.变量7.变量作用域8.数据存放位置8.1Storage8.2Memory8.3Calldata8.4Stack变量的数据存放位置规则赋值的数据位置规则9.字符串10.数组11.枚举12.结构体13.映射(mapping)类型14.以太单位15.特殊/全局变量16.函数16.1函数修饰符16.2View(视图)函数16.3Pure(纯)函数16.4fallback(回退)函数16.5函数重载16.6数学函数16.7加密函数17.常用模式17.1提款模式17.2限制访问18.智能合约18.1可见性18.2合约继承18.3构造