在这篇文章中,我们将详细分析现有的智能合约升级策略,描述我们在实践中观察到的弱点,并为需要升级的合约提供建议。
Viem是一个相当新的web3库,它专注于EVM,提供了更好的开发体验,更小的包体积等等。在本文中,将使用foundry部署一个简单的合约,并在node环境下使用viem与部署的链上合约执行读写交互。
UniswapV3分析(一)本文将对复杂的Uniswap3进行分析。准备官方博客白皮书coreperiphery架构v3在代码层面的架构和v2基本保持一致。core的功能主要包含在以下2个合约中:UniswapV3Factory:提供创建pool的接口,并且追踪所有的pool
实现用户层面的流动性头寸管理的合约是NonfungiblePositionManager合约,其实现比较复杂,还继承了很多子合约,限于篇幅,我们无法全都一一讲解,就只能挑一些重点的来讲。
Swap可分为两种场景:单池交易和跨池交易。在PoolManager合约里,要完成交易流程,会涉及到lock()、swap()、settle()、take()四个函数。
前一篇文章我们已经知道了创建新池子的流程,那接下来就要添加流动性了。而其实,在PoolManager合约里,添加和移除流动性都是在同一个函数里统一处理的。当然,要完成添加或移除流动性的全流程,会涉及到多个函数。接下来我们展开一一细说。
创建池子的底层函数是PoolManager合约的initialize函数,其代码实现并不复杂
UniswapV3Factory合约主要用来创建不同代币对的流动性池子合约,其代码实现并不复杂
UniswapV3于2021年5月上线,相比UniswapV2,改动很大,也变得复杂很多。
编者导语:你知道以太坊 EVM 数据是如何映射到 Dune 表格的么?在 Dune 查询时需要使用到哪些基本 SQL 用法, 本文一一揭晓。