Skip to content

DApp 授权

一、DApp 与 以太坊(ETH)钱包授权、交互

web3官方文档 v1.2.6

支持以太坊的浏览器如 Mist 或 MetaMask 会有提供一个 ethereumProviderweb3.currentProvider 。对于 web3.js 来说,可以检查 Web3.givenProvider ,如果属性为 null 再连接本地或远程的节点。

web3官方文档 v1.3.0

Most Ethereum-supported browsers like MetaMask have an EIP-1193 compliant provider available at window.ethereum.For web3.js, check Web3.givenProvider.

javascript
import Web3 from "web3";

let web3Instance;

 /**
  * 该函数应在页面加载完成后调用
  * js --> onload
  * vue --> mounted
  * react --> useEffect
  * 通过 web3Instance 可与钱包进行交互 https://web3js.readthedocs.io/en/v1.3.0/getting-started.html
  */

async function initWeb3 () {

  // 判断是否有web3实例
  if (!!window.web3) {
    web3Instance = new Web3(window.web3.currentProvider);
  } else {
    web3Instance = new Web3(Web3.givenProvider || YOUR_RPC_ADDRESS);
  }

  // 判断是否有 ethereum
  if (window.ethereum) {
    // 函数中 可以使用 async/await 关键字调用
    // accounts 为获取的钱包账号数组 string[]
    const accounts =  await window.ethereum.enable();
  }

}

二、DApp 与 波宝(TRX)钱包授权、交互

波宝文档

TronWeb对象 API

Released under the MIT License.