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

【W(wǎng)eb3】 Web3JS Pay Api

這篇具有很好參考價值的文章主要介紹了【W(wǎng)eb3】 Web3JS Pay Api。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Web3Network.eth.sendSignedTransaction(serializedTx)

參數(shù):

  • from- String|Number:發(fā)送帳戶的地址。如果未指定,則使用web3.eth.defaultAccount屬性。或web3.eth.accounts.wallet中本地的地址。

  • to- String:(可選)消息的目標地址,若未定義則為發(fā)送消息。

  • value- Number|String|BN|BigNumber:(可選)為wei中的交易轉(zhuǎn)移的數(shù)量,如果是發(fā)送消息,則是捐贈給地址。

  • gas - Number:(可選,默認:待定)用于交易的gas(未使用的gas會退還)。

  • gasPrice- Number|String|BN|BigNumber:(可選)此交易的gas價格,以wei為單位,默認為web3.eth.gasPrice。

  • data- String:(可選)包含合同上函數(shù)調(diào)用數(shù)據(jù)的ABI字節(jié)字符串。

  • nonce- Number:(可選)隨機數(shù)的整數(shù)。

EthPayApi

介紹:實現(xiàn)流程一共分為兩部分,一完成Api參數(shù)、二完成privateKey加密發(fā)起Pay

初始化

npm install web3

<script setup name="EthPay">
import Web3 from 'web3'

const Web3Network = new Web3(
  Web3.givenProvider || 'wss://goerli.infura.io/ws/v3/xxx'
)
</script>

'wss://goerli.infura.io/ws/v3/xxx' 網(wǎng)絡(luò)節(jié)點需要替換為自己的網(wǎng)絡(luò)節(jié)點,如果拿到自己網(wǎng)絡(luò)節(jié)點查看:
【W(wǎng)eb3】Web3連接到以太坊網(wǎng)絡(luò)(測試網(wǎng)、主網(wǎng))_春暖花開.,的博客-CSDN博客


一.Api參數(shù)

定義自己Eth賬號

//錢包地址
const walletAddress = ref('你的ETh地址')
//錢包私鑰
const walletPrivateKey = ref(
  '你的Eth私鑰'
)

參數(shù)一共分為

form //發(fā)送方地址 ? ?
nonce //發(fā)送方交易次數(shù) ? ?
gasPric //預(yù)估手續(xù)費
to //接收方地址 ? ?
value //以wei單位數(shù)量? ?
data //轉(zhuǎn)Token代幣會用到的一個字段
gas //用于交易gas

1.nonce transaction次數(shù)

  //transaction次數(shù)
  const numberTransaction = await Web3Network.eth.getTransactionCount(
    walletAddress.value
  )

2.gasPric?獲取預(yù)計手續(xù)費

  //獲取預(yù)計手續(xù)費
const serviceCharge = await Web3Network.eth.getGasPrice()

3. value 數(shù)量

  //以wei為單位數(shù)量
const WeiMoney = Web3.utils.toWei('0.0001')

4.合并

 const rawTx = {
    form: walletAddress.value, //發(fā)送方地址
    nonce: numberTransaction, //發(fā)送方交易次數(shù)
    gasPrice: serviceCharge, //預(yù)估手續(xù)費
    to: 'xxx', //接收方地址
    value: WeiMoney, //以wei單位數(shù)字
    data: '0x00' //轉(zhuǎn)Token代幣會用到的一個字段
  }

5.gas?

  //把交易數(shù)據(jù)進行g(shù)as計算
  const gas = await Web3Network.eth.estimateGas(rawTx)
  rawTx.gas = gas

二.privateKey加密調(diào)用sendSignedTransaction函數(shù)

1.私鑰轉(zhuǎn)數(shù)組十六進制

為什么轉(zhuǎn)換?:?因為 tx.sign() 要求長度必須在32位以內(nèi)所以需要轉(zhuǎn)換

npm install?buffer

  import { Buffer } from 'buffer'
  //把privateKey轉(zhuǎn)換 數(shù)組hex
  const PrivatekeyHex = Buffer(walletPrivateKey.value, 'hex')
  console.log(`key:`, PrivatekeyHex)

2.ethereumjs-tx?庫加密轉(zhuǎn)換數(shù)組十六進制后Eth私鑰
注意:tx.sign( ) 要求長度必須32位以內(nèi)

npm install?ethereumjs-tx@1.3.7

  import Tx from 'ethereumjs-tx' 
  //privateKey加密
  const tx = new Tx(rawTx)
  tx.sign(PrivatekeyHex)
  //通過ethereumjs-tx加密并轉(zhuǎn)為十六進制字符串
  const serializedTx = '0x' + tx.serialize().toString('hex')
  console.log(serializedTx)

3.如果出現(xiàn)這樣報錯

?error ?in ./node_modules/cipher-base/index.js

Module not found: Error: Can't resolve 'stream' in 'C:\Users\ttatt\Desktop\前端\xxx\xxx\Web3\Web3實戰(zhàn)\web3defivue\node_modules\cipher-base'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
? ? ? ? - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
? ? ? ? - install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
? ? ? ? resolve.fallback: { "stream": false }

ERROR in ./node_modules/cipher-base/index.js 3:16-43
Module not found: Error: Can't resolve 'stream' in 'C:\Users\ttatt\Desktop\xxx\xxx\85期\Web3\Web3實戰(zhàn)\web3defivue\node_modules\cipher-base'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
? ? ? ? - add a fallback 'resolve.fallback: { "stream": require.resolve("stream-browserify") }'
? ? ? ? - install 'stream-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
? ? ? ? resolve.fallback: { "stream": false }
?@ ./node_modules/create-hash/browser.js 7:11-33
?@ ./node_modules/ethereumjs-util/dist/index.js 18:17-39
?@ ./node_modules/ethereumjs-tx/es5/index.js 9:14-40
?@ ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/App.vue?vue&type=script&setup=true&name=web3&lang=js 4:0-31 68:21-23 88:15-17
?@ ./src/App.vue?vue&type=script&setup=true&name=web3&lang=js 1:0-210 1:0-210 1:211-410 1:211-410
?@ ./src/App.vue 2:0-75 3:0-70 3:0-70 6:49-55
?@ ./src/main.js 2:0-28 6:22-25

webpack compiled with 1 error

要解決在 vue.config.js

npm install?node-polyfill-webpack-plugin@2.0.1

const { defineConfig } = require('@vue/cli-service')
// 引入插件
const NodePolyfillWebpackPlugin = require('node-polyfill-webpack-plugin')

module.exports = defineConfig({
  transpileDependencies: true,
  configureWebpack: {
      //使用插件
    plugins: [new NodePolyfillWebpackPlugin()]
  }
})

4.調(diào)用ETHPay函數(shù)sendSignedTransaction?開始EthPay是否成功文章來源地址http://www.zghlxwxcb.cn/news/detail-558838.html

  //開始執(zhí)行
  const Transfer = Web3Network.eth.sendSignedTransaction(serializedTx)

  // 監(jiān)聽是否成功 -- 加載中
  Transfer.on('transactionHash', txid => {
    console.log(
      `查看----https://goerli.etherscan.io/tx/${txid}`
    )
  })

代碼

  //一.第一部分
  //transaction次數(shù)
  const numberTransaction = await Web3Network.eth.getTransactionCount(
    walletAddress.value
  )
  console.log(numberTransaction)
  //獲取預(yù)計手續(xù)費
  const serviceCharge = await Web3Network.eth.getGasPrice()
  console.log(serviceCharge)

  //以wei為單位數(shù)量
  const WeiMoney = Web3.utils.toWei('0.0001')
  console.log(WeiMoney)
  //Api參數(shù)
  const rawTx = {
    form: walletAddress.value, //發(fā)送方地址
    nonce: numberTransaction, //發(fā)送方transaction次數(shù)
    gasPrice: serviceCharge, //預(yù)估手續(xù)費
    to: 'xxxx', //接收方地址
    value: WeiMoney, //以wei單位數(shù)量
    data: '0x00' //轉(zhuǎn)Token會用到的一個字段
  }
  //把transaction數(shù)據(jù)進行g(shù)as計算
  const gas = await Web3Network.eth.estimateGas(rawTx)
  rawTx.gas = gas

  //二.第二部分
  //把privateKey轉(zhuǎn)換 數(shù)組hex
  //因為 tx.sign() 要求長度必須在32位以內(nèi)所以需要轉(zhuǎn)換
  const PrivatekeyHex = Buffer(walletPrivateKey.value, 'hex')
  console.log(`key:`, PrivatekeyHex)

  //privateKey加密
  const tx = new Tx(rawTx)
  tx.sign(PrivatekeyHex)
  //通過ethereumjs-tx加密并轉(zhuǎn)為十六進制字符串
  const serializedTx = '0x' + tx.serialize().toString('hex')
  //開始執(zhí)行
  const Transfer = Web3Network.eth.sendSignedTransaction(serializedTx)

  // 監(jiān)聽是否成功 -- 加載中
  Transfer.on('transactionHash', txid => {
    console.log(txid)
    console.log(
      `查看----https://goerli.etherscan.io/tx/${txid}`
    )
  })

到了這里,關(guān)于【W(wǎng)eb3】 Web3JS Pay Api的文章就介紹完了。如果您還想了解更多內(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)文章

  • 以太坊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 復(fù)制 WEB3DEPLOY 的內(nèi)容到deploy.js == ganache需要

    2023年04月23日
    瀏覽(30)
  • HTML頁面通過Web3JS連接智能合約并調(diào)用其中接口

    HTML頁面通過Web3JS連接智能合約并調(diào)用其中接口

    之前我們學(xué)習(xí)solidity 并用它編寫了智能合約 登上區(qū)塊鏈 然后也做了基本的測試 但是 其實在web3時代 前端依舊扮演者非常重要的角色 我們現(xiàn)在就來打通web3 從合約到頁面的一個管理 首先 我們還是將自己的ganache環(huán)境起起來 然后 在我們之前智能合約的項目終端執(zhí)行 將我們的智

    2024年02月16日
    瀏覽(39)
  • 使用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)
  • web3Js(干貨)(多簽的流程原理)看完這一篇就懂了(波場網(wǎng)絡(luò)-請勿用于除學(xué)習(xí)外其他用途)

    連接波場網(wǎng)絡(luò): 其中APIKEY可以在官網(wǎng)獲取; 可以使用tronWeb.isConnected()判斷是否連接成功 創(chuàng)建離線波場地址: 該地址未激活,如果需要激活, 通常需要一定數(shù)量的 TRX(TRON 的本地代幣)用于支付激活費用; 等待區(qū)塊確定 就可以查看激活信息; 創(chuàng)建隨機助記詞與私鑰: 如何讓

    2024年02月04日
    瀏覽(100)
  • 連接區(qū)塊鏈節(jié)點的 JavaScript 庫 web3.js

    連接區(qū)塊鏈節(jié)點的 JavaScript 庫 web3.js

    通過前面的文章我們可以知道基于區(qū)塊鏈開發(fā)一個DApp,而DApp結(jié)合了智能合約和用戶界面(客戶端),那客戶端是如何與區(qū)塊鏈進行連接交互的、如何調(diào)用智能合約的、如何發(fā)送一個交易到區(qū)塊鏈、如何獲取區(qū)塊鏈上的數(shù)據(jù),這就是本文要介紹的 web3.js。 如下圖,區(qū)塊鏈網(wǎng)絡(luò)

    2024年02月15日
    瀏覽(48)
  • 使用 Web3.js 連接以太坊節(jié)點并查詢區(qū)塊鏈數(shù)據(jù)

    Web3.js 是一個用于連接以太坊網(wǎng)絡(luò)的 JavaScript 庫。在本文中,我們將介紹如何使用 Web3.js 來連接以太坊節(jié)點,并且查詢以太坊區(qū)塊鏈上的數(shù)據(jù)。 1. 安裝 Web3.js 首先,我們需要安裝 Web3.js。在命令行中,輸入以下命令: 2. 連接以太坊節(jié)點 在使用 Web3.js 之前,我們需要先連接到以

    2023年04月26日
    瀏覽(29)
  • 以太坊標準JS API庫——淺談Web3.js與Ethers.js

    版本號: Web3.js v1.7.3 Ethers.js v.5.6 web3.js是一個標準的以太坊JavaScript API庫,該JS庫由以太坊基金會開發(fā)維護,同時它也是最早且使用最廣泛的一個ETH API庫。由于Moonbeam完全兼容以太坊EVM,因此web3.js可以在Moonbeam上進行正常交互 web3.js(v1.7.3)庫官方使用文檔:https://web3js.readthedoc

    2024年01月23日
    瀏覽(71)
  • 【區(qū)塊鏈 | Solidity】Solidity開發(fā)教程:用Web3.js構(gòu)建第一個Dapp

    Web3.js 使用的實用介紹 原文?作者:wissal haji 歡迎訂閱《Solidity智能合約零基礎(chǔ)開發(fā)教程專欄》系列文章。 如果你一直在跟著這個系列學(xué)習(xí),那么你已經(jīng)掌握了編寫自己的智能合約。 因此,今天給大家介紹一下構(gòu)建去中心化應(yīng)用的全貌,并向大家介紹一下web3.js,這是構(gòu)建da

    2024年01月24日
    瀏覽(27)
  • vue3 使用 web3.js;錢包轉(zhuǎn)賬;喚醒錢包.......

    web3.js基本使用 本篇文章不適合沒有經(jīng)驗的小白,需要對web3有一定的了解,所以有些參數(shù)需要自己懂! 準備 安裝web3.js依賴包 npm install web3 文檔教程地址:https://web3.tryblockchain.org/ 這是我自己封裝的類 web3.js 直接復(fù)制過去就可以用

    2024年02月03日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包