首页
学习
活动
专区
圈层
工具
发布

【Web3 开发系列教程—创建你的第一个智能合约(2)】部署第一个智能合约

Hardhat 是一个用于编译、部署、测试和调试以太坊软件的开发环境。...从你的虚拟钱包发送的每笔交易都需要使用你唯一的私钥进行签名。 为了向我们的程序提供此权限,我们可以将我们的私钥(和 Alchemy API 密钥)安全地存储在环境文件中。...第 14 步:编译我们的合约 为了确保到目前为止一切正常,让我们编译我们的合约。...编译任务是内置安 hardhat 的任务之一。 从命令行运行: npx hardhat compile 你可能会收到有关源文件中未提供 SPDX 许可证标识符的警告,但无需担心!...使用 hardhat-ethers 为 ContractFactory 和 Contract 添加插件时,实例默认连接到第一个签名者(所有者)。

1.9K20

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

你的应用应该出现在下面的表格中。 第 3 步:创建一个以太坊账户(地址) {#create-eth-address} 我们需要一个以太坊账户来发送和接收交易。...Hardhat[20]是一个开发环境,用于编译、部署、测试和调试你的以太坊软件。...在我们的导入语句之后,我们有了自定义的 NFT 智能合约,它出乎意料地短 -- 它只包含一个计数器、一个构造函数和一个函数!...从你的虚拟钱包发出的每一笔交易都需要使用你独特的私钥进行签名。为了向我们的程序提供这种许可,我们可以在环境文件中安全地存储我们的私钥(和 Alchemy API 密钥)。...和 eth_getTransactionByHash[38],这是一个读取交易的哈希值的请求(发送交易时的一个典型模式)。

4.6K32
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何编写 NFT 智能合约

    智能合约的开发和部署可能是非常昂贵的,而且在安全缺陷和 bug 方面也不宽容。 设置本地开发环境 我们将使用 Hardhat,一个行业标准的以太坊开发环境,来开发、部署和验证我们的智能合约。...当用户和客户想从我们的收藏中购买和铸造 NFT 时,他们会调用这个函数。 由于他们要向这个函数发送以太币,我们必须将其标记为 payable....一旦你获得了这些 ETH,打开你的 Metamask 扩展,并获得有假 ETH 的钱包的私钥(你可以通过账户详情来获取)。 注意:不要公开分享你的 URL 和私钥。...创建一个名为.env的新文件,并以下列格式存储你的 URL 和私钥: API_URL = "" PRIVATE_KEY = "API_URL, PRIVATE_KEY, ETHERSCAN_API } = process.env; // This is a sample Hardhat task.

    1.5K70

    使用hardhat 开发以太坊智能合约-发布合约

    编译配置以及 hardhat 需要使用的一些配置信息 solidity: "0.8.17", 上面代码配置了 solidity 编译版本,我们可以根据需要自行修改,请注意.sol 文件里使用的 solidity...,可以是多个私钥组成的数组,用于区块链访问交互使用 私钥你可以通过小狐狸钱包=》账户详情=》导出私钥获得(注意,请使用测试钱包,私钥泄露将面临账号被盗风险!)...etherscan:配置调用 api 接口的 apiKey 这里有一个问题,不过在我们部署合约的时候不会出现,所以暂时先略过,待到我们去进行验证合约的时候会回头讲解 这里面我们使用了.env 环境变量获取...作为强大的合约开发辅助工具,其本身自带了一套以太坊区块链环境,当我们在执行部署命令时,如果不指定网络,默认是使用自带的区块链环境 npx hardhat run ....有任何意见和建议欢迎评论区给我留言 参考资料 [1] 全干攻城尸: https://learnblockchain.cn/people/5344 [2] 使用hardhat开发以太坊智能合约-搭建环境

    2K20

    以太坊主网部署终极指南

    而私钥本身最好都是来自硬件钱包,如 Ledger 和 Trezor。 3. 如何进行实际部署 总的来说,部署一份合约需要 合约的字节码 - 这是通过编译[8]生成的。...这将确保你至少不会在中间环节出现错误,而不得不从头开始重新启动。 总而言之,如果你有钱支付使用 Truffle 所增加的费用,就去使用它吧。否则,请继续阅读替代方案。...Remix部署 一旦你有了编译好的合约,部署就像输入参数和点击部署一样简单。...当你频繁地部署合约并需要自定义逻辑来存储部署信息时,这非常有用。Web3 直接支持使用myContract.deploy()[25]进行部署。...另外,也推荐使用Truffle[30]、Hardhat[31]插件和直接使用Etherscan API[32]自动验证的插件。 关于如何使用 Sourcify,请查看这篇博文[33]。

    2.3K20

    Solidity 智能合约开发 - Hardhat 框架使用

    Hardhat 介绍 Hardhat 是一个基于 JavaScript 的智能合约开发环境,可以用于灵活地编译、部署、测试和调试基于 EVM 的智能合约,并且提供了一系列工具链来整合代码与外部工具,还提供了丰富的插件生态...首先,我们需要从 hardhat 中导入必要包: const { ethers, run, network } = require("hardhat") 接着则编写 main 方法,包含我们的部署核心逻辑...错误处理,如果验证过,则会抛出一个错误,并且输出一个提示信息,而不影响我们的部署流程。...而不需要在本地或其他网络环境验证,因此,我们对 network.config.chainId 进行判断,如果是 4,则执行验证操作;否则,不执行验证操作,此外仅在有 ETHERSCAN_API_KEY 环境变量时执行验证操作...中导入包即可添加覆盖率测试支持: require("solidity-coverage") 运行覆盖率测试 通过 yarn hardhat coverage 即可运行覆盖率测试: Task 上文我们对

    2.1K20

    以太坊合约交互

    ,执行npx hardhat compile,当我们执行命令后,会生成一个artifacts存储合约编译后的文件,这个abi数据映射的就是合约代码,在前端调用需要这个abi数据 { "_format...货币符号 ETH 然后我们将npx hardhat node本地运行生成的测试账号,倒入一个私钥到钱包里就行 基础的准备工作已经完成 在前端里,我们需要读取合约,以及调用合约方法 错误是由于okx插件修改了window.ethereum冲突造成的。...metaMask钱包发送交易请求,我们看到会产生交易请求increment时就会打开metaMask钱包发送交易请求,我们会看到会产生交易请求 至此与链上合约交户就完成了 总结 参考hardhat官方文档写一个简单的测试合约代码...如何编译并部署本地合约 在前端如何测试合约并调用合约代码与钱包进行交互 code example[2] 参考资料 [1] 文档参考: https://hardhat.org/hardhat-runner

    27510

    用Hardhat和Ethers引入并测试知名NFT智能合约

    /config').HardhatUserConfig */ export default { solidity: "0.7.3", }; 现在我们简单的 Hardhat 项目已经全部建立,继续导入和编译我们的...第 3 步:导入和编译合约 让我们首先在根目录中创建一个名为 contracts 的新文件夹(Hardhat 默认使用“contracts(合约)”文件夹作为源文件夹 - 如果你想更改该名称,你需要在...我们可以使用内置的 compile 任务来执行此操作 - 我们需要做的就是运行: npx hardhat compile 当我们使用 Hardhat 编译合约时,将为每个合约生成两个文件,并放置在 artifacts...test ......, 我们仍然失败 - 但出现了不同的错误!...如何编译合约并为其编写测试 希望这能让你对使用 Hardhat、Ethers、Chai 和 Mocha 导入和测试合约的过程有所了解。

    1.7K30

    本体技术视点 | 关于本体EVM合约开发,你必须知道的事(三)

    第四部分 EVM 合约开发流程演示 下面我们将使用 Hardhat 工具来演示在本体网络中开发部署和测试 EVM 合约的完整流程。...在本例中我们设计以下两个事件: 发红包时,合约会生成红包的 ID,该 ID 要通过事件推送给调用者 领取红包时,需要推送一个事件用来记录领取的红包 ID 和 Token 数量 event SendRedPacket...4.3 使用 Hardhat 编译和测试合约 4.3.1 创建 Hardhat 项目 mkdir hardhatdemo cd hardhatdemo npm init npm install --save-dev...1", "用户私钥2"] } }, solidity: { version: "0.8.0", settings:...在项目根目录执行如下命令编译合约 $ npx hardhat compile Compiling 5 files with 0.8.0 Compilation finished successfully

    64530

    《纸上谈兵·solidity》第 0 课:搭建 Solidity 开发环境(三种方式)

    全功能工程化 想构建完整项目结构的开发者方案一:Remix IDE(在线免安装)优点:免安装、浏览器即用内置 Solidity 编译器和虚拟链支持合约部署、调试、测试、调用快速开始:打开 https...; }点击左侧“Solidity 编译器” → Compile切换到 “部署 & 运行” 标签 → Deploy点击部署按钮 → 查看合约地址与变量用它做实验、调试,非常适合入门使用和教学演示方案二...:Foundry(终端党的福音)优点:极快的编译和测试速度(比 Hardhat 快很多)无需 Node.js原生支持测试、Fuzzing、脚本、部署社区活跃度高,适合写大型合约项目安装步骤:1....编译合约$ npx hardhat compile4....solc,可能与你目标版本不一致,需指定 Hardhat 网络 默认运行在 localhost:8545,本地账户默认私钥是已知的,不要用于生产总结工具链 推荐程度 用途

    1.2K10

    一文看懂以太坊智能合约!

    字节就完成地址的计算 外部账户的特性和可执行操作 有一个以太币余额属性,表示账户余额 可发送交易(以太币发送或者接受,触发合约代码) 被一个私钥控制 没有关联的合约代码 2.2 合约账户 和比特币不同的是...gasLimit,表示限制最多使用的 gas,主要考虑到遇到错误时做尽量减小损失。如本来一个正常的合约调用只需很少gas,但因错误造成死循环。...转账 data是可选数据 合约创建 data是编译之后的合约字节码 合约方法调用 data是合约方法签名和参数编码 消息(message),本质是个transaction,不过消息由合约产生,适当合约执行...Hardhat: 开发框架:Hardhat是一个以太坊开发环境,它允许开发者本地编译、测试和部署智能合约。 工具集:Hardhat提供了一套完整的工具和插件,用于简化智能合约的开发流程。...本地网络:Hardhat内置一个本地以太坊网络节点,开发者可在本地环境部署和测试智能合约,而无需连接到主网或测试网 脚本和任务:Hardhat允许开发者编写脚本和定义自定义任务,以便自动化开发流程中的重复性工作

    1.1K10

    在Polygon网络上构建应用的全栈开发指南

    Metaverse Marketplace 数字市场规则如下: 当用户在上架作品时,该作品的所有权将从创建者转移到市场。 当用户购买物品时,购买金额将从买方转给卖方,作品将从市场转给买方。...请确保永远不要向 Git 提交任何私钥(请在你的**.gitignore文件中添加.secret**),为了更加安全,在使用包含真实代币的钱包时,可以考虑储存在临时环境变量中。...将合约部署到本地网络上 当我们创建该项目时,Hardhat 在scripts/sample-script.js创建了一个部署脚本的例子。...Localhost网络 接下来,在 MetaMask 中点击账户菜单中的导入账户: MetaMask导入账户 复制并粘贴一个由 CLI 打印出的私钥(private keys),然后点击导入(import...为了获得私钥,你可以使用 Hardhat 给你的一个私钥,或者你可以直接从 MetaMask 导出: 私钥 对于生产环境中的应用,我建议不要在代码中硬编码你的私钥,而是将其设置为类似环境变量的东西。

    2.7K31

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

    在本文中,将展示如何使用 dapptools 执行以下操作: 编写和编译合约 使用 solidity 和 fuzzing 测试合约 部署合约 与已部署的合约交互 将使用我们设置的 dapptools-demo...out: 编译代码的位置。类似于brownie中的build文件夹或hardhat中的artifacts文件夹。 src: 你的智能合约就在这里。...类似于brownie和hardhat中的contracts文件夹。...从 Openzeppelin 和外部合约导入 假设我们想使用 Openzeppelin 标准创建一个 NFT。可以使用dapp install命令安装外部合约或包。...,我们需要将以下代码添加到.dapprc文件中: export DAPP_LINK_TEST_LIBRARIES=0 这告诉 dapptools 在运行测试时不要在 lib 中编译所有内容。

    1.2K30
    领券