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

前端VUE使用web3調(diào)用小狐貍(metamask)和合約(ERC20)交互

這篇具有很好參考價值的文章主要介紹了前端VUE使用web3調(diào)用小狐貍(metamask)和合約(ERC20)交互。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.創(chuàng)建vue項目

2.安裝web3

npm install web3

3.項目web3

main.js

import Vue from 'vue'
import App from './App.vue'
import Web3 from 'web3'
Vue.config.productionTip = false
Vue.prototype.Web3 = Web3

new Vue({
  render: h => h(App),
}).$mount('#app')

項目結(jié)構(gòu)

vue中調(diào)用metamask,區(qū)塊鏈,javascript,vscode

頁面代碼中引用web3,倒入ERC20代幣的abi

<template>
  <div>
    <p>{{msg}}</p>
    <button @click="get">連接錢包</button>
    <button @click="getETH">獲取賬戶信息</button>
    <button @click="getTransfer">ETH轉(zhuǎn)帳</button>
    <button @click="getTokenBalance">代幣余額</button>
    <button @click="getTokenTransfer">轉(zhuǎn)賬代幣</button>
    <button @click="getAllowance">查詢授權(quán)金額</button>
    <button @click="getApprove">授權(quán)</button>


  </div>
  
</template>

<script>
import Web3 from 'web3'
import abi from '../abi/ERC20.json'
export default {
  name: 'Connect',
  props: {
    msg: String
  },
  data() {
    return {};
  },
  mounted() {},
  methods: {
    getData(){
      console.log('first')
    },
    get() {  // 喚起錢包
      if (window.ethereum) {
        window.ethereum.enable().then((res) => {
          alert("當前錢包地址:" + res[0]);
        });
      } else {
        alert("請安裝MetaMask錢包");
      }
    },
    async getETH() {
      let web3 = new Web3(window.web3.currentProvider)
      console.log(web3)
      // console.log(web3.eth.getAccounts())
      let fromAddress = await web3.eth.getAccounts()
      console.log(web3.eth.getBalance(fromAddress[0]))
      console.log(fromAddress)
      web3.eth.getBalance(fromAddress[0],(err, res) => {
        if (!err) {
            alert("ETH余額=="+res/Math.pow(10,18));
            //console.log(res)
        }
      })
    },
    //ETH轉(zhuǎn)賬
    async getTransfer(){
      let web3 = new Web3(window.web3.currentProvider)
      let fromAddress = await web3.eth.getAccounts()
      let amount = 0.01*Math.pow(10,18);
      let toAddress = "0x17D98A1c1D4814B03d71a08a07AF4C8CCABb7E2E";
      web3.eth.sendTransaction({
        gas: 21000,
        gasPrice: 5000000000,
        from: fromAddress[0],
        to: toAddress,
        value: amount
      }, (err, result) => {
        console.log("轉(zhuǎn)賬Hash=",result)
      })
    },
    //查詢代幣余額
    async getTokenBalance(){
      if(window.web3) {
        var web3 = web3 = new Web3(window.web3.currentProvider);
        let fromAddress = "0x394A64e586FC05bD28783351F14dfcc426EFD230";//查詢用戶地址
        let ethContract = new web3.eth.Contract(abi.abi,"0x3d2dd604866d0ec1ddd5e8ef27848a6fc0962018") //所有代幣的abi可以通用(abi,合約地址)
        let balance = await ethContract.methods.balanceOf(fromAddress).call()
        alert(balance)

      }
    },
    //直接轉(zhuǎn)賬充幣地址
    async getTokenTransfer(){
      if(window.web3) {
        let web3 = new Web3(window.web3.currentProvider)
         let ethContract = new web3.eth.Contract(abi.abi,"0x3d2dd604866d0ec1ddd5e8ef27848a6fc0962018") //所有代幣的abi可以通用(abi,合約地址)
        //轉(zhuǎn)賬數(shù)量
        let amount = 100*Math.pow(10,18);//轉(zhuǎn)賬100個
        //小狐貍賬戶
        let fromAddress = await web3.eth.getAccounts()
        //接收地址
        let toAddress = "0xcaD75EADAf24F41d6274E129d7aE54764d7cd8E7";
        ethContract.methods.transfer(toAddress,amount+'').send({ from: fromAddress[0] })
    }

  },
  //查詢授權(quán)金額
    async getAllowance(){
      if(window.web3) {
        let web3 = new Web3(window.web3.currentProvider)
        let fromAddress = "0x394A64e586FC05bD28783351F14dfcc426EFD230";//查詢地址
        let ethContract = new web3.eth.Contract(abi.abi,"0x3d2dd604866d0ec1ddd5e8ef27848a6fc0962018") //所有代幣的abi可以通用(abi,合約地址)
        let toAddress = "0xcaD75EADAf24F41d6274E129d7aE54764d7cd8E7";//被授權(quán)地址
        let balance = await ethContract.methods.allowance(fromAddress,toAddress).call()
        alert("授權(quán)金額"+balance/Math.pow(10,18))

      }
    },

    //授權(quán)
    async getApprove(){
      if(window.web3) {
        let web3 = new Web3(window.web3.currentProvider)
        let ethContract = new web3.eth.Contract(abi.abi,"0x3d2dd604866d0ec1ddd5e8ef27848a6fc0962018") //所有代幣的abi可以通用(abi,合約地址)
        //授權(quán)數(shù)量
        let amount = 100*Math.pow(10,18);//轉(zhuǎn)賬100個
        let toAddress = "0xcaD75EADAf24F41d6274E129d7aE54764d7cd8E7";//被授權(quán)地址
        //小狐貍賬戶
        let fromAddress = await web3.eth.getAccounts()
        ethContract.methods.approve(toAddress,amount+'').send({ from: fromAddress[0] })
      }
    }
}
}
</script>

<style>

</style>


項目頁面

vue中調(diào)用metamask,區(qū)塊鏈,javascript,vscode?

調(diào)用小狐貍metamask演示

vue中調(diào)用metamask,區(qū)塊鏈,javascript,vscode?

項目任何難題,可以加入qq群:981921011

?文章來源地址http://www.zghlxwxcb.cn/news/detail-613293.html

?

?

到了這里,關(guān)于前端VUE使用web3調(diào)用小狐貍(metamask)和合約(ERC20)交互的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Java Web3J :使用web3j調(diào)用自己的智能合約的方法(教程)

    代碼世界有很多令人大呼小叫的技巧!有的代碼像魔術(shù)師一樣巧妙地隱藏了自己,有的像魔法師一樣讓你眼花繚亂,還有的像瑜伽大師一樣靈活自如。它們讓我們驚嘆不已,讓我們覺得自己仿佛置身于編碼的魔幻世界??靵矸窒砟阋娺^哪些令你膛目結(jié)舌的代碼技巧吧! web3j是

    2024年02月04日
    瀏覽(25)
  • java使用web3j,部署智能合約在測試鏈上,并調(diào)用(萬字詳細教程)

    java使用web3j,部署智能合約在測試鏈上,并調(diào)用(萬字詳細教程)

    最近在學區(qū)塊鏈相關(guān),想做點自己感興趣的。網(wǎng)上關(guān)于這塊部分的坑也比較多,最近也是問了很多行業(yè)從事者才慢慢填坑,因此記錄下來分享一下。 錢包 :metemask、 solidity編譯器 :remix 、 java ide :idea。 智能合約編寫的我選擇在remix上方便,而且部署的時候不需要自定義gasP

    2024年01月16日
    瀏覽(25)
  • Java Web3J :使用web3j調(diào)用自己的智能合約,返回一個內(nèi)部有數(shù)組的對象結(jié)構(gòu)時出現(xiàn)NPE問題

    之前有寫過一篇文章Java Web3J :使用web3j調(diào)用自己的智能合約的方法(教程),當時只是簡單的方法調(diào)用,也不涉及到什么復雜的數(shù)據(jù)類型,入?yún)⑹莑ong類型,出參是String類型。 遇到這個問題是因為有一個方法,需要通過提案的治理id,查詢鏈上提案數(shù)據(jù),這個就需要接收提案

    2024年01月19日
    瀏覽(23)
  • 使用Ganache,web3js和remix在個人區(qū)塊鏈上部署并調(diào)用合約

    使用Ganache,web3js和remix在個人區(qū)塊鏈上部署并調(diào)用合約

    Ganache是一個運行在本地的個人區(qū)塊鏈,適用于以太坊的開發(fā)者。 首先我們需要下載Ganache web3js的中文文檔 remix英文版的網(wǎng)址 有以上的準備之后我們就可以開始了 首先啟動Ganache 這就是Ganache的主頁面,下面有10個供我們使用的賬號,上面有他們的地址以及余額,我們暫時需要

    2024年01月19日
    瀏覽(49)
  • ??礧EB3.3控件開發(fā)包 V3.3 前端vue項目調(diào)用實時監(jiān)控畫面

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

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

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

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

    2024年02月04日
    瀏覽(31)
  • 記錄分享vue3通過web3.js連接MetaMask的流程及簽名、驗簽方法

    記錄分享vue3通過web3.js連接MetaMask的流程及簽名、驗簽方法

    記錄下web3.js連接,希望對像我一樣的小白有幫助。廢話不多說,開整! 一、先在瀏覽器上面下載 小狐貍MetaMask插件,然后創(chuàng)建賬戶,創(chuàng)建成功之后默認連接的是以太坊 Ethereum 主網(wǎng)絡,如果有相關(guān)網(wǎng)絡的信息(如RPC URL和和鏈id等,可以自己添加,沒有就先不管)。 ?二、本地項

    2024年02月06日
    瀏覽(40)
  • 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)
  • 手把手部署區(qū)塊鏈智能合約及python的web3接口調(diào)用

    手把手部署區(qū)塊鏈智能合約及python的web3接口調(diào)用

    說句實話,在做區(qū)塊鏈、智能合約、搭私鏈、pythonWeb3接口調(diào)用這些東西的時候,心里崩潰了不止四五十回,如果可以選別的方向,博主勸你趕緊換,人生已經(jīng)很不容易了,別給自己找罪受。。。。。 創(chuàng)世塊是什么請自行搜索,網(wǎng)絡上很多示例的創(chuàng)世塊博主都試過,在實際使

    2024年02月04日
    瀏覽(27)
  • 以太坊Dapp通過web3js部署調(diào)用智能合約

    以太坊Dapp通過web3js部署調(diào)用智能合約

    參考視頻:https://www.bilibili.com/video/BV14z4y1Z7Jd?p=1 https://remix.ethereum.org/ 創(chuàng)建一個新的文件夾 mkdir MyDapp2 啟動 ganache-cli 下載web3 npm install web3 ,注:ganache的啟動和deploy.js要在同一個目錄。 先進行測試 node deploy.js 部署合約 web3的版本:1.7.1 復制 WEB3DEPLOY 的內(nèi)容到deploy.js == ganache需要

    2023年04月23日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包