Skip to content

使用Remix部署至Moonbeam

概览

Remix是目前以太坊上最常被使用的智能合约开发环境之一。基于Moonbeam兼容以太坊的特性,Remix可直接与Moonbeam网络一起使用。

本教程将介绍使用Remix IDE在Moonbeam开发节点上部署和创建基于Solidity的智能合约的过程。此教程同时适用于Moonbeam、Moonriver和Moonbase Alpha网络。

查看先决条件

在开始之前,您将需要准备以下内容:

如果您已遵循上述教程,您将会拥有一个正在收集交易以生产区块的本地Moonbeam节点。

Local Moonbeam node producing blocks

您的开发节点具有10个拥有资金的账户,您应当将您的MetaMask连接至您的Moonbeam开发节点并导入至少一个预注资的账户。

MetaMask installation with a balance

如果您正在Moonbeam、Moonriver或是Moonbase Alpha网络上跟随此教程进行操作,请确认您连接的是正确的网络并拥有具有一定资金的账户。 您可以每24小时一次从Moonbase Alpha水龙头上获取DEV代币以在Moonbase Alpha上进行测试。

开始使用Remix

现在,您可以启动Remix进行操作。在主页面的Environment下选择Solidity为Solidity开发配置Remix,接着导航至File Explorers查看。

File explorer

您将会需要创建一个新文件以保存Solidity智能合约。点击File Explorers下方的+按钮并在弹窗中输入文件名称“MyToken.sol”。

Create a new file for your Solidity contract

接着,将以下智能合约粘贴至弹窗的编辑框内:

pragma solidity ^0.7.0;

import 'https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.2.0-solc-0.7/contracts/token/ERC20/ERC20.sol';

// This ERC-20 contract mints the specified amount of tokens to the contract creator.
contract MyToken is ERC20 {
  constructor(uint256 initialSupply) ERC20("MyToken", "MYTOK") {
    _mint(msg.sender, initialSupply);
  }
}

Paste the contract into the editor

这是一个基于最新OpenZeppelin ERC-20模板编写的简易版ERC-20合约。该合约使用MYTOK作为MyToken的符号,并为合约创建者铸造初始Token。

接着,导向至侧边选项的Compile并点击Compile MyToken.sol按钮。

Compile MyToken.sol

您将会看到Remix下载了所有OpenZeppelin的依赖项并完成合约编译。

使用Remix在Moonbeam上部署合约

现在我们可以通过侧边的Deployment选项来部署合约。您需要将顶端的EnvironmentJavaScript VM向下拉至Injected Web3。如此一来,Remix会使用MetaMask导入的账户并指向一个已导入的Moonbeam开发节点。如果您想要使用Moonbeam网络尝试此操作,请确保将MetaMask连接到正确的网络而非本地开发节点。

当您选择Injected Web3选项时,您需授权Remix连接您的MetaMask账户。

Replace

请在MetaMask点击Next授权Remix使用您所选取的账户。

接着返回Remix界面,您会看到您想要用来部署的账户已经通过MetaMask授权登入。在Deploy按键的旁边输入Token数额,假设我们现在要部署800万的Token。但由于此合约默认位数为小数点后18位,因此您需要在输入框内输入8000000000000000000000000

确认数值输入无误之后,请点击Deploy

Enter an account balance and deploy

随后,MetaMask将跳出弹窗要求您确认此次部署合约的交易。

Confirm the transaction message

注意事项

如果您在部署任意合约时遇到问题,可通过以下操作手动提高Gas限制。选取右上角的有颜色的圆圈并在菜单中选择Settings。接着,点击Advanced并将Advanced Gas Controls设定为ON

在您点击Confirm后部署也随之完成,您将会在MetaMask上看到您的交易记录。与此同时,合约也将会在Remix中的Deployed Contracts下出现。

Confirmed label on a transaction

成功部署合约之后,您便可通过Remix与智能合约进行交互。

将页面下滑,找到Deployed Contracts,点击namesymbol,以及totalSupply,将会分别出现MyTokenMYTOK以及8000000000000000000000000。如果您复制合约地址并将它粘贴在balanceOf字段中,您可以看到用户ERC-20地址上的账户全部余额。点击合约名称和地址旁边的按钮可复制合约地址。

Interact with the contract from Remix

通过MetaMask与基于Moonbeam的ERC-20进行交互

现在,打开MetaMask添加刚部署的ERC-20 Token。在操作之前先确认您已在Remix上复制了合约地址。回到MetaMask,如下图所示,点击Add Token。请确保您现在所操作的账户为已部署合约的账户。

Add a token

将已复制的合约地址粘贴至Custom Token字段内,与此同时Token SymbolDecimals of Precision字段会自动填充。

Paste the copied contract address

点击Next,您需再次确认是否要将这些Token加入至您的MetaMask账户。点击Add Token后,您会看到800万的MyToken已成功加入您的账户:

Add the tokens to your MetaMask account

现在我们可以通过MetaMask将这些ERC-20 Token转至其他设定好的账户。您只需点击Send就可以将500个MyToken转移至您所选取的目标账户。

点击Next,您需再次确认交易(如下图所示)。

Confirmation of the token transfer

点击Confirm,交易完成之后,您将会在MetaMask账户上看到交易记录以及发送账户中减少的MyToken余额:

Verify the reduction in account balance

如果您拥有收款的账户,您也可以通过查看账户余额来确认转账是否成功。

使用Moonbeam Remix Plugin

Moonbeam团队开发了Remix Plugin以简化部署以太坊智能合约至Moonbeam网络的流程。Moonbeam Remix Plugin综合了所有在编译、部署和交互时所需的功能,能够在无需切换页面的情况下(即在同一个页面内)完成智能合约的部署和开发。Moonbeam Remix plugin支持Moonbeam、Moonriver以及Moonbase Alpha测试网。

安装Moonbeam Remix Plugin

请遵循以下步骤安装Moonbeam Remix Plugin:

  1. 点击进入Plugin管理页面

  2. 搜寻Moonbeam

  3. 点击Activate,Moonbeam Remix plugin将会直接安装至您的Plugin管理标签当中

Activating the Moonbeam Remix Plugin

当您已成功安装插件,代表Moonbeam Remix Plugin的Moonbeam标志将会出现在左手边。

开始使用Moonbeam Remix Plugin

在Remix IDE中点击Moonbeam Logo开启Moonbeam Plugin。请注意,此教程预设您在Remix内已有待编译的合约。您可以在此网页创建ERC-20合约,遵循以下步骤使用Moonbeam Remix Plugin在Moonbase Alpha部署一个ERC-20 Token。

  1. 点击Connect,将您的Metamask钱包连接至Remix

  2. 确认您选取正确的网络。在此教程中,我们使用的是Moonbase Alpha网络。

  3. 点击Compile或根据需求点击Auto-Compile

  4. 点击DeployConfirm在Metamask上确认交易

Compiling and Deploying a Contract with the Moonbeam Remix Plug

就是这么简单!当合约成功部署后,您将能看到地址以及所有能够与之交互的访问和修改方法。

Moonbeam Remix Plugin能够在Remix中无缝使用,所以您可以随时切换使用传统的Remix编译功能进行部署,或是选择使用Moonbeam Remix Plugin。

本网站的所有信息由第三方提供,仅供参考之用。Moonbeam Foundation不保证网站信息的准确性、完整性或真实性。如使用或依赖本网站信息,需自行承担相关风险,Moonbeam Foundation不承担任何责任和义务。这些材料的所有陈述和/或意见由提供方个人或实体负责,与Moonbeam Foundation立场无关,概不构成任何投资建议。对于任何特定事项或情况,应寻求专业权威人士的建议。此处的信息可能会包含或链接至第三方提供的信息与/或第三方服务(包括任何第三方网站等)。这类链接网站不受Moonbeam Foundation控制。Moonbeam Foundation对此类链接网站的内容(包括此类链接网站上包含的任何信息或资料)概不负责也不认可。这些链接内容仅为方便访客而提供,Moonbeam Foundation对因您使用此信息或任何第三方网站或服务提供的信息而产生的所有责任概不负责。