以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > Gate.io > Info

搞懂事件的使用,詳細解讀Solidity事件Event_atc

Author:

Time:1900/1/1 0:00:00

什么是事件Evnet?

就是以EVM日志基礎設備提供一個接口,當被事件調用時,出發參數存儲到日志中,其與合約地址關聯,并記錄到區塊鏈中。關系就是:區塊鏈是打包交易區塊組成的鏈條,每一個交易會包含0到多個記錄,日志代表智能合約所觸發事件。

DAPP中,監聽了事件,當事件發生時,會回調。當然要注意的就是,日志和事件在合約內是無法被訪問,即使是創建日志的合約。

在Solidity代碼中,使用event關鍵字來定義一個事件,如:

eventEventName(addressbidder,uintamount);

這個用法和定義函數式一樣的,并且事件在合約中同樣可以被繼承。觸發一個事件使用emit(說明,之前的版本里并不需要使用emit),如:

Coinbase International 7月份交易量近20億美元:金色財經報道,根據The Block的數據,Coinbase的離岸期貨交易所7月份的交易量接近20億美元。該公司將于周四公布第二季度財報。今年5月,該公司在百慕大注冊了期貨交易所,該公司推出了兩種合約:比特幣和以太坊永續期貨。7月份,Coinbase International 這兩個合約的交易量為19.63億美元。[2023/8/1 16:11:29]

emitEventName(msg.sender,msg.value);

觸發事件可以在任何函數中調用,如:

functiontestEvent()public{emitEventName(msg.sender,msg.value);}

Web3初創公司Airchains與西孟加拉邦政府機構合作:7月5日消息,Web3初創公司Airchain與印度西孟加拉邦新城加爾各答發展局(NKDA)達成合作,將幫助通過使用區塊鏈以數字方式記錄和跟蹤土地所有權變更和跟蹤。Airchains將推出部署在Polygon Supernets上的50萬個NFT,相關NFT可作為NKDA管轄范圍內所有房產的土地所有權證明,以及對相關所有權的跟蹤。[2023/7/5 22:18:19]

監聽事件

通過上面的介紹,可能大家還是不清楚事件有什么作用,點擊”UpdataInfo”按鈕之后,雖然調用智能合約成功,但是當前的界面并沒有得到更新。使用事件監聽,就可以很好地解決這個問題,讓看看如何實現。

Reflexer發文斥責Paragidm,表示將與Paradigm劃清界限:5月27日消息,DeFi 協議 Reflexer 在社交媒體上發文表示 Paragidm 此前投資的 FTX 給加密生態帶來重創,并斥責其不再專注于 Crypto 而轉投 AI 領域的行為,希望 Paradigm 銷毀持倉的全部 FLX(Reflexer 治理 Token),不想再為 Paradigm 工作。

此前報道,加密風投公司 Paradigm 將關注重點擴大到包括人工智能在內的領域。根據其官方網站信息,Paradigm 將現在稱自己為“研究驅動的技術投資公司”,而不是專門投資于“顛覆性加密 / Web3 公司和協議”的公司。但熟悉該戰略的人士表示,該公司沒有改變其任務,繼續專注于加密和 Web3,沒有實際變化。

Reflexer Labs 此前于 2020 年 8 月宣布完成 168 萬美元種子輪融資,該輪融資由 Paradigm 領投,Standard Crypto、Compound 創始人 Robert Leshner 和 a16z 基金創始人 Jesse Walden 參投。[2023/5/27 9:45:45]

修改合約,定義事件及觸發事件

美聯儲埃文斯:預計美國通脹將放緩 但也擔心通脹失控:9月9日消息,美聯儲埃文斯表示,鑒于全球經濟增長放緩,不應該對美國的經濟前景過于自滿。預計美國通脹將放緩,但也擔心通脹失控。[2022/9/9 13:17:55]

先回顧一下合約代碼:

pragmasolidity^0.4.21;contractInfoContract{stringfName;uintage;functionsetInfo(string_fName,uint_age)public{fName=_fName;age=_age;}functiongetInfo()publicconstantreturns(string,uint){return(fName,age);}}

首先,需要定義一個事件:

eventInstructor(stringname,uintage);

這個事件中,會接受兩個參數:name和age,也就是需要跟蹤的兩個信息。

然后,需要在setInfo函數中,觸發Instructor事件,如:

functionsetInfo(string_fName,uint_age)public{fName=_fName;age=_age;emitInstructor(_fName,_age);}

在web3與智能合約交互實戰時,點UpdataInfo按鈕之后,會調用setlnfo函數,觸發Instructor事件。

使用Web3監聽事件,刷新UI

現在需要使用Web3監聽事件,刷新UI。先回顧下之前的使用Web3和智能合約交互的代碼:

<script>if(typeofweb3!=='undefined'){web3=newWeb3(web3.currentProvider);}else

{web3=newWeb3(newWeb3.providers.HttpProvider("http://localhost:7545"));}web3.eth.defaultAccount=web3.eth.accounts;varinfoContract=web3.eth.contract(ABIINFO);varinfo=infoContract.at('CONTRACTADDRESS');info.getInfo(function(error,result){if(!error){$("Billions項目組button").click(function(){info.setInfo($("Billions項目組age").val());});</script>

現在可以不需要info.getInfo()來獲取信息,而改用監聽事件獲取信息,先定義一個變量引用事件:

varinstructorEvent=info.Instructor();

然后使用.watch()方法來添加一個回調函數:

instructorEvent.watch(function(error,result){if(!error){$("#info").html(result.args.name+'('+result.args.age+'yearsold)');}else{console.log(error);}});

Tags:atc區塊鏈ONTatc幣是什么幣區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢ONT幣是什么幣

Gate.io
盡管推出了 Rocky,但 Aptos 網絡代幣 APT 接近 10 美元_Aptos

簡單來說 Aptos在過去24小時內飆升了30%以上,逼近10美元。該代幣通過其綠色運行清算了超過600萬美元。Aptos首席開發人員表示,該網絡的性能非常出色.

1900/1/1 0:00:00
微軟與前以太坊礦工 CoreWeave 達成 AI 云計算交易:CNBC_人工智能

在CoreWeave宣布通過擴展的B輪融資獲得額外2億美元的資金后幾天,報道的交易就發生了。 據報道,微軟已與前以太坊礦工CoreWeave簽署協議,使用其云計算基礎設施來支持其人工智能服務.

1900/1/1 0:00:00
美國:加密貨幣交易者靠「投資損失」節稅,稅收少了數十億美元_加密貨幣

美國國家經濟研究局一篇論文分析指出,美國加密貨幣交易員透過「投資損失節稅」策略,導致美國財政部短少數十億美元稅收.

1900/1/1 0:00:00
XRP 價格預測:如果這種支持讓步,復蘇可能會脫軌_XRP

瑞波幣正試圖上行突破0.365美元兌美元的阻力位。如果XRP價格保持在0.3720美元阻力位下方,則可能無法上漲。瑞波幣目前在兌美元的0.355美元阻力位上方回升.

1900/1/1 0:00:00
CZ:如馬斯克邀請加入推特董事會,我可能不會拒絕_加密貨幣

加密貨幣交易所bi安執行長CZ稍早出席活動時表示,如果受到馬斯克邀請,他會考慮加入推特董事會。同時他還提到加密貨幣可能是動蕩的環境中唯一穩定的事物.

1900/1/1 0:00:00
「崛起社區」比特幣的特點幫助石油市場_比特幣

石油市場的發展正處于鼎盛時期,你會看到它蔓延到世界各地。石油市場在世界各地取得巨大成功的重要原因之一是它采用了現代技術.

1900/1/1 0:00:00
ads