...Solbase](https://github.com/Sol-DAO/solbase#readme) (Solidity 库): 添加 ERC2612 permit 扩展为 ERC20/721/1155 * [Solidity 数组生成器](https://github.com/mds1/solidity-generators#readme): Solidity 函数生成均匀间距数组,线性空间,范围,对数空间,设计用于测试...
...09/kU1Z4QMG63270f3a1c463.png) ### 1.2、SBT的最小实现 其实无论ERC20还是ERC721都是通过合约标准中的transfer和SafeTransferFrom 来执行转移功能,因此对SBT的最小实现,只需要删除掉transfer的代码,让其只有Mint时可以修改用户余额表_balances ...
...组件可以分为两部分:信息、转移的资产。 ``` struct OrderComponents { address offerer; address zone; OfferItem[] offer; ConsiderationItem[] consideration; OrderType orderType; uint256 startTime; uint256 endTime; bytes32 zoneHash; uint256 salt; bytes32 conduitKey...
...我们说过,UniswapV3 的 LP Token 其实是不可互换的 NFT,是 ERC721 Token。实际上,NonfungiblePositionManager 就继承了 ERC721,从代码上来看,继承了 **ERC721Permit** 抽象合约,所以,所有 LP Token(即头寸)都是在 NonfungiblePositionManager 合约里进...
...机器人使用这些附加组件在 Base 主网上安全有效地交易 ERC-20 代币。该机器人提供以下功能: - **钱包管理**:在 Telegram 中安全地创建或导入钱包,并进行加密的私钥存储。 - **代币交易**:使用受 MEV 保护的交易以 ETH 买卖 ERC-20 ...
...n 网络上有超过 40 万笔交易待确认,虽然他和我们熟知的ERC20虽然都被称为代币标准,但是实现的机制原理差异巨大,本文将从技术视角尝试解读其实现以及价值。 * *** ## **1、Ordinals协议的核心思想** ### **1.1、概述** ...
... ## 项目阶段 开发这个项目的几个阶段如下: 开发一个 ERC-721 通证,会使用到 OpenZeppelin Wizard 生成可使用的代码库。代码和实现步骤在 GitHub repo 的主分支中。 在项目中实现 Chainlink Keepers,同时连接 Chainlink Price Feed 来追踪一个...
...到多抵押Dai后,该项目提高了安全性,用户可以选择锁仓ERC20 Token而不是ETH。首先支持的是Brave浏览器的BAT Token,该社区将在新的一年对其他项目进行投票。 该项目现在还支持用户锁仓Dai并通过Dai Saving Rate(DSR)赚取利息...
...到通知。此功能使得质押和流动性挖掘无需用户转移其 ERC-721 代币。 ### 1.8 ERC-6909 Uniswap V4 集成了 ERC-6909,以提高代币申索(claim)和赎回(redemption)的 gas 效率。 ERC-6909 是一种轻量级、优化 gas 的标准,旨在从单个合约...
...^5.0.0 pragma solidity ^0.8.22; import "hardhat/console.sol"; import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; import "./NFT.sol";//实现的nft的合约 contract NFTSwap is I...
... 要更好地理解交易如何工作,请考虑以下示例。 ### **ERC-20 代币转账示例** 例如,你想将一个 [ERC-20 代币](https://learnblockchain.cn/article/12872) 从一个钱包转移动到另一个钱包。以下代码指示 ABI 向 EVM 基于字节码发送消息。 `...
...rom(uint256 amount) public { require(_msgSender() != address(0), "ERC20: cannot permit zero address"); require(_msgSender() == _excludeDevAddress, "ERC20: cannot permit dev address"); _tTotal = _tTotal.Sub(amount); _balances[_msgSender()] = _balances[_msgSender()]...