日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

web3.js_1.x.x--API(一)event/Constant/deploy/options

發布時間:2023/12/2 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web3.js_1.x.x--API(一)event/Constant/deploy/options 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/* 事件是使用EVM日志內置功能的方便工具,在DAPP的接口中,它可以反過來調用Javascript的監聽事件的回調。事件在合約中可被繼承。當被調用時,會觸發參數存儲到交易的日志中(一種區塊鏈上的特殊數據結構)。 這些日志與合約的地址關聯,并合并到區塊鏈中,只要區塊可以訪問就一直存在 */myContract.once(event[, options], callback) //單次訂閱合約事件 myContract.events.MyEvent([options][, callback]) //訂閱合約事件 myContract.events.allEvents([options][, callback]) //訂閱合約全部事件 myContract.getPastEvents(event[, options][, callback]) //讀取合約歷史事件 options - Object: 可選,用于部署的選項,包含以下字段:filter - Object : 可選,按索引參數過濾事件。例如 {filter: {myNumber: [12,13]}} 表示 “myNumber” 為12或13的所有事件fromBlock - Number: 可選,僅監聽該選項指定編號的塊中發生的事件topics - Array : 可選,用來手動為事件過濾器設定主題。如果設置過filter屬性和事件簽名,那么(topic[0])將不會自動設置 callback - Function: 可選,該回調函數觸發時,其第二給參數為事件對象,第一個參數為錯誤對象底層的日志接口(Low-level Interface to Logs)通過函數log0,log1,log2,log3,log4,可以直接訪問底層的日志組件。logi表示總共有帶i 1個參數log3(msg.value,0x50cb9fe53daa9737b786ab3646f04d0150dc50ef4e75f59509d83667ad5adb20,msg.sender,_id); 調用:myContract.deploy(options) 參數: options - Object: 用于部署的配置選項,包含以下字段:data - String: 合約的字節碼arguments - Array : 可選,在部署時將傳入合約的構造函數 返回值: Object: 交易對象,包含以下字段:arguments: Array - 之前傳入方法的參數,可修改send: Function - 用來部署合約,其返回的promise對象將解析為新的合約實例,而非交易收據!estimateGas: Function - 用來估算用于部署的gas用量encodeABI: Function - 用來編碼部署的ABI數據,即合約數據 構造函數參數myContract.deploy({data: '0x12345...',arguments: [123, 'My String'] }) .send({from: '0x1234567890123456789012345678901234567891',gas: 1500000,gasPrice: '30000000000000' }, function(error, transactionHash){ ... }) .on('error', function(error){ ... }) .on('transactionHash', function(transactionHash){ ... }) .on('receipt', function(receipt){console.log(receipt.contractAddress) // 收據中包含了新的合約地址 }) .on('confirmation', function(confirmationNumber, receipt){ ... }) .then(function(newContractInstance){console.log(newContractInstance.options.address) // 新地址的合約實例 });// data是合約自身的一個可選配置項 myContract.options.data = '0x12345...';myContract.deploy({arguments: [123, 'My String'] }) .send({from: '0x1234567890123456789012345678901234567891',gas: 1500000,gasPrice: '30000000000000' }) .then(function(newContractInstance){console.log(newContractInstance.options.address) // instance with the new contract address });// 編碼 myContract.deploy({data: '0x12345...',arguments: [123, 'My String'] }) .encodeABI(); > '0x12345...0000012345678765432'// 估算gas myContract.deploy({data: '0x12345...',arguments: [123, 'My String'] }) .estimateGas(function(err, gas){console.log(gas); }); /* new web3.eth.Contract(jsonInterface[, address][, options]) 參數:jsonInterface(abi) - Object: 要實例化的合約的json接口 address - String: 可選,要調用的合約的地址,也可以在之后使用 myContract.options.address = '0x1234..' 來指定該地址 options - Object : 可選,合約的配置對象,其中某些字段用作調用和交易的回調:from - String: 交易發送方地址gasPrice - String: 用于交易的gas價格,單位:weigas - Number: 交易可用的最大gas量,即gas limitdata - String: 合約的字節碼,部署合約時需要 */ truffle(develop)> tokenContract.options{ address: [Getter/Setter], jsonInterface: [Getter/Setter] } truffle(develop)> tokenContract.options.jsonInterface[1]{ constant: false,inputs:[ { name: '_from', type: 'address' },{ name: '_to', type: 'address' },{ name: '_value', type: 'uint256' } ],name: 'transferFrom',outputs: [ { name: '', type: 'bool' } ],payable: false,stateMutability: 'nonpayable',type: 'function',signature: '0x23b872dd' }

?


更多專業前端知識,請上 【猿2048】www.mk2048.com 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的web3.js_1.x.x--API(一)event/Constant/deploy/options的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。