整型溢出是智能合约中常见的漏洞之一。以太坊虚拟机对整数使用固定大小的数据类型,一个整数变量仅能表示一个固定范围的数值,比如uint8类型只能保存[0,255]。当把超过某个数据类型范围的数值保存到这个变量时,就会产生溢出。例如将一个uint8类型,值为0的变量进行减1操作时,计算结果会等
fallback函数充当了合约的默认处理函数,用于处理没有明确定义处理方式的消息。fallback函数会在三种情况下被调用1.调用者尝试调用一个合约中不存在的函数时2.用户给合约发Ether但是receive函数不存在3.用户发Ether,receive存在,但是同时用户还发
在Solidity中的继承和Solidity中的多线继承这两篇文章中,我们已经学习了Solidity关于继承的相关知识点,这篇文章,我们再聊一个更细致的话题:如何运行父级函数的构造函数。
什么是Merkle树定义MerkleTree,也叫默克尔树或哈希树,是区块链的底层加密技术,被比特币和以太坊区块链广泛采用。MerkleTree是一种自下而上构建的加密树,每个叶子是对应数据的哈希,而每个非叶子为它的2个子节点的哈希。如何生成Merkle树的数据在solidity中我
1.什么是合约的部署?2.什么是调用合约?3.如何理解转账
Web3实践:在Polkadot上用Solidity玩转DelegatecallWeb3浪潮席卷而来,智能合约作为区块链世界的核心驱动力,正变得越来越灵活和强大。在Polkadot这个多链生态中,Solidity依然是开发者的得力工具,而delegatecall则像是合约设
有三种主要的技术可以防止重入:检查、效果、交互(CEI),重入保护/互斥,提款支付。此外,最后一种方法可能是有效的,但不推荐:限制gas
使用多种推导方式,一篇文章,讲清交易费、协议费。
Solidity编码规范
如何防范ApproveScam漏洞防范ApproveScam漏洞的最好方式是谨慎使用approve函数,尤其是在授权金额时。应当遵循以下原则:1.只在必要时才调用approve函数,不要滥用或过度使用。2.授权金额应当根据实际需求设置,例如approve(spender,am
本文探讨了在NFT铸造过程中节省Gas费用的三种机制:使用映射存储地址、使用私钥签名并在链上验证、使用Merkle树。文章并通过Solidity代码示例展示了每种方法的实现,并分析了从Gas成本角度来看哪种方法最优。
文章主要介绍了RareSkills提供的区块链技术教育培训课程,包括Solidity、零知识证明和Rust等课程的内容、时间安排、费用及讲师信息等,旨在帮助学员深入理解区块链技术并提升实战能力。
Solidity 0.5 的一些新变化
状态可变性是一个可靠的概念,它定义了函数的行为以及它们如何与存储在区块链上的数据进行交互。在本文中,我们将可以了解不同的状态可变性修饰符,以及如何在编写优化的智能合约时应用它们。
文章介绍了Solidity智能合约中的构造函数及其使用,包括如何设置合约部署时的变量,以及构造函数与普通函数的区别。