Ana içeriğe atla

Parametreler

transaction
string
gerekli
Base-64 kodlu dize olarak simüle edilecek işlem
config
object
Şunları içeren yapılandırma nesnesi:
sigVerify
boolean
True ise işlem imzalarını doğrula
commitment
string
Onay seviyesi (processed, confirmed, finalized)
encoding
string
İşlem kodlama formatı (base58, base64, json)
replaceRecentBlockhash
boolean
True ise işlemin yakın blockhash’ini en son blockhash ile değiştir
accounts
object
Hesaplar yapılandırma nesnesi:
encoding
string
Hesap verisi kodlama formatı (base58, base64, json)
addresses
array
Veri döndürülecek hesap adresleri dizisi
minContextSlot
number
İsteğin değerlendirilebileceği minimum slot

Yanıt

result
object
Şunları içeren nesne:
err
string | null
İşlem simülasyonu başarısız olursa hata, simülasyon başarılıysa null
logs
array
İşlem talimatlarının yürütme sırasında çıktıladığı günlük mesajları dizisi
accounts
array
Verileriyle birlikte hesaplar dizisi (talep edildiyse)
unitsConsumed
number
İşlem tarafından tüketilen hesaplama birimi sayısı
returnData
object
Simülasyondan program geri dönüş verisi

Kod Örnekleri

Temel İstek

curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "simulateTransaction",
  "params": [
    "4hXTCkRzt9WyecNzV1XPgCDfGAZzQKNxLXgynz5QDuWWPSAZBZSHptvWRL3BjCvzUXRdKvHL2b7yGrRQcWyaqsaBCncVG7BFggS8w9snUts67BSh3EqKpXLUm5UMHfD7ZBe9GhARjbNQMLJ1QD3Spr6oMTFNhyKNMr3WNFCrXgDS7uV7u",
    {
      "sigVerify": false,
      "commitment": "confirmed",
      "encoding": "base64"
    }
  ]
}'

web3.js Kullanımı

import { Connection, Transaction, PublicKey, SystemProgram } from '@solana/web3.js';

const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');

// Create and simulate transaction
const transaction = new Transaction().add(
  SystemProgram.transfer({
    fromPubkey: new PublicKey('83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri'),
    toPubkey: new PublicKey('J7rBdM6AecPDEZp8aPq5tPmsPzPhQG4HD6YtAcQBDfJj'),
    lamports: 1000000000
  })
);

const simulation = await connection.simulateTransaction(transaction);
console.log('Simulation result:', simulation);

Notlar

  1. Gerçekten göndermeden bir işlem göndermeyi simüle eder
  2. Yanıt yürütme günlüklerini ve hataları içerir
  3. Simülasyon mevcut durum üzerinde gerçekleştirilir
  4. Durum değişiklikleri kalıcı olmaz
  5. İşlemleri test etmek ve hata ayıklamak için kullanışlıdır

En İyi Uygulamalar

  1. Gerçek işlemler göndermeden önce simülasyon kullanın
  2. Hesaplama birimi tüketimini kontrol edin
  3. Hatalar için program günlüklerini analiz edin
  4. Simülasyon sonrası hesap durumlarını doğrulayın
  5. Simülasyon hatalarını uygun şekilde yönetin

Yaygın Hatalar

KodMesajÇözüm
-32601Method not foundBir Solana RPC düğümüne bağlı olduğunuzu doğrulayın
-32602Invalid paramsİşlem formatını ve kodlamayı kontrol edin
-32003Transaction simulation failedİşlem geçerliliğini ve hesap bakiyelerini doğrulayın
-32004Blockhash not foundDaha yakın tarihli bir blockhash kullanın
-32005Node is behindFarklı bir RPC düğümü deneyin