整型溢出是智能合约中常见的漏洞之一。以太坊虚拟机对整数使用固定大小的数据类型,一个整数变量仅能表示一个固定范围的数值,比如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.如何理解转账
有三种主要的技术可以防止重入:检查、效果、交互(CEI),重入保护/互斥,提款支付。此外,最后一种方法可能是有效的,但不推荐:限制gas
Solidity编码规范
如何防范ApproveScam漏洞防范ApproveScam漏洞的最好方式是谨慎使用approve函数,尤其是在授权金额时。应当遵循以下原则:1.只在必要时才调用approve函数,不要滥用或过度使用。2.授权金额应当根据实际需求设置,例如approve(spender,am
Solidity 0.5 的一些新变化
状态可变性是一个可靠的概念,它定义了函数的行为以及它们如何与存储在区块链上的数据进行交互。在本文中,我们将可以了解不同的状态可变性修饰符,以及如何在编写优化的智能合约时应用它们。
Solidity宣布发布Solidity编译器v0.8.23
1.保存已部署的合约 2.Sindri集成 3.Vyper编译器
[第1部分] 使用Solidity 和 React在以太坊上构建具有社交找回功能的智能合约钱包
在这最后一节,我们将看一些 Yul 中相对较少使用的指令。
本文我们主要进行奖励发放,发行一个worldCupToken按照玩家的参与度进行分配,由subgraph进行链下统计玩家自己进行领取奖励场