Solidity事件對于智能合約開發者來說是不可或缺的,它允許我們對智能合約中特定變量進行測試,以自動化的方式改變前端等。總的來說,知道如何在Solidity中使用事件可以使智能合約的開發變得更加容易。
在本文,我們將從智能合約開發者的角度來研究以太坊虛擬機的日志和事件功能,包括日志和事件的用途,索引事件,以及如何在Hardhat和Brownie中使用日志和事件。
EVM是以太坊和許多其他區塊鏈的核心。EVM有一個日志功能,用于將數據“寫”到智能合約之外的數據結構中。其中一個重要的數據是Solidity事件。事件允許我們“打印”在區塊鏈上的信息,這種方式比在智能合約中保存到公共存儲變量更容易搜索,且更省gas費。
日志是區塊鏈上的一種特殊數據結構。它們不能被智能合約訪問,但能提供關于交易和區塊中發生的信息。正是因為它們不能被智能合約訪問,才使得它們的使用成本更低。
Solana Labs創始人:鏈上投票導致網絡中斷的說法是出于“純粹的無知”:2月28日消息,對于Solana 2月25日的網絡中斷,推特用戶 DBCryptoX發布了有爭議的帖子,表明大量驗證者消息和鏈上投票正在阻塞網絡。Solana Labs創始人兼首席執行官Anatoly Yakovenko回應稱其言論來自“純粹的無知”,并指出,作為“單一龐大法定人數”的一部分,投票有助于同時提供“出色的安全性、高吞吐量和低費用”。然而,Yakovenko并沒有完全反駁DBCryptoX的說法,即Solana上90-95%的交易都包含這些驗證者消息和鏈上投票,DBCryptoX認為這有助于“使系統陷入困境”。
此前金色財經報道,Solana官方稱,2月25日發生的主網宕機原因尚未明確,正在積極調查中。(Cointelegraph)[2023/2/28 12:33:49]
你也可以觀看下面的關于Solidity中的事件和日志的視頻:
Magic Eden在Solana區塊鏈上的NFT市場份額正在迅速下降:金色財經報道,隨著不想創作者征收版稅的 NFT 交易平臺越來越受歡迎,Magic Eden 在 Solana 區塊鏈上的 NFT 市場份額正在迅速下降。去年,Magic Eden 一直是 Solana 上領先的 NFT 市場,迅速占據了 90% 或更多的市場份額,并在 6 月份達到 16 億美元的估值。但是根據 NFT 市場Tiexo最新編制的數據,Magic Eden 的 Solana 市場份額最近幾周有所下降。從數據分析結果來看,截至撰寫本文時,其份額從過去六個月的 89% 下降到上個月的 79%,上周下降幅度更大,下降到 61%,過去 24 小時下降到 58%。
MonkeDAO聯合創始人兼Frictionless Capital管理合伙人“SOL Legend”解釋說:“當熊市來襲時,利潤被壓縮,NFT 交易所開始抱怨,因為 10% 的特許權使用費嚴重侵蝕了他們 20% 的利潤。Magic Eden 擁有市場主導地位,以至于小眾玩家別無選擇,只能采用 0% 的創作者費用版稅策略來奪取市場份額并將 OTC 交易量重新投入市場。”[2022/10/14 14:27:07]
https://www.bilibili.com/video/BV1iL4y1s7ro?spm_id_from=333.999.0.0
Solana永續期貨DEX Drift 24小時交易量達3.6億美元:5月11日消息,Solana生態永續期貨DEX Drift Protocol 24小時交易量達3.6億美元,創下歷史新高(ATH)。[2022/5/11 3:06:20]
那么,什么是事件呢?
事件允許我們輕松查詢在區塊和交易中發生的“東西”。如果你運行一個區塊鏈節點,你可以通過訂閱它們來“監聽”到某些事件。事實上,這就是Chainlink網絡的工作方式。Chainlink網絡在某些地址訂閱某些事件,并根據發出的事件內容,從現實世界返回數據。
事件能用來做什么?
現在,如果你不是Chainlink或Ethereum節點運營商,你可能會問事件對你有什么影響呢。通過Solidity事件,你可以做:
測試你的智能合約中的特定變量;
索引變量以重建存儲狀態;
監聽事件用于改變前端狀態;
FTX.US總裁:即將推出的Solana NFT市場不會上線向持有者分配版稅的項目:10月11日消息,隨著加密交易所FTX準備推出其專注于Solana的NFT市場,它宣布將避開提供版稅的項目。最新FAQ提到,“我們將拒絕任何向NFT持有者分發或宣傳版稅分配的收藏品集合/項目中的NFT。”
FTX.US總裁Brett Harrison表示,“我們將上線向藝術家/創作者支付版稅的NFT項目,但我們不能上線將收藏品銷售版稅分配給NFT持有者的項目。一個保證你從資產池銷售中獲得一定百分比收入流的代幣開始看起來像一種證券。”
據彭博社9月份報道,FTX.US總裁Brett Harrison接受采訪時表示,“我們正在打造自己的NFT交易平臺,將以OpenSea作為競爭對手。我認為我們已經非常接近了。”并補充說,大約一個月后就能實現。9月6日,FTX創始人SBF在推特透露,FTX.US已上線NFT鑄造功能,所有NFT都是跨ETH和Solana鏈的,存取功能將于接下幾周時間開放,用戶可以將外部的NFT存入平臺。(The Block)[2021/10/11 20:20:59]
創建子圖以更快地讀取數據;
基于Solana的去中心化交易所Saber總鎖倉量突破30億美元:9月10日消息,數據顯示,基于Solana的去中心化交易所Saber成為首個總鎖倉量(TVL)突破30億美元的Solana協議。Saber TVL在3個月時間里從0增長至10億美元,在3天時間里從10億美元增長至20億美元,在2天時間里從20億美元增長至30億美元。[2021/9/10 23:16:26]
還可以完成其他許多事情。對工程師來說,事件有各種各樣的用例。事實上,事件是Chainlink節點運作的核心組成部分。Chainlink節點會監聽數據請求和外部計算事件,這正是是他們知道如何響應的根源。
事件是什么樣子的?
下面的數據結構就是在Solidity中定義一個事件的方式:
你可以把事件看作是一個新的特殊類型。我們已經創建了一個名為storedNumber的事件“類型”。事件的名字叫storedNumber,可以容納一些變量。在這個事件中,有兩種參數:有索引的和無索引的。索引參數也被稱為“主題”,是事件中的可搜索參數。我們會在后文更多地談及這些內容。
然后我們可以像下面這樣發出一個事件:
下面是一個完整的合約實例:
現在,只要我們調用這個例子中的store函數,它就會發出一個storedNumber類型的事件。讓我們看看一個調用store函數、輸入為1的示例交易。我們可以在KovanEtherscan上看到這個事務。
滾動到交易的“日志”部分,我們可以看到以下內容:
一個事件可以分解為:
Address:地址,發出事件的合約或賬戶的地址。
Topics:主題,事件的索引參數。
Data:數據,事件的非索引參數的ABI編碼或“哈希”。由于我們知道合約的ABI,我們可以在“Dec”或“Decoded”模式下查看它,或者在其原始的“hex”、“Hexidecimal”或“Encoded”模式下查看。如果我們沒有驗證過合約,我們就無法看到解碼的版本。
你可以在Solidity文檔中閱讀更多關于事件的內容。“日志”和“事件”經常被互換使用,因為作為智能合約的開發者,我們通常只關心日志中的“事件”。然而,從技術上講,日志也包括blockhash、address,以及通過調用eth_getLogs返回給你的區塊鏈節點的其他數據。你也可以閱讀更多有關布隆過濾器的內容,這是這些事件能被簡單查詢到的原因。
Hardhat中的事件
現在我們已經了解了什么是事件,讓我們學習如何在Hardhat中訪問并使用它們。你可以克隆下面的repo,然后跟著操作:
gitclonehttps://github.com/PatrickAlphaC/hardhat-events-logs
cdhardhat-events-logs
你需要跟著README.md中的說明完成依賴工具的安裝,其中包括Node、Yarn和Git。
如果你跟著README.md操作,你將能夠:
部署一個智能合約;
創建一個發出事件的交易;
查看這些事件的上下文。
如果你在這一過程中遇到問題,請在Githubrepo上新建一個Issue!我們可以通過檢查transactionReceipt對象的logs屬性來查看日志。
Brownie中的事件
Brownie中的事件幾乎是相同的,因為合約是完全相同的。
你可以克隆下面的repo,然后跟著操作:
你需要跟著README.md中的說明完成依賴工具的安裝,其中包括Node、Python、eth-brownie和Git。
如果你跟著README.md操作,你將能夠:
部署一個智能合約;
創建一個發出事件的交易;
查看這些事件的上下文。
如果你在這一過程中遇到問題,請在Githubrepo上新建一個Issue!你會發現這里的主要區別是,我們使用打印語句來打印出事務的日志:
總結
日志和事件是智能合約開發的重要組成部分,也是Chainlink和TheGraph等項目的關鍵基礎設施。要想了解更多關于開發強大的智能合約的信息,請務必前往查看Chainlink文檔,從現在開始創作吧!。
2021年是加密市場創紀錄的一年,投資機構和散戶都或多或少受益。對于大多數分析師和行業人士而言,2022年將是加密資產采用率增加的又一年,無論是在其作為投資工具和通脹對沖的潛力方面,還是在其細分.
1900/1/1 0:00:002022年3月9日,美國總統拜登正式簽署數字資產行政令,全面闡述美國數字資產監管行動框架。代表著美國政府為控制快速增長的行業所做的重大努力,也意味著區塊鏈將迎來“美國式監管”.
1900/1/1 0:00:00據最新消息,TRC20-USDT流通量突破417億枚,在USDT總流通量中的占比進一步提升。此外,TRC20-USDT持有賬戶數現已突破1186萬.
1900/1/1 0:00:00本文來自PythNetwork,由Odaily星球日報譯者Katie辜編譯。 目前,已有八家區塊鏈基礎設施公司增加了對PythNetwork的支持,其中包括新加入的Syndica,還有Evers.
1900/1/1 0:00:00從久負盛名的創始人,到極具顛覆性的創新技術,波卡自創世伊始,便自帶“明星”光環,吸引了大批擁躉.
1900/1/1 0:00:00根據區塊鏈瀏覽器TRONSCAN數據,過去一周,波場版穩定幣日均轉賬額為8,208,774,620美元,突破82億美元.
1900/1/1 0:00:00