SafeCast库提供了solidity的基础整数类型uintX和intX之间的类型安全转换的库方法。在不同的类型转换之间都加入溢出检查,如果一旦在转换过程中出现类型的溢出会立刻revert。
Math库为合约开发提供了solidity内置的uint256运算以外的其他整形运算方法。solidity内置的整形运算,每一步都会做overflow revert(除非unchecked{}),而Math库会在不影响结果准确性的前提下利用位溢出进行更加tricky的操作。
本节课将用最简单的语言、最少的废话来帮助同学们用最短的时间学习hardhat,全网独家!
本文揭示了有关智能合约形式验证(FV)的三大常见误解,并介绍了Certora开发的形式验证语言CVL如何有效打破这些误区。文章通过示例展示了CVL的易用性和强大能力,强调了形式验证在检查合约安全性和发现复杂漏洞中的重要性,以及Certora Prover工具的实际应用。
Create2库本质就是对EVM opcode CREATE2进行的一个封装,可以让开发者在非内联汇编环境下直接使用该opcode。 CREATE2是一种可提前计算合约部署地址的合约部署opcode。而传统的合约部署是通过opcode CREATE完成的。
Multicall库提供了一个multicall(bytes[] calldata data)方法,通过该方法可以由调用者在一笔交易中自由组合调用本合约的各个可外部调用的方法。
multicall(bytes[] calldata data)
Context库是合约开发中最常见的库,同时也是最让人迷惑的库。合约代码里面只将msg.sender和msg.data封装成了函数,感觉多此一举。实际上,本库不提供任何context环境切换的细节功能,而是需要目标合约中重写这两个函数起到了可编辑msg.sender和msg.data的目的。
什么是Assembly在编写Solidity代码时,我们可以使用assembly{}关键字开始编写Yul代码,它是一种简化且扩展了的汇编语言。通过使用assembly,我们可以直接访问堆栈,并优化代码以提高内存效率,从而减少执行交易所需的燃气量。这最终降低了用户的交易成本。然而,在可读性方面存
什么是foundry?foundry是一个solidity智能合约开发工具。可以帮你管理依赖包,编译项目,运行测试脚本,还可以让你通过命令行工具或者script脚本和链上合约进行交互。和hardhat不同的地方是,hardhat我们还是主要用来开发大型的合约项目,但是foundry用来进行编写测试
本文探讨了固定点表示法在DeFi应用中的重要性,详细分析了PRBMath库中的一个设计缺陷,该缺陷可能导致严重的安全漏洞,并强调了公共库安全性的重要性。作者建议进行长远解决方案以支持多种舍入模式,并指出了正式规范的重要性。
从foundry工程化的角度详细解读Openzeppelin中的Timers库及对应测试。
从foundry工程化的角度详细解读Openzeppelin中的Strings库及对应测试。
从foundry工程化的角度详细解读Openzeppelin中的Counters库及对应测试。
从foundry工程化的角度详细解读Openzeppelin中的Base64库及对应测试。
在这篇文章中,详细说明的事件的日志是如何生成,索引是如何影响日志的生成,字符串等变长数据是如何处理的。同时介绍了在前端如何获取事件。
从foundry工程化的角度详细解读Openzeppelin中的Arrays库及对应测试。
从foundry工程化的角度详细解读Openzeppelin中的StorageSlot库及对应测试。
Remix v0.34.0 更新重点:Etherscan 验证代码更好用, 还支持代理合约验证、全新的 Solidity 分析器, 适配 WalletConnect v2.0
从foundry工程化的角度详细解读Openzeppelin中的Address库及对应测试。
slither API中常用对象结构解析
扫一扫 - 使用登链小程序
379 篇文章,1038 学分
67 篇文章,503 学分
209 篇文章,390 学分
116 篇文章,363 学分
145 篇文章,319 学分