UmiJs+react-web3连接Metamask钱包

这篇具有很好参考价值的文章主要介绍了UmiJs+react-web3连接Metamask钱包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 本人是步入Web3两个月的小菜鸟,经历了一个月react的后台项目开发,此文章适合刚进入区块链行业的前端同学使用 (掌握html、js、css),还请大佬们轻点!!

需求:

  • 添加Metamask插件

  • 实现点击按钮 -> 链接钱包,并在刷新时自动链接。
  • 实现点击按钮 -> 添加Chain节点。
  • 实现点击按钮 -> 切换Ethereum/Rinkeby节点,切换时页面将刷新。
  • 实现点击按钮 -> 获取账户余额。
  • 实现点击按钮 -> 获取账户签名

       

step1 Google浏览器安装Metamask钱包

        这里就不演示如何安装了,可以自行搜索,google插件进行安装

step2 使用UmiJs构建项目

        UmiJs官网:快速上手

        1、创建好文件夹后在终端中输入  yarn create @umijs/umi-app

        2、安装依赖     yarn add @web3-react/core   

                                 yarn add @web3-react/injected-connector

                                 yarn add @ethersproject/providers

                                 yarn add web3

             最后在终端输入  yarn   (其实也就是npm install 意思是一样的 只是工具不同)

        3、在src文件夹下创建app.tsx,运行时配置文件,将provider配置进去,这样程序运行时就可以检测到钱包了。(provider不明白的小伙伴,可以到这个链接,参考我师傅的说明React - Provider使用教程(context)、 react自带代替redux的方案 - 掘金)

//app.tsx
import { Web3ReactProvider } from '@web3-react/core';
import Web3 from 'web3';

export function rootContainer(container: any) {
  
  return (
    <Web3ReactProvider getLibrary={(provider: any) => new Web3(provider)}>
      {container}
    </Web3ReactProvider>
  );
}

         4、提供支持钱包的ChainId

        在src文件夹下创建web3文件夹,在web3文件夹里创建一个index.ts, 然后提供我们需要的ChainId

        

import { InjectedConnector } from '@web3-react/injected-connector';
export const injected = new InjectedConnector({
  supportedChainIds: [1, 3, 4, 5, 42, 97, 56],
});

        

        这时我们的项目结构应该是这个样子的:

react 使用uniset 连接欸钱包,前端,区块链,typescript,react.js

step3  调用钱包

         1、这个时候我们就可以在页面弄一个按钮,用来调用钱包啦。

               进入到src/pages/index.tsx文件中,把里面代码修改一下:(把代码删除后,输入fc就可以构建一个模板出来啦!)

              注意!最后是export default index ;!!!

import React from 'react';

export type IindexProps = {
  
}

const index: React.FC<IindexProps> = ({ }) => {
  return (
    <div>
      
    </div>
  );
}

export default index ;

      2、写一个按钮,写好一个点击事件,就可以利用web3-react连接到METAMASK啦!

           代码如下:

import { injected } from '@/web3';
import { Web3Provider } from '@ethersproject/providers';
import { useWeb3React } from '@web3-react/core';
import React from 'react';

export type IindexProps = {
  
}

const index: React.FC<IindexProps> = ({ }) => {
  const context = useWeb3React<Web3Provider>();
  const {
    connector,
    library,
    chainId,
    account,
    activate,
    deactivate,
    active,
    error,
  } = context;

  async function connect() {
    try {
      await activate(injected)
    } catch (error) {
      console.log(error);
      
    }
  }

  return (
    <div>
      <button onClick={connect}>点我连接钱包</button>
      {active ? (
        <span>
          Connected with <b>{account}</b>
        </span>
      ) : (
        <span>Not connected</span>
      )}
    </div>
  );
}

export default index ;

最后在终端中输入 yarn start ,跑起来看看

    react 使用uniset 连接欸钱包,前端,区块链,typescript,react.js

这样我们点击按钮后,就会调起MetaMask钱包进行连接啦!!

补充:

       GitHub - hshlss/web3Study

        这个是源码地址,里面包含了调用钱包,切换ChainId,获取余额,还有调用ERC20合约的一些方法,都在里面,适合像我一样的小菜鸟使用,没有做封装的代码,大家有需要可以自行下载哦~~~  文章来源地址https://www.toymoban.com/news/detail-824304.html

到了这里,关于UmiJs+react-web3连接Metamask钱包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用nodejs和web3js来实现链接MetaMask钱包并取消风险代币授权

    随着区块链技术的快速发展,数字货币资产在投资及交易市场中得到了广泛的应用。而在数字货币交易过程中,钱包是一个非常重要的环节。比如MetaMask就是一款非常流行的区块链钱包,它可以让用户在浏览器中安全地管理自己的数字资产。 然而,在数字货币交易过程中也存

    2024年01月23日
    浏览(46)
  • 【Web3】MetaMask钱包配置

    目录 主网更换测试网 私钥如何登录钱包 主网更换测试网 私钥如何登录钱包

    2024年02月12日
    浏览(88)
  • ethers.js Metamask和CoinbaseWallet,TronLink钱包连接方式

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 完成,年轻的程序员,大佬勿喷,希望对大家有用,有问题可以留言。

    2024年02月13日
    浏览(84)
  • 使用 React、Web3.js 和 Metamask 构建 Web3 dApp 身份验证

    我相信您和我一样对 Web3 充满热情。本文介绍了一种新的区块链开发登录方法:使用 MetaMask 扩展的一键式加密安全登录流程,所有数据都存储在我们自己的后端。它还可以保护我们的数据和加密货币的安全。 在这里,我们将构建一个允许用户使用 MetaMask 登录的身份验证解决

    2024年02月04日
    浏览(59)
  • 使用Web3.js与OKX Web3钱包进行交互:实现去中心化应用的无缝连接

    随着Web3.0技术的不断发展,越来越多的开发者开始探索如何利用去中心化钱包与区块链网络进行交互。在这篇文章中,我们将深入探讨如何通过Web3.js库来连接和操作OKX Web3钱包,以实现对加密货币、NFT以及链上智能合约的管理和交易。 Web3.js 是一个由以太坊社区开发的核心

    2024年02月19日
    浏览(47)
  • 安装MetaMask钱包

    1. 安装MetaMask 2.MetaMask注册使用 文章目录 一、MetaMask安装  1.打开谷歌应用市场: ​​​​​​https://chrome.google.com/webstore/category/extensions?hl=zh-CN https://chrome.google.com/webstore/category/extensions?hl=zh-CN 或 edge Microsoft Edge 加载项 https://microsoftedge.microsoft.com/addons/Microsoft-Edge-Extensions-Home

    2024年02月08日
    浏览(52)
  • 记录分享vue3通过web3.js连接MetaMask的流程及签名、验签方法

    记录下web3.js连接,希望对像我一样的小白有帮助。废话不多说,开整! 一、先在浏览器上面下载 小狐狸MetaMask插件,然后创建账户,创建成功之后默认连接的是以太坊 Ethereum 主网络,如果有相关网络的信息(如RPC URL和和链id等,可以自己添加,没有就先不管)。  二、本地项

    2024年02月06日
    浏览(53)
  • vue3 使用 web3.js;钱包转账;唤醒钱包.......

    web3.js基本使用 本篇文章不适合没有经验的小白,需要对web3有一定的了解,所以有些参数需要自己懂! 准备 安装web3.js依赖包 npm install web3 文档教程地址:https://web3.tryblockchain.org/ 这是我自己封装的类 web3.js 直接复制过去就可以用

    2024年02月03日
    浏览(51)
  • 新版以太坊Ethereum库ethersV5.0配合后端Golang1.18实时链接区块链钱包(Metamask/Okc)以及验签操作

    区块链去中心化思想无处不在,比如最近使用个体抗原自检替代大规模的中心化核酸检测,就是去中心化思想的落地实践,避免了大规模聚集导致的交叉感染,提高了检测效率,本次我们使用Ethereum最新的ethersV5.0以上版本链接去中心化区块链钱包,并且通过后端Golang1.18服务进

    2024年02月02日
    浏览(60)
  • 前端VUE使用web3调用小狐狸(metamask)和合约(ERC20)交互

    1.创建vue项目 2.安装web3 npm install web3 3.项目web3 main.js 项目结构 页面代码中引用web3,倒入ERC20代币的abi 项目页面   调用小狐狸metamask演示   项目任何难题,可以加入qq群:981921011      

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包