、轻度实验 Foundry 轻量级 CLI 工具,极快喜欢终端操作、追求效率 VSCode + Hardhat全功能工程化 想构建完整项目结构的开发者方案一:Remix...; }点击左侧“Solidity 编译器” → Compile切换到 “部署 & 运行” 标签 → Deploy点击部署按钮 → 查看合约地址与变量用它做实验、调试,非常适合入门使用和教学演示方案二...用户建议使用 WSL + Ubuntu,或者使用 Scoop:scoop install foundry2....方案三:VSCode + Hardhat(全功能开发框架)优点:支持 JS/TS 编写部署脚本与测试代码支持本地链模拟(Hardhat Node)有丰富插件系统和文档适合构建完整 DApp 项目安装步骤...安装 Node.js 和 VSCodeNode.js 推荐 v18+VSCode 安装官方 Solidity 插件2.
译文出自:登链翻译计划[1] 译者:darren[2] 校对:Tiny 熊[3] 在本教程结束时,你将了解以下内容: 如何找到特定项目的智能合约代码 如何将该代码添加到本地开发环境 如何安装和设置一个简单的...但是现在让我们以手动方式进行,如何使用代码来更有效的获取合约代码,可以作为一个练习题 :) 就要完成了第 1 步 - 复制合约代码并将其保存在文件中 - 现在你可以将其放在记事本中或将其保存在某个文件中...要为 Solidity 文件添加语法突出显示和类型提示,Juan Blanco 称为“solidity”[13]制作了一个很棒的 VSCode 扩展 - 我建议安装 它使开发 Solidity 更容易:...我还使用了一个名为 “Solidity Visual Developer[14] ” 的 VSCode 扩展,你会在 VSCode 市场中找到更多。...: 如何找到特定项目的智能合约代码 如何将该代码添加到本地开发环境 如何安装和设置一个简单的安全帽开发环境 如何编译合约并为其编写测试 希望这能让你对使用 Hardhat、Ethers、Chai 和 Mocha
本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat...开发以太坊智能合约-发布合约[4] 第四节:使用 hardhat 开发以太坊智能合约-验证合约[5] 上一章我们讲解了如何搭建基本的 hardhat 开发环境,这一章我们来讲一下如何测试、部署合约 特别提醒...:本系列教程默认你已经掌握了 solidity 的开发技能,如果你对 solidity 还不能完全理解,请先移步 solidity 的相关教程 1、编译合约 我们使用 vscode 打开项目,在菜单左侧...,必须将合约完全测试一遍 2.1 测试脚本介绍 我们回到 vscode,打开项目目录 test,这里已经有了一个名为 Lock.js 的脚本文件 让我们打开它,看一下它的主要构成 代码前 6 行定义了几个常用的测试辅助对象...,这个是因为我们循环嵌套使用 describe 产生的效果,通过嵌套使用,可以让我们测试结果变得更为清晰,推荐大家使用 通过本章的学习,我们了解了合约是如何进行测试的,以及测试需要注意的一些事项,接下来我们会讲解如何进行合约的部署
Solidity 智能合约开发 - 玩转 Web3.py Solidity 智能合约开发 - 玩转 ethers.js 但是在真正的复杂业务场景中,我们往往会使用一些进一步封装的框架,如 HardHat...教程的学习整理,强烈建议看原教程视频了解更多细节。...Hardhat 介绍 Hardhat 是一个基于 JavaScript 的智能合约开发环境,可以用于灵活地编译、部署、测试和调试基于 EVM 的智能合约,并且提供了一系列工具链来整合代码与外部工具,还提供了丰富的插件生态...优化代码格式化 VS Code 配置 我本地是通过 VS Code 进行代码开发的,可以通过安装 Solidity + Hardhat 与 Prettier 两个插件来进行代码格式化,可以使用打开 VS...]": { "editor.defaultFormatter": "esbenp.prettier-vscode", } } 项目配置 为了统一各个使用项目的开发人员的代码格式化样式
译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3] 本教程是 NFT 系列的第一部分,将带你逐步了解如何使用以太坊和 Inter Planetary File System(IPFS...在本教程中,我们将通过使用MetaMask[5]、Solidity[6]、Hardhat[7]、Pinata[8]和Alchemy[9]在 Ropsten 测试网络上创建和部署一个 ERC-721 智能合约...在本教程的第二部分,将讨论如何使用我们的智能合约来铸造一个 NFT,在第三部分,我们将解释如何在 MetaMask 上查看你的 NFT。...第 10 步:编写我们的合约 现在我们的环境已经设置好了,接下来是更令人兴奋的事情。编写我们的智能合约代码! 在你喜欢的编辑器(我们喜欢VSCode[22])中打开 my-nft 项目。...Hardhat 通过集成插件[31]的方式非常容易就可以获得额外的工具和功能扩展。我们将利用Ethers 插件[32]进行合约部署(Ethers.js[33]有一些很简洁的合约部署方法)。
我们将介绍使用虚拟钱包 (Metamask)、Solidity、Hardhat 和 Alchemy 在 Goerli 测试网络上创建和部署一个简单的智能合约(如果你还不明白其中的任何含义,请不要担心,我们将...在本教程中,我们将使用 Metamask,这是浏览器中的一个虚拟钱包,用于管理你的以太坊账户地址。 如果你想了解更多关于以太坊交易如何运作的信息,请查看以太坊基金会的这个页面。...scripts: 是我们保存脚本以部署和与我们的合约交互的地方 第 10 步:编写我们的合约 你可能会问自己,我们到底什么时候要编写代码?...智能合约是用一种称为 Solidity 的语言编写的,我们将使用它来编写我们的 HelloWorld.sol 智能合约。...Hardhat 使的集成插件变得非常容易,以获得额外的工具和扩展功能。 我们将利用 Ethers 插件进行合约部署(Ethers.js 有一些超级干净的合约部署方法)。
前言 在之前的《Solidity 智能合约开发 - 基础》中,我们学习了 Solidity 的基本语法,并且了解了可以通过 Brownie 与 HardHat 等框架进行调试。...然而经过了一番调研,业界还是使用 HardHat 框架居多,也有更多拓展,且我关注的 Solidity 教程也更新了 Javascript 版本,于是还是打算学习一下。...获取 bytecode 与 abi Solidity 合约的部署与交互需要 bytecode 与 abi 两个部分,我们可以通过通过以下代码将其写入对应变量供后续操作使用。...库部署合约,其中 SimpleStorage 合约的 ABI 和 BIN 文件已经在上面的代码中读取过了。...后续我还会对 HardHat 框架的使用作进一步讲解。
学习 Solidity 来开发和部署智能合约 - 完整的 Web3 和 Solidity 发展路线图 2022 当然,知道什么是 智能合约 是不够的,作为 Web3.0 或区块链开发人员,您必须知道 如何编写自己的智能合约并使用它们来为自己的去中心化应用程序提供动力...这是 Solidity 派上用场的时候。 Solidity 是一种用于编写智能合约的高级、面向合约的编程语言,允许程序员编写为区块链 DApp 提供支持的自执行代码。...从 JavaScript 基础知识开始,了解 JavaScript 和 Web 开发以及如何通过前端与区块链交互。 跟进以太坊训练营以获得您的 web3 学位并了解密码学、智能合约开发和安全性!...https://vitto.cc/how-to-create-and-deploy-an-erc20-token-in-20-minutes/ 使用 Solidity、HardHat 和 Ethers.js...学习安全帽 有时 REMIX IDE 是不够的,将您的项目带到良好的旧 VSCode 将是唯一的决定。 为此,您需要设置本地以太坊开发环境,而这正是 HardHat 提供的帮助。
在安装Hardhat的同一个目录下,添加一个hardhat.config.ts(我们将使用 typescript 和 solidity 0.7.6 编译器)。...在本教程中,我们将使用 hardhat-deploy-ethers 和 hardhat-deploy 插件。它们将允许你与以太坊交互,并测试合约。后面我们会解释如何使用的。...将下面的代码粘贴到文件中,建议花一分钟时间阅读代码及注释。...要获得 Solidity 语法高亮支持, 我们推荐使用 Visual Studio Code 或 Sublime Text 3,并安装对应的 Solidity 或 以太坊插件。...使用 Hardhat 网络进行调试 Hardhat内置了Hardhat 网络,这是一个专为开发设计的本地以太坊网络。它允许你部署合约,运行测试和调试代码。
下面我们来学习一下如何使用 hardhat 发布一个合约到区块链网络上 一、部署脚本 1、脚本文件说明 在工程项目 scripts 中,我们可以找到一个名为 deploy.js,这个文件就是我们部署合约使用的脚本文件...的配置文件,这个配置文件主要用来配置 solidity 编译配置以及 hardhat 需要使用的一些配置信息 solidity: "0.8.17", 上面代码配置了 solidity 编译版本,我们可以根据需要自行修改...=》导出私钥获得(注意,请使用测试钱包,私钥泄露将面临账号被盗风险!)...,已经如何配置区块链网络,并在真实的区块链网络上进行合约部署,下一节我们将会讲解如何使用 hardhat 进行合约验证操作 作者说: 文章是否能够顺畅阅读以及理解?...有任何意见和建议欢迎评论区给我留言 参考资料 [1] 全干攻城尸: https://learnblockchain.cn/people/5344 [2] 使用hardhat开发以太坊智能合约-搭建环境
前言 群里有个小伙伴问浏览器devtools的更改不能直接保存到本地,这个当然可以咯,不过要借助 ~c vscode+Edge c~实现; opening-sources-in-vscode: https...://learn.microsoft.com/zh-cn/microsoft-edge/devtools-guide-chromium/sources/opening-sources-in-vscode...内容 官方的教程其实已经很详细了~ 开启实验室特性并重启DevTools ?...> F12打开浏览器的Devtools,然后点击设置并开启实验室特性; vscode 建议提前安装好LiveServer
定义合约状态与数据结构: 确定合约需要存储哪些数据,以及这些数据之间的关系和状态变化。...Hardhat: 另一个强大的以太坊开发环境,以速度快、灵活性高著称。 Foundry: 一个基于 Solidity 的快速开发和测试工具链。...配置本地区块链测试网络: 可以使用 Ganache、Hardhat Network 等工具在本地搭建一个模拟的区块链环境用于开发和测试。安装依赖库: 根据项目需求安装相关的库和工具。...编写合约代码: 根据设计好的功能和逻辑,使用选定的语言编写智能合约代码。遵循安全编码最佳实践: 避免常见的安全漏洞,例如重入攻击、整数溢出/下溢、不安全的随机数生成等。...第三方安全审计: 强烈建议聘请专业的第三方安全审计机构对智能合约代码进行全面的安全审查,以发现潜在的漏洞和风险。
本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat...为了增强用户对于项目的信任,我们需要将我们合约的源代码进行公布,接下来,我们就讲解,如何使用 hardhat 进行合约的验证 二、准备工作 1、申请区块链浏览器账号 我们使用区块链浏览器提供的 api...,首先,我们先在 matic 测试网创建一个合约,还是使用 Lock.sol 这个合约来创建(如何部署合约,可以看上一篇教程[发布合约[7]]),执行命令: npx hardhat deploy --network...合约发布成功了,但是源代码看不到,接下来让我们来使用 hardhat 进行合约验证 2、合约验证 我们先来看一下官网关于合约验证这块是如何操作的,贴一下官网的示例代码 npx hardhat verify...没有参数就不写) 本教程的合约验证代码: npx hardhat verify --network matic 0x123d89f92Bc76c918AECFA5825E13fe877e7D0C1 1696734227
预备知识和技能 ERC-3525 参考实现是基于 Hardhat 框架、以 Solidity 语言为主开发的。...我们推荐读者在学习 ERC-3525 开发之前,首先掌握以下知识和技能: Solidity 语言和 EVM 智能合约开发的基本知识 Hardhat 智能合约开发框架的基本实用技能 当然,要使用 Hardhat...Code 开发了一款 Solidity 插件,可以帮助提升 Solidity 和 Hardhat 开发效率。...下面我们介绍如何使用 Hardhat 的测试框架对 ERC3525GettingStarted 合约进行自动化测试。 测试代码集中在 test 目录下。...强烈建议测试网和主网的私钥隔离,不要使用已有的主网私钥。 在 Sepolia 测试网中进行测试需要准备一些测试币,即 Sepolia FaucETH。
译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3] 简介 在之前的教程中,我们向你展示了如何使用我们的生成艺术库[4]来创建一个头像集合[5],生成符合要求的 NFT 元数据...前提 了解 Javascript 的中级知识(如果你需要复习,我建议使用这个YouTube 教程[7])。...智能合约的开发和部署可能是非常昂贵的,而且在安全缺陷和 bug 方面也不宽容。 设置本地开发环境 我们将使用 Hardhat,一个行业标准的以太坊开发环境,来开发、部署和验证我们的智能合约。...我们将使用 Solidity v8.0,合约将继承 OpenZeppelin 的ERC721Enumerable和Ownable合约。...一旦你获得了这些 ETH,打开你的 Metamask 扩展,并获得有假 ETH 的钱包的私钥(你可以通过账户详情来获取)。 注意:不要公开分享你的 URL 和私钥。
前言 在前文《Solidity 智能合约开发 - 基础》中,我们学习了 Solidity 的基本语法,并且了解了可以通过 Brownie 与 HardHat 等框架进行调试。...,通过一个 People 结构体对象来存储人名和他喜欢数字,通过一个数组来存储多个人的信息,并提供了添加、查找方法。...读取合约源文件 当我们通过 VSCode 或其他编辑器完成 Solidity 合约编写与语法检查后,需要读取合约源文件并存入变量,供后续编译使用。 import os with open("....(compiled_sol, file) 获取 bytecode 与 abi Solidity 合约的部署与交互需要 bytecode 与 abi 两个部分,我们可以通过通过以下代码将其写入对应变量供后续操作使用...,在真正的生产项目开发中我们一般不会直接使用 Web3.py 这样的库,而是会使用 Brownie、HardHat 等进一步封装的库,但了解 Web3.py 或 Web3.js 等库的使用方法也非常重要
Foundry 简介 [视频] Foundry 入门 使用 Foundry 的 Hardhat 使用 Solidity 测试 Foundry 作弊代码 部署和使用合约 Foundry 简介 我制作了一个...在 solidity 中编写单元测试,而不是 Javascript 更快的编译和测试 内置的模糊测试 Gas 优化工具 支持主网分叉 Etherscan 代码验证 硬件钱包兼容 Solidity 脚本...forge init myrepo 然后就可以继续编译和测试智能合约了 forge build forge test 注意测试是如何通过的,还得到了测试交易的 Gas 成本 ---- 如何使用 Hardhat...' libs = ['lib'] 这将设置目录结构以便与 Hardhat 保持一致。...就我个人而言,我喜欢 Hardhat 的脚本环境(特别是对于复杂的部署),但也认识到使用 Foundry 进行测试和模糊处理的好处。在同一个代码库中使用这两个应用程序,可以提供两个最佳选择。
Hardhat是一个基于javascript和solidity的开发框架,可以快速提升你的应用程序的开发速度。...我写了一个Dapptools的入门套件[61],展示如何使用该工具。使用Dapptools,需要会使用makefiles[62]和shell脚本来 “生产(productionize )”你的代码。...许多命令和文件结构设置与Dapptools相同。这个框架快速、强大,专注于在solidity中构建测试,并内置了模糊测试和其他强大的工具。...获取帮助和支持 每个开发者都应该知道在他们遇到问题时获得帮助的基本路线图[128]。...这个领域已经出现了一些工具,使我们的智能合约更加安全。 不过我还没有使用过这部分的所有工具。我所做的少数审计已经使用了Trail of Bits套件和MythX(以及手动滚动浏览每一行代码!)。
仅使用remix内置的debug链能输出区分Transaction Cost,Execution Cost 如果连接其他的链只能获得总gas在hardhat中查看gas打印单次交易gashardhat...这意味着它是代码大小(部署成本)和代码执行成本(部署后的成本)之间的一个折衷参数。 一个 “运行” 参数为 “1” 将产生简短的合约但昂贵的执行代码。...(多用uint256也少很多类型转换和兼容性问题)只有在连续存储时,特别是放入结构体中时,使用小结构体才是有效的,此时需要注意内存对齐的顺序。...其他代码结构上的优化判断时低成本的判断先做(短路模式,Short-circuiting rules): 如 f(x) || g(y) 应该让更容易判断为true的条件放在前边。降低不必要的依赖。...有多重行为需要分类提醒链下处理不需要再合约中使用变量,上链的最主要行为就是记录, 其他行为由链下完成不需要频繁地访问和更改、添加链上变量,主要是批量数据的记录和偶然的单个验证查询链下数据量大,且存在如图片等非结构化数据
代码编辑器: Visual Studio Code (VS Code) with Solidity extension: 推荐的开发工具。...测试工具: Hardhat和Truffle都内置了测试框架,可以编写JavaScript或Solidity测试用例。 Ganache: 一个本地的以太坊测试网络,用于快速部署和测试智能合约。...开发步骤需求分析和设计: 明确项目的具体需求,例如NFT的总量、元数据结构、版税规则等,并设计智能合约的逻辑和功能。选择技术栈: 根据项目需求选择合适的区块链平台和开发工具。...编写智能合约代码: 使用Solidity或其他相应的语言编写智能合约代码。编写测试用例: 编写全面的测试用例,覆盖合约的各种功能和边界情况。...建议您从学习Solidity和相关的开发工具开始,并参考现有的NFT项目和标准合约库(例如OpenZeppelin)进行开发。在部署到主网络之前,务必进行充分的测试和安全审计。