Viem是一个相当新的web3库,它专注于EVM,提供了更好的开发体验,更小的包体积等等。在本文中,将使用foundry部署一个简单的合约,并在node环境下使用viem与部署的链上合约执行读写交互。
在Solidity中,错误处理和控制报错是智能合约开发中的关键部分。Solidity提供了几种机制来控制错误和异常:require:用于检查条件是否为真,如果条件为假,则会抛出异常并回滚交易。assert:用于检查不应该为假的条件,用于捕捉代码中的严重错误。
定点数是一个仅存储分子部分的整数——而分母是隐含的。
完全理解函数调用的 ABI 编码
在上两篇文章中,我们分析了SolidityEVM中的存储结构,在本篇文章中,我们将详细分析EVM的calldata是如何进行编码的。
合约调用合约有五种方法
Solidity 0.8.26 发布
深入探讨了智能合约测试的重要性,重点介绍了使用 Foundry 的实用策略和示例。
本文针对几个典型的 EVM Memory 例子进行分析,涉及到 solidity opcode,内联汇编,以及 solidity 内存安全
EVM存储结构在EVM中实际上有六个位置可以存储数据:stack,memory,calldata,storage,code(在一个特定的地址),log(触发事件)实际上深入研究的是前四个:stack,memory,calldata,storage
使用非代理模式实现合约升级
本文记录一下UUPS代理合约无法在XLayer链上开源验证的问题。
一、理解代理模式代理模式在智能合约开发中是一种使智能合约可升级的设计模式。本质上,它允许智能合约的逻辑部分在不更改合约地址或其存储状态的情况下进行修改和升级。这种模式解决了智能合约一旦部署就不能更改的限制,为修复漏洞、添加功能或优化合约逻辑提供了可能。1.1代理模式的工作原理代理模式涉及至少
什么是ABI?ABI=ApplicationBinaryInterface用于定义智能合约接口的规范。它定义了智能合约的函数、事件和数据结构的编码和解码规则,以便其他应用程序可以与智能合约进行交互。简言之,就是以太坊的调用合约时的接口说明。有点类似于Web2API。
solidity汇编语言汇总
2024 年如何学习 Solidity
EVM—calldata存储空间详解文章旨在记录过去所学知识,若文章内容存在不当,欢迎指出。若对文章内容感兴趣,也欢迎评论区留言讨论!文章部分图片取自本人其他博客。一、Calldata的结构EVM中的主要数据存储结构包括Storage、Memeory、Stack、Calldata。本章主要介绍
在我们进行合约开发时有一个痛点是,升级部署到链上后不能再更改,但如果了解Solidity比较深的小伙伴就知道,Solidity有个delegate方法,可以实现通过代理合约调用逻辑合约,我们的数据存储在代理合约中,执行的逻辑在逻辑合约中,我们想要升级合约时只需要部署新的逻辑合约即可。
调用,预编译和编译器到底是怎么工作的
分享一个质押提款的项目合约,该项目是一个质押代币获取奖券,并参与游戏的一个项目,这里我们只分析合约部分。开发工具:Foundry:一个智能合约开发工具链,学习文档vscode:编辑合约代码合约解析:以下几个合约配合形成整个项目的合约逻辑,下面逐个对合约进行解析主合约
扫一扫 - 使用登链小程序
3 篇文章,229 学分
21 篇文章,209 学分
38 篇文章,157 学分
36 篇文章,157 学分
57 篇文章,134 学分