如何使用 Infura、Truffle 和 MetaMask 在 Aurora 上创建 NFT

Consensys管理小助手 2023-04-14 10:30:45

 

 

Aurora 是来自第一层区块链 NEAR 的 EVM 兼容网络,它允许您利用现有的以太坊 dapp 开发工具套件(如 Solidity、Truffle 和 Infura)来创建 NFT 和其他智能合约。

这种工作流程有很多好处,因为 NEAR 是一个碳中和的区块链,具有快速的最终确认(2-3 秒),并且有了 Aurora 之后,开发人员可以享受它的所有好处,而无需学习新的编程语言和工具。

在本教程中,您将学习如何:

  • 使用 Infura 在 NEAR 的 EVM 兼容解决方案 Aurora 上创建 NFT

  • 使用 Rainbow 桥接资产从以太坊转移到 Aurora

  • 比较 Aurora 和以太坊上铸造 NFT 的 gas 成本

Aurora 开发入门

在 Infura 注册一个帐户。单击 CREATE NEW KEY 创建新密钥,并获取您的 Aurora 测试网 RPC 端点。查看文档以获取有关创建新密钥的更多详细信息。

 

配置和设置

查看 Github 上的参考应用,使用 git clone来拉取项目。

打开终端并执行以下命令:

git clone git@github.com:anataliocs/aurora-example.git

然后将项目导入到您的 IDE 中。

设置您的 ENV 文件

安装 dotenv npm 包,以便能够使用.env 文件

yarn add dotenv

在您的项目根目录下用以下命令创建一个   .env 文件:

touch .env

设置您的 .env文件:

MNEMONIC=

WEB3_INFURA_API_KEY=

查看文档,了解更多关于获取 Aurora 测试网密钥的内容。打开一个终端,编译您的 Truffle 中的合约:

  • InfuraAuroraTestNft.sol

  • Migrations.sol

编译合约

现在,让我们使用 Truffle 来编译您的智能合约,以确认一切设置都是正确的。

truffle compile

这个命令会在你的build/contracts文件夹中生成 JSON 格式的文件。

将您的合约部署到 Aurora 测试网上

您需要一个带有 Aurora 测试网 ETH 的钱包才能部署到 Aurora 测试网。如果您还没有钱包,请查看这篇文章以了解如何使用 Metamask 进行设置。

💰 获取测试网 Aurora ETH

首先,您的 Aurora 钱包中需要一些测试 ETH。

导航至:Aurora 水龙头获取一些 Aurora ETH

使用我们的水龙头获取 Aurora ETH

Aurora

 

为您的钱包注资:

  • 选择测试网

  • 连接您的钱包

  • 请求测试网 ETH

ℹ️ 或者,您也可以使用彩虹桥从以太坊测试网络(例如 Goerli)桥接测试 ETH,我们将在本文后面讨论。

将您的智能合约部署到 Aurora

现在我们可以使用 Truffle 将我们的 solidity 合约部署到 Aurora 测试网络!如果您是 Truffle 的新手,请查看此 Truffle 入门指南。

在终端中执行以下命令:truffle migrate --network aurora下面是一个部署信息的例子:

 

然后我们可以在 Aurora Testnet Explorer 上查看已部署的合约。

Aurora 上部署的合约是一种以太坊账户。

Aurora 上的智能合约

与其他 EVM 兼容网络一样,Aurora 上的智能合约具有以下特征:

  • 根据网络存储量收取费用

  • 无法主动发起交易(但这可能会在未来的 EIP 中改变)

  • 外部帐户(钱包)可以触发执行您的智能合约的可用函数

  • 合约不像钱包那样拥有私钥

您可以在此处查看已部署合约的示例:

https://testnet.aurorascan.dev/address/0xB752f3637d7E42b158dd1463f672c82B05ADa366

 

Aurora 测试网合约创建交易

当您运行truffle migrate命令时,这将创建一个交易,您的合约账户将被创建。

我们还可以在这里查看创建此合约的交易:https://testnet.aurorascan.dev/tx/0xb142fe0f2d1ad0b4bc563daf82c37825f05e9b1ee8a26af86184394f77a54e30

Aurora 合约创建交易细节

  • 状态:成功区块:112517167

  • 交易费用:0.00018552233 ETH

  • 已使用的gas:2,650,319 (26.5%)

  • gas价格:0.00000000007 ETH(0.07 Gwei)

 

交易成本是使用的 gas 数量 * gas 价格

2,650,319 * 0.00000000007 ETH = 0.00018552233 ETH

正如我们所看到的,Aurora 上的交易非常划算,而且通常比以太坊 L1 主网便宜。交易最终确认的速度非常快,您可以通过“块确认”发生的速度以及“状态”从Pending到 Success的转换速度看出来。

在下一节中,我们需要获取已部署的合约地址并将其添加到我们的 .env 文件中,以便随时使用。

在 Aurora 测试网上铸造一个 NFT

我们将通过使用 web3.js 库和一个自定义的 javascript 脚本调用我们部署的智能合约,在 Aurora 上铸造一个 NFT。

铸造 NFT

要在 Aurora 测试网上铸造NFT,我们需要做以下工作:

更新配置

  • 运行  mintAuroraNft.js 脚本来调用已部署的合约

  • 等待交易确认

  • 验证我们的钱包是否收到了NFT

更新 .env 文件

我们需要从上一步中获取已部署的合约地址,并将其添加到我们的配置中,以便我们的脚本知道已部署的合约在 Aurora 测试网上的位置,以便我们能够调用它。

在您的 .env文件中添加以下字段:

  • 上文中已部署的合约的哈希地址

  • 钱包助记词,来自您专门用于开发的 Metamask 钱包

⚠️ 注意:不要使用包含有价值的主网资产的钱包进行开发!

DEPLOYED_AURORA_CONTRACT=

MNEMONIC=

铸造脚本如何工作

在您的 IDE 中打开 mintAuroraNft.js 这个文件。

在 scripts/mintAuroraNft.js 的第3行,我们可以看到部署的合约地址和钱包都是.env文件中获取的。

在 scripts/mintAuroraNft.js 的第10行,我们可以看到合约被初始化为一个 web3.eth.Contract对象。

在 scripts/mintAuroraNft.js 的第19行,我们调用了合约对象的 mint()方法,该方法返回一个 promise,即返回触发 mint 操作的 Aurora 交易。

运行铸造脚本

现在我们对该脚本的工作原理有了一些了解,让我们执行该脚本并铸造一个新的 NFT。truffle exec scripts/mintAuroraNft.js --network aurora

该脚本将按以下步骤执行您的交易:

  • 使用.env文件中的 MNEMONIC 指定的钱包来发起交易

  • 调用部署合约的铸造操作来铸造一个新的InfuraAuroraNFT

  • 将铸造的 NFT 发送到 .env文件中 WALLET_ADDRESS字段所配置的钱包

您将在控制台看到以下输出:

 

查看铸造操作交易的结果

现在我们来看看 AuroraScan 上的交易:

https://testnet.aurorascan.dev/tx/0x977851d897e29ac1fce9c41e7d9d4f3d3093ae7ce78a33dc4c30bef9a795d592

 

 

使用公式 使用的 gas 数量 * gas 价格

93,679 * 0.00000000007 ETH = 0.00000655753 ETH

在 Aurora 上铸造交易在规模上极具成本效益。

您的结果在主网上可能会有所不同,但 Aurora 将比以太坊 L1 主网上便宜得多,基本上所有可比较的操作都允许您的 dapp 以具有成本效益的方式扩展,同时保持在去中心化、碳中性区块链上运行的好处。

使用 Aurora Rainbow 桥

ETH <> NEAR Rainbow 桥允许用户将某些 ERC-20 代币等资产从以太坊无缝迁移到 NEAR。该

桥促进了以太坊、NEAR 和 Aurora 之间资产的迁移!

关于将资产从以太坊迁移到 NEAR 的细节:

  • 一旦在 NEAR 上,交易将在 1~2 秒内确认由于桥梁需要在以太坊上进行交易,你将不得不以 ETH 支付gas费用

  • 将资产从以太坊发送到 NEAR 需要大约 6 分钟(20个区块)

  • 迁移一个普通的 ERC-20 平均成本约为 10 美元(根据撰写本文时的gas成本计算)

  • 需要注意的是,将资产从 NEAR 迁移回以太坊,在gas费用和时间方面的成本更高

连接到 Rainbow 桥

您可以在这里找到测试网 Rainbow 桥。

您将需要一个 Ethereum 钱包和一个 NEAR 钱包来从 Ethereum 迁移到 NEAR。 

然而,您可以只使用 Metamask 来从以太坊桥接到 Aurora!由于 Aurora 与 EVM 兼容,您可以在 Metamask 上使用 Aurora,就像你使用 Ethereum 或它的 L2 网络一样。

将资产从以太坊迁移到 Aurora

  • 选择 Ethereum 作为 "转出 "链

  • 选择 Aurora 作为 "转入 "链然后

  • 点击 "连接 "按钮,连接到 Metamask

  • 目前您只能通过桥转移 ETH、FAU 和 USDC

 

我们将在下一步介绍转移过程,将一些 ETH 从以太坊的 Goerli 测试网转移到 Aurora。

在以太坊测试网铸造一个 NFT

我们还将把 InfuraAuroraTestNft 智能合约部署到以太坊 Goerli 测试网。由于 Aurora 与 EVM 兼容,我们可以在这两个网络上部署相同的合约!

部署合约首先,我们将智能合约部署到 Goerli 测试网上。

执行以下命令:truffle migrate --network goerli

记住要从部署信息中获取contract address合约地址。

 

然后我们可以在Goerli Etherscan上查看部署的合约。我们可以在这里查看创建该合约的

Goerli 测试网交易: 

https://goerli.etherscan.io/tx/0xc8c2eee511b342ce5e66c8fa17e976bac205ec21d5d0689624423899e5e11a73

Goerli 交易详情

  • 状态:成功

  • 区块:8300896

  • 交易费用:0.011030038082734622 Ether

  • 使用的 gas:2,650,319 (80%)

  • gas 价格:0.000000004161777538 Ether(4.161777538Gwei)

 

交易的成本是  使用的 gas 数量 * gas 价格

2,650,319 * 0.000000004161777538 ETH = 0.011030038082734622 Ether ETH

我们可以看到,在 Ethereum Goerli 上的交易比在 Aurora 上的交易要贵一些。虽然使用的 gas 相同,但 gas 价格明显较高(Aurora 为 0.07 Gwei,Goerli 为 4.161777538 Gwei),导致交易费用较高。

在这个例子中,Aurora 的 gas 价格是 Goerli gas 价格的 1.6%。你在主网上的体验可能会有所不同,但一般来说,Aurora 会比 Ethereum L1 主网上的价格便宜很多。

在下一节中,我们需要获取部署的合约地址,并将其添加到我们的 .env文件中。

更新.e

在 .env 文件中添加以下字段:

  • 部署到 Goerli 测试网的 InfuraAuroraTestNft 合约的合约地址

DEPLOYED_GOERLI_CONTRACT=

在 Goerli 上铸造 NFT执行下面的脚本,在 Goerli 上铸造一个 NFT。这个脚本会和我们在 Aurora 上铸造的脚本一样工作。

truffle exec scripts/mintGoerliNft.js --network goerli

从 Goerli 到 Aurora 测试网的资产桥接

现在让我们尝试使用测试网 Rainbow 桥将一些 Goerli ETH 桥接到 Aurora。

  • 导航到:https://testnet.rainbowbridge.app/transfer

  • 连接 Metamask 钱包在 "转出 "栏中选择以太坊

  • 在 "转入 "栏中选择 Aurora

  • 点击 "开始新的转移"

  • 选择ETH

  • 输入要转账的金额

  • 点击 "继续"

  • 然后在下一个屏幕上点击 "确认转账"

就这样, 您已经成功地将 ETH 从 Goerli桥接到 Aurora。Aurora 提供了与以太坊和 NEAR 生态系统的深度互操作性,因此您可以利用您现有的 Solidity 和 Truffle 开发工具套件以及 NEAR 生态系统中的原生以太坊资产!

Rainbow 桥交易

现在让我们来看看实际的桥接交易:

https://goerli.etherscan.io/tx/0x16fb3c642d136560746ef6a6f00bdfdffb3ea5a6d35885f3b084b089ef964147

我们可以看到,1个 ETH 从我们的地址转移到了 Rainbow 桥智能合约 0x84a82bb39c83989d5dc07e1310281923d2544dc2。

请查看这篇文章,了解更多关于 Rainbow 桥内部工作的细节。

 

结论

您现在应该能够探索 NEAR 和以太坊生态系统之间的深度互操作性。

💡 我们在这次开发者之旅中学到了很多东西:

由于 Aurora 与 EVM 相兼容,您可以将用 Solidity 编写的相同智能合约部署到 Aurora 和以太坊

您可以将以太坊原生资产桥接至 Aurora 或 NEAR,反之亦然

您可以使用现有的以太坊开发工具(例如 Infura 和 Truffle)将智能合约部署到以太坊和 Aurora 区块链

📚 进一步阅读

想了解更多关于 Aurora 的信息?

请查看以下资源。

  • Infura 文档:https://docs.infura.io/infura/networks/aurora

  • Aurora 文档:https://doc.aurora.dev/

  • 使用 Truffle 部署智能合约:https://doc.aurora.dev/interact/truffle/

  • 了解 Aurora DAO:https://aurora.dev/dao

  • 在 YouTube 上关注 Infura:https://www.youtube.com/@Infura/videos

  • 在 YouTube 上关注 Aurora:https://www.youtube.com/watch?v=ibST7Dq8BY8

💡受到启发,想加入区块链的革命性世界?今天就来看看https://consensys.net/careers/

💻 想开始您的 Web3 开发者之旅吗?https://infura.io/register

📖 阅读更多类似的故事:https://blog.infura.io/

➕关注Infura。

  • https://twitter.com/infura_io

  • https://discord.gg/RF7N6RHaV8

  • https://www.linkedin.com/company/infuraio/

  • https://github.com/INFURA

  • https://www.youtube.com/c/Infura

咨询我们的区块链专家

我们的全球解决方案团队提供区块链培训、战略咨询、实现服务和合作机会。

请与我们联系,了解更多资讯:wechat@consensys.net

...全文
845 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

725

社区成员

发帖
与我相关
我的任务
社区描述
ConsenSys是一家领先的以太坊和去中心化协议软件公司,我们的产品套件由Infura、Quorum、Codefi、MetaMask、Truffle、Diligence 和我们的NFT 平台组成。
区块链 企业社区
社区管理员
  • csdnsqst0035
  • Ashley0001
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧