到目前为止我开发了不少部署在主网的智能合约,现在总结一下 Solidity 合约的开发流程。
以太坊智能合约Solidity如何节省GAS费?
Web3学习之使用Foundry开发部署和开源ERC20合约Foundry是一个用于以太坊应用程序开发的快速、可移植和模块化的工具包,用Rust编写。Foundry由以下部分组成:Forge:以太坊测试框架(类似于Truffle、Hardhat和DappTools)。Cast:与EVM智
在以太坊上使用Solidity和Foundry结合Flashbots实现交易捆绑
一个包含Infura使用、账户的创建、测试币的领取、合约的部署、合约的调用的完整教程
hardhat示例工程,Lock.sol代码解析。
代币门控的概念用于限制访问,并为特定代币或一组代币的持有者提供独家内容、权利或成员资格。智能合约应该通过自动和手动来进行测试。使用HardHat或Truffle可以编写一组测试,以确保合约及其功能会按预期工作,最重要的是确保合约的安全性很高。
让EVM再次伟大,用智能合约保证MEME的安全
tx.origin攻击实现,一次调用,转干合约
第7节:世界杯竞猜(链下签名)
require,revert,和assert的使用场景分别是什么样的?●require()用法:1.验证用户输入,例如:require(input<20);2.验证外部合约的调用,例如:require(external.send(amount));3.在执行之前验证状态条件,例如:re
library在使用上有什么限制库与合约类似,但主要用于重用代码。库包含其他合约可以调用的函数。我们把可以反复利用的代码独立出来,成为一个库。Solidity对库的使用有一定的限制。以下是Solidity库的主要特征。1.库不能定义状态变量;2.库不能发送接收以太币;3.库不可以
存储树中的智能合约数据表示合约的持久状态,可以通过更新全局状态的交易进行更改。在一个Solidity的智能合约中,动态变量被存在持久化的存储中。内存中初始化的任何变量都是临时的,将在执行下一次外部函数调用之前被删除。此外,无法修改的常量变量不使用存储空间,因此,使用更少的gas。
重入攻击(ReentrancyAttack)是一种常见的智能合约安全漏洞,指黑客利用合约中存在的逻辑漏洞,在调用合约函数时,利用合约逻辑漏洞,反复调用合约的函数,并利用这种递归调用的机制,以欺骗合约的计算,从而使攻击者获得非法利益。重入攻击的本质是合约内部调用的函数未能恰当地处理合约状态的
整型溢出是智能合约中常见的漏洞之一。以太坊虚拟机对整数使用固定大小的数据类型,一个整数变量仅能表示一个固定范围的数值,比如uint8类型只能保存[0,255]。当把超过某个数据类型范围的数值保存到这个变量时,就会产生溢出。例如将一个uint8类型,值为0的变量进行减1操作时,计算结果会等