paint-brush
如何在 Remix 中编写和编译您的 Solidity 智能合约代码:dApp 开发基础经过@dansierrasam79
2,412 讀數
2,412 讀數

如何在 Remix 中编写和编译您的 Solidity 智能合约代码:dApp 开发基础

经过 Daniel Chakraborty6m2023/03/23
Read on Terminal Reader

太長; 讀書

本周的博文介绍了智能合约的主题,但使用的是大多数 Web 开发人员可能会发现很容易过渡到的语言:我们正在谈论 Solidity。大多数智能合约开发人员都是从 Solidity 开始的,为此,Remix 集成开发环境是他们通常开始其旅程的第一个工具。
featured image - 如何在 Remix 中编写和编译您的 Solidity 智能合约代码:dApp 开发基础
Daniel Chakraborty HackerNoon profile picture
0-item
1-item

尽管智能合约的概念可以追溯到 90 年代,但以太坊是第一个发挥其潜力并通过实施消除对第三方需求的平台。


随着以太坊成为焦点,智能合约市场不断壮大,预计到2030 年市场规模将增长到 83 亿美元。显然,随着智能合约在多个行业的项目中受到青睐,鉴于需求的增长,智能合约开发人员获得丰厚报酬也就不足为奇了。


说到这一点,本周的博客文章介绍了智能合约的主题,但使用的是大多数 Web 开发人员可能会发现很容易过渡到的语言:我们正在谈论 Solidity。

Remix 集成开发环境

如果你想学习智能合约开发,理想的选择是选择一种流行、简单易学并提供易于访问的开发环境的语言。


出于这个原因,大多数智能合约开发人员从 Solidity 开始,为此,Remix 集成开发环境是他们通常开始web3 开发之旅的第一个工具。对于大多数人来说,这将是他们第一次使用开发环境,但这并不费力,因为可以在任何流行的浏览器中设置 Remix IDE。


Remix IDE - 默认屏幕


在基本层面上,重要的是要注意每个智能合约都是一个 .sol 文件,因为它使用的语言是:Solidity。此外,编译合约需要您选择要使用的版本。这些编写和编译智能合约的任务都必须在将智能合约部署到测试网或主网之前执行。


说到这一点,在将智能合约部署到主网上之前,在测试网上测试它是至关重要的。使用 Remix 时,您可以使用 Goerli 或 Sepolia 测试网。然而,为此,您需要首先将您的 Web3 钱包连接到 Remix——最好使用 Metamask 钱包。


Metamask 钱包


如果您不知道什么是测试网,请将其视为一个环境,您可以在其中使用假资金运行您的合约,同时通过测试评估您的智能合约是否已为现实世界做好准备。简而言之,它模拟了智能合约在部署到主网上之前的工作方式。


最后,您需要了解每个智能合约在部署后都由一个唯一地址标识。当然,您可以通过 Remix 中可用的虚拟用户帐户将资金转入和转出您的智能合约。此外,您还必须了解有关支付汽油费的所有知识,以及在编写和运行您的第一个智能合约时如何从您的帐户中扣除汽油费。

使用 Remix IDE 的第一步

现在,如果你想使用 Remix IDE 编写和编译你的第一个智能合约,你必须学会使用图标面板中的四个图标:


图标面板


这四个图标中的每一个都代表有关如何使用工作区的不同功能:

  1. 文件管理器
  2. 在文件中搜索
  3. Solidity 编译器
  4. 部署和运行交易


选择文件资源管理器会将您带到默认工作区,如下所示:

默认工作区


您应该能够在此处创建、修改和删除文件夹和 Solidity 文件。将文件上传到您的工作区以及将其添加到 Github gist 也是可用的选项。


面板中的第二个图标标记为“在文件中搜索”,它允许您执行此操作。在这种情况下,我们正在寻找搜索词“自动售货机”,其结果如下所示。


在文件中搜索


至于选择 Solidity 编译器选项,我们被带到一个屏幕,如下所示:

Solidity 编译器


在点击蓝色按钮之前,您可以在此处选择编译器版本和要编译的合约,如上所示。


至于面板中的最后一个图标,即 Deploy & Run Transactions,我们将在本系列的下一篇博文中介绍如何使用该图标。

使用你的第一个 Solidity 合约

现在,许多流行的智能合约语言的语法类似于 JavaScript、Python 和 Rust——这些语言已经在有经验的开发人员中流行。


然而,最突出的是 Solidity,因为以太坊平台继续以均匀的速度雇佣开发人员,所以最好从使用这种语言实现自动售货机智能合约开始我们的旅程。您可以从这个以太坊网页复制自动售货机智能合约代码。


熟悉自动售货机吗?


必须指出的是,自动售货机的工作方式与智能合约的工作方式非常相似。事实上,正如您在 Vending Machine 智能合约中看到的那样,“充值”和“购买”这两种方法复制了自动售货机所有者及其购买者在现实生活中执行的操作。


现在,通过选择“文件资源管理器”图标导航到您的工作区。使用创建新文件图标打开一个新的 .sol 文件,如下所示:


创建新文件图标


现在,将 Vending Machine 智能合约代码与 SPDX-License-Identifier 一起粘贴到该文件中,如下所示:

“自动售货机”智能合约


在此之后,是时候根据“pragma”语句中选择的编译器版本在 Remix 中编译您的第一个智能合约了。当然,调试错误也是这个过程的一部分。

在 Remix 中编译你的第一个 Solidity 智能合约

现在,一旦我们将智能合约代码添加到默认工作区中的 .sol 文件中,下一步就是调试您的代码。由于零错误,您将在将智能合约部署到测试网之前对其进行编译。


在我们开始之前,Ctrl + S 键盘快捷键将编译您的智能合约。现在,如果图标面板中的 Solidity Compiler 选项有一个绿色复选标记,则您的代码已准备好部署!


编译成功(绿色勾号)


当然,并非一切都按计划进行。在大多数情况下,在尝试成功编译您编写的代码之前,您必须解决这些错误。 Solidity 编译器图标看起来像这样,其中“1”表示代码中的错误数:


编译不成功(有 1 个错误)


说到常见错误,初学者往往无法选择与智能合约 pragma 语句中选择的版本相匹配的正确编译器版本,如下所示:


pragma 语句错误


为了解决这个问题,访问 Solidity Compiler 选项中的下拉菜单:

更改编译器版本下拉菜单(带双向箭头)


将编译器版本改为“0.8.7+commit.e28d00a7”,得到如下结果:

在 pragma 语句中更改为 0.8.7 版本


另一个常见错误涉及语法错误,例如涉及“cupcakeBalances”映射的错误:


语法错误:之前没有声明这样的映射,对吗?


如果您还没有注意到,红色框内的红色感叹号表示语句有错误。在这种情况下,一旦您通过添加“k”并按 Ctrl + S 来更正拼写错误,该符号就会消失。


改正错字后,错误解决


解决了这两个简单的错误后,您还会发现一个绿色的勾号标记与 Solidity 编译器图标一起出现。显然,您已经成功编译了您的第一个智能合约。


所以现在,是时候将您的智能合约部署到测试网了,但这将在以后的博文中介绍。


也就是说,我们正在构建一个以开发人员为中心的 Metaverse,以便您了解有关 Web3 开发的更多信息并培养您的技能。


注册加入 Lumos Metaverse 白名单以获得独家访问权限: