首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏深入浅出区块链技术

    探索Openzeppelin 新增的跨链功能

    Openzeppelin 跨链支持是如何运作 Openzeppelin 已经增加了合约,以支持在 Polygon、Optimism、Arbitrum 和 AMB 中的使用。 import {AccessControlCrossChain} from "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master /OpenZeppelin/openzeppelin-contracts/tree/master/contracts/crosschain [15] 这里: https://docs.openzeppelin.com ] AccessControlCrossChain.sol: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.6.0/contracts /access/AccessControlCrossChain.sol [19] 访问控制功能: https://github.com/OpenZeppelin/openzeppelin-contracts

    69320编辑于 2022-11-07
  • 来自专栏深入浅出区块链技术

    Openzeppelin的三种代理模式

    Openzeppelin[2]: https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy 有三种代理模式 : 透明代理: https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/transparent UUPS: https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils 信标代理: https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/beacon UUPS 图如下 用户和代理合约交互 view virtual override notDelegated returns (bytes32) { return _IMPLEMENTATION_SLOT; } 升级合约 合约升级上,openzeppelin

    2.2K20编辑于 2022-11-07
  • 来自专栏Ethereum

    Foundry之使用OpenZeppelin插件进行智能合约升级

    OpenZeppelin提供了一系列的插件,可以帮助开发者在Solidity智能合约中实现可升级性。下面以Foundry为例,介绍如何使用OpenZeppelin插件进行智能合约升级。 所以这里使用了 --vscode 参数$ forge init foundry-upgrades --vscode && cd foundry-upgrades# 安装依赖$ forge install OpenZeppelin /openzeppelin-contracts-upgradeable$ forge install OpenZeppelin/openzeppelin-foundry-upgrades# for vscode 的 @openzeppelin/upgrades-core)使用和验证。 创建合约在src目录下新增ContractA合约,作为我们的基础合约: // SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "@openzeppelin

    56110编辑于 2025-01-14
  • 来自专栏深入浅出区块链技术

    如何利用OpenZeppelin编写可升级的智能合约

    3.使用OpenZeppelin CLI[1]轻松编写/管理“可升级”智能合约。4.使用OpenZeppelin[2]升级库以编程方式升级合约。 OpenZeppelin Upgrades CLI 使用OpenZeppelin CLI需要使用Node.js进行开发。如果尚未安装,请使用您喜欢的包管理器或官方安装程序来安装 Node。 References [1] OpenZeppelin CLI: https://www.npmjs.com/package/@openzeppelin/cli [2] OpenZeppelin: https ://www.npmjs.com/package/@openzeppelin/upgrades [3] OpenZeppelin Upgrades: #OpenZeppelin-Upgrades [4] /upgrades/2.7/proxies [24] OpenZeppelin: https://docs.openzeppelin.com/openzeppelin/ [25] NuCypher: https

    4K61发布于 2020-03-26
  • 来自专栏区块链入门

    第三十四课 采用TRUFFLE框架如何创建自己的ERC721非同质化资产生物商店?

    Compiling openzeppelin-solidity/contracts/AddressUtils.sol... Compiling openzeppelin-solidity/contracts/introspection/ERC165.sol... Compiling openzeppelin-solidity/contracts/math/SafeMath.sol... Compiling openzeppelin-solidity/contracts/ownership/Ownable.sol... Compiling openzeppelin-solidity/contracts/token/ERC721/ERC721.sol...

    1.6K10发布于 2019-02-22
  • 来自专栏YYDS

    关于uniswap系统开发项目方案技术讲解(成熟代码)

    它也是的概念,  1.首先,创建一个名为`exchange.sol`的文件,并添加以下代码:  ```solidity  pragma solidity^0.8.0;  import" openzeppelin /contracts/token/ERC20/ERC20.sol";  import" openzeppelin/contracts/utils/Counters.sol";  import" openzeppelin /contracts/utils/SafeMath.sol";  import" openzeppelin/contracts/access/Ownable.sol";  import" openzeppelin /contracts/access/OwnableContract.sol";  import" openzeppelin/contracts/token/ERC20/ERC20Interface.sol

    59850编辑于 2023-06-07
  • 来自专栏Ethereum

    在VScode中使用Foundry

    配置依赖项目录为了确保 VSCode 扩展能够找到你的 Solidity 依赖项(如 OpenZeppelin 合约),你需要在 .vscode/settings.json 文件中进行以下配置:操作步骤 配置 OpenZeppelin 合约和非标准项目布局如果你使用 OpenZeppelin 合约或自定义的项目结构,可以根据需要配置项目的目录结构和重映射。 test在这种情况下,你需要在 remappings.txt 文件中添加一行来配置 OpenZeppelin 的重映射:@openzeppelin/=lib/openzeppelin-contracts /这样,VSCode 扩展就能够正确加载 OpenZeppelin 合约和其他依赖项。 配置 OpenZeppelin 合约和项目结构,以便轻松管理依赖项。

    75910编辑于 2025-01-06
  • 来自专栏深入浅出区块链技术

    scaffold-eth 挑战2:创建ERC20代币及买卖合约(part1)

    ] OpenZeppelin Ethernaut 教程[11] CryptoZombies 教程[12] 什么是ERC20代币? 和ERC20的实现 OpenZeppelin提供安全产品来构建、自动化和操作去中心化的应用程序。 我们将使用OpenZeppelin合约框架来构建自己的ERC20代币。 该框架是一个用于安全智能合约开发的库。 如果你想了解更多关于OpenZeppelin的实现,你可以点击这些链接。 OpenZeppelin ERC20合约[20] OpenZeppelin ERC20 API参考[21] 练习1:创建 ERC20代币并部署 在练习的第一部分,你需要创建一个继承于OpenZepllein

    1.2K20编辑于 2021-12-04
  • 来自专栏我的知识小屋

    如何创建NFT并OpenSea上展示《alchemy How to Develop an NFT Smart Contract》译

    注:下面标题序号为了读者看的更清楚所以是自己所标注的 1.2 使用 OpenZeppelin 开发 ERC721 标准的智能合约 在之前说过,本教程中,你将会使用 OpenZeppelin 去此案一个只能合约 OpenZeppelin 就是由此而生,是最大的智能合约标准维护者之一,允许开发人员使用已经被 OpenZeppelin 进行代码审计后的可靠合约代码。 接下来你需要做的第一件事就是打开这个链接 https://docs.openzeppelin.com/contracts/4.x/wizard 去创建安全的合约代码。 : MIT pragma solidity ^0.8.4; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin .sol"; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; import "@openzeppelin

    1.7K60编辑于 2022-11-12
  • 来自专栏深入浅出区块链技术

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

    原文链接 当使用OpenZeppelin Upgrades编写可升级合约时,有一些在编写Solidity代码时需要记住一些注意事项。 值得一提的是,这些限制源于以太坊虚拟机的工作方式,并且适用于所有使用可升级合约的项目,而不仅仅是OpenZeppelin Upgrades。 例如考虑OpenZeppelin合约中的ERC20:该合约在其构造函数中初始化了token的名称、符号和小数位数。 相反,请确保使用@openzeppelin/contracts-upgradeable,它是OpenZeppelin合约的官方分支,已经被修改为使用初始化器而不是构造函数。 看看在@openzeppelin/contracts-upgradeable中的ERC20Upgradeable是什么样子: // @openzeppelin/contracts-upgradeable

    2.9K20发布于 2021-01-14
  • 来自专栏深入浅出区块链技术

    UUPSUpgradeable 漏洞分析

    Openzeppelin的实现 Openzeppelin中关于EIP-1822的实现与EIP-1822中的定义并不一致,主要是EIP-1822中定义的插槽位置与EIP-1967中定义的插槽位置不一致导致 openzeppelin选择使用EIP-1967中定义的插槽位置来具体实现。 利用openzeppelin的在线代码生成,可以生成如下的代码:Contracts Wizard - OpenZeppelin Docs[3] // SPDX-License-Identifier: MIT "; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import "@openzeppelin/ Wizard - OpenZeppelin Docs: https://docs.openzeppelin.com/contracts/4.x/wizard

    1.4K30发布于 2021-10-13
  • 来自专栏深入浅出区块链技术

    如何使用 Dapptools | 类似 MakerDAO 使用的代码

    Openzeppelin 和外部合约导入 假设我们想使用 Openzeppelin 标准创建一个 NFT。可以使用dapp install命令安装外部合约或包。 例如,对于 OpenZeppelin,[25],我们将使用: dapp install OpenZeppelin/openzeppelin-contracts 你应该会在 lib 文件夹中看到一个名为 openzeppelin-contracts的新文件夹。 语句中看到@openzeppelin/,它应该在lib/openzeppelin-contracts/中查找文件。 ,: https://github.com/OpenZeppelin/openzeppelin-contracts, [26] Alchemy: https://alchemy.com/?

    1.2K30编辑于 2022-11-07
  • 来自专栏深入浅出区块链技术

    使用Foundry,感受快,rust对写合约的支持

    运行 forge test 是不会有变化的,需要加参数 -vvvvvvvvvvvvvv v 越多日志越详细,很 unix 如下: 加入依赖 如果需要安装依赖包,像这样 forge install openzeppelin /openzeppelin-contracts 在 windows 上不会成功,自己下载到 lib 目录就好 如果需要使用@openzeppelin 这种 import 打开 foundry.toml 文件 查看 [default] src = 'src' out = 'out' libs = ['lib'] remappings = ['ds-test/=lib/ds-test/src/,'@openzeppelin =lib/openzeppelin-contracts/'] 改好后像这样: remappings = ['@ds-test=lib/ds-test/src/','@openzeppelin=lib/ openzeppelin-contracts/'] 还有个专门的 build 命令,就是只编译吧。

    97120编辑于 2022-02-22
  • 来自专栏Ethereum

    使用Foundry开发第一个ERC20合约

    安装依赖编写 ERC20 合约,我们需要借助 OpenZeppelin,使用下面的命令安装依赖: $ forge install OpenZeppelin/openzeppelin-contracts $ forge remappings > remappings.txtforge install 命令会自动安装最新版的 OpenZeppelin/openzeppelin-contracts 库到 /contracts/token/ERC20/ERC20.sol";import "@openzeppelin/contracts/access/Ownable.sol";/** * @title MyToken * @dev 一个基于OpenZeppelin的ERC20代币合约示例,继承了ERC20标准和Ownable权限管理 */contract MyToken is ERC20, Ownable { SPDX-License-Identifier: MITpragma solidity ^0.8.0;import {Test} from "forge-std/Test.sol";import "@openzeppelin

    50810编辑于 2025-01-09
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 17 课:合约设计模式实战(二)—— Access Control 与权限管理

    基础模式:Ownable(单一管理员)OpenZeppelin 提供了最简单的权限控制合约 Ownable,其核心是一个 owner 地址:// SPDX-License-Identifier: MITpragma solidity ^0.8.20;import "@openzeppelin/contracts/access/Ownable.sol";contract Treasury is Ownable { 分配权限MINTER_ROLE:铸造代币PAUSER_ROLE:紧急暂停// SPDX-License-Identifier: MITpragma solidity ^0.8.20;import "@openzeppelin 合约:Vault.sol// SPDX-License-Identifier: MITpragma solidity ^0.8.20;import "@openzeppelin/contracts/access /openzeppelin-contracts➜ tutorial git:(main) ✗ forge test --match-path test/AccessControl.t.sol -vvv

    52410编辑于 2025-08-21
  • 来自专栏深度学习与python

    数百次采访后,我总结了 2021 年最好用的区块链开发框架

    OpenZeppelin 和升级插件(https://openzeppelin.com/contracts/) Etherscan/BlockExplorer 验证器(https://etherscan.io /) create-eth-app(https://github.com/paulrberg/create-eth-app) OpenZeppelin 和升级插件 OpenZeppelin 是一个平台, 看看用 OpenZeppelin 制作一个 ERC20 有多简单: pragma solidity ^0.6.0;import “@openzeppelin/contracts/token/ERC20/ OpenZeppelin 是一个开源项目,主要目的就是省去大家重新造轮子的功夫。OpenZeppelin 的另一个重要特性是它的可升级合约功能。 老实说,对每一个项目来说,无论你使用的是什么平台,迟早都会用上 OpenZeppelin 创建的内容。

    1K20编辑于 2023-04-01
  • 来自专栏深入浅出区块链技术

    安全的处理 ERC20 转账(解决非标准 ERC20 问题)

    怎样安全的处理 ERC20 转账 // 不正确的版本 import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master 这就是为什么 OpenZeppelin 的 ERC20 (代码[6])实现中这样做,也是我建议这样做的原因。 而对于返回值的做法,是有争议的。 有一段时间,OpenZeppelin 有一个bug,他们在失败的时候回退交易,但没有在成功时返回 true(即缺少返回值)。 SafeERC20 的实现基本上就是像上面的 Uniswap 版本一样,你可以像下面这样用它: import "https://github.com/OpenZeppelin/openzeppelin-contracts /blob/master/contracts/token/ERC20/SafeERC20.sol"; import "https://github.com/OpenZeppelin/openzeppelin-contracts

    2.1K20发布于 2021-10-13
  • 来自专栏Ethereum

    UUPS 代理使用示例

    UUPSUpgradeableUUPSUpgradeable 是 OpenZeppelin 提供的用于实现可升级合约的一种标准。 UUPSUpgradeable 合约结构OpenZeppelin 的 UUPSUpgradeable 合约提供了可升级合约的核心功能,主要包含以下几个部分:a. 编写合约以下面的合约为例,我们使用 OpenZeppelin 提供的 UUPSUpgradeable 实现了一个可升级的计数器合约: // SPDX-License-Identifier: GPL-3.0pragma solidity >=0.8.2 <0.9.0;import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";import "@openzeppelin/contracts-upgradeable

    62710编辑于 2024-11-19
  • 来自专栏开源服务指南

    开源日报 0825 | 简化开发过程,提升Swift应用性能的扩展工具库

    OpenZeppelin/openzeppelin-contracts[1] Stars: 22.8k License: MIT OpenZeppelin Contracts 是一个用于安全智能合约开发的库 提供安全平台 OpenZeppelin Defender,用于自动化和监控操作以扩展去中心化应用程序。 此外,在文档站点中提供了指南来教你如何使用相关合约,并详细记录了完整 API 作为参考。 OpenZeppelin Contracts 通过风险管理、多层次审查流程、事故响应准备等方式解决安全问题,并遵循工程指南以确保项目质量。 其核心优势和主要功能包括: 提供高质量、支持多语言的正文仿宋解决方案 改刻自民国活字南宋,保留了其独特气质与趣味 削弱笔画对比度,规整了字形结构与版面效果 相关链接 [1] OpenZeppelin/openzeppelin-contracts : https://github.com/OpenZeppelin/openzeppelin-contracts [2] redis/go-redis: https://github.com/redis

    50920编辑于 2023-09-02
  • 来自专栏深入浅出区块链技术

    NFT新手教程: 如何编写和部署NFT(第1部分)

    下面是我们的 NFT 智能合约代码,我们基于OpenZeppelin[24]库的 ERC-721 实现。 https://docs.openzeppelin.com/contracts/3.x/erc721 "https://docs.openzeppelin.com/contracts/3.x/erc721 token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/utils/Counters.sol"; import "@openzeppelin 让我们逐行分解: 在我们的智能合约的顶部,我们导入了三个OpenZeppelin[25]智能合约类: @openzeppelin/contracts/token/ERC721/ERC721.sol 包含 : https://docs.openzeppelin.com/contracts/3.x/erc721 [25] OpenZeppelin: https://openzeppelin.com/ [26

    4.6K32编辑于 2022-05-25
领券