比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

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

Author:

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

什么是事件Evnet?

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

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

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

eventEventName(addressbidder,uintamount);

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

幣安研究院:2030年代幣化資產市場預計將達到16萬億美元:金色財經報道,幣安研究院發布《現實世界資產:市場狀況》報告,其中指出隨著用戶采用率的增加和大型機構參與者的進入,現實世界資產的代幣化(“RWA”)繼續受到關注。再加上相對較低的去中心化金融(“DeFi”)收益率,利率上升推動了RWA的增長,特別是代幣化國債。

如今,投資者通過代幣化國債市場向美國政府提供了超過6億美元的有效貸款,并獲得了約4.2%的年化收益率。預計到2030年,代幣化資產市場規模將達到16萬億美元,增長空間巨大,較2022年的3100億美元有顯著增長。[2023/7/26 15:59:58]

emitEventName(msg.sender,msg.value);

孫宇晨:香港Web3政策展現區塊鏈行業前景,波場TRON將積極參與其中:6月16日消息,波場TRON創始人、火必Huobi全球顧問委員會成員孫宇晨轉發全國政協委員、香港立法會議員吳杰莊關于香港Web3政策的推文并表示,他對香港關于Web3和虛擬資產政策的討論印象深刻。其充滿活力的金融生態系統和漸進的監管展現了區塊鏈行業的前景。波場TRON已準備好參與其中,呼應香港致力于接納行業反饋和促進全球聯系的承諾。

在推特中,吳杰莊列舉了其在香港Web3和虛擬資產政策研討和采訪中的主要收獲,主要包括香港領先的金融環境正在進行演變,以支持虛擬資產行業,新法規邀請全球行業參與者申請許可證;監管水平將適應行業發展,香港對建議持開放態度,并致力于擴大其開放性,接受行業反饋;不要低估香港的市場規模,作為全球金融和新興科技中心,香港連接世界各地的城市,持續擴大其全球影響力。[2023/6/16 21:42:45]

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

沙塔基金遇到升級故障,導致約510萬美元的損失:金色財經報道,PeckShield監測數據顯示,似乎沙塔基金的EFVault在4天前遭到升級故障,導致損失約510萬美元。Shata Capital是一家投資于Crypto Native的VC。[2023/2/28 12:34:03]

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

監聽事件

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

Waves的“Waves DeFi復興計劃”獲得通過,將結束Vires Finance的流動性危機:8月2日消息,公鏈項目Waves周二宣布,Waves區塊鏈社區已以四分之三的投票支持率通過“WavesDeFi復興計劃”治理提案,以解決當前基于Waves的DeFi借貸協議ViresFinance面臨的流動性問題。作為計劃的一部分,這些鯨魚用戶現在有兩種選擇。第一種選擇是將他們的頭寸完全清算為USDN,并增加一年的歸屬期和5%的清算獎金。否則,他們可以繼續使用ViresFinance,但不會從超過250,000美元門檻的所有USDT或USDC基金中獲得收益。

此前5月底,公鏈Waves推出“WavesDeFi復興計劃”,旨在使所有Waves協議用戶避免損失,并恢復其生態系統中DeFi協議的全部功能。[2022/8/2 2:54:17]

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

先回顧一下合約代碼:

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幣是什么幣

fil幣價格今日行情
SHIB 可能達到 0.01 美元嗎?谷歌巴德人工智能(AI)給出答案_SHI

ShibaInu社區繼續希望SHIB能夠在不久的將來出現顯著的價格反彈,達到某些高價位。在撰寫本文時,去中心化meme代幣的價格中仍然存在許多零,社區成員一直在關注0.01美元的價格點.

1900/1/1 0:00:00
柴犬:代幣銷毀增加會影響SHIB的價格嗎?_SHI

“狗狗幣殺手”ShibaInu的代幣銷毀量有所增加,本周銷毀了1.34億個SHIB。銷毀政策對SHIB的價格有什么影響? 概括 ShibaInu:上周銷毀了223,264,370個SHIB代幣柴.

1900/1/1 0:00:00
Messari 解讀 Filecoin 三季度進展:活躍存儲交易環比增長 82%_NFT

關鍵要點 Filecoin網絡上的活躍存儲在22年第三季度繼續增長,環比增長82%;雖然存儲容量在22年第三季度保持在歷史最高水平.

1900/1/1 0:00:00
Chiliz (CHZ) 繼續大放異彩,漲幅超過 30%_FIFA

排名第一的體育山寨幣Chiliz在過去一周取得了令人矚目的收益,令人不寒而栗。盡管今天大部分時間都在紅色區域交易,但CHZ仍保持過去7天超過30%的漲幅。隨著國際足聯世界杯的臨近,它的繼續閃耀.

1900/1/1 0:00:00
狗狗幣(DOGE)CMP- 0.08500 美元:成敗將標志著新趨勢的興起_DOGE

狗狗幣價格現在在上升的平行通道內交易,這是一個看跌模式。 盡管市場目前對大多數交易者和投資者來說存在不確定性,但DOGE的價格在看跌下跌趨勢后繼續下跌.

1900/1/1 0:00:00
以太坊的兩個基礎:區塊提議和MEV-Boost的重要性及解決方案_ETH

以太坊的兩個基礎:區塊提議和MEV-Boost什么是區塊提議者?什么是MEV-Boost,為什么它對今天的以太坊如此重要?為什么我們需要長期的解決方案.

1900/1/1 0:00:00
ads