...之NFT&GameFi开发与安全。第三课,让我们一起来详细聊聊ERC20协议。 本文使用的 Openzeppelin 是 4.2.0 版本,我们将 ERC20 协议分为 4 个部分: 1. 基本元数据,包括名称 `name`、符号 `symbol`、精度 `decimals` 2. 基本业务,包括查询、...
目前大部分新发的ERC20 Token都带有permit功能,即通过签名完成授权。签名的人不需要上链,省了gas,但是实际上更危险,一不小心签名,可能把所有的Token授权给他人了。下面是permit的细节 ```javascript /** * @inheritdoc IERC20Permit *...
... // Voting contract // 投票合约(这个需要先弄) ERC20 _nestContract; // NEST contract address // NEST 合约 address _offerFactoryAddress; // Offering contract address // 报价工厂合约地址 ...
### 1. ERC4626简介 > ERC4626 协议是一种用于代币化保险库的标准,它可以优化和统一收益保险库的技术参数。收益保险库是指使用不同策略来为用户提供最佳收益的合约,例如借贷市场、聚合器或本身具有利息的代币。ERC4626 协议...
...影响你从库中导入的合约。例如考虑OpenZeppelin合约中的[`ERC20`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.2.0/contracts/token/ERC20/ERC20.sol):该合约在其构造函数中初始化了token的名称、符号和小数位数。 ```js // @openzeppelin/contr...
...在系统里面我们称它为单据(note),你可以用任意数量的[ERC20](https://learnblockchain.cn/docs/eips/eip-20.html) 转换任一数量的单据,举个例子,我们可以把10,000 [DAI](https://learnblockchain.cn/2019/03/19/understand_dai/) 转换成一张单据,而这张单据就...
...ddress token = tokens[i]; uint256 amount = amounts[i]; ERC20Like(token).transferFrom(msg.sender, address(this), amount); ERC20Like(token).approve(address(protocol), 0); ERC20Like(token).approve(address(protocol), amount); // reset approval for failed mi...
这篇文章是对[ERC777 功能型代币(通证)最佳实践](https://learnblockchain.cn/2019/09/27/erc777/) 的一个补充,如果你仅仅是要实现一个自己的 ERC777 代币, 那么阅读另一篇就够了, 如果想对ERC777进行一些自己的定制,那么就有需要对源...
在自己部署了一个实现erc20的代币合约后,我想要新建一个合约对其进行转账,结果失败,我想是不是授权的问题?比如导入其它的erc20的token合约也是如此。使用了SafeERC20。 ```//SPDX-License-Identifier: MIT pragma solidity >=0.6.1=amoun...
## 概述 本指南详细介绍了 ERC-404 标准,它代表了已广泛使用的 ERC-20 和 ERC-721 标准的新颖整合。它面向那些有兴趣扩展其在以太坊区块链上复杂智能合约开发和部署策略专业知识的开发者。 随着你逐步学习本指南,你将了解更...
## 介绍 BEP20是在BNB智能链上与以太坊网络中的流行代币ERC20相对应的代币。不同之处在于,BEP20代币不在以太坊网络上运行,而是在BNB智能链上运行。除了这一差异,由于BSC(BNB智能链)为其所有智能合约实现了以太坊虚拟机(...
## ERC20是什么 `ERC20` 实际上就是一个用智能合约发行代币的标准。本质上就是用智能合约的代码来规定好这个币的总量有多少,某个地址拥有多少币。 ## ERC20 代币的规范 在 `Openzeppelin` 中,与 `ERC20` 代币相关的接口有两个,...
...github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC20/utils/TokenTimelock.sol TokenTimelock库是是一个锁币合约。它允许指定地址在某一时间点及之后取出全部锁存的代币,实现了一个代币时间锁的功能。 ### 1. 目标合约 To...
注:我是小白 A合约是ERC20(继承了ERC20的接口,ERC721也一样),B合约是ERC721,合约C是用来交互的。交互是指用A合约的Token购买B合约的NFT,C合约继承A和B都不行,会冲突。代码如下 ```solidity pragma solidity ^0.8.1; import "https://github.com...
## EIP-1271 详解 EIP-1271(也称为 ERC-1271)是以太坊的一项改进,它使智能合约能够验证签名,从而允许它们像传统的 EOA 钱包一样签署交易。 虽然 EIP-1271 最初看起来像是小众的技术实现细节,但该标准为智能合约开启了一个...