วิธีการตามหา ERC-20 transfer event

ก่อนอื่นต้องทำความรู้จักกับ Logs ของ Blockchain กันก่อน

Logs เป็นข้อมูลที่เกิดขึ้นจากการสั่งดำเนินการเกี่ยวกับ Smart contract ที่อยู่บน Blockchain โดยมี Response ดังนี้

Query Log Entries 100x Faster with ankr_getLogs

สิ่งที่เป็นประโยชน์สำหรับเราคือ  “address“ และ “topics“

“address“ คือเหรียญที่เราสนใจ หรือ erc-20 contract ที่เราสนใจ

“topics“ คือข้อมูล Input สำหรับการเรียกใช้งาน Smart contract ซึ่ง “topics” จะเป็นข้อมูลที่อยู่ในรูปแบบ Array โดยเรียงลำดับจาก 0, 1, 2, 3, …. n โดยทั่วไปแล้วข้อมูลลำดับที่ 0 จะเป็นข้อมูลสำหรับระบุ Event และสำหรับข้อมูลในลำดับถัดไปจะขึ้นอยู่กับ Event

โดยตัวอย่างครั้งนี้เราสนใจ transfer event ของ erc-20 โดยโครงสร้างของ “topics“ จะมีลักษณะดังนี้

  1. Transfer event signature (ERC-20)
  2. Source address (from address)
  3. Target address (to address)

สำหรับ Token value ในการ Transfer แต่ละครั้งจะต้อง Convert จากข้อมูล “data“ Hexadecimal เป็น Integer

ข้อมูล Logs เป็นหนึ่งในข้อมูลสำคัญของการทำ On chain data analyst ซึ่งสามารถช่วยให้เราสามารถตอบคำถามยอดนิยมสำหรับการวิเคราะห์ข้อมูลที่น่าสนใจคือ

  • OP Token ถูกโอนจาก Address ใดไปยังปลายทาง Address ใด โดยมีจำนวนการโอนมากกว่า 100,000 OP Token
  • OP Token จาก Address A ถูกโอนออกครั้งล่าสุดเมื่อไหร่
  • OP Token ในรอบ 7, 14, 30, 90 วันย้อนหลัง มีการเคลื่อนไหวที่จำนวนเท่าไหร่
  • OP Token บน DEX ใด ในรอบ 7, 14, 30, 90 ที่มีจำนวน Trading volume  สูงที่สุด

แต่การวิเคราะห์ข้อมูล On chain นั้นกลับมีความท้าทายหนึ่งเรื่องนั้นคือ Performance and Cost เนื่องจากจำนวนข้อมูลที่ถูกผลิตขึ้นทุกวันในจำนวนมหาศาล ทำให้การวิเคราะห์ข้อมูลนั้นมีความ “แพง“ ในแง่ของการประมวลผล, เวลาและต้นทุน ปัจจุบันมี Analytics tools ที่น่าสนใจอยู่หลากหลายตัว

สำหรับครั้งนี้เราจะสอนใช้งาน TXEngine เป็น Open Source Data Ingestion and Validation ซึ่งสามารถใช้งานร่วมกับ AWS Glue, AWS Athena และ AWS Quicksight เพื่อสร้าง On chain analyst engine (Dune analytics-like) ของตัวเอง https://github.com/vultureprime/tx-engine

  1. Data Ingestion
  2. Data Catalog
  3. Query
  4. Visualization
Aa

© 2023, All Rights Reserved, VulturePrime co., ltd.