当前位置: 首页 > news >正文

网站项目运营方案网站建设基础功能

网站项目运营方案,网站建设基础功能,正规流量卡代理平台,WordPress下载统计任务: 在前端开发一个查询UI,查询当前用户账户的ETH余额和指定ERC20合约中的余额 目标: UI框架指定使用 MUI (https://mui.com)需要查询到当前账户的ETH余额并展示在UI界面上需要输入ERC20合约地址后,查询到到当前账户在此ERC20…

任务: 在前端开发一个查询UI,查询当前用户账户的ETH余额和指定ERC20合约中的余额

目标:

  • UI框架指定使用 MUI (https://mui.com)
  • 需要查询到当前账户的ETH余额并展示在UI界面上
  • 需要输入ERC20合约地址后,查询到到当前账户在此ERC20合约中的余额,并展示在UI界面上

提示:

  • 需要安装 Metamask 插件
  • 链接到 Sepolia 网络
  • ERC20 合约地址 0x7939C9b7cE8BFFc6cb791eCB129f4c385e05727a
时间要求:24小时内给出相应网页,可以部署到github或其他托管平台,也可以通过腾讯会议运行demo代码演示

参考资料

  • https://web3camp.us/
  • https://github.com/web3camp-labs

实现:

首先,确保安装了MUI库和Web3.js库:

npm install @mui/material @emotion/react @emotion/styled web3

你可以创建一个JavaScript文件,并编写如下代码:

import React, { useState } from "react";
import Web3 from "web3";
import { Container, TextField, Button, Typography } from "@mui/material";// 创建Web3实例连接到以太坊网络
const web3 = new Web3(window.ethereum);// 定义要查询的ERC20合约地址
// const erc20ContractAddress = "0x7939C9b7cE8BFFc6cb791eCB129f4c385e05727a";export default function Web3View() {const [ethBalance, setEthBalance] = useState(null);const [erc20Balance, setERC20Balance] = useState(null);const [erc20Address, setERC20Address] = useState("");// 检查是否有提供者可用if (typeof window.ethereum !== "undefined") {// 使用以太坊提供者进行初始化web3.setProvider(window.ethereum);} else {console.error("无可用的以太坊提供者");}// 查询当前用户账户的ETH余额async function handleGetEthBalance() {try {// 获取当前用户的账户地址const accounts = await web3.eth.requestAccounts();const account = accounts[0];// 使用web3.eth.getBalance方法查询ETH余额const balanceWei = await web3.eth.getBalance(account);// 将余额从Wei转换为ETH单位const balanceEth = web3.utils.fromWei(balanceWei, "ether");setEthBalance(balanceEth);} catch (error) {console.error("获取ETH余额失败:", error);}}// 查询指定ERC20合约中的余额async function handleGetERC20Balance() {try {// 获取当前用户的账户地址const accounts = await web3.eth.requestAccounts();const account = accounts[0];// 加载ERC20合约的ABI(应用二进制接口)const erc20ABI = [// 方法1:获取代币总供应量{constant: true,inputs: [],name: "totalSupply",outputs: [{name: "",type: "uint256",},],payable: false,stateMutability: "view",type: "function",},// 方法2:获取指定地址的代币余额{constant: true,inputs: [{name: "_owner",type: "address",},],name: "balanceOf",outputs: [{name: "balance",type: "uint256",},],payable: false,stateMutability: "view",type: "function",},// 方法3:转账代币到指定地址{constant: false,inputs: [{name: "_to",type: "address",},{name: "_value",type: "uint256",},],name: "transfer",outputs: [{name: "",type: "bool",},],payable: false,stateMutability: "nonpayable",type: "function",},]; // ERC20合约的ABI定义// 创建ERC20合约实例const erc20Contract = new web3.eth.Contract(erc20ABI, erc20Address);// 使用合约实例的balanceOf方法查询余额const balance = await erc20Contract.methods.balanceOf(account).call();setERC20Balance(balance.toString());} catch (error) {console.error("获取ERC20合约余额失败:", error);}}return (<Container maxWidth="sm"><Typography variant="h4" align="center" gutterBottom>查询账户余额</Typography><Button variant="contained" onClick={handleGetEthBalance}>查询ETH余额</Button>{ethBalance && (<Typography variant="body1" gutterBottom>当前ETH余额:{ethBalance} ETH</Typography>)}<TextFieldlabel="ERC20合约地址"value={erc20Address}onChange={(e) => setERC20Address(e.target.value)}fullWidthmargin="normal"/><Button variant="contained" onClick={handleGetERC20Balance}>查询ERC20余额</Button>{erc20Balance !== null && (<Typography variant="body1" gutterBottom>当前ERC20余额:{erc20Balance}</Typography>)}</Container>);
}

效果图:

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

http://www.yayakq.cn/news/157282/

相关文章:

  • 做网站需要掌握什么营商环境建设网站
  • 做购物网站的公司网站建设建站网易互客
  • 建立平台网站需要花多少钱网页游戏排行榜前十名国战
  • 行业网站建设公司如何做好一个网站的推广
  • 西宁电商网站制作公司优秀的电商app设计网站
  • 网站建设与维护流程图简单网站页面设计
  • 一般做网站上传的图片大小网页制作工具可以分为
  • 网站素材免费汕尾市企业网站seo点击软件
  • 深圳专业网站建设制作价格低网站维护中要多久才能重新进入
  • 建设公共资源交易中心网站丹阳建站
  • 手机app网站建设大连公司网站建设
  • 秦皇岛哪里做网站东莞长安网站
  • 学做网站会员页面设计的对称方法包括哪几种形式
  • 苏州在线网站制作地方网站运营教程
  • 商城网站建设精英深圳企业社保网站官网
  • 贵州省教育厅办公室关于开展2014年学校门户网站建设评估的通知建立网站难吗
  • WordPress的站内地图郑州计算机培训机构哪个最好
  • 上海网站建设找缘魁福州谷歌推广
  • vps配置iis网站wordpress presscore lite
  • 石家庄市城乡建设学校网站投资做网站利润分析
  • joomla建站教程苏州网络推广定制
  • 网站建设公司怎么开龙岩网红街在哪里
  • 手机网站html5模板重庆市建设工程信息网怎么查询不到安全管理证书
  • 手机微信网站开发教程安徽网站seo
  • 做网站是什么鬼网站的标签
  • 网站建设后台管理实训报告外包程序开发 公司
  • 360网站建设怎么用编辑器
  • 大连建设银行网站深圳创业补贴2024
  • html5 网站模版搜索引擎网站推广法怎么做
  • 深圳营销型网站方案做网站的有什么软件