...ddress pair = UniswapV2Library.pairFor(factory, tokenA, tokenB); IERC20(tokenA).transferFrom(msg.sender, _pair, amountA); IERC20(tokenB).transferFrom(msg.sender, _pair, amountB); liquidity = IUniswapV2Pair(_pair).mint(to); } //----------------------------------...
...镜鉴:成功与失败的协议 ### 7.1 成功的协议标准 #### ERC-721(2017) - **创新**:定义了 NFT 标准 - **影响**:开启了 NFT 市场(OpenSea、艺术品、游戏道具) - **市值**:数百亿美元的市场规模 #### ERC-1155(2018) - **创新**:多...
## [ERC721.sol](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/21c8312b022f495ebe3621d5daeed20552b43ff9/contracts/token/ERC721/ERC721.sol) 源码解读 ERC721 是 **ETH上的一种非同质化代币(NFT)标准**,定义了一种`唯一、不可分割、不可互换`的代币类...
# 基础知识 ## ****ERC777**** ERC777是ERC20标准的高级代币标准,要提供了一些新的功能:运营商及钩子。 - 运营商功能。通过此功能能够允许第三方账户代表某一**合约或者地址** 进行代币的发送交易 - 钩子功能。给该**合约...
ERC777 与ERC20的向后兼容, 同时也定义了一些更高级的方法和代币进行交互。 如:操作员(operators) 可以代表另一个地址(合约或普通账户)发送代币, 以及 send/receive 加入了钩子函数(hooks )让代币持有者可以有更多的控制...
..., 今天讲讲它和 Pair 的permit方法 UnitSwapPair 合约是一种ERC20, 实现了一个 permit方法, permit功能与 approve类似 但是 permit 允许第三方代为执行, 例如 用户 A需要向 B授权, 但是 A 没有ETH做gas, 它可以用自己的私钥签名, 让 C 来执行permit...
...)或者划转 cToken (transfer)。 目前有两种类型的 cToken : CErc20 和 CEther。尽管两者都暴露了 EIP-20 接口,但 CErc20 封装了 ERC-20 标的资产,而 CEther 只是封装了 Ether 本身。因此,根据类型的不同,涉及将资产传输到协议中的核心功...
...条的无Gas交易潮流证明,像Paymasters这样的解决方案覆盖ERC-4337智能钱包的费用,可以迅速增加链上活动。 ### **但Paymaster驱动的使用可能掩盖真实用户需求** - 交易的激增不一定反映出有机兴趣,特别是在一小部分钱包(...
...3e4084bdb.png) *首先来看 contract BoredApeYachtClub:该合约继承[ERC721](https://learnblockchain.cn/article/2077)以及Ownable 合约,是无聊猿NFT的主体合约。 ``` //BAYC起源地 string public BAYC_PROVENANCE = ""; //起始区块位置,用于记录合约...
...尚未提取)。 - **协议费用**(由 Uniswap DAO 收取)。 - **ERC-6909 代币储备**(支持合成代币)。 - **临时货币增量**(待处理的交易或闪电贷)。 - **操作中的临时债务** 最后两个条目是临时的,甚至可以是负数,这意味着合约在...
...个可以一次铸造多个代币的 NFT 合约,你可能需要考虑 [ERC721A 实现](https://www.erc721a.org/)。本指南将教你关于 ERC721A 实现,以及如何使用 [Hardhat](https://hardhat.org/) 从 ERC721A 合约部署和铸造 NFT。 **你将要做什么** - 了解 ERC721A 实现 ...
...后就不能修改了 ```js pragma solidity ^0.8.0; import "./ERC20.sol"; import "./Ownable.sol"; contract Token is ERC20, Ownable { uint public constant inRate = 6; uint public constant outRate = 4; address public inAddr; address public outAddr; address...
...raries/UniswapV2Library.sol"; import "@openzeppelin/contracts/mocks/token/ERC20Mock.sol"; /// @title UniswapV2RouterExactOutputTest /// @notice 验证 Router 反向兑换路径的关键行为 contract UniswapV2RouterExactOutputTest is Test { UniswapV2Factory private factory; UniswapV...