找到约 13 条结果

文章 Solidity 非权威开发指南(3):OpenZepplin

OpenZepplin 已经成为如今合约开发的事实标准,很难找到一个完全不使用它而完全从零自行打造合约系统的例子。除非要开发一个竞品,摆脱它既无必要,也不经济,同时还浪费时间。 在一般语境下,OpenZepplin 指代的其实是:Op...

文章 DeFi 项目的基石 - ERC4626 代币金库协议的实现

## 什么是代币金库 `ERC4626` 代币金库(`Vault`)是 `ERC20` 的拓展。本质上可以理解为一个智能合约,支持把资产托管进去这个合约中,合约代表你去赚钱,赚到的钱按份额分配。 `ERC4626` 继承于 `ERC20`,基本接口和 `ERC20` 一致,但...

文章 ERC20 Snapshot解决双重投票问题

如果投票是根据某人持有的代币数量来衡量的,那么恶意行为者就可以使用他们的代币进行投票,然后将代币转移到另一个地址,用该地址进行投票,依此类推。如果每个地址都是一个智能合约,那么黑客可以在一笔交易中完成...

文章 验证 Foundry 中的 Solidity 签名

以下是一个在 [Foundry](https://learnblockchain.cn/article/9780) 环境中使用 OpenZeppelin 安全创建和验证 ECDSA 签名的最小示例(可以直接复制粘贴)。 ## 合约:Verifier.sol ```solidity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/...

文章 向后兼容性 - OpenZeppelin 文档

## 向后兼容性 OpenZeppelin Contracts 使用语义化版本控制来传递其 API 和存储布局的向后兼容性。Patch 和 minor 更新通常是向后兼容的,但极少数情况下会有例外,如下文详述。应该假定 major 更新与以前的版本不兼容。在本页中,我...

文章 Solidity中的继承

## 基本概念 Solidity是一种面向对象的编程语言,它支持合约之间的继承。继承允许一个合约获取另一个合约的所有非私有属性和函数,这样就可以重复使用代码,降低重复工作量。 ## 继承关键字 在Solidity中,继承是通过`is`...

文章 技术资讯 2020/01/03

## Vyper bug 以太坊基金会在对Vyper编译器进行安全审计的时候,发现基于Python编写的Vyper代码实现尚存在bug且修复难度大,因此决定暂时把该项目独立出去,让Vyperlang团队自主解决问题。 ## 以太坊基金会迎来新成员 学术咖Bar...

文章 NFT Market Plus——使用 ERC20Permit 和 EIP-712 构建高效的 NFT 市场

NFT 市场虽然很火,但高昂的 gas 费用和繁琐的操作步骤一直让用户头疼。每次交易都得授权,gas 费蹭蹭往上涨,体验不太好。为了解决这些问题,我写了一个 NFT 市场应用:“NFT Market Plus”,使用了 `ERC20Permit` 和 `EIP-712` 来优化 ...

文章 【100个Solidity使用技巧】2、交易回滚攻击

# 交易回滚攻击 ## 原理分析 [以太坊 EVM](https://learnblockchain.cn/article/1229) 支持交易回滚,合约可以使不满足条件的调用失败,从而回滚部分或者整个交易。 - 交易回滚 使用 `assert()`,`require()` 和 `revert()` 可以使不满足条...

文章 可扩展的`Safe`架构

# 可扩展的 \`Safe\` 架构 本文档概述了一个\*可扩展的\* \`Safe\` 架构,旨在增加 \`Safe\` 的新型集成/应用。 以下指导原则已被**严格**采用: 1. \`SafeProxy\` 的状态**绝对不能**被修改,以确保最大程度的安全性。 2. 架构内不使用 \`...

文章 ERC-20 实战(上):授权机制、漏洞剖析与最佳实践

> 📚 作者:Henry > 🧱 系列:《[ERC 系列标准全景图解](https://learnblockchain.cn/column/141/intro)》 · 第 3 篇 > 👨‍💻 受众:Web3 前端工程师 / 区块链开发者 / Web3入门者 > 👉 系列持续更新中,建议收藏专栏或关注作者 ## 🧠 为什...

文章 Michael.W基于Foundry精读Openzeppelin第42期——draft-ERC20Permit.sol

### 0. 版本 [openzeppelin]:v4.8.3,[forge-std]:v1.5.6 #### 0.1 draft-ERC20Permit.sol Github: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.3/contracts/token/ERC20/extensions/draft-ERC20Permit.sol ERC20Permit库是ERC20的拓展。本库通过permit方法允许...

文章 如何通过合约获取ERC20元数据

# 1. **简介** 如果您想自动获取 ERC20 代币的元数据,我们有一个方便的解决方案:Chainbase API 的 **`getTokenMetadata`**。使用此 API,您可以轻松获取任何 ERC20 代币的元数据,只需提供其合约地址即可。 在本文中,我们将介绍使...