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

通過metamask與合約交互(發(fā)送ERC20 TOKEN/原生TOKEN/方法調(diào)用) javascrpt實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了通過metamask與合約交互(發(fā)送ERC20 TOKEN/原生TOKEN/方法調(diào)用) javascrpt實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 首先引入web3.js最新版本 ,再引入 jquery 遇到合約有ABI文件.個(gè)人習(xí)慣單獨(dú)保存ABI文件.通過jquery遠(yuǎn)程讀取.

實(shí)例化合約后直接在鏈上與合約交互

$.getJSON('ABI文件.json',function(result){
    let MyContract = new web3.eth.Contract(result,'TOKEN合約地址');
    let data = MyContract.methods.transfer('收幣人地址',web3.utils.toWei('轉(zhuǎn)賬金額','ether')).encodeABI();
    const transactionParameters = {
        //   nonce: '0x00', // ignored by MetaMask
        gasPrice: web3.utils.toHex(web3.utils.toWei('5','gwei')),
        //   gas: '0x2710', // customizable by user during MetaMask confirmation.
        to: 'TOKEN合約地址', // Required except during contract publications.
        from: ethereum.selectedAddress, // must match user's active address.
        // value: web3.utils.toHex('12'), // Only required to send ether to the recipient from the initiating external account.
        data: data, // Optional, but used for defining smart contract creation and interaction.
        chainId: web3.utils.toHex('56'), // Used to prevent transaction reuse across blockchains. Auto-filled by MetaMask.
    };
    ethereum.request({
      method: 'eth_sendTransaction',
      params: [transactionParameters],
    })
    .then(function(result){
        //result是生成的交易hash值,用于在鏈上查看交易狀態(tài)信息的索引
        successMessage(JSON.stringify(result))
    })
    .catch(function(reason){
        if(reason.code == 4001){
            errorMessage(reason.message);
        }else{
            console.log(reason);
        }
    });
    
});

通過按鈕什么的觸發(fā)后就可以通過代碼轉(zhuǎn)賬了.

metamash10.31加token,記錄,交互,區(qū)塊鏈

?2. 無ABI與合約交互,因?yàn)橛械暮霞s閉源了,所以我們直接手工構(gòu)造data參數(shù)內(nèi)容,免去了實(shí)例化合約的步驟

let data = web3.eth.abi.encodeFunctionCall({
	name: 'rent',
	type: 'function',
	inputs: [{
	    type: 'uint256',
	    name: 'orderId'
	},{
	    type: 'address',
	    name: 'nftAddress'
	},{
	    type: 'address',
	    name: 'tokenOwner'
	},{
	    type: 'uint256[]',
	    name: 'rentInfo'
	},{
	    type: 'address[]',
	    name: 'inviters'
	},{
	    type: 'address[]',
	    name: 'agents'
	},{
	    type: 'uint256',
	    name: 'deadline'
	},{
	    type: 'bytes',
	    name: 'signature'
	}]
	}, [order_id.toString(), nft_address,token_owner,[token_id,expire_at,web3.utils.toBN(price)],[],[],deadline,'0x'+signature]);

const transactionParameters = {
//   nonce: '0x00', // ignored by MetaMask
gasPrice: web3.utils.toHex(web3.utils.toWei('5','gwei')),
//   gas: '0x2710', // customizable by user during MetaMask confirmation.
to: '合約地址', // Required except during contract publications.
from: ethereum.selectedAddress, // must match user's active address.
//   value: '0x00', // Only required to send ether to the recipient from the initiating external account.
data: data, // Optional, but used for defining smart contract creation and interaction.
//   chainId: '有需要就用web.utils.toHex("NETWORK十進(jìn)制ID")', // Used to prevent transaction reuse across blockchains. Auto-filled by MetaMask.
};
ethereum.request({
	method: 'eth_sendTransaction',
	params: [transactionParameters],
})
.then(function(result){
	//result是生成的交易hash值,用于在鏈上查看交易狀態(tài)信息的索引
	successMessage(JSON.stringify(result))
})
.catch(function(reason){
	console.log('eth_sendTransaction info');
	console.log(reason);
});

3. ERC20標(biāo)準(zhǔn)代幣合約一般默認(rèn)實(shí)現(xiàn)了transfer / mint /?transfer 等等標(biāo)準(zhǔn)方法,參數(shù)也一樣,直接測(cè)試調(diào)用就行了.

4. 區(qū)塊鏈原生代幣轉(zhuǎn)賬更加簡單文章來源地址http://www.zghlxwxcb.cn/news/detail-598052.html

const transactionParameters = {
    //   nonce: '0x00', // ignored by MetaMask
    gasPrice: web3.utils.toHex(web3.utils.toWei('5','gwei')),
    //   gas: '0x2710', // customizable by user during MetaMask confirmation.
    to: '收款人錢包地址', // Required except during contract publications.
    from: ethereum.selectedAddress, // must match user's active address.
    value: web3.utils.toHex(web3.utils.toWei('轉(zhuǎn)賬數(shù)量','ether')), // Only required to send ether to the recipient from the initiating external account.
    chainId: web3.utils.toHex('56'), // Used to prevent transaction reuse across blockchains. Auto-filled by MetaMask.
};
ethereum.request({
  method: 'eth_sendTransaction',
  params: [transactionParameters],
})
.then(function(result){
    successMessage(JSON.stringify(result))
})
.catch(function(reason){
    if(reason.code == 4001){
        errorMessage(reason.message);
    }else{
        console.log(reason);
    }
});

到了這里,關(guān)于通過metamask與合約交互(發(fā)送ERC20 TOKEN/原生TOKEN/方法調(diào)用) javascrpt實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 以太坊數(shù)字資產(chǎn)的發(fā)行和流通:以太坊上的數(shù)字資產(chǎn)定義、ERC 20代幣合約標(biāo)準(zhǔn)、ERC 20標(biāo)準(zhǔn)接口、ERC 721代幣合約標(biāo)準(zhǔn)、

    以太坊設(shè)計(jì)的目標(biāo)就是讓各種數(shù)字資產(chǎn)能以智能合約的形式運(yùn)行在以太坊虛擬機(jī)上。目前,眾多智能合約中最廣泛應(yīng)用的是代幣合約(Token Contract)。是負(fù)責(zé)管理賬戶以及其擁有的代幣的智能合約,實(shí)質(zhì)可以理解為一張賬戶地址和對(duì)應(yīng)賬戶代幣余額的映射表。 即:代幣可以被

    2023年04月11日
    瀏覽(25)
  • ERC20的創(chuàng)建及合約之間的調(diào)用(合約調(diào)用合約)

    ERC20的創(chuàng)建及合約之間的調(diào)用(合約調(diào)用合約)

    ERC20是一個(gè)token合約標(biāo)準(zhǔn),具體的概念和友好的合約庫,可參考o(jì)penzeppelin.接下來的代碼創(chuàng)建一個(gè)erc20 token 注:solidity 0.6.8版本以后增加的SPDX申明,許可證標(biāo)識(shí)符是必須要有的 關(guān)于合約與合約的調(diào)用我們以ICO作為示例來展示 什么是ICO,大致意思是,你有一個(gè)很好的項(xiàng)目需要融資

    2024年02月06日
    瀏覽(20)
  • 智能合約 之 ERC-20介紹

    智能合約 之 ERC-20介紹

    ERC20 全稱為 Ethereum Request for Comment 20 ,是一種 智能合約標(biāo)準(zhǔn) ,用于以太坊網(wǎng)絡(luò)上的代幣發(fā)行 姊妹篇 - 如何部署ERC20 代幣化資產(chǎn),例如:USDT 是一種以美元為背書的ERC20代幣,每個(gè)USDT代幣都代表著1美元的價(jià)值,用戶可以隨時(shí)兌換成等值的美元 去中心化加以所,許多去中心化交

    2024年04月15日
    瀏覽(31)
  • 使用web3.js連接Metamask錢包并完成合約交互

    Web3.js是一個(gè)用于與以太坊網(wǎng)絡(luò)進(jìn)行交互的JavaScript庫。Metamask是一個(gè)以太坊錢包插件,可以在瀏覽器中創(chuàng)建和管理以太坊賬戶。本文將介紹如何使用web3.js庫連接Metamask錢包,并完成與智能合約的交互。 Web3.js是一個(gè)用于與以太坊網(wǎng)絡(luò)進(jìn)行交互的JavaScript庫。它提供了一些方法和功

    2024年03月16日
    瀏覽(97)
  • 關(guān)于以太坊ERC-20通證智能合約協(xié)議

    ERC代表“Etuereum Request for Comment”,以太坊社區(qū)為了創(chuàng)建一個(gè)以太坊平臺(tái)的標(biāo)準(zhǔn),開發(fā)人員提交了一個(gè)以太坊改進(jìn)方案(EIP),改進(jìn)方案中包括協(xié)議規(guī)范和合約標(biāo)準(zhǔn)。最終確定的EIP為以太坊開發(fā)者提供了一套可實(shí)施的標(biāo)準(zhǔn)。這使得智能合約可以遵循這些通用的接口標(biāo)準(zhǔn)來構(gòu)建。可

    2024年02月04日
    瀏覽(27)
  • ERC20和BSC鏈調(diào)用智能合約轉(zhuǎn)移擁有者權(quán)限

    ERC20和BSC鏈調(diào)用智能合約轉(zhuǎn)移擁有者權(quán)限

    自從回答了 bsc合約擁有者權(quán)限怎么打入0x000000000000000000地址 這個(gè)問題后, 好多人私信我要教程, 在這寫一下 實(shí)現(xiàn) 先需要滿足兩個(gè)條件 你是合約的擁有者, 你的賬戶有足夠的礦工費(fèi)調(diào)用合約 ERC20鏈和BSC鏈都是一樣的, 包括調(diào)用其他合約的方法(看不懂代碼的別自己調(diào)用…浪費(fèi)礦工

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

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

    2024年02月04日
    瀏覽(32)
  • 如何通過以太坊JSON-RPC方式獲取ERC-20代幣的信息?

    目錄 一、ERC-20介紹 二、ERC-20代幣標(biāo)準(zhǔn)功能 1、可選功能 2、標(biāo)準(zhǔn)功能 三、獲取代幣信息

    2024年02月11日
    瀏覽(25)
  • 基于Remix+MetaMask部署智能合約

    基于Remix+MetaMask部署智能合約

    由于論文遲遲沒有進(jìn)展,基礎(chǔ)知識(shí)掌握不牢,今由重新拾起區(qū)塊鏈的應(yīng)用,研究了下節(jié)點(diǎn)連接和智能合約部署的一些操作。 基礎(chǔ)知識(shí): remix是用來部署智能合約的,metamask是可視化的錢包。 準(zhǔn)備環(huán)境: 基于瀏覽器的Remix,網(wǎng)址為:http://remix.ethereum.org/ 。 MetaMask是一個(gè)基于Ch

    2024年02月07日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包