Αυτές οι μέθοδοι είναι διαθέσιμες ξεκινώντας από το v2.2.0-beta.1.
Ενεργοποιήστε τες στο kora.toml στην ενότητα [kora.enabled_methods].
getVersion
Ανακτά τις πληροφορίες έκδοσης του διακομιστή Kora.
Αίτημα JSON-RPC
{"jsonrpc": "2.0","id": 1,"method": "getVersion","params": {}}
Απόκριση JSON-RPC
{"jsonrpc": "2.0","id": 1,"result": {"version": "2.2.0-beta.7"}}
Παράδειγμα cURL
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);
Διαμόρφωση
[kora.enabled_methods]get_version = true
estimateBundleFee
Υπολογίζει τη συνολική χρέωση για πολλαπλές συναλλαγές σε ένα bundle. Χρήσιμο για τον καθορισμό του συνολικού κόστους πριν από την υπογραφή και την υποβολή ενός bundle.
Σημείωση: Τα plugins συναλλαγών (π.χ.,
gas_swap) δεν εκτελούνται κατά τη διάρκεια της εκτίμησης χρέωσης. Τα plugins εκτελούνται μόνο κατά τις ροές υπογραφής (signBundle,signAndSendBundle).
Αίτημα JSON-RPC
{"jsonrpc": "2.0","id": 1,"method": "estimateBundleFee","params": {"transactions": ["base64EncodedTransaction1", "base64EncodedTransaction2"],"fee_token": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}}
Παράμετροι
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
transactions | string[] | Ναι | Πίνακας συναλλαγών κωδικοποιημένων σε base64 (μέγιστο 5) |
fee_token | string | Ναι | Token mint για τον υπολογισμό χρέωσης |
Απόκριση JSON-RPC
{"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
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);
Διαμόρφωση
[kora.enabled_methods]estimate_bundle_fee = true[kora.bundle]enabled = true
signBundle
Υπογράφει πολλαπλές συναλλαγές ως δέσμη χωρίς να τις υποβάλλει στο δίκτυο. Χρησιμοποιήστε αυτή τη μέθοδο όταν θέλετε να διαχειριστείτε την υποβολή της δέσμης στο Jito μόνοι σας.
Αυτή η μέθοδος προστατεύεται από το reCAPTCHA όταν είναι διαμορφωμένη.
Συμπεριλάβετε την κεφαλίδα x-recaptcha-token εάν ο διακομιστής σας έχει
ενεργοποιημένο το reCAPTCHA.
Όταν είναι ενεργοποιημένα τα
πρόσθετα συναλλαγών
(π.χ., gas_swap), κάθε συναλλαγή στη δέσμη επικυρώνεται έναντι των κανόνων του
πρόσθετου πριν από την υπογραφή.
Προστασία Πληρωτή Τελών Lighthouse
Όταν είναι ενεργοποιημένη η προστασία Lighthouse, το Kora προσθέτει μια εντολή επιβεβαίωσης υπολοίπου στην τελευταία συναλλαγή της δέσμης. Αυτό προστατεύει τον πληρωτή τελών από επιθέσεις εξάντλησης διασφαλίζοντας ότι το υπόλοιπο δεν πέφτει κάτω από τα αναμενόμενα επίπεδα μετά την ολοκλήρωση όλων των συναλλαγών της δέσμης.
Σημαντικό: Επειδή το Lighthouse τροποποιεί το μήνυμα της συναλλαγής, τυχόν προϋπάρχουσες υπογραφές πελάτη στην τελευταία συναλλαγή καθίστανται άκυρες. Οι πελάτες πρέπει να επανυπογράψουν αφού λάβουν την τροποποιημένη δέσμη πίσω από το Kora.
signBundle → client receives modified txs → client re-signs last tx → client sends bundle
Αίτημα JSON-RPC
{"jsonrpc": "2.0","id": 1,"method": "signBundle","params": {"transactions": ["base64EncodedTransaction1","base64EncodedTransaction2","base64EncodedTransaction3"],"signer_key": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}
Παράμετροι
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
transactions | string[] | Ναι | Πίνακας συναλλαγών κωδικοποιημένων σε base64 (μέγιστο 5) |
signer_key | string | Όχι | Συγκεκριμένος υπογράφων για χρήση (προεπιλογή: επιλογή από το pool) |
transactions_to_sign | number[] | Όχι | Δείκτες συναλλαγών προς υπογραφή (προεπιλογή: όλες) |
Απόκριση JSON-RPC
{"jsonrpc": "2.0","id": 1,"result": {"signed_transactions": ["base64EncodedSignedTransaction1","base64EncodedSignedTransaction2","base64EncodedSignedTransaction3"],"signer_pubkey": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}
Παράδειγμα cURL
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);
Μερική Υπογραφή Πακέτου
Χρησιμοποιήστε το transactions_to_sign για να υπογράψετε μόνο συγκεκριμένες
συναλλαγές στο πακέτο:
// 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
Διαμόρφωση
[kora.enabled_methods]sign_bundle = true[kora.bundle]enabled = true
signAndSendBundle
Υπογράφει και υποβάλλει ένα πακέτο έως 5 συναλλαγών στη μηχανή μπλοκ του Jito. Όλες οι συναλλαγές στο πακέτο εκτελούνται ατομικά και διαδοχικά — είτε επιτυγχάνουν όλες είτε καμία.
Αυτή η μέθοδος προστατεύεται από το reCAPTCHA όταν έχει διαμορφωθεί.
Συμπεριλάβετε την κεφαλίδα x-recaptcha-token εάν ο διακομιστής σας έχει
ενεργοποιημένο το reCAPTCHA.
Όταν είναι ενεργοποιημένα τα
πρόσθετα συναλλαγών
(π.χ., gas_swap), κάθε συναλλαγή στο πακέτο επικυρώνεται έναντι των κανόνων
του πρόσθετου πριν από την υπογραφή.
Σημείωση: Η προστασία πληρωτή τελών Lighthouse δεν ισχύει για αυτή τη μέθοδο. Δεδομένου ότι τα πακέτα αποστέλλονται άμεσα, η προσθήκη μιας επιβεβαίωσης Lighthouse θα ακύρωνε τις υπάρχουσες υπογραφές του πελάτη. Εάν χρειάζεστε προστασία Lighthouse, χρησιμοποιήστε το
signBundleκαι διαχειριστείτε την υποβολή Jito μόνοι σας μετά την επανυπογραφή.
Αίτημα JSON-RPC
{"jsonrpc": "2.0","id": 1,"method": "signAndSendBundle","params": {"transactions": ["base64EncodedTransaction1","base64EncodedTransaction2","base64EncodedTransaction3"],"signer_key": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}
Παράμετροι
| Παράμετρος | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
transactions | string[] | Ναι | Πίνακας συναλλαγών κωδικοποιημένων σε base64 (έως 5) |
signer_key | string | Όχι | Συγκεκριμένος υπογράφων προς χρήση (προεπιλογή επιλογή από το pool) |
transactions_to_sign | number[] | Όχι | Δείκτες συναλλαγών προς υπογραφή (προεπιλογή όλες) |
Απόκριση JSON-RPC
{"jsonrpc": "2.0","id": 1,"result": {"bundle_uuid": "8f4a3b2c-1d5e-6f7a-8b9c-0d1e2f3a4b5c","signed_transactions": ["base64EncodedSignedTransaction1","base64EncodedSignedTransaction2","base64EncodedSignedTransaction3"],"signer_pubkey": "3Z1Ef7YaxK8oUMoi6exf7wYZjZKWJJsrzJXSt1c3qrDE"}}
Παράδειγμα cURL
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);
Διαμόρφωση
[kora.enabled_methods]sign_and_send_bundle = true[kora.bundle]enabled = true[kora.bundle.jito]block_engine_url = "https://mainnet.block-engine.jito.wtf"
Σημείωση: Όταν χρησιμοποιείτε πακέτα με φιλοδωρήματα Jito, βεβαιωθείτε ότι το
allow_transfer = trueέχει οριστεί στο[validation.fee_payer_policy.system]ώστε ο υπογράφων Kora να μπορεί να πληρώσει το φιλοδώρημα.
Is this page helpful?