本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat...开发以太坊智能合约-发布合约[4] 第四节:使用 hardhat 开发以太坊智能合约-验证合约[5] 一、概述 在我们将真正的合约部署到正式区块链网络上之后, 在区块链浏览器里查看我们的合约,它应该是这样显示的...为了增强用户对于项目的信任,我们需要将我们合约的源代码进行公布,接下来,我们就讲解,如何使用 hardhat 进行合约的验证 二、准备工作 1、申请区块链浏览器账号 我们使用区块链浏览器提供的 api...1696734227 等待命令执行完成,然后我们刷新刚刚区块链浏览器页面,发现合约已经被验证了 通过本节课程的学习,我们完成了合约的验证流程,到此,hardhat 的教程就结束了,后面我会推出更多智能合约相关的课程...[4] 使用hardhat开发以太坊智能合约-发布合约: https://learnblockchain.cn/article/4929 [5] 使用hardhat开发以太坊智能合约-验证合约: https
Solidity 智能合约开发 - 玩转 Web3.py Solidity 智能合约开发 - 玩转 ethers.js 但是在真正的复杂业务场景中,我们往往会使用一些进一步封装的框架,如 HardHat...增加 etherscan 合约验证支持 将合约部署至 Rinkeby 测试网络后可在 Etherscan 上查看合约的地址,并且进行验证。...因为可能我们的合约已经在 Etherscan 上验证过,所以我们做了一个 try...catch... 错误处理,如果验证过,则会抛出一个错误,并且输出一个提示信息,而不影响我们的部署流程。...,此外仅在有 ETHERSCAN_API_KEY 环境变量时执行验证操作。...合约测试 对于智能合约来说,其大多数操作都需要部署上链,与资产交互,消耗 gas,且一旦有安全隐患会造成严重的后果。因此,我们需要对智能合约进行详细的测试。
如果你有多个合约需要部署,而这些合约又相互依赖,或者你需要在部署后调用任何合约上的功能,这就特别有用。 请查看迁移链接这里[18],了解如何使用它们的完整文档。...Web3 当然,你总是可以直接使用 Web3(或 ethers.js)构建你的自定义部署逻辑。当你频繁地部署合约并需要自定义逻辑来存储部署信息时,这非常有用。...部署后的考虑因素 在部署到主网之后,你应该在 Etherscan 和 Sourcify 上验证合约的源代码。...验证成功后,用户可以在 Etherscan 上获得更多的信息,可以直接在 Etherscan 上与之交互,或者在 Remix 等支持工具从 Sourcify 上获取代码。...你可以在Etherscan[29]网站上手动验证你的合约。另外,也推荐使用Truffle[30]、Hardhat[31]插件和直接使用Etherscan API[32]自动验证的插件。
智能合约的开发和部署可能是非常昂贵的,而且在安全缺陷和 bug 方面也不宽容。 设置本地开发环境 我们将使用 Hardhat,一个行业标准的以太坊开发环境,来开发、部署和验证我们的智能合约。...进入 Etherscan,输入合约地址,应该看到类似这样的内容: 在 OpenSea 上查看我们的 NFT 我们的 NFT 现在已经可以在 OpenSea 上使用,不需要我们明确上传。...进入testnets.opensea.io[17]并搜索你的合约地址。 这就是我们的藏品的模样: 在 Etherscan 上验证合约代码 在 etherscan 上验证我们的合约。...更重要的是,验证代码将允许你的用户将他们的 Metamask 钱包连接到 etherscan,并在 etherscan 上铸造你的 NFT!...让我们把这个 API 密钥添加到.env文件中: ETHERSCAN_API = "" Hardhat 使我们在 Etherscan 上验证合约变得非常简单
本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat...开发以太坊智能合约-发布合约[4] 第四节:使用 hardhat 开发以太坊智能合约-验证合约[5] 通过我们前面两节课程的学习,我们掌握了 hardhat 开发环境的基本搭建流程以及合约的测试方法,...etherscan:配置调用 api 接口的 apiKey 这里有一个问题,不过在我们部署合约的时候不会出现,所以暂时先略过,待到我们去进行验证合约的时候会回头讲解 这里面我们使用了.env 环境变量获取...,键值对的方式进行存储 三、部署合约 1、本地合约部署 hardhat 作为强大的合约开发辅助工具,其本身自带了一套以太坊区块链环境,当我们在执行部署命令时,如果不指定网络,默认是使用自带的区块链环境.../4930 [4] 使用hardhat开发以太坊智能合约-发布合约: https://learnblockchain.cn/article/4929 [5] 使用hardhat开发以太坊智能合约-验证合约
Etherscan/Block Explorer 验证器 Etherscan 是最受欢迎的区块浏览器。当人们想要签出你的合约以及你已部署的内容时,除非他们具有 ABI 和合约地址,否则就无法签出。...找到合约地址通常很容易,但是要获得 ABI 却很困难。你肯定希望人们能轻松地查看你的智能合约并与之互动,因此你需要随时对其进行验证,以便其他人可以做到这一点。...大多数框架都有某种验证插件,你可以在其中部署智能合约,然后立即在 Etherscan 上对其进行验证。一定要在你的应用程序中使用它。...虽说拿它和其他框架进行对比有点愚蠢,但这里还是把它列为智能合约框架。Waffle 可以与你喜欢的任何框架搭配使用,并且当前是搭配 Hardhat 的默认工具。...如果你希望框架可以提供所有不错的功能,那我不建议单独使用它。但如果你想使用更原始、更简单、可自定义的框架,那么选它就不会出错。
译文出自:登链翻译计划[1] 译者:darren[2] 校对:Tiny 熊[3] 在本教程结束时,你将了解以下内容: 如何找到特定项目的智能合约代码 如何将该代码添加到本地开发环境 如何安装和设置一个简单的...因为我知道 Bored Ape Yacht Club 使用符号 BAYC,所以我可以使用 Etherscan 搜索该符号: 可以看到这是一个经过验证的 ERC-721 代币合约,其名称是我们正在寻找的...我们可以使用内置的 compile 任务来执行此操作 - 我们需要做的就是运行: npx hardhat compile 当我们使用 Hardhat 编译合约时,将为每个合约生成两个文件,并放置在 artifacts...本质上,我们正在创建一个合约工厂,其中包含部署合约所需的额外信息。 一旦有了合约工厂,就可以使用 .deploy() 方法,传入合约构造函数所需的变量。...我们通过添加另一个测试“应该设置正确的所有者”来使用所有者变量 - 这将检查合约的所有者是否与我们部署合约时返回的所有者相同。
在本教程中,我们将通过使用MetaMask[5]、Solidity[6]、Hardhat[7]、Pinata[8]和Alchemy[9]在 Ropsten 测试网络上创建和部署一个 ERC-721 智能合约...在本教程的第二部分,将讨论如何使用我们的智能合约来铸造一个 NFT,在第三部分,我们将解释如何在 MetaMask 上查看你的 NFT。...我们的智能合约使用计数器来跟踪已铸币的 NFT 总数,并在我们的新 NFT 上设置唯一的 ID。...当使用 hardhat-ethers 插件时,ContractFactory 和合约实例默认连接到第一个签名者。...如果我们点击进入交易,我们会在To字段下看到我们的合约地址。 在Etherscan上查看您的合约地址 耶~,你刚刚把你的 NFT 智能合约部署到了以太坊链上!
[视频],你可以在 YouTube 上观看:https://youtu.be/VhaP9kYvlOA 智能合约通常是用 Solidity 编写的,但使用 Javascript 框架(如 Truffle...foundry 的第一步 Foundry 软件包带有两个主要的命令行功能: forge - 建立编译测试本地智能合约 cast - 使用已部署的智能合约执行链上交易 如果想从 Github 上克隆一个...forge init myrepo 然后就可以继续编译和测试智能合约了 forge build forge test 注意测试是如何通过的,还得到了测试交易的 Gas 成本 ---- 如何使用 Hardhat...用 Slither 进行安全分析 当涉及到智能合约安全时,Slither 绝不是一个简单的解决方案,但它是有用的,并提供了一些自动检查,如检查重入错误。...forge 命令在 etherscan 上验证合约,以便我们能够使用 Etherscan 的 UI 和 Metamask 与之交互。
译文出自:登链翻译计划[1] 译者:Meta[2] 校对:Tiny 熊[3] 了解如何使用Dapptools[4],这是一个智能合约部署框架,适用于喜欢 bash 和命令行的 web3 开发人员。...他们的团队使用一种名为 dapptools[7] 的特殊框架来创建、部署、测试智能合约,并与之交互。...在本文中,将展示如何使用 dapptools 执行以下操作: 编写和编译合约 使用 solidity 和 fuzzing 测试合约 部署合约 与已部署的合约交互 将使用我们设置的 dapptools-demo...out: 编译代码的位置。类似于brownie中的build文件夹或hardhat中的artifacts文件夹。 src: 你的智能合约就在这里。...上验证你的合约 将合约部署到 etherscan 后,可以通过以下方式对其进行验证: 获取Etherscan API 密钥[35]。
我们推荐读者在学习 ERC-3525 开发之前,首先掌握以下知识和技能: Solidity 语言和 EVM 智能合约开发的基本知识 Hardhat 智能合约开发框架的基本实用技能 当然,要使用 Hardhat...编写测试用例 使用 Hardhat 框架开发智能合约的主要好处之一是可以进行自动化测试。...另一方面,有些智能合约的功能必须在测试链上才能运行,比如与 Oracle 的交互,在开发用的虚拟节点上是不支持的。...其中 Goerli 历史较长,完全开放,比较适合于测试复杂的智能合约,而 Sepolia 较新,由一组确定的验证者节点组成,不能随意加入,是当前进行 DApp 开发测试的首选测试链。...在浏览器地址栏里输入: https://sepolia.etherscan.io/address/ 请注意,将 替换成上一节红框中的地址。 恭喜你!
安装 官网的安装脚本异常简单,但我实际上安装到服务器上时还是踩了不少的坑,花费了很多的时间。...环境变量 再安装完成dapptools后,需要先配置一定的环境变量,这样才好继续使用。这里需要用到的有两个环境变量:ETH_RPC_URL 和 ETHERSCAN_API_KEY。...这个例子也体现出了dapptools的优势所在,即它可以实时的debug一笔交易,而不像hardhat[4]或者remix需要手动部署合约。...实际上即使使用了hardhat去fork了特定的blocknumber,也无法去debug它的OPCODE,对于事实上的交易顺序也是没办法重现的。...对应的实现合约地址为:0x374ABb8cE19A73f2c4EFAd642bda76c797f19233, 该实现合约也是62号提案更新过的合约地址 然后从etherscan上拿到对应的实现合约的源码
编写和编译智能合约 我们创建一个简单的智能合约,实现一个可以转让的代币。代币合约最常用来交换或储存价值。...编写智能合约 虽然默认情况下,hardhat 使用 contracts作为合约代码源文件夹,但我们更倾向于将其改为 src。 因此,你需要用新的配置来编辑你的hardhat.config.ts文件。...测试合约 在构建智能合约时,编写自动化测试是至关重要的,因为这关系到用户的资金。为此我们将使用Hardhat 网络,这是一个为开发而设计的本地以太坊网络,是内置的,也是Hardhat中的默认网络。...当你在Hardhat Network上运行合约和测试时,可以在 Solidity 代码中调用console.log()打印日志信息和合约变量。...然后你可以用 sourcify 或 etherscan 来验证它。
智能合约语言总结 必须知道的 :Solidity Python爱好者:Vyper Terra, Solana, Polkadot:Rust等 智能合约必备工具 这一部分我们讨论智能合约中使用到的工具。...Defipulse的10大Defi项目以及他们使用的智能合约开发框架此外,我是这样看待这些开发框架目前的情况的: 明星选手: Hardhat[31], Brownie[32], DappTools[33...Etherlime, Openzeppelin SDK, Cobra, Parasol 明星选手 Hardhat 现在,hardhat框架是最主要的智能合约开发框架。...在使用Truffle时,我经常遇到奇怪的错误;他们的typescript支持很微妙,测试运行速度比Hardhat[76]慢得多。...我能够从他们的框架中测试和部署智能合约,并使用一些UI工具。
因为 NFT 是可以被买卖交易的数字资产,而 NFT 交易所收集了 NFT 的信息并且撮合了买家和卖家,所以 NFT 交易所是生态中一个必不可少的部分如果你现在不想部署在测试网或者主网上,那就复制下面的配置文件...require("@nomiclabs/hardhat-waffle");require("@nomiclabs/hardhat-etherscan");require("hardhat-deploy"...:Contracts 文件夹,这里有我们 NFT 交易所的逻辑和 NFT 样例合约。...deploy 文件夹,这里有 hardhat-deploy plugin 和部署脚本,它们可以编译智能合约并且部署在 Hardhat 提供的本地区块链中。...scripts 文件夹,这里有一些脚本文件,用来和部署在本地的 Hardhat 开发环境中的智能合约交互。
我们将介绍使用虚拟钱包 (Metamask)、Solidity、Hardhat 和 Alchemy 在 Goerli 测试网络上创建和部署一个简单的智能合约(如果你还不明白其中的任何含义,请不要担心,我们将...智能合约是用一种称为 Solidity 的语言编写的,我们将使用它来编写我们的 HelloWorld.sol 智能合约。...// 合约是功能和数据(其状态)的集合。 部署后,合约将驻留在以太坊区块链上的特定地址。...// 智能合约事件是你的合约将区块链上发生的事情传达给你的应用程序前端的一种方式,它可以“监听”某些事件并在它们发生时采取行动。...如果我们去 Goerli etherscan 并搜索我们的合约地址,我们应该能够看到它已经成功部署。
v0.8.11[16]:Solidity 语言服务最小功能集,只有本地二进制,还没有自动完成,连接到喜欢的IDE和反馈;abi.encodeCall 增加用于检查提供的值是否匹配预期的类型 Etherscan...增加了对 Natspec 的初步支持[17]:在读取和写入合约标签时查看通知、参数和返回描述 WalletConnect v2[18] 测试版 Swift 和 Kotlin SDKs hardhat-deploy-tenderly...[19]:将部署合约推送到 Tenderly 进行调试 Yul-Log[20]:编写和使用Yul+合约,支持Truffle,Hardhat正在进行中 sipping-oe(scaffold-eth)[21...]:将链上 SVG NFTs 部署到 Optimism 的启动工具包 ethereum-code-viewer[22]:增加了对Arbitrum,Optimism 和测试网的支持 ens2airdrop...[23]:从"drop your ENS" Twitter线程收集地址 Helios[24]:正在进行基于 ERC1155 的交换 Cairo-jupyter[25]:Cairo的Jupyter内核 使用
在这篇文章中,我们将了解如何在前端应用中,使用 HTML 和 JavaScript 与链上应用(智能合约或其他应用)交互。...如何在网站上调用我的智能合约执行交易? 最好的实践都在做什么工具? 我在问自己这个问题时,看了几乎所有最流行的解决方案,并试图弄清楚应该向开发者推荐什么。...设置本地 Hardhat 区块链和合约 现在,由于我们要测试函数交互,因此需要一个区块链来发送交易,以及相应的智能合约。...我们仍然使用 ethers 与智能合约交互,但我们使用 Hook 函数来启用 Metamask 和任何其他想要的钱包 Provider 优点 上下文提供者 内置与智能合约交互的功能 内置钱包连接 缺点...不像 web3modal 那样容易设置钱包 需要编写或使用自己的 Hook 来与智能合约交互。
本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat...开发以太坊智能合约-发布合约[4] 第四节:使用 hardhat 开发以太坊智能合约-验证合约[5] 在我们实际开发智能合约的时候,以往的开发一般都是使用 remix 在线编译器,它的好处是即开即用,...本地不用安装相关的依赖环境,但是弊端也是显而易见的:难以测试、无法直接验证合约等等; hardhat 的出现就可以帮助我们轻松的进行合约开发、测试、部署、验证等操作,下面我们一起开始 hardhat 的学习吧...使用hardhat开发以太坊智能合约-搭建环境: https://learnblockchain.cn/article/4885 [3] 使用hardhat开发以太坊智能合约-测试合约: https:/...[5] 使用hardhat开发以太坊智能合约-验证合约: https://learnblockchain.cn/article/4931 [6] hardhat官网: https://hardhat.org
DAPP 通常由三部分组成: 部署在链上的智能合约 用 Node.js、React 和 Next.js 构建的 Webapp(用户界面) 钱包(用户在浏览器中控制的/移动钱包 App) 我们使用ethers.js...任务 1.2:在 Hardhat 的开发 我们将在 Hardhat 开发环境中体验智能合约的开发过程。 在 Hardhat 启动的项目中,默认包含有智能合约、测试脚本和部署脚本的样本。...我们使用 React 钩子useEffect来查询组件加载时的智能合约信息。...我们使用 JavaScript API(ethers.js)在链外调用智能合约的状态变化函数。 第 2 步:链上确认。状态改变交易需要由矿工使用共识算法在链上的几个区块进行确认。...通过这些任务,我们还了解到 3 种与智能合约交互的方式: 读取:从智能合约中获取数据 写:在智能合约中更新数据 监听,监听智能合约发出的事件 在本教程中,我们直接使用ethers.js来连接到区块链。
领取专属 10元无门槛券
手把手带您无忧上云