<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      如何向合約轉(zhuǎn)BNB?

      現(xiàn)在遇到了一大問(wèn)題,就是不知道如何向合約來(lái)轉(zhuǎn)BNB

      我想實(shí)現(xiàn)的功能就是說(shuō),有一個(gè)button,點(diǎn)擊button,Metamask的彈窗就彈出來(lái)授權(quán),然后從錢包中轉(zhuǎn)出1個(gè)BNB

      我參考的資料如下,沒(méi)準(zhǔn)把這些知識(shí)串起來(lái)就明白了

       

      參考文章如下:

      https://blog.csdn.net/qq_16137795/article/details/120239103?utm_source=app&app_version=4.17.2&code=app_1562916241&uLinkId=usr1mkqgl919blen

       

      代碼如下:

       

      
      
      import React, {Component} from 'react';
      import Web3 from "web3";


      /*******************************************************************************************
      * 1.一個(gè)實(shí)例化的provider,可以是metamask ,infura,ganache,或者搭建以太坊節(jié)點(diǎn) **
      * **
      2.合約的abi,自己填寫(xiě)的合約通過(guò)編譯后獲得abi,鏈上的合約需要開(kāi)源才能獲得abi,erc代幣合約的abi其實(shí)都一樣 ** **
      *
      3.實(shí)例化web3.js 或者 ether.js
      *
      4.通過(guò)abi和合約地址將合約實(shí)例化
      *
      5.調(diào)用合約方法 call 或者 send
      *
      * ******************************************************************************************/

      class App extends Component {
      constructor(props) {
      super(props);
      this.state = {
      value: 0
      };
      }

      //這個(gè)comreact的一個(gè)生命周期,在頁(yè)面加載完之后會(huì)執(zhí)行這里面的程序
      async componentDidMount() {
      //判斷用戶是不是安裝了metamask
      if (typeof window.ethereum !== 'undefined') {
      const ethereum = window.ethereum
      //禁止自動(dòng)刷新,meta mask要求寫(xiě)的
      ethereum.autoRefreshOnNetworkChange = false;

      try {
      //這一步就是第一次和metamask進(jìn)行鏈接
      const accounts = await ethereum.enable()
      console.log(accounts)
      console.log("鏈接成功小狐貍!!")
      //初始化provider,其實(shí)這個(gè)provider就是節(jié)點(diǎn),小狐貍也是一個(gè)節(jié)點(diǎn)
      const provider = window['ethereum']

      //獲取網(wǎng)絡(luò)id
      console.log("chan id is ")
      console.log(provider.chainId)


      //實(shí)例化web3,注意哈,這里是大寫(xiě)
      const web3 = new Web3(provider)

      console.log("ssssssss")
      console.log(accounts[0])


      let fromAddress = accounts[0];
      //轉(zhuǎn)賬數(shù)量
      //let amount = 1*Math.pow(10,18);
      // 如果要是18就是1BNB,如果要是17,就是0.1BNB
      // 如果要是 2*Math.pow(10,17) 就是 0.2BNB
      let amount = 1*Math.pow(10,17);
      //收款地址
      let toAddress = "0x40141cF4756A72DF8D8f81c1E0c2ad403C127b9E";
      web3.eth.sendTransaction({
      gas: 21000,
      gasPrice: 5000000000,
      from: fromAddress,
      to: toAddress,
      value: amount
      }, (err, result) => {
      console.log("轉(zhuǎn)賬Hash=",result)
      })




      //捕獲兩個(gè)事件,當(dāng)前的頁(yè)面切換網(wǎng)絡(luò)ID和當(dāng)前賬號(hào)
      ethereum.on('accountsChanged', function (accounts) {
      console.log("當(dāng)前賬戶發(fā)生更改:" + accounts)
      })
      ethereum.on('networkChanged', function (networkVersion) {
      console.log("networkChanged" + networkVersion)
      })
      } catch (e) {

      }

      } else {
      console.log("沒(méi)有安裝小狐貍!")
      }

      }

      //定義兩個(gè)方法
      Getter = () => {
      window.myContract.methods.getdata().call(null,function(error, resultt){

      console.log("the data:"+resultt);

      // this.setState({value: resultt})
      });
      }


      Increase = () => {
      window.myContract.methods.increase(2).send({from:window.defauleAccount})
      .on('transactionHash',(transactionHash)=>{
      console.log('transactionhash == ' + transactionHash)
      })
      .on('confirmation',(confirmation) => {
      // console.log('confirmation == ' + confirmation )
      })

      }


      render() {
      return (
      <div>
      <div>{this.state.value}</div>
      <div>
      <button onClick={() => {this.Getter()}}>Getter</button>
      </div>
      <div>
      <button onClick={() => {this.Increase()}}>Increase</button>
      </div>
      <div></div>
      </div>
      );
      }
      }

      export default App;
       

       

       終于明白:

      代碼不變,

      如果選擇ETH鏈,轉(zhuǎn)賬時(shí)候的彈框就會(huì)顯示 1 eth

      如果選擇 Binance 鏈,轉(zhuǎn)賬的時(shí)候就會(huì)顯示 1 bnb

       

      posted @ 2022-01-05 10:02  鏈寧區(qū)塊鏈安全服務(wù)  閱讀(641)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 这里只有精品在线播放| 国产亚洲精品中文字幕| 欧美性大战久久久久久| 亚洲小说乱欧美另类 | 777奇米四色成人影视色区| 国产在线无码精品无码| 成在线人免费视频| 人妻久久久一区二区三区| 狠狠v日韩v欧美v| 成人亚洲国产精品一区不卡| 日日爽日日操| 亚洲另类欧美综合久久图片区| 国产好大好硬好爽免费不卡| av综合网男人的天堂| 亚洲欧洲一区二区免费| 国产精品日本一区二区不卡视频| 91福利一区福利二区| av色欲无码人妻中文字幕| 日本五十路熟女一区二区| 国产精品VA尤物在线观看| 国产大学生粉嫩无套流白浆| 亚洲精品久久久久久无码色欲四季 | 久久精品国产亚洲αv忘忧草| 少妇人妻挤奶水中文视频毛片| 无码天堂亚洲国产av麻豆| 国产精品欧美一区二区三区不卡| 荣成市| 久久亚洲日韩精品一区二区三区| 欧美性群另类交| 大足县| 国产成人精品成人a在线观看| 巨爆乳中文字幕爆乳区| 中国老熟妇自拍hd发布| 免费观看欧美猛交视频黑人| 奉贤区| 午夜精品久久久久久久爽| 日本道高清一区二区三区| 麻豆国产成人av高清在线| 国产精品呻吟一区二区三区| 亚洲精品不卡无码福利在线观看| 民和|