通过 GAS 排行搜寻新机会
开坑使用Hardhat闯关Ethernaut CTF题,提高合约和测试脚本的能力,后续也会增加Paradigm CTF的闯关题目。
EIP712又名结构化签名。让签名内容是结构化的、有字段名的,用户在钱包里可以清楚看到:我签的是啥:https://learnblockchain.cn/shawn_shaw
Solidity如何优化Gas费用
什么是函数选择器Solidity的函数选择器(FunctionSelector)是EVM中用于标识智能合约中特定函数的唯一4字节(8位十六进制)标识符。它本质上是函数签名的Keccak-256哈希值的前4个字节。主要用于在低级调用(如call、delegatecall、sta
简介Solidity0.8.18(2023年2月):根据EIP-6049,selfdestruct被标记为弃用。编译器会对其使用发出警告,建议开发者避免使用该函数。以太坊Cancun升级(计划中):依据EIP-6780,selfdestruct的行为将被修改。除了在合约部署交
ERC20是什么ERC20实际上就是一个用智能合约发行代币的标准。本质上就是用智能合约的代码来规定好这个币的总量有多少,某个地址拥有多少币:https://learnblockchain.cn/shawn_shaw
简介在Solidity中,库(Library)是一种特殊的智能合约,用于封装可复用的逻辑或功能。库与普通合约的区别在于,它不能保存状态变量,也不能接收ETH。库可以被其他合约直接调用,从而减少代码冗余,提高开发效率。特点代码复用:封装通用逻辑,多个合约可以共享同一库无状态:库不能定
本文档介绍了OpenZeppelin Contracts库在不同版本之间的向后兼容性保证,包括API和存储布局的兼容性。文章解释了在patch和minor版本更新中通常会保持向后兼容,但某些情况下可能会有例外,特别是涉及到安全问题或draft状态的ERC标准时。同时提醒了override函数、struct结构体以及错误处理等方面需要注意的问题,并强调了major版本更新通常不保证兼容性。
以太坊在内部实现了一个基于栈的虚拟机,我们称之为EVM(Ethereum Virtual Machine),用户所有的操作最终都会转化为操作码(OPCODE)然后在EVM中执行,下图为整个执行流程,目前我们对EVM的讲解不多,后续会陆续补上。
Solidity语言特性一图流
Human-Readable ABI 方式调用solidity 合约,go版。
这个代币标准被广泛称为ERC20,描述了智能合约中代币的接口。像代币转移、批准支出、创建等功能都由ERC20标准定义。
receive()payable里面尽量避免写代码,以免其他合约调用transfer不成功缘起:最近调试一段solidity代码,本来想测试在收款的时候,记录一个receive和发出一个log,哪个消耗gas更大如下图,我定义了两个contract,TestTransfer中的se
Web3数据索引新利器:用TheGraph打造NFT市场子图全攻略Web3浪潮席卷而来,区块链数据的查询与索引成为去中心化应用(dApp)开发的核心挑战。TheGraph作为Web3数据索引的“新利器”,以其去中心化协议和高效查询能力,彻底简化了NFT市场等场景下的数据处