Rekomendasi untuk Agen
Gunakan get_transactions_for_address sebagai pengganti pencarian dua langkah
get_transactions_for_address menggabungkan pencarian tanda tangan dan pengambilan transaksi dalam satu panggilan dengan pemfilteran di sisi server.
Gunakan send_smart_transaction untuk pengiriman standar
Metode ini secara otomatis menjalankan simulasi, memperkirakan unit komputasi, mengambil biaya prioritas, dan melakukan konfirmasi. Jangan membuat instruksi ComputeBudget secara manual — SDK menambahkannya secara otomatis.
Gunakan Helius Sender untuk latensi sangat rendah
Untuk transaksi yang sensitif terhadap waktu (arbitrase, sniping, likuidasi), gunakansend_smart_transaction_with_sender. Metode ini merutekan transaksi melalui infrastruktur multiregion Helius dan Jito.
Gunakan get_asset_batch untuk beberapa aset
Saat mengambil lebih dari satu aset, proses aset tersebut sebagai batch. Jangan panggil get_asset dalam perulangan.
Gunakan webhook sebagai pengganti polling
Jangan lakukan polling terhadapget_transactions_for_address dalam perulangan. Gunakan webhook untuk notifikasi antarpeladen.
Paginasi
Berbasis Token/Kursor (Metode RPC V2)
Berbasis Halaman (DAS API)
Filter token_accounts
Saat mengueri get_transactions_for_address, filter token_accounts mengontrol apakah aktivitas akun token disertakan:
changed_since_slot — Pengambilan Akun Inkremental
changed_since_slot hanya mengembalikan akun yang diubah setelah slot tertentu. Berguna untuk alur kerja sinkronisasi atau pengindeksan. Didukung oleh get_program_accounts_v2, get_token_accounts_by_owner_v2, get_account_info, get_multiple_accounts, get_program_accounts, dan get_token_accounts_by_owner.
Kesalahan Umum
-
transaction_details: Some(TransactionDetails::Full)bukan nilai default — Secara default,get_transactions_for_addresshanya mengembalikan tanda tangan. AturTransactionDetails::Fulluntuk mendapatkan data transaksi lengkap. -
Jangan tambahkan instruksi ComputeBudget dengan
send_smart_transaction— SDK menambahkannya secara otomatis. Menambahkan instruksi sendiri menyebabkan kesalahanHeliusError::InvalidInput. -
Biaya prioritas dinyatakan dalam microlamport per unit komputasi — Bukan lamport. Nilai dari
get_priority_fee_estimatesudah menggunakan unit yang benar. -
Paginasi DAS dimulai dari indeks 1 —
page: 1adalah halaman pertama, bukanpage: 0. -
async_connection()memerlukannew_asyncatauHeliusBuilder— Memanggilhelius.async_connection()pada klien yang dibuat denganHelius::new()akan mengembalikanErr(HeliusError::ClientNotInitialized). -
get_assetmengembalikanOption<Asset>— Respons yang berhasil mungkin tetap berupaNonejika aset tidak ada. TanganiOptionsecara eksplisit. -
Tip Sender wajib diberikan —
send_smart_transaction_with_sendersecara otomatis menentukan dan menambahkan tip. Minimum 0.0002 SOL (mode Dual) atau 0.000005 SOL (khusus SWQOS). -
Flag fitur TLS — Secara default, crate menggunakan
native-tls. Gunakanfeatures = ["rustls"](dandefault-features = false) untuk TLS Rust murni saat OpenSSL tidak tersedia. -
Atur versi transaksi maksimum yang didukung ke 1 saat mengambil transaksi.
get_transaction,get_block, danget_transactions_for_addressdenganTransactionDetails::Fullakan gagal dengan kesalahan-32015pada transaksi v1 jika tidak diatur demikian. Pada transaksi v1, biaya prioritas adalahtransactionConfig.priorityFeemilik pesan, yaitu jumlah total dalam lamport; tidak ada instruksi ComputeBudget yang perlu dipindai. Lihat Dukungan transaksi v1.
Penanganan Kesalahan dan Percobaan Ulang
SDK menyediakan varian kesalahan bertipe melalui enumHeliusError, sehingga Anda dapat mencocokkannya secara langsung:
Strategi percobaan ulang
Coba lagi saat terjadiRateLimitExceeded dan InternalError dengan jeda eksponensial: