《Uniswap V3 开发指南》上线, 推荐订阅
本章介绍如何将Uniswap V3的流动性仓位转化为NFT Token,展示了NFT token的示例,并提供了OpenSea合集链接供参考。通过将流动性仓位转化为NFT,实现了Uniswap合约的扩展和与第三方协议的集成,允许集成到其他合约中,而无需向核心合约添加新功能。
本文介绍了构建一个链上NFT渲染器的过程,该渲染器负责处理tokenURI调用,为铸造的token渲染JSON元数据和SVG图像。文章详细阐述了SVG模板的结构、依赖项(如OpenZeppelin的Base64和Strings库)、数据格式,以及渲染器的具体实现,包括SVG和JSON的渲染。此外,还讨论了Gas成本优化和如何测试NFT图像的输出,以确保渲染的正确性。
tokenURI
本文概述了EIP-721标准,该标准定义了NFT合约,是ERC20的一个变体,但代币是非同质化的。同时探讨了ERC721代币与Uniswap V3流动性仓位的相似之处,并介绍了ERC721中的tokenURI函数,该函数用于链接存储在区块链之外的NFT代币元数据,以及链上存储JSON元数据和SVG图像的方法。
本文介绍了如何创建一个 NFT 管理器合约,用于管理 Uniswap V3 的流动性仓位。该合约实现了 ERC721 标准,允许用户铸造、增加、移除流动性,收集 Token 和销毁 NFT。每个流动性仓位都与一个 NFT Token 关联,实现了流动性仓位和 NFT 的同步管理。
本文介绍在Uniswap实现中添加交易费用和价格预言机两个新特性。交易费用是DEX设计的关键机制,激励流动性提供者提供流动性。价格预言机是DEX的可选功能,在交易时充当价格预言机,为其他链上应用提供代币价格。
本文深入探讨了Uniswap V3中兑换费用的收取和分配机制。Uniswap V3通过跟踪每单位流动性的全局费用,并结合价格范围的激活与解除激活状态,实现了高效的费用核算。同时,详细的介绍了在添加或移除流动性时,费用如何在tick和仓位之间进行跟踪和管理,以及如何计算仓位累积的费用和代币数量,最终实现流动性提供者获得相应报酬。
本文介绍了如何通过用户界面移除流动性并收集累积的费用。首先,通过Manager合约辅助函数获取用户在特定池子中的仓位,并计算池子地址。其次,介绍了如果调用burn函数燃烧流动性,并在燃烧成功后立即调用collect函数来收集燃烧期间释放的token。
burn
collect
本文介绍了 Uniswap V3 价格预言机的原理和实现方式,包括累积价格的计算、时间加权平均价格的计算方式以及如何通过Uniswap自身数据获取价格,并阐述了 V2 和 V3 版本的区别。此外,还讨论了价格操纵的缓解机制,并详细说明了如何在智能合约中实现价格预言机,包括观察值的存储、写入、读取以及基数的增加。
本文介绍了Uniswap的协议费用机制,该机制允许Uniswap Labs通过DEX交易收取费用。协议费用从交易费中扣除,由Factory合约所有者收取,规模由UNI代币持有者决定。文章详细描述了协议费用在合约中的存储、设置、累积和收取过程,包括相关的数据结构和函数。