WEB3——開發者怎么查看自己的合約日志記錄

在區塊鏈中查看合約的日志信息(也叫事件 logs),主要有以下幾種方式,具體方法依賴于你使用的區塊鏈平臺(如 Ethereum、BSC、Polygon 等)和工具(如 Etherscan、web3.js、ethers.js、Hardhat 等)。以下是主流的幾種查看方法:


? 一、使用區塊鏈瀏覽器(如 Etherscan)

這是最直觀的方法:

步驟:
  1. 打開 Etherscan.io(或其他鏈對應的區塊鏈瀏覽器,如:

    • BSC -> bscscan.com

    • Polygon -> polygonscan.com

    • Arbitrum -> arbiscan.io

  2. 搜索你的合約地址。

  3. 進入合約頁面后,點擊上方的 "Events""Logs" 標簽頁。

  4. 查看合約發出的事件(Event),包括事件名、參數值、交易哈希等。

優點:
  • 快速直觀,適合查看已部署合約的歷史事件日志。


? 二、使用 web3.js 或 ethers.js 讀取事件日志

適合開發者在代碼中抓取合約日志。

1)web3.js 示例

const Web3 = require("web3"); const web3 = new Web3("https://mainnet.infura.io/v3/YOUR_INFURA_KEY"); const contract = new web3.eth.Contract(ABI, CONTRACT_ADDRESS); contract.getPastEvents("YourEventName", { fromBlock: 0, toBlock: "latest" }) .then(events => { console.log(events); });

2)ethers.js 示例

import { ethers } from "ethers"; const provider = new ethers.JsonRpcProvider("https://mainnet.infura.io/v3/YOUR_INFURA_KEY"); const contract = new ethers.Contract(CONTRACT_ADDRESS, ABI, provider); contract.on("YourEventName", (...args) => { console.log("Event fired:", args); });

優點:
  • 可以監聽實時事件,或批量獲取歷史事件。

  • 適合前端/后端集成開發。


? 三、使用 Hardhat/Foundry 本地調試日志

當你在本地進行開發和測試時,可以查看合約事件:

示例(Hardhat):
 

solidity

復制編輯

// Solidity 合約中定義事件 event MessageSent(address indexed sender, string message); function send(string calldata msg) public { emit MessageSent(msg.sender, msg); }

在測試文件中:

const tx = await contract.send("hello"); const receipt = await tx.wait(); console.log(receipt.events);


? 四、通過區塊/交易哈希查看日志

如果你知道某一筆交易的哈希,你可以通過區塊鏈瀏覽器或 API 查詢該交易產生的 logs。

使用 ethers.js 獲取 logs:

const txReceipt = await provider.getTransactionReceipt("0x交易哈希"); console.log(txReceipt.logs);

你可以結合 ABI 解碼這些 logs。


? 五、使用 Graph(TheGraph)建立子圖進行日志索引

適合有大量事件的合約做數據分析:

  • 用 GraphQL 查詢合約事件。

  • 非常適合做 Dapp 的后臺數據查詢接口。


總結

方法使用場景是否實時適合人群
區塊鏈瀏覽器快速查看歷史日志非技術人員、運維
web3.js / ethers.js集成開發、監聽日志開發者
Hardhat / Foundry本地開發測試開發者
TheGraph高效查詢復雜日志支持訂閱高級開發者、數據分析


實操:以區塊鏈瀏覽器為例查看日志

打開你的錢包,查看你的活動,

點擊去區塊鏈瀏覽器查看

進入后可以看到日志信息

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908008.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908008.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908008.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Maven-生命周期

目錄 1.項目對象模型 2.依賴管理模型 3.倉庫:用于存儲資源,管理各種jar包 4.本地倉庫路徑 1.項目對象模型 2.依賴管理模型 3.倉庫:用于存儲資源,管理各種jar包 4.本地倉庫路徑

redis數據過期策略

redis數據過期策略有兩種方案 1.惰性刪除 2.定期刪除 首先說惰性刪除,對于已經過期的數據,訪問這個key的時候判斷key是否過期,如果過期則刪除,這種方式對cpu友好,只有使用key的時候才會進行過期檢查,用不到…

P1040 [NOIP 2003 提高組] 加分二叉樹

目錄 題目算法標簽: 區間 d p dp dp, 動態規劃, d f s dfs dfs思路代碼 題目 P1040 [NOIP 2003 提高組] 加分二叉樹 算法標簽: 區間 d p dp dp, 動態規劃, d f s dfs dfs 思路 給出的是一顆子樹的中序遍歷, s c o r e l r r o o t score l \times r root scorelrro…

uni-app學習筆記十七-css和scss的使用

SCSS 和 CSS的異同點 我們可以使用css和scss來設置樣式。其中SCSS(Sassy CSS)是 CSS 預處理器 Sass(Syntactically Awesome Stylesheets)的一種語法格式,而 CSS(Cascading Style Sheets)是標準…

Spring Boot中Excel處理完全指南:從基礎到高級實踐

Excel處理基礎知識 1.1 為什么需要在應用中處理Excel文件? 在企業應用開發中,Excel文件處理是一個非常常見的需求,主要用于以下場景: 數據導入:允許用戶通過Excel上傳批量數據到系統 數據導出:將系統數據…

Python編程基礎(四) | if語句

引言:很久沒有寫 Python 了,有一點生疏。這是學習《Python 編程:從入門到實踐(第3版)》的課后練習記錄,主要目的是快速回顧基礎知識。 練習1:條件測試 編寫一系列條件測試,將每個條…

使用pandas實現合并具有共同列的兩個EXCEL表

表1&#xff1a; 表2&#xff1a; 表1和表2&#xff0c;有共同的列“名稱”&#xff0c;而且&#xff0c;表1的內容&#xff08;行數&#xff09;<表2的行數。 目的&#xff0c;根據“名稱”列的對應內容&#xff0c;將表2列中的“所處行業”填寫到表1相應的位置。 實現代…

ERP學習-AP

業務需要。持續更新學習進度 借助網上零搭建平臺上手實操 這個是簡道云平臺頁面鏈接&#xff0c;登錄的化去手機號登錄 目前開始對應付模塊進行學習

Dify知識庫下載小程序

一、Dify配置 1.查看或創建知識庫的API 二、下載程序配置 1. 安裝依賴resquirements.txt ######requirements.txt##### flask2.3.3 psycopg2-binary2.9.9 requests2.31.0 python-dotenv1.0.0#####安裝依賴 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.…

【PbstarAdmin】微前端架構下的高效后臺管理系統解決方案

如果你正在尋找一個高效、穩定、易于使用、易于擴展的管理后臺解決方案&#xff0c;PbstarAdmin 絕對值得一試。以下是它的在線演示和官方文檔地址&#xff0c;你可以先睹為快&#xff1a; 在線演示&#xff1a;http://pbstar-admin.pbstar.cn/官方文檔&#xff1a;http://pbs…

Java基礎之數組(附帶Comparator)

文章目錄 基礎概念可變參數組數組與ListComparator類1,基本概念2,使用Comparator的靜態方法&#xff08;Java 8&#xff09;3,常用Comparator方法4,例子 排序與查找數組復制其他 基礎概念 int[] anArray new int[10];只有創建對象時才會使用new關鍵字&#xff0c;所以數組是個…

Apache Doris 在數據倉庫中的作用與應用實踐

在當今數字化時代&#xff0c;企業數據呈爆炸式增長&#xff0c;數據倉庫作為企業數據管理和分析的核心基礎設施&#xff0c;其重要性不言而喻。而 Apache Doris&#xff0c;作為一款基于 MPP&#xff08;Massively Parallel Processing&#xff0c;大規模并行處理&#xff09;…

P1438 無聊的數列/P1253 扶蘇的問題

因為這兩天在寫線性代數的作業&#xff0c;沒怎么寫題…… P1438 無聊的數列 題目背景 無聊的 YYB 總喜歡搞出一些正常人無法搞出的東西。有一天&#xff0c;無聊的 YYB 想出了一道無聊的題&#xff1a;無聊的數列。。。 題目描述 維護一個數列 ai?&#xff0c;支持兩種操…

SpringBoot 自定義注解實現限流

SpringBoot 自定義注解實現限流 限流是為了防止服務器資源的過度消耗&#xff0c;通過一定的策略來控制訪問頻率&#xff0c;確保服務的高可用性和穩定性。其核心意義在于防止流量高峰時期接口過載&#xff0c;從而引起服務崩潰或響應延遲增加。本文將簡述如何通過AOP和自定義…

Unity——QFramework框架 內置工具

QFramework 除了提供了一套架構之外&#xff0c;QFramework 還提供了可以脫離架構使用的工具 TypeEventSystem、EasyEvent、BindableProperty、IOCContainer。 這些工具并不是有意提供&#xff0c;而是 QFramework 的架構在設計之初是通過這幾個工具組合使用而成的。 內置工具…

Vue3.5 企業級管理系統實戰(二十二):動態菜單

在前幾篇內容中已完成菜單、角色及菜單權限等相關開發&#xff0c;若要在左側菜單根據用戶角色動態展示菜單&#xff0c;需對 Sidebar 中的相關數據進行修改。鑒于其他相關方法及類型已在前文實現&#xff0c;本文不再重復闡述。 1 修改 Sidebar 組件 在 src/layout/componen…

014校園管理系統技術解析:構建智慧校園管理平臺

校園管理系統技術解析&#xff1a;構建智慧校園管理平臺 在教育信息化快速發展的當下&#xff0c;校園管理系統成為提升學校管理效率、優化校園服務的重要工具。該系統集成院校管理、投票管理等多個核心模塊&#xff0c;面向管理員、用戶和院內管理員三種角色&#xff0c;通過…

創新農業社會化服務 中和農信服務小農戶的探索實踐

在實現鄉村振興的道路上&#xff0c;如何讓現代農業發展成果惠及廣大小農戶&#xff0c;是一個重要課題。作為國內領先的綜合助農機構&#xff0c;中和農信多年來深耕農村市場&#xff0c;在服務小農戶方面進行了諸多創新探索&#xff0c;走出了一條具有示范意義的農業社會化服…

6.3 day 35

知識點回顧&#xff1a; 三種不同的模型可視化方法&#xff1a;推薦torchinfo打印summary權重分布可視化進度條功能&#xff1a;手動和自動寫法&#xff0c;讓打印結果更加美觀推理的寫法&#xff1a;評估模式 可視化 理解深度學習網絡最重要的2點&#xff1a; 1.了解損失如何定…

【如何在IntelliJ IDEA中新建Spring Boot項目(基于JDK 21 + Maven)】

AA. 我的開發環境配置與核心工具鏈解析 一、開發環境全覽 C:\Users\Again>java -version java version "21.0.1" 2023-10-17 LTS Java(TM) SE Runtime Environment (build 21.0.112-LTS-29) Java HotSpot(TM) 64-Bit Server VM (build 21.0.112-LTS-29, mixed m…