
Giới thiệu bộ lọc Tài khoản token cho gTFA
Tháng 10 năm ngoái, chúng tôi đã ra mắt getTransactionsForAddress, một lệnh gọi RPC Solana mới để truy vấn dữ liệu lịch sử, kết hợp getSignaturesForAddress và getTransaction trong một phương thức.
Hôm nay, chúng tôi rất vui mừng thông báo rằng getTransactionsForAddress (gTFA) hiện có thể truy vấn lịch sử chuyển token của ví chỉ bằng một lệnh gọi RPC.
Tính năng tokenAccounts mới cho phép người dùng bao gồm các giao dịch của những tài khoản token liên kết với ví—trước đây bị bỏ qua trong gTFA và phương thức tiền nhiệm getSignaturesForAddress.
Trước đây, các nhà phát triển buộc phải truy vấn getTokenAccountsByOwner, sau đó truy vấn getSignaturesForAddress cho từng tài khoản token.
Cách này chậm và tốn kém, thường cần thêm hàng trăm lệnh gọi RPC.
Giờ đây, bạn chỉ cần một lệnh gọi đến getTransactionsForAddress với tokenAccounts.
Vấn đề
Trên Solana, ví không thực sự trực tiếp nắm giữ token.
Thay vào đó, ví sở hữu các Tài khoản token liên kết (ATA), và những tài khoản token đó nắm giữ token của bạn.
Ví dụ: khi ai đó gửi USDC cho bạn, số USDC đó sẽ được chuyển vào tài khoản token USDC thay vì địa chỉ ví chính.
Điều này gây ra một trở ngại lớn khi truy vấn lịch sử giao dịch của ví:
Khi gọi getSignaturesForAddress trên một ví, bạn chỉ nhận được các giao dịch trực tiếp tham chiếu đến địa chỉ ví đó.
Các giao dịch chuyển token tương tác với tài khoản token của bạn—nhưng không đề cập đến ví—sẽ đơn giản là không xuất hiện.
Giải pháp tạm thời
Trước đây, các nhà phát triển phải triển khai một giải pháp tạm thời rườm rà:
- Gọi
getTokenAccountsByOwnerđể lấy các tài khoản token của ví - Gọi
getSignaturesForAddresscho chính ví đó - Gọi
getSignaturesForAddresscho từng tài khoản token - Hợp nhất tất cả kết quả
- Loại bỏ dữ liệu trùng lặp (nhiều giao dịch tương tác với nhiều tài khoản)
- Sắp xếp theo trình tự thời gian
Cách tiếp cận này có nhiều vấn đề:
1. Hiệu suất chậm
Một ví có 50 tài khoản token cần hơn 51 lệnh gọi RPC chỉ để tạo lịch sử đầy đủ. Các nhà giao dịch chuyên nghiệp, người dùng DeFi thường xuyên hoặc người giao dịch memecoin để giải trí có thể sở hữu hàng trăm tài khoản token.
2. Phân trang kém hiệu quả
Bạn muốn lấy 20 giao dịch gần nhất? Không thể chỉ lấy 20 giao dịch từ mỗi nguồn rồi hợp nhất—bạn phải lấy tất cả, loại bỏ dữ liệu trùng lặp, sắp xếp và chỉ sau đó mới chọn 20 giao dịch đầu tiên.
Không có cách nào phân trang hiệu quả mà không lấy dư dữ liệu.
3. Chi phí RPC cộng dồn
Mỗi lệnh gọi RPC đều có chi phí xử lý. Khi nhân chi phí đó với hơn 100 lệnh gọi cho mỗi yêu cầu của người dùng, chi phí sẽ nhanh chóng tăng cao, đặc biệt ở quy mô lớn.
Giải pháp
Với bộ lọc tokenAccounts mới, bạn có thể lấy toàn bộ lịch sử ví chỉ trong một yêu cầu RPC:
{
"jsonrpc": "2.0",
"id": "helius-example",
"method": "getTransactionsForAddress",
"params": [
"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
{
"filters": {
"tokenAccounts": "all"
},
"sortOrder": "asc",
"limit": 100
}
]
}Chỉ vậy thôi. Một lệnh gọi. Toàn bộ lịch sử.
Các tùy chọn lọc
Bộ lọc tokenAccounts cung cấp ba tùy chọn: none, balanceChanged và all.
none (mặc định)
Khi bộ lọc tokenAccounts được đặt thành none, các giao dịch phải tham chiếu đến địa chỉ ví.
balanceChanged (khuyên dùng)
Khi áp dụng balanceChanged, các giao dịch phải tham chiếu đến địa chỉ ví hoặc thay đổi số dư của một tài khoản token thuộc sở hữu của ví.
all
Việc đặt tokenAccounts thành all yêu cầu các giao dịch phải tham chiếu đến địa chỉ ví hoặc địa chỉ của một tài khoản token thuộc sở hữu của ví.
Trường hợp sử dụng
Tính năng mới này rất cần thiết cho:
- Ví hiển thị toàn bộ lịch sử giao dịch
- Công cụ theo dõi danh mục đầu tư cần ghi nhận mọi biến động token
- Phần mềm thuế tính toán lãi/lỗ trên tất cả token
- Bảng điều khiển phân tích hiển thị hoạt động của người dùng
Bắt đầu
Tính năng tokenAccounts hiện đã có sẵn.
Chỉ cần thêm tokenAccounts: balanceChanged (hoặc all) vào đối tượng bộ lọc là xong!
Bạn chưa sử dụng getTransactionsForAddress?
Hãy xem tài liệu và SDK của chúng tôi để tìm hiểu thêm và bắt đầu.
Bài viết liên quan
Đăng ký nhận tin từ Helius
Luôn cập nhật những thông tin mới nhất về phát triển Solana và nhận thông báo khi chúng tôi đăng bài


