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

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按钮,查看当前存储的消息。

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/659868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

近日,2024中国图象图形大会在古都西安盛大开幕。本届大会由中国图象图形学学会主办,空军军医大学、西安交通大学、西北工业大学承办,通过二十多场论坛、百余项成果,集中展示了生成式人工智能、大模型、机器学习、类脑计算等多个图…

容器Android:Waydroid

环境:intel PC,Ubuntu20.04 目标:在Ubuntu20.04上搭建waydroid Android容器系统1. 搭建weston环境 由于waydroid依赖wayland环境,当前Ubuntu20.04默认为X11,需要安装weston $sudo apt install weston $weston #进入W…

基于L1范数惩罚的稀疏正则化最小二乘心电信号降噪方法(Matlab R2021B)

L1范数正则化方法与Tikhonov正则化方法的最大差异在于采用L1范数正则化通常会得到一个稀疏向量,它的非零系数相对较少,而Tikhonov正则化方法的解通常具有所有的非零系数。即:L2范数正则化方法的解通常是非稀疏的,并且解的结果在一…

【Spring Cloud】分布式配置动态刷新

目录 问题解决方案1.使用Spring Boot Actuator监控接口【不推荐】流程图使用Spring Boot Actuator的步骤 2.Spring Cloud Bus第一种方案问题Spring Cloud Bus流程图Spring Cloud Bus实现客户端刷新的步骤开发准备实现1. 在config-server中添加依赖2.在config-server中添加配置a…

LeetCode --- 399周赛

题目列表 3162. 优质数对的总数 I 3163. 压缩字符串 III 3164. 优质数对的总数 II 3165. 不包含相邻元素的子序列的最大和 一、优质数对的总数I 这里由于数据范围比较小,我们可以直接暴力枚举,代码如下 class Solution { public:int numberOfPairs…

linnux上安装php zip(ZipArchive)、libzip扩展

安装顺序: 安装zip(ZipArchive),需要先安装libzip扩展 安装libzip,需要先安装cmake 按照cmake、libzip、zip的先后顺序安装 下面的命令都是Linux命令 1、安装cmake 确认是否已安装 cmake --version cmake官网 未安装…

渗透测试之信息收集篇

前言 信息收集的重要性 进行渗透测试之前,最重要的一步就是信息收集。 信息收集可以让渗透者选择合适和准确的渗透测试攻击方式,缩短渗透测试时间。 所谓知己知彼,百战不殆,我们越了解测试目标,测试的工作就越容易。 最后能否成功渗透进入目…

【MySQL数据库】 MySQL主从复制

MySQL主从复制 MySQL主从复制主从复制与读写分离的意义主从数据库实现同步(主从复制)三台mysql服务器搭建主从复制,要求不可以用root帐号同步,要求第三台服务器在测试过1、2的主从复制之后进行主从复制配置四台mysql服务器(m1,s1,…

如何遍历并处理不平衡的Python数据集

目录 一、引言 二、不平衡数据集的概念与影响 三、处理不平衡数据集的策略 重采样策略 集成学习方法 代价敏感学习 一分类方法 四、Python工具与库 五、案例分析与代码实现 案例一:使用imbalanced-learn库进行上采样 案例二:使用scikit-learn…

史上最全网络安全面试题+答案

1、什么是SQL注入攻击 前端代码未被解析被代入到数据库导致数据库报错 2、什么是XSS攻击 跨站脚本攻击 在网页中嵌入客户端恶意脚本,常用s语言,也会用其他脚本语言 属于客户端攻击,受害者是用户,网站管理员也属于用户&#xf…

小白windows系统从零开始本地部署大模型全记录

大家好,最近两年大语言模型风靡全球,最近,不少开源大模型,将模型部署到自己的电脑上,用个性化的数据微调想必是不少人的愿望,这次,让我来分享从hugging face上下载部署chatglm3-6b中的经验。 1.…

2024-2025年跨境电商展览会计划表:共筑未来跨境行业的繁荣

-----------------------------2024年跨境电商展计划如下---------------------------- 2024年,2025年国内跨境电商行业将迎来一系列重大的展会活动,是企业展示品牌、交流趋势、拓展商机的重要平台。全国各地展会排期信息现已出炉,记得收藏哦…

图解PHP MySQL:轻松掌握服务器端Web开发

在当今数字化时代,Web开发成为了一个炙手可热的领域,而PHP和MySQL作为Web开发领域的两大基石,其重要性不言而喻。对于初学者和寻求深化理解的开发者而言,一本好的教材就如同灯塔一般,指引着他们前行。《图解PHP & …

ES升级--04--SpringBoot整合Elasticsearch

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 SpringBoot整合Elasticsearch1.建立项目2.Maven 依赖[ES 官方网站:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.8/index.html](…

如何修改uni微信小程序editor组件和input组件的placeholder默认样式

需求 修改input组件的placeholder的颜色修改editor的placeholder的默认样式 input组件的placeholder样式修改 使用 placeholder-class&#xff0c;官网&#xff08;input | uni-app官网&#xff09;说明如下&#xff1a; html <input type"text" placeholder&…

layui实现表格根据数据来勾选已保存的数据

示例图 勾选一次保存后&#xff0c;每次进到查询都会看到被勾选的数据&#xff0c;代码如下&#xff1a; done: function(res, curr, count) {var groupId "[[${groupId}]]";$.ajax({url: //写后端获取数据的接口type: GET,success: function(data) {console.log(d…

STL-priority_queue的使用及其模拟实现

优先级队列(priority_queue)默认使用vector作为其底层存储数据的容器&#xff0c;在vector上又使用了堆算法将vector中的元素构造成堆的结构&#xff0c;因此priority_queue就是堆&#xff0c;所有需要用到堆的位置&#xff0c;都可以考虑使用priority_queue。 注意&#xff1…

Vue使用axios实现调用后端接口

准备后端接口 首先&#xff0c;我已经写好一个后端接口用来返回我的用户数据&#xff0c;并用Postman测试成功如下&#xff1a; 以我的接口为例&#xff0c;接口地址为&#xff1a;http://localhost:8080/user/selectAll 返回Json为&#xff1a; {"code": "2…

1.3纹理介绍

纹理是什么&#xff1f; 纹理的概念 一种可供着色器读写的结构化存储形式 任何图片都可以作为纹理 &#xff08;但纹理就是图片并不正确&#xff0c;因为纹理并不一定是图片&#xff0c;处理包含具体储存的信息以外&#xff0c;还会包含纹理采样的一些设置&#xff09; 纹理…

只刷题可以通过PMP考试吗?

咱们都知道&#xff0c;PMBOK那本书&#xff0c;哎呀&#xff0c;读起来确实有点费劲。所以&#xff0c;有些人就想了&#xff0c;干脆我就刷题吧&#xff0c;题海战术&#xff0c;没准儿也能过。这话啊&#xff0c;听起来似乎有点道理&#xff0c;但咱们得好好琢磨琢磨。 刷题…