【区块链】走进web3的世界-钱包的作用

1、什么是web3钱包

        web3钱包是用来存储代币、NFT等数字资产的数字钱包, 我们平时常听到的加密钱包和web3钱包是同一个东西,只是叫法不一样。钱包它也是个人身份凭证,用户可以通过钱包登录各种web3 web应用和DAPP。一定要保管好你的助记词,谁拥有助记词,谁将拥有这个钱包的控制权

2、常用的web3热钱包

        市场上很多种类的热钱包,其功能都相差不大,都具备发送数字资产、接受数字资产、作为个人凭证登录web3 Web应用和DAPP的功能,同时和智能合约进行数据通讯。

        平时较常用的钱包有MetaMask、TrustWallet。MetaMask主要在Web端,以浏览器插件形式存在。TrustWallet主要在移动端。

3、钱包在和合约交互中的作用

        首先我们需要连接一个概念provider,Provider(提供者)是一个用于连接以太坊网络的抽象类,提供了只读形式来访问区块链网络和获取链上状态。在这里ethers默认提供了一个provider,因此我们是可以在不连接钱包的情况在,在智能合约上进行一些查询操作的。例如:查询域名注册状态,查询域名价格等。

        我们连接钱包的目的,也是为了获取钱包的RPC,因此可以通过本地写死RPC的形式,来保证一些查询操作的正常进行。

我们Dapp设计原则是,越方便越好,除非必要,不进行连接钱包的强校验。


import { ethers } from "ethers";

// 方法1
const provider = ethers.getDefaultProvider()

// 方法2,将rpc地址替换即可
const providerRpc = new ethers.providers.JsonRpcProvider(`https://mainnet.infura.io/v3/`)

// RPC地址
{
    "ethMain": {
        "chainId": 1,
        "netInfo": {
            "chainName": "以太坊主网",
            "Nodes": "https://mainnet.infura.io/v3/",
            "BlockExplorerUrls": "https://etherscan.io"
        },
        "nativeCurrency": {
            "name": "ETH",
            "symbol": "ETH",
            "decimals": 18
        }
    },
    "bnbMain": {
        "chainId": 56,
        "netInfo": {
            "chainName": "BSC MAINNET",
            "Nodes": "https://bsc-dataseed.binance.org",
            "BlockExplorerUrls": ""
        },
        "nativeCurrency": {
            "name": "UNKNOWN",
            "symbol": "UNKNOWN",
            "decimals": 18
        }
    },
    "ethTest": {
        "chainId": 5,
        "netInfo": {
            "chainName": "ENS TEST",
            "Nodes": "https://goerli.infura.io/v3/",
            "BlockExplorerUrls": "https://etherscan.io"
        },
        "nativeCurrency": {
            "name": "ETH",
            "symbol": "ETH",
            "decimals": 18
        }
    },
    "bnbTest": {
        "chainId": 97,
        "netInfo": {
            "chainName": "BSC TEST",
            "Nodes": "https://bsc-testnet.public.blastapi.io",
            "BlockExplorerUrls": ""
        },
        "nativeCurrency": {
            "name": "tBNB",
            "symbol": "tBNB",
            "decimals": 18
        }
    },
    "doMain": {
        "chainId": 137,
        "netInfo": {
            "chainName": "BSC MAINNPolygon Mainnet",
            "Nodes": "https://polygon-mainnet.infura.io",
            "BlockExplorerUrls": "https://polygonscan.com/"
        },
        "nativeCurrency": {
            "name": "MATIC",
            "symbol": "MATIC",
            "decimals": 18
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_23334071/article/details/130179558