Bu yöntemler v2.2.0-beta.1 sürümünden itibaren kullanılabilir. Bunları
kora.toml dosyanızda [kora.enabled_methods] altında etkinleştirin.
getVersion
Kora sunucu sürüm bilgilerini alır.
JSON-RPC İsteği
{"jsonrpc": "2.0","id": 1,"method": "getVersion","params": {}}
JSON-RPC Yanıtı
{"jsonrpc": "2.0","id": 1,"result": {"version": "2.2.0-beta.7"}}
cURL Örneği
curl -X POST http://localhost:8080 \-H "Content-Type: application/json" \-d '{"jsonrpc":"2.0","id":1,"method":"getVersion","params":{}}'
TypeScript SDK
const result = await client.getVersion();console.log("Kora version:", result.version);
Yapılandırma
[kora.enabled_methods]get_version = true
estimateBundleFee
Bir bundle içindeki birden fazla işlem için toplam ücreti hesaplar. Bir bundle'ı imzalamadan ve göndermeden önce toplam maliyeti belirlemek için kullanışlıdır.
Not: İşlem eklentileri (örn.
gas_swap) ücret tahmini sırasında çalıştırılmaz. Eklentiler yalnızca imzalama akışları sırasında çalışır (signBundle,signAndSendBundle).
JSON-RPC İsteği
{"jsonrpc": "2.0","id": 1,"method": "estimateBundleFee","params": {"transactions": ["base64EncodedTransaction1", "base64EncodedTransaction2"],"fee_token": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}}
Parametreler
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
transactions | string[] | Evet | Base64 kodlu işlemler dizisi (maksimum 5) |
fee_token | string | Evet | Ücret hesaplaması için token mint |
JSON-RPC Yanıtı
{"jsonrpc": "2.0","id": 1,"result": {"total_fee_in_lamports": "15000","total_fee_in_token": "150","fee_token": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","transaction_fees": [{"fee_in_lamports": "5000","fee_in_token": "50"},{"fee_in_lamports": "10000","fee_in_token": "100"}]}}
cURL Örneği
curl -X POST http://localhost:8080 \-H "Content-Type: application/json" \-d '{"jsonrpc": "2.0","id": 1,"method": "estimateBundleFee","params": {"transactions": ["base64Tx1", "base64Tx2"],"fee_token": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}}'
TypeScript SDK
const estimate = await client.estimateBundleFee({transactions: [base64Tx1, base64Tx2, base64Tx3],fee_token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"});console.log("Total fee:", estimate.total_fee_in_lamports, "lamports");console.log("Total fee in token:", estimate.total_fee_in_token);
Yapılandırma
[kora.enabled_methods]estimate_bundle_fee = true[kora.bundle]enabled = true
signBundle
Birden fazla işlemi ağa göndermeden paket olarak imzalar. Paket gönderimini Jito'ya kendiniz yapmak istediğinizde bunu kullanın.
Bu yöntem yapılandırıldığında reCAPTCHA tarafından korunur. Sunucunuzda
reCAPTCHA etkinse x-recaptcha-token başlığını ekleyin.
İşlem eklentileri
etkinleştirildiğinde (örn. gas_swap), paketteki her işlem imzalanmadan önce
eklenti kurallarına göre doğrulanır.
Lighthouse Ücret Ödeyici Koruması
Lighthouse koruması etkinleştirildiğinde, Kora paketteki son işleme bir bakiye onaylama talimatı ekler. Bu, tüm paket işlemleri tamamlandıktan sonra bakiyenin beklenen seviyelerin altına düşmemesini sağlayarak ücret ödeyiciyi tüketme saldırılarından korur.
Önemli: Lighthouse işlem mesajını değiştirdiğinden, son işlemdeki mevcut istemci imzaları geçersiz hale gelir. İstemciler, Kora'dan değiştirilmiş paketi aldıktan sonra yeniden imzalamalıdır.
signBundle → client receives modified txs → client re-signs last tx → client sends bundle
JSON-RPC İsteği
{"jsonrpc": "2.0","id": 1,"method": "signBundle","params": {"transactions": ["base64EncodedTransaction1","base64EncodedTransaction2","base64EncodedTransaction3"],"signer_key": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}
Parametreler
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
transactions | string[] | Evet | Base64 kodlu işlemler dizisi (maksimum 5) |
signer_key | string | Hayır | Kullanılacak belirli imzalayıcı (varsayılan: havuz seçimi) |
transactions_to_sign | number[] | Hayır | İmzalanacak işlemlerin indeksleri (varsayılan: tümü) |
JSON-RPC Yanıtı
{"jsonrpc": "2.0","id": 1,"result": {"signed_transactions": ["base64EncodedSignedTransaction1","base64EncodedSignedTransaction2","base64EncodedSignedTransaction3"],"signer_pubkey": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}
cURL Örneği
curl -X POST http://localhost:8080 \-H "Content-Type: application/json" \-d '{"jsonrpc": "2.0","id": 1,"method": "signBundle","params": {"transactions": ["base64Tx1", "base64Tx2"],"signer_key": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}'
TypeScript SDK
const result = await client.signBundle({transactions: [base64Tx1, base64Tx2, base64Tx3],signer_key: koraSignerAddress});console.log("Signed transactions:", result.signed_transactions);
Kısmi Paket İmzalama
Paketteki yalnızca belirli işlemleri imzalamak için transactions_to_sign
kullanın:
// Only sign transactions at index 0 and 2const result = await client.signBundle({transactions: [tx1, tx2, tx3, tx4],transactions_to_sign: [0, 2]});// tx1 and tx3 are signed by Kora, tx2 and tx4 remain unchanged
Yapılandırma
[kora.enabled_methods]sign_bundle = true[kora.bundle]enabled = true
signAndSendBundle
En fazla 5 işlemden oluşan bir paketi imzalar ve Jito'nun blok motoruna gönderir. Paketteki tüm işlemler atomik ve sıralı olarak yürütülür — ya hepsi başarılı olur ya da hiçbiri olmaz.
Bu yöntem, yapılandırıldığında reCAPTCHA ile korunur. Sunucunuzda reCAPTCHA
etkinse x-recaptcha-token başlığını ekleyin.
İşlem eklentileri
etkinleştirildiğinde (ör. gas_swap), paketteki her işlem imzalanmadan önce
eklenti kurallarına göre doğrulanır.
Not: Lighthouse ücret ödeyici koruması bu yöntem için geçerli değildir. Paketler hemen gönderildiğinden, bir Lighthouse onaylaması eklemek mevcut istemci imzalarını geçersiz kılar. Lighthouse korumasına ihtiyacınız varsa,
signBundlekullanın ve yeniden imzaladıktan sonra Jito gönderimini kendiniz yönetin.
JSON-RPC İsteği
{"jsonrpc": "2.0","id": 1,"method": "signAndSendBundle","params": {"transactions": ["base64EncodedTransaction1","base64EncodedTransaction2","base64EncodedTransaction3"],"signer_key": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}
Parametreler
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
transactions | string[] | Evet | Base64 kodlu işlem dizisi (maksimum 5) |
signer_key | string | Hayır | Kullanılacak belirli imzalayıcı (varsayılan havuz seçimi) |
transactions_to_sign | number[] | Hayır | İmzalanacak işlemlerin indeksleri (varsayılan hepsi) |
JSON-RPC Yanıtı
{"jsonrpc": "2.0","id": 1,"result": {"bundle_uuid": "8f4a3b2c-1d5e-6f7a-8b9c-0d1e2f3a4b5c","signed_transactions": ["base64EncodedSignedTransaction1","base64EncodedSignedTransaction2","base64EncodedSignedTransaction3"],"signer_pubkey": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}
cURL Örneği
curl -X POST http://localhost:8080 \-H "Content-Type: application/json" \-d '{"jsonrpc": "2.0","id": 1,"method": "signAndSendBundle","params": {"transactions": ["base64Tx1", "base64Tx2"],"signer_key": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}'
TypeScript SDK
const { bundle_uuid } = await client.signAndSendBundle({transactions: [base64Tx1, base64Tx2, base64Tx3],signer_key: koraSignerAddress});console.log("Bundle submitted:", bundle_uuid);
Yapılandırma
[kora.enabled_methods]sign_and_send_bundle = true[kora.bundle]enabled = true[kora.bundle.jito]block_engine_url = "https://mainnet.block-engine.jito.wtf"
Not: Jito bahşişleriyle paket kullanırken, Kora imzalayıcının bahşişi ödeyebilmesi için
[validation.fee_payer_policy.system]içindeallow_transfer = trueayarlandığından emin olun.
Is this page helpful?