草庐IT

Solidity

全部标签

Solidity 中的数学(第 2 部分:溢出)

本文是关于在Solidity中进行数学运算的系列文章中的第二篇。这次的主题是:溢出。介绍每次我看到+、*或**审计另一个Solidity智能合约时,我都会开始写以下评论:“这里可能会溢出”。我需要几秒钟来写这四个字,在这几秒钟内,我观察附近的行,试图找出原因,为什么不可能溢出,或者为什么在这种特殊情况下应该允许溢出。如果找到原因,我会删除评论,但大多数情况下评论会保留在最终审计报告中。事情不应该是这样的。算术运算符应该允许编写紧凑且易于阅读的公式,例如a**2+2*a*b+b**2. 然而,这个表达式几乎肯定会引起一堆安全问题,真正的代码更可能是这样的:add(add(pow(a,2),mul

Solidity:合约销毁(SelfDestruct)

1.什么情况下需要使用合约销毁?销毁合约只是让你的智能合约无法再继续工作,但是在区块链上的数据还是保留的。什么情况下需要使用到销毁合约?你的智能合约在不使用的情况下,你可以把它给销毁。强迫你的用户放弃旧的智能合约,使用新的智能合约,所以必须把旧的给销毁。但是由于目前智能合约是能够升级的,所以不赞成使用这方法。你的合约受攻击到了不可挽回的地步,就必须被迫强行销毁。记得,在销毁之前你必须把旧合约内的代币给迁移出来,不然你旧合约的代币也是找不回来的。2.如何进行合约销毁?2.1合约销毁的原理比如一个自动售货机,当一件产品不再供货销售时,就可以将该产品对应的调取函数作废掉。2.2合约销毁用到的基本命令

Solidity:合约销毁(SelfDestruct)

1.什么情况下需要使用合约销毁?销毁合约只是让你的智能合约无法再继续工作,但是在区块链上的数据还是保留的。什么情况下需要使用到销毁合约?你的智能合约在不使用的情况下,你可以把它给销毁。强迫你的用户放弃旧的智能合约,使用新的智能合约,所以必须把旧的给销毁。但是由于目前智能合约是能够升级的,所以不赞成使用这方法。你的合约受攻击到了不可挽回的地步,就必须被迫强行销毁。记得,在销毁之前你必须把旧合约内的代币给迁移出来,不然你旧合约的代币也是找不回来的。2.如何进行合约销毁?2.1合约销毁的原理比如一个自动售货机,当一件产品不再供货销售时,就可以将该产品对应的调取函数作废掉。2.2合约销毁用到的基本命令

【0基础】学习solidity开发智能合约-初识solidity

本篇课程开始,我们来学习一下如何使用solidity开发智能合约,由于博主对于solidity的学习,也是自学的,所以一些不足或有纰漏之处还望指出,大家共同进步,本系列课程会分很多节课讲述,从入门到进阶、实战,在课程最后,我们会通过所学知识来搭建几个不同类型的智能合约如Token合约、NFT合约等等,感兴趣的小伙伴加个关注吧。一、什么是智能合约这里引用一段摘自网络的话语来解释一下 智能合约是区块链中四大核心技术之一,这个概念最开始是在1994年,由知名密码学家尼克·萨博提出的,可由于技术以及其他的一些原因一直都没有落地,哪怕到了今天,智能合约已经在互联网中很多的应用,比如自动还款,无人机售货等

【0基础】学习solidity开发智能合约-初识solidity

本篇课程开始,我们来学习一下如何使用solidity开发智能合约,由于博主对于solidity的学习,也是自学的,所以一些不足或有纰漏之处还望指出,大家共同进步,本系列课程会分很多节课讲述,从入门到进阶、实战,在课程最后,我们会通过所学知识来搭建几个不同类型的智能合约如Token合约、NFT合约等等,感兴趣的小伙伴加个关注吧。一、什么是智能合约这里引用一段摘自网络的话语来解释一下 智能合约是区块链中四大核心技术之一,这个概念最开始是在1994年,由知名密码学家尼克·萨博提出的,可由于技术以及其他的一些原因一直都没有落地,哪怕到了今天,智能合约已经在互联网中很多的应用,比如自动还款,无人机售货等

solidity基础语法与简单案例20221201

1、回退函数    fallback():当调用的函数不存在或者直接向合约发送主币的时候调用fallback函数。    receive():不能接受数据,仅向合约发送主币时触发//SPDX-License-Identifier:MITpragmasolidity^0.8.7;contractFallback{eventLog(stringfunc,addresssender,uintvalue,bytesdata);fallback()externalpayable{emitLog("fallback",msg.sender,msg.value,msg.data);}//receive不接受

solidity基础语法与简单案例20221201

1、回退函数    fallback():当调用的函数不存在或者直接向合约发送主币的时候调用fallback函数。    receive():不能接受数据,仅向合约发送主币时触发//SPDX-License-Identifier:MITpragmasolidity^0.8.7;contractFallback{eventLog(stringfunc,addresssender,uintvalue,bytesdata);fallback()externalpayable{emitLog("fallback",msg.sender,msg.value,msg.data);}//receive不接受

Solidity vs. Vyper:不同的智能合约语言的优缺点

本文探讨以下问题:哪种智能合约语言更有优势,Solidity还是Vyper?最近,关于哪种是“最好的”智能合约语言存在很多争论,当然了,每一种语言都有它的支持者。这篇文章是为了回答这场辩论最根本的问题:我应该使用哪一种智能合约语言?为了弄清问题的本质,我们将先讨论语言的工具和可用性,然后再考虑智能合约开发者主要关心的问题之一:gas优化。具体来说,我们将研究四种EVM语言(可以在Ethereum、Avalanche、Polygon等链上运行的语言):Solidity、Vyper、Huff和Yul。Rust并不在其中,它应该出现在一篇关于非EVM链的文章。但首先,剧透一下结果。Solidity、

Solidity vs. Vyper:不同的智能合约语言的优缺点

本文探讨以下问题:哪种智能合约语言更有优势,Solidity还是Vyper?最近,关于哪种是“最好的”智能合约语言存在很多争论,当然了,每一种语言都有它的支持者。这篇文章是为了回答这场辩论最根本的问题:我应该使用哪一种智能合约语言?为了弄清问题的本质,我们将先讨论语言的工具和可用性,然后再考虑智能合约开发者主要关心的问题之一:gas优化。具体来说,我们将研究四种EVM语言(可以在Ethereum、Avalanche、Polygon等链上运行的语言):Solidity、Vyper、Huff和Yul。Rust并不在其中,它应该出现在一篇关于非EVM链的文章。但首先,剧透一下结果。Solidity、

如何使用solidity将数据链上存储

#如何使用solidity将数据链上存储##文章起始在看过FISCOBCOS张开翔老师的一文说清“链上”和“链下”过后,我对于数据链上存储有了非常浓厚的兴趣,因此写下了本篇文章,用于自己进行学习环境:solidity,webase-font,FISCO-BCOS节点链 ##正文首先,当我第一次看到这篇文章的时候,我就对我之前脑海中的知识体系进行了颠覆,第二次看的时候我明白了其实链上链下的区别是用于提高区块链的工作效率,当我第三次看到这篇文章的时候我已经被张老师幽默风趣的写作风格折服了,老师能在幽默中将案例讲述的非常之清楚,让每个案例为什么这样做而生动,在这之后我就将我自己的想法写到了这里 首先