国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端Vue項目調(diào)用頁面web3.js:連接metaMask錢包,(查詢錢包ETH余額,查詢代幣余額,ETH轉(zhuǎn)賬,代幣轉(zhuǎn)賬,代幣授權(quán),查詢授權(quán)數(shù)量,計算價格)等功能

這篇具有很好參考價值的文章主要介紹了前端Vue項目調(diào)用頁面web3.js:連接metaMask錢包,(查詢錢包ETH余額,查詢代幣余額,ETH轉(zhuǎn)賬,代幣轉(zhuǎn)賬,代幣授權(quán),查詢授權(quán)數(shù)量,計算價格)等功能。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

這里分享下相關(guān)文檔

1.web3.js中文文檔 https://learnblockchain.cn/docs/web3.js/getting-started.html
2.metamask官方文檔:https://docs.metamask.io/

第一種方法:連接錢包

// 參考網(wǎng)址:https://blog.csdn.net/cjy_win/article/details/117248919?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_aa&utm_relevant_index=2

// 1.先確認自己的瀏覽器安裝了metaMask插件,建議谷歌瀏覽器

// 2.Vue項目安裝web3.js,使用npm安裝web3js依賴

//在vue中安裝web3
npm install web3 --save
//在main.js引入
import Web3 from 'web3'
Vue.prototype.Web3 = Web3

自己創(chuàng)建一個getWeb3.js文件把下面代碼放入里面,需要用到的頁面直接引入即可

import Web3 from "web3";
const getWeb3 = () =>
  new Promise((resolve, reject) => {
    // Wait for loading completion to avoid race conditions with web3 injection timing.
    window.addEventListener("load", async () => {
      // Modern dapp browsers...
      if (window.ethereum) {
        const web3 = new Web3(window.ethereum);
        try {
          // Request account access if needed
          await window.ethereum.enable();
          // Acccounts now exposed
          resolve(web3);
        } catch (error) {
          reject(error);
        }
      }
      // Legacy dapp browsers...
      else if (window.web3) {
        // Use Mist/MetaMask's provider.
        const web3 = window.web3;
        console.log("Injected web3 detected.");
        resolve(web3);
      }
      // Fallback to localhost; use dev console port by default...
      else {
        const provider = new Web3.providers.HttpProvider(
          "http://127.0.0.1:9545"
        );
        const web3 = new Web3(provider);
        console.log("No web3 instance injected, using Local web3.");
        resolve(web3);
      }
    });
  });
export default {
	getWeb3
};

3.上面是一個js方法,根據(jù)當(dāng)前頁面來初始化web3對象,在對應(yīng)頁面 通過  const Web3= require('../common/getWeb3') 引入,然后通過下面方法使用

注意:加web3前面必須有window : window.web3

 Web3.default.getWeb3().then((res) => {
      window.web3 = res;
      console.log("getWeb3", res);
    });

源碼:

<template>
  <div>
    <button @click="get()">連接錢包</button>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },
  mounted() {},
  methods: {
    get() {
      // web3前面必須有window
      const Web3 = require("../common/getWeb3");
      Web3.default.getWeb3().then((res) => {
        window.web3 = res;
        console.log("getWeb3", res);
      });
    }
  },
};
</script>

第二種方法: 連接錢包 安裝依賴直接可以使用

參考網(wǎng)址:https://blog.csdn.net/qq_16137795/article/details/120239103?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-120239103.pc_agg_new_rank&utm_term=web3+%E8%B0%83%E7%94%A8MetaMask%E9%92%B1%E5%8C%85%E8%BD%AC%E8%B4%A6eth&spm=1000.2123.3001.4430

// 1.先確認自己的瀏覽器安裝了metaMask插件,建議谷歌瀏覽器

// 2.Vue項目安裝web3.js,使用npm安裝web3js依賴

//在vue中安裝web3
npm install web3 --save
//在main.js引入
import Web3 from 'web3'
Vue.prototype.Web3 = Web3


注意:ethereum 和 web3 前必須有window:  window.ethereum window.web3

 if (window.ethereum) {
        window.ethereum.enable().then((res) => {
          alert("當(dāng)前錢包地址:" + res[0]);
        });
      } else {
        alert("請安裝MetaMask錢包");
      }

源碼:

<template>
  <div class="home">
    <button @click="get">連接錢包</button>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },
  mounted() {},
  methods: {
    get() {
      if (window.ethereum) {
        window.ethereum.enable().then((res) => {
          alert("當(dāng)前錢包地址:" + res[0]);
        });
      } else {
        alert("請安裝MetaMask錢包");
      }
    },
  },
};
</script>

前端Vue項目調(diào)用頁面web3.js:連接metaMask錢包,(查詢錢包ETH余額,查詢代幣余額,ETH轉(zhuǎn)賬,代幣轉(zhuǎn)賬,代幣授權(quán),查詢授權(quán)數(shù)量,計算價格)等功能

其他功能:

1、在 mounted 中自動檢測瀏覽器是否安裝MetaMask錢包

 mounted () {
    if (window.ethereum) {
      window.ethereum.enable().then((res) => {
        //alert("當(dāng)前錢包地址:"+res[0])
      })
    }else{
      alert("請安裝MetaMask錢包")
    }
  }

2、查詢錢包ETH余額

let web3 = new Web3(window.web3.currentProvider)
let fromAddress = web3.eth.accounts[0];
web3.eth.getBalance(fromAddress,(err, res) => {
   if (!err) {
       console.log("ETH余額==",res.toNumber()/Math.pow(10,18));
   }
 })

3、查詢代幣余額

let web3 = new Web3(window.web3.currentProvider)
let fromAddress = web3.eth.accounts[0];
let ethContract = web3.eth.contract("代幣合約Abi")
let functionInstance = ethContract.at("代幣合約地址")
functionInstance.balanceOf(fromAddress,(err, res) => {
   if (!err) {
       //代幣精度根據(jù)所發(fā)行的代幣合約精度換算 
       console.log("代幣余額==",res.toNumber()/Math.pow(10,18));
   }
})

4、ETH轉(zhuǎn)賬

let web3 = new Web3(window.web3.currentProvider)
let fromAddress = web3.eth.accounts[0];
//轉(zhuǎn)賬數(shù)量
let amount = 1*Math.pow(10,18);
//收款地址
let toAddress = "0x40141cF4756A72DF8D8f81c1E0c2ad403C127b9E";
web3.eth.sendTransaction({
    gas: 21000,
    gasPrice: 5000000000,
    from: fromAddress,
    to: toAddress,
    value: amount
 }, (err, result) => {
     console.log("轉(zhuǎn)賬Hash=",result)
 })

5、代幣轉(zhuǎn)賬

let web3 = new Web3(window.web3.currentProvider)
let ethContract = web3.eth.contract("代幣Abi")
let functionInstance = ethContract.at("代幣地址")
//當(dāng)前錢包地址
let fromAddress = web3.eth.accounts[0];
//轉(zhuǎn)賬數(shù)量
let amount = 100*Math.pow(10,18);
//接收地址
let toAddress = "0x40141cF4756A72DF8D8f81c1E0c2ad403C127b9E";
functionInstance.transfer(toAddress,amount,{
     gas: 21000,
     gasPrice: 5000000000,
     from: fromAddress
 }, (err, result) => {
       console.log("轉(zhuǎn)賬Hash:",result)
  })

6、代幣授權(quán)

let web3 = new Web3(window.web3.currentProvider)
let abiContract = web3.eth.contract("代幣合約Abi")
let contractInstance = abiContract.at("代幣合約地址")
//當(dāng)前錢包地址
var fromAddress = web3.eth.accounts[0];
//授權(quán)數(shù)量
var amount = 1000 * Math.pow(10,18);
contractInstance.approve("授權(quán)地址",amount,{
    gas: 80000,
    gasPrice: 1500000000,
    from: fromAddress
}, (err, result) => {
    console.log("交易Hash:",result)
})

7、查詢授權(quán)數(shù)量

let web3 = new Web3(window.web3.currentProvider)
let abiContract = web3.eth.contract("代幣合約Abi")
let contractInstance = abiContract.at("代幣合約地址")
contractInstance.allowance("授權(quán)的用戶錢包地址","授權(quán)的地址",(err, res) => {
    if (!err) {
        console.log("授權(quán)數(shù)量==",res.toNumber());
    }
})

8、查詢?nèi)ブ行幕灰姿鵏P地址數(shù)量 計算價格文章來源地址http://www.zghlxwxcb.cn/news/detail-508566.html

let web3 = new Web3(window.web3.currentProvider)
let ethContract = web3.eth.contract("LP合約Abi")
let functionInstance = ethContract.at("LP合約地址")
functionInstance.getReserves((err, res) => {
  if (!err) {
        // 代幣數(shù)量1 res[0].toNumber()
        // 代幣數(shù)量2 res[1].toNumber()
        //根據(jù)先后順序 2個相除可以得到價格
    }
})

到了這里,關(guān)于前端Vue項目調(diào)用頁面web3.js:連接metaMask錢包,(查詢錢包ETH余額,查詢代幣余額,ETH轉(zhuǎn)賬,代幣轉(zhuǎn)賬,代幣授權(quán),查詢授權(quán)數(shù)量,計算價格)等功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • ??礧EB3.3控件開發(fā)包 V3.3 前端vue項目調(diào)用實時監(jiān)控畫面

    ??礧EB3.3控件開發(fā)包 V3.3 前端vue項目調(diào)用實時監(jiān)控畫面

    公司業(yè)務(wù)迭代, 需要前端vue項目里增加一個查看實時監(jiān)控模塊, 這個需求是之前離職的前端小哥沒有研究明白的, 現(xiàn)在落在了我的肩上, 壓力還是有的. 但是壓力歸壓力, 問題還是要解決的. 第一步: 調(diào)研大佬們已經(jīng)實現(xiàn)的方案, 找設(shè)備對接. 公司后端大佬提出用官方SDK稍加修改即

    2024年02月08日
    瀏覽(22)
  • MetaMask與Web3中智能合約調(diào)用(2)

    MetaMask與Web3中智能合約調(diào)用(2)

    智能合約交易區(qū)別于點對點交易,智能合約交易只需付費給礦工費用,也就是gas fee,是支付給礦工的手續(xù)費,當(dāng)我們在以太坊區(qū)塊鏈上進行轉(zhuǎn)賬時,礦工要把我們的交易打包并放上區(qū)塊鏈,才能使交易完成,在這過程中會消耗區(qū)塊鏈的運算資源,所以要支付費用 這個過程為

    2024年01月16日
    瀏覽(29)
  • 使用 React、Web3.js 和 Metamask 構(gòu)建 Web3 dApp 身份驗證

    我相信您和我一樣對 Web3 充滿熱情。本文介紹了一種新的區(qū)塊鏈開發(fā)登錄方法:使用 MetaMask 擴展的一鍵式加密安全登錄流程,所有數(shù)據(jù)都存儲在我們自己的后端。它還可以保護我們的數(shù)據(jù)和加密貨幣的安全。 在這里,我們將構(gòu)建一個允許用戶使用 MetaMask 登錄的身份驗證解決

    2024年02月04日
    瀏覽(31)
  • 使用Node.js和Web3.js實現(xiàn)鏈接MetaMask錢包并批量創(chuàng)建錢包并且批量發(fā)送代幣

    MetaMask是一款基于瀏覽器的插件錢包,它可以安全地存儲、發(fā)送和接收以太坊(Ethereum)代幣。而Web3.js是一款JavaScript庫,可以通過它連接以太坊區(qū)塊鏈網(wǎng)絡(luò)并管理以太坊錢包。 在此文中,我們將學(xué)習(xí)如何使用Node.js和Web3.js編程語言編寫代碼,實現(xiàn)鏈接MetaMask錢包并批量創(chuàng)建錢

    2024年02月08日
    瀏覽(54)
  • 使用nodejs和web3js實現(xiàn)鏈接metamask錢包并實現(xiàn)合約交互

    在以太坊區(qū)塊鏈上,metamask錢包是一個非常常用的錢包,用以管理以太幣和其他以太坊資產(chǎn)。同時,它也是一個重要的以太坊智能合約交互工具。在本文中,我們將介紹如何使用nodejs和web3js實現(xiàn)鏈接metamask錢包并實現(xiàn)合約交互。 在開始之前,首先需要安裝NodeJS和Web3JS。 NodeJS是

    2024年02月04日
    瀏覽(32)
  • 使用nodejs和web3js來實現(xiàn)鏈接MetaMask錢包并取消風(fēng)險代幣授權(quán)

    隨著區(qū)塊鏈技術(shù)的快速發(fā)展,數(shù)字貨幣資產(chǎn)在投資及交易市場中得到了廣泛的應(yīng)用。而在數(shù)字貨幣交易過程中,錢包是一個非常重要的環(huán)節(jié)。比如MetaMask就是一款非常流行的區(qū)塊鏈錢包,它可以讓用戶在瀏覽器中安全地管理自己的數(shù)字資產(chǎn)。 然而,在數(shù)字貨幣交易過程中也存

    2024年01月23日
    瀏覽(36)
  • 【W(wǎng)eb3】MetaMask錢包配置

    【W(wǎng)eb3】MetaMask錢包配置

    目錄 主網(wǎng)更換測試網(wǎng) 私鑰如何登錄錢包 主網(wǎng)更換測試網(wǎng) 私鑰如何登錄錢包

    2024年02月12日
    瀏覽(23)
  • Web3簡述MetaMask并演示谷歌安裝MetaMask擴展程序方式

    Web3簡述MetaMask并演示谷歌安裝MetaMask擴展程序方式

    我們會基本使用顯然不夠啊 我們要去了解mustache的原理 乃至自己去寫一個mustache 首先 mustache 不是不能用簡單的正則表達式來實現(xiàn) 但是 這里為了讓大家理解 為什么不能 我們還是用簡單正則寫一下 我們創(chuàng)建一個 html文件 然后 編寫代碼如下 這里 我們定義了一個模板字符串 t

    2024年02月09日
    瀏覽(72)
  • Web3.js在以太坊上部署和調(diào)用智能合約

    介紹如何使用Web3.js在以太坊上部署和調(diào)用智能合約;Web3.js是以太坊JavaScript API的實現(xiàn),它可以與以太坊區(qū)塊鏈進行交互 智能合約編寫 使用Solidity編寫一個簡單的智能合約,然后使用Web3.js將其部署到以太坊區(qū)塊鏈,通過JavaScript調(diào)用該智能合約 這個智能合約非常簡單。它有兩

    2024年02月16日
    瀏覽(20)
  • Web3在HTML中獲取 MetaMask 啟用的用戶列表

    Web3在HTML中獲取 MetaMask 啟用的用戶列表

    當(dāng)然 我們還是要先啟動ganache環(huán)境 然后 通過MetaMask 導(dǎo)入一些用戶 然后 我們需要在頁面中引入 web3.min.js 如果您還沒有這個文件 可以查看我的文章web3.js獲取導(dǎo)入 然后我訪問官網(wǎng) https://learnblockchain.cn/docs/web3.js/web3-eth.html#getchainid 打開后 先來到 web3.eth 下面 下面有一個 getAccount

    2024年02月11日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包