Điều kiện tiên quyết: Khóa Helius API (gói Business hoặc Professional dành cho Mainnet LaserStream) và Node.js 18 trở lên. Việc quen thuộc với Đăng ký tài khoản và Giám sát giao dịch sẽ hữu ích nhưng không bắt buộc.
Thiết lập
Tạo một dự án mới, cài đặt SDK +bs58 (được dùng để giải mã chữ ký giao dịch) và đặt khóa API:
Tập lệnh
Lưu nội dung này dưới dạngindex.ts, sau đó chạy npx ts-node index.ts:
Cách tập lệnh hoạt động
Một lượt đăng ký, hai khối bộ lọc
Một lệnh gọisubscribe(...) duy nhất chứa hai nhóm bộ lọc có tên:
- Bộ lọc
accountsnhận mọi tài khoản thuộc sở hữu của chương trình Pump.fun (đường cong liên kết, trạng thái mint, v.v.) mỗi khi dữ liệu của chúng thay đổi. - Bộ lọc
transactionsnhận mọi giao dịch tương tác với chương trình Pump.fun. Các cờvote: false, failed: falseloại bỏ phiếu bầu và giao dịch thất bại trước khi chúng đến trình xử lý của bạn.
Đọc các trường thô
Một vài giá trị trong tải trọng cần được chuyển đổi đôi chút trước khi có thể sử dụng dễ dàng:tx.signaturelà mộtBuffer. Truyền giá trị này quabs58.encode(...)để lấy chữ ký base58 mà bạn sẽ thấy trong trình khám phá hoặc trong phản hồigetTransaction.tx.meta.feelà một giá trị u64 được lưu dưới dạng chuỗi để các giá trị lớn hơnNumber.MAX_SAFE_INTEGERkhông bị mất độ chính xác trong JavaScript. Bọc giá trị đó trongNumber(...)trước khi thực hiện phép toán. Quy ước dùng chuỗi cho u64 tương tự cũng áp dụng cho một số trường cấp khối — xem Giám sát slot và khối để biết cấu trúc dữ liệu đầy đủ.
Số liệu thống kê liên tục
MộtsetInterval in ảnh chụp số liệu sau mỗi 60 giây: tổng số giao dịch, số giao dịch thành công so với thất bại, thông lượng, số người trả phí duy nhất và tổng phí bằng SOL. Nhấn Ctrl+C để in ảnh chụp cuối cùng trước khi tập lệnh thoát.
Mở rộng tập lệnh
Một vài hướng để phát triển thêm:- Giải mã các bộ phân biệt lệnh để gắn nhãn giao dịch là
buy/sell/create— xem Giải mã dữ liệu giao dịch để biết mẫu phân tích cú pháp. - Lưu trữ lâu dài số liệu thống kê liên tục vào cơ sở dữ liệu (Postgres, Redis, ClickHouse) thay vì dùng
Set/ bộ đếm trong bộ nhớ. - Cảnh báo khi đạt ngưỡng — người trả phí lớn, khối lượng tăng đột biến, tài khoản đường cong liên kết mới.
- Phát lại hoạt động bị bỏ lỡ khi khởi động bằng cách đặt
fromSlottrênSubscribeRequest(tối đa 48 giờ trước — xem Phát lại lịch sử). - Kết hợp với Giám sát slot và khối để có ngữ cảnh cấp khối.
- Theo dõi một token thay vì toàn bộ chương trình: đặt mint trong
accountIncludevà đặtmatchMints: truetrên bộ lọc giao dịch để nhận mọi thao tác chuyển, hoán đổi, mint và đốt của token đó (xem Lọc theo token mint).
Các bước tiếp theo
Transaction Monitoring
Các mẫu lọc giao dịch chung mà tập lệnh này sử dụng.
Decoding Transaction Data
Phân tích tải trọng giao dịch nhị phân thành các giao dịch Solana dễ đọc.
Account Subscriptions
Theo dõi các thay đổi trạng thái của tài khoản cụ thể bằng bộ lọc.
Historical Replay
Phát lại tối đa 24 giờ hoạt động Pump.fun trước đây từ một slot bắt đầu.