找到约 15 条结果

文章 测试助手 - OpenZeppelin 文档

...失败的交易的断言 } = require('@openzeppelin/test-helpers'); const ERC20 = artifacts.require('ERC20'); describe('ERC20', function ([sender, receiver]) { beforeEach(async function () { // 捆绑的 BN 库与 web3 在底层使用的库相同 this.value = new BN(1); this.erc20 =...

文章 Michael.W基于Foundry精读Openzeppelin第64期——UUPSUpgradeable.sol

...代理设计的一种合约升级机制的实现。当本合约被设置为ERC1967Proxy代理合约背后的逻辑合约后,可以对其进行合约升级操作。作为逻辑合约的父合约,本库的安全机制可保证不会因某次错误的升级而打破合约的可升级性。 ERC19...

文章 ERC1155实践】区块链游戏的平行宇宙和为此而生的Enjin钱包

## 1\. 摘要 恩金(Enjin)花了大半年的时间一直在完善ERC-1155这个通证协议,毫不夸张地说,该标准是现有以太坊上最适用于游戏资产的通证标准,将主流游戏中道具涉及到的一切操作经过高度抽象之后,基本通过ERC-1155进行了...

问题 为什么openzeppelin版本的ERC721实现合约的_safeTransfer函数要把参数校验语句放在转账之后?

... virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } ```` 先执行了_transfer函数后执行_checkOnERC721Received函数,而后者是为了检测to这个参数是否...

文章 不标准的 ERC2612:Permit 滥用零地址“僵尸资金”

ERC-2612 中,有提到这么一点: >由于 `ecrecover` 预编译在接收到格式错误的消息时会默默失败,并返回零地址作为签名者,因此必须确保`owner != address(0)`,以避免批准使用属于零地址的“僵尸资金”。 在 ERC20 合约中,有一...

文章 NFT的gas优化终极指南

...不同的方法来提高铸造的成本效益:** * 我们真的需要ERC721Enumerable吗? * 使用映射而不是数组 * [ERC721A](https://learnblockchain.cn/article/3539)标准 * 从代币 Id 1开始 * 白名单的Merkle树 * 打包变量 * 使用未经检查的 * 为什么第一个铸...

文章 一个简单的ERC20代币空投合约

... `Airdrop`空投合约逻辑非常简单:利用循环,一笔交易将`ERC20`代币发送给多个地址。我们今天就来实现一个简单的空投合约,其主要功能就是对拥有者发送的空投地址的每个地址空投100枚ERC20代币。 合约代码: ``` // SPDX-License-...

文章 Fireblocks 可升级代币审计 - ERC1155F

...-and-incorrect-comments) - [gas 优化](#gas-optimization) - [缺失 ERC-721 和 ERC-1155 代币救援功能](#missing-functionality-for-rescuing-erc-721-and-erc-1155-tokens) - [结论](#conclusion) ## 摘要 TypeDeFiTimelineFrom 2023-11-13To 2023-11-17LanguagesSolidity总问题12 (8 ...

问题 ERC20是在区块链的底层有更多定义吗,为什么合约内设置的balance变量就能识别为一个币的数量

例如一个标准的ERC20代币合约里,合约内定义了一个变量_balance contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; 直观理解上_balances只是为地址对数字的映射。IERC20里也没有更多东西了,为什么...

文章 Foundry 教程: 用Solidity编写ERC-20测试用例

...//twitter.com/devtooligan)提供的图片。 所以我们来实现一个ERC-20并写一些测试。创建 ERC20 合约,你也可以参考社区的这篇文章[如何创建并部署ERC20代币](https://learnblockchain.cn/article/3672) 。 ## 1. 安装Foundry 安装foundry的具体步骤将...

文章 ERC-7786 提案规范:跨链消息传递网关

ERC-7786 一个供合约发送和接收跨链消息的接口。 ## 摘要 本提案描述了一个接口,以及相应的工作流程,用于智能合约通过跨链消息协议发送任意数据。该提案的最终目标是使所有这些消息协议通过这个接口(本地或使用“...

文章 【翻译】编写可升级的智能合约

...影响你从库中导入的合约。例如考虑OpenZeppelin合约中的[`ERC20`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.2.0/contracts/token/ERC20/ERC20.sol):该合约在其构造函数中初始化了token的名称、符号和小数位数。 ```js // @openzeppelin/contr...

文章 Compound V3 中的批量操作工具

...参数。该函数如下所示。具体来说,我们可以 * 提供 ERC 20 (`ACTION_SUPPLY_ASSET`) * 提供 ETH (`ACTION_SUPPLY_NATIVE_TOKEN`) * 转移资产 (`ACTION_TRANSFER_ASSET`),请参见我们关于 [Compound V3 如何像重基 ERC 20 代币运行的文章](https://learnblockchain....

文章 第3节:世界杯竞猜(标准ERC20协议)

...png!/scale/30) ## 内容概述 本次课程主要讲解Token协议:ERC20,这就是我们最常见的token,例如USDT,后续我们会介绍NFT,具体如下: - [点击获取代码](https://github.com/dukedaily/solidity-expert/blob/main/08_项目实战-世界杯竞猜/) | ...

文章 基于Chainlink CCIP 的跨链代币标准(CCT)

...为CCIP v1.5升级的一部分,开发者现可轻松创建支持CCIP的ERC-20代币。这些代币利用跨链代币(CCT)标准,在保持安全性和灵活性的同时,天生具备跨链能力。 ### 跨链代币(CCT)标准概述 跨链代币(CCT)标准通过Chainlink的[跨链...