问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Remix IDE 创建和部署第一个合约HelloWorld

创作时间:
作者:
@小白创作中心

Remix IDE 创建和部署第一个合约HelloWorld

引用
CSDN
1.
https://blog.csdn.net/hai411741962/article/details/139293266

Remix IDE是一个基于浏览器的以太坊智能合约开发环境,它提供了完整的开发工具链,包括代码编辑、编译、部署和调试等功能。使用Remix IDE,开发者可以快速上手智能合约开发,无需复杂的本地环境配置。本文将通过一个简单的"Hello World"合约示例,详细介绍如何在Remix IDE中创建和部署智能合约。

Remix IDE 地址
https://remix.ethereum.org/

创建一个新文件

在文件资源管理器中,点击新建文件图标创建一个新文件,并给它命名。在 Remix 中,默认的文件扩展名是 .sol ,如果文件名没有扩展名,将会自动添加 .sol扩展名。

在编辑器中,将以下合约粘贴到空白文件中:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
    string public message;
    constructor() {
        message = "Hello, World!";
    }
    function setMessage(string memory newMessage) public {
        message = newMessage;
    }
}

在粘贴代码时,请确保您理解代码内容,并在部署或与其交互之前进行检查。不要上当受骗!

编译合约

将上面的合约作为编辑器中的活动选项卡,编译该合约。快速编译的方法是按下Ctrl + S。您还可以通过在Solidity编译器中点击编译按钮、右击文件资源管理器中的文件或点击编辑器顶部的播放按钮来进行编译。

这两个都可以,我已经编译过了,出现上面的绿色的√说明已经编译好了

部署合约

进入Deploy & Run Transactions插件。

在此插件的顶部是环境选择框。在这里,您可以选择要部署合约的位置。有许多选择。

Environment

Environment选项用于选择你要使用的以太坊虚拟机环境:

  • Remix VM (Shanghai): 使用Remix提供的内置虚拟机环境,这是一种本地测试环境,适用于快速测试和部署智能合约。
  • Injected Web3: 连接到浏览器中的Web3提供商(如MetaMask)。你需要确保浏览器钱包连接到合适的以太坊网络(例如主网或测试网)。
  • Web3 Provider: 连接到一个自定义的Web3提供商,例如一个本地或远程的以太坊节点。

Account

Account选项用于选择用于部署智能合约的以太坊账户。这里显示了当前选定账户的地址和余额(以ETH为单位)。

Gas Limit

Gas Limit选项用于设置交易的Gas Limit,Gas是以太坊网络中执行合约的计算资源单位:

  • Estimated Gas: 由Remix估算所需的Gas量。
  • Custom: 手动设置Gas Limit。在截图中,设置为3000000。

Value

Value选项用于设置发送到合约的以太坊数量(以Wei为单位)。Wei是以太坊的最小单位,1 ETH = 10^18 Wei。通常在部署合约时不需要发送ETH,因此默认值为0。

Contract

Contract选项用于选择要部署的智能合约。在编译成功后,这里会列出所有可部署的合约。你可以从下拉菜单中选择一个合约进行部署。在截图中,选择的是HelloWorld - helloworld.sol。

Deploy Button

Deploy按钮用于部署选定的智能合约。当你点击这个按钮时,Remix将尝试在选定的环境中部署合约。如果部署成功,合约实例将显示在“Deployed Contracts”部分。

At Address

At Address选项用于加载已部署的智能合约实例。你可以输入一个已知合约地址,并点击“Load”按钮加载合约实例。

Transactions Recorded

Transactions Recorded显示已经记录的交易数量,并提供选项查看交易详情。

Pinned Contracts

Pinned Contracts显示已固定的合约实例,便于快速访问和交互。

Deployed/Unpinned Contracts

合约实例信息

HELLOWORLD AT 0X…33FA8 (MEMORY)

0X…33FA8: 这是合约的部署地址。

(MEMORY): 表示合约当前存储在内存中(因为使用的是本地虚拟机环境)。

账户余额

Balance: 0 ETH

显示与该合约地址相关联的ETH余额。当前余额为0 ETH。

合约方法

setMessage:

输入框用于输入新消息的字符串。

setMessage按钮用于调用合约的setMessage方法,将新消息发送到区块链。

message:

message按钮用于调用合约的message方法。

显示当前存储的消息字符串。例如,显示“Hello, World!”。

低级别交互

Low level interactions

CALLDATA: 低级别交互的输入框,用于手动输入原始调用数据。

Transact: 手动发送交易按钮,用于发送自定义调用数据。

Both ‘receive’ and ‘fallback’ functions are not defined: 提示当前合约中未定义receive和fallback函数。

示例操作

调用setMessage方法:

在setMessage输入框中输入新消息,例如“Hello, Remix!”。

点击setMessage按钮。

交易成功后,再次点击message按钮,你应该会看到消息更新为“Hello, Remix!”。

调用message方法:

直接点击message按钮,查看当前存储的消息。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号