Αυτές οι ενέργειες είναι διαθέσιμες κατά τη χρήση του πρόσθετου SVM για δημιουργία συναλλαγών, υπογραφή και μετάδοση.
deploy_program
svm::deploy_program αναπτύσσει ένα πρόγραμμα Solana στο καθορισμένο δίκτυο
συμβατό με SVM.
Εισόδοι
| Name | Required | Type | Description |
|---|---|---|---|
description | optional | string | Μια περιγραφή της ενέργειας ανάπτυξης |
program | required | object | Τα αρχεία προγράμματος Solana προς ανάπτυξη |
payer | optional | string | Αναφορά σε υπογράφοντα για την κάλυψη κόστους ανάπτυξης |
authority | required | string | Αναφορά σε υπογράφοντα για την εξουσιοδότηση προγράμματος |
commitment_level | optional | string | Το επίπεδο δέσμευσης ('processed', 'confirmed', 'finalized') |
auto_extend | optional | bool | Εάν θα επεκταθεί αυτόματα το program account (προεπιλογή: true) |
Έξοδοι
| Name | Type | Description |
|---|---|---|
signatures | object | Οι υπολογισμένες υπογραφές συναλλαγής |
program_id | string | Το αναγνωριστικό του αναπτυγμένου προγράμματος |
program_idl | string | Το IDL προγράμματος |
action "deploy" "svm::deploy_program" {description = "Deploy hello world program"program = svm::get_program_from_anchor_project("hello_world")authority = signer.authoritypayer = signer.payer # Optional, defaults to authority}
process_instructions
Η ενέργεια svm::process_instructions κωδικοποιεί οδηγίες, τις προσθέτει σε μια
συναλλαγή και υπογράφει και μεταδίδει τη συναλλαγή.
Εισόδοι
| Name | Required | Type | Description |
|---|---|---|---|
description | optional | string | Μια περιγραφή της συναλλαγής |
instruction | required | map | Οι οδηγίες προς προσθήκη στη συναλλαγή |
signers | required | array[string] | Αναφορές σε κατασκευές υπογραφόντων |
commitment_level | optional | string | Το επίπεδο δέσμευσης |
rpc_api_url | required | string | Η URL για αιτήματα API |
Έξοδοι
| Όνομα | Τύπος | Περιγραφή |
|---|---|---|
signature | string | Η υπολογισμένη υπογραφή της συναλλαγής |
action "program_call" "svm::process_instructions" {description = "Invoke instructions"instruction {program_idl = variable.program.idlinstruction_name = "initialize"instruction_args = [1]payer {public_key = signer.payer.public_key}}signers = [signer.caller]}
send_sol
Η ενέργεια svm::send_sol κωδικοποιεί μια συναλλαγή που αποστέλλει SOL, την
υπογράφει και την μεταδίδει στο δίκτυο.
Είσοδοι
| Όνομα | Απαιτείται | Τύπος | Περιγραφή |
|---|---|---|---|
description | προαιρετικό | string | Μια περιγραφή της συναλλαγής |
amount | απαιτείται | integer | Το ποσό προς αποστολή, σε lamports |
recipient | απαιτείται | string | Η διεύθυνση SVM του παραλήπτη |
signer | απαιτείται | string | Αναφορά σε ένα κατασκεύασμα υπογράφοντα |
commitment_level | προαιρετικό | string | Το επίπεδο δέσμευσης |
rpc_api_url | απαιτείται | string | Το URL για αιτήματα API |
Έξοδοι
| Όνομα | Τύπος | Περιγραφή |
|---|---|---|
signature | string | Η υπολογισμένη υπογραφή της συναλλαγής |
action "send_sol" "svm::send_sol" {description = "Send some SOL"amount = svm::sol_to_lamports(1)signer = signer.callerrecipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"}
send_token
Η ενέργεια svm::send_token κωδικοποιεί μια συναλλαγή που αποστέλλει το
καθορισμένο token, το υπογράφει και το μεταδίδει στο δίκτυο.
Είσοδοι
| Όνομα | Απαιτείται | Τύπος | Περιγραφή |
|---|---|---|---|
description | προαιρετικό | string | Μια περιγραφή της συναλλαγής |
amount | απαιτείται | integer | Το ποσό των tokens προς αποστολή, σε βασική μονάδα |
token | απαιτείται | string | Η διεύθυνση του token mint account |
recipient | απαιτείται | string | Η διεύθυνση SVM του παραλήπτη |
authority | προαιρετικό | string | Το pubkey του λογαριασμού εξουσιοδότησης |
fund_recipient | προαιρετικό | bool | Δημιουργία και χρηματοδότηση του token account παραλήπτη αν χρειάζεται |
signers | απαιτείται | array[string] | Αναφορές σε κατασκευάσματα υπογραφόντων |
Έξοδοι
| Όνομα | Τύπος | Περιγραφή |
|---|---|---|
signature | string | Η υπολογισμένη υπογραφή της συναλλαγής |
recipient_token_address | pubkey | Η διεύθυνση του token account του παραλήπτη |
source_token_address | pubkey | Η διεύθυνση του token account πηγής |
token_mint_address | pubkey | Η διεύθυνση του token mint |
action "send_sol" "svm::send_token" {description = "Send some tokens"amount = 1000000signers = [signer.caller]recipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"token = "3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6"fund_recipient = true}
setup_surfnet
svm::setup_surfnet μπορεί να χρησιμοποιηθεί για τη ρύθμιση ενός surfnet.
Υποστηρίζονται οι ακόλουθες λειτουργίες:
set_account- Ορισμός των πεδίων lamports, owner, data και executable ενός λογαριασμούset_token_account- Ορισμός του ποσού, του delegate, του delegated amount και της close authority για ένα token accountclone_program_account- Κλωνοποίηση ενός program account από ένα ID προγράμματος πηγής σε ένα ID προγράμματος προορισμούset_program_authority- Ορισμός της authority ενός προγράμματοςdeploy_program- Ανάπτυξη ενός προγράμματος απευθείας στο surfnet (μέσω άμεσης εγγραφής λογαριασμού, όχι συναλλαγών)reset_account- Επαναφορά ενός λογαριασμού, αφαιρώντας τον από την τοπική cache για εκ νέου ανάκτηση από upstreamstream_account- Μεταφορά δεδομένων λογαριασμού από το mainnet σε πραγματικό χρόνο, ώστε τα τοπικά δεδομένα να συμφωνούν πάντα με το mainnet
Είσοδοι
| Όνομα | Απαιτείται | Τύπος | Περιγραφή |
|---|---|---|---|
description | προαιρετικό | string | Μια περιγραφή της ρύθμισης |
rpc_api_url | απαιτούμενο | string | Το URL για αιτήματα API |
set_account
Ορίζει δεδομένα λογαριασμού απευθείας στο surfnet.
| Όνομα | Απαιτείται | Τύπος | Περιγραφή |
|---|---|---|---|
public_key | απαιτούμενο | string | Το δημόσιο κλειδί του λογαριασμού προς ορισμό |
account_path | προαιρετικό | string | Η διαδρομή προς ένα αρχείο JSON που περιέχει τα δεδομένα λογαριασμού προς ορισμό. Εάν παρέχεται, τα υπόλοιπα πεδία αγνοούνται |
lamports | προαιρετικό | integer | Το ποσό σε lamports που πρέπει να οριστεί για τον λογαριασμό |
data | προαιρετικό | bytes | Τα δεδομένα προς ορισμό στον λογαριασμό |
owner | προαιρετικό | string | Ο owner που θα οριστεί για τον λογαριασμό |
executable | προαιρετικό | bool | Η κατάσταση εκτελεσιμότητας που θα οριστεί για τον λογαριασμό |
rent_epoch | προαιρετικό | integer | Το epoch κατά το οποίο ο λογαριασμός θα είναι απαλλαγμένος από ενοίκιο |
Τουλάχιστον ένα από τα lamports, data, owner, executable ή rent_epoch
πρέπει να παρέχεται (εκτός αν χρησιμοποιείτε account_path).
set_token_account
Ορίζει δεδομένα token account στο surfnet. Το associated token account παράγεται αυτόματα από το δημόσιο κλειδί του ιδιοκτήτη και το token mint.
| Name | Required | Type | Description |
|---|---|---|---|
public_key | required | string | Το δημόσιο κλειδί του λογαριασμού ιδιοκτήτη token προς ενημέρωση |
token | required | string | Το σύμβολο token (π.χ., "usdc", "bonk") ή το δημόσιο κλειδί για το token mint |
token_program | optional | string | Το αναγνωριστικό Token Program. Έγκυρες τιμές είναι token2020, token2022 ή ένα δημόσιο κλειδί (προεπιλογή: token2020) |
amount | optional | integer | Το ποσό των tokens προς ορισμό |
delegate | optional | string | Το δημόσιο κλειδί του εκπροσώπου (delegate) προς ορισμό, ή null για εκκαθάριση |
state | optional | string | Η κατάσταση του token account. Έγκυρες τιμές είναι initialized, frozen ή uninitialized |
delegated_amount | optional | integer | Το ποσό των tokens προς ανάθεση |
close_authority | optional | string | Το δημόσιο κλειδί της αρχής κλεισίματος (close authority) προς ορισμό, ή null για εκκαθάριση |
Τουλάχιστον ένα από τα amount, delegate, state, delegated_amount ή
close_authority πρέπει να παρέχεται.
clone_program_account
Κλωνοποιεί ένα program account από ένα αναγνωριστικό προγράμματος σε άλλο στο surfnet.
| Name | Required | Type | Description |
|---|---|---|---|
source_program_id | required | string | Το δημόσιο κλειδί του προγράμματος προς κλωνοποίηση |
destination_program_id | required | string | Το δημόσιο κλειδί προορισμού του προγράμματος |
set_program_authority
Ορίζει ή αφαιρεί την αρχή αναβάθμισης ενός προγράμματος στο surfnet.
| Όνομα | Απαιτείται | Τύπος | Περιγραφή |
|---|---|---|---|
program_id | απαιτείται | string | Το pubkey του προγράμματος για το οποίο ορίζεται η αρχή |
authority | προαιρετικό | string | Η νέα αρχή για το πρόγραμμα. Εάν δεν παρασχεθεί, η αρχή του προγράμματος θα οριστεί σε None (καθιστώντας το αμετάβλητο) |
deploy_program
Αναπτύσσει ένα πρόγραμμα απευθείας στο surfnet μέσω εγγραφής δεδομένων λογαριασμού (όχι μέσω συναλλαγών).
| Όνομα | Απαιτείται | Τύπος | Περιγραφή |
|---|---|---|---|
program_id | απαιτείται | string | Το pubkey του προγράμματος που αναπτύσσεται |
binary_path | απαιτείται | string | Η τοποθεσία του αρχείου .so του προγράμματος (π.χ., ./target/deploy/my_program.so) |
authority | προαιρετικό | string | Το pubkey της αρχής του προγράμματος μετά την ανάπτυξή του. Εάν δεν παρασχεθεί, το πρόγραμμα δεν θα έχει αρχή |
idl_path | προαιρετικό | string | Η τοποθεσία του αρχείου IDL του προγράμματος (π.χ., ./target/idl/my_program.json) |
reset_account
Επαναφέρει έναν λογαριασμό στο surfnet, αφαιρώντας τον από την τοπική κρυφή μνήμη ώστε να επαναληφθεί η ανάκτησή του από το upstream δίκτυο.
| Όνομα | Απαιτείται | Τύπος | Περιγραφή |
|---|---|---|---|
public_key | απαιτείται | string | Το pubkey του λογαριασμού προς επαναφορά |
include_owned_accounts | προαιρετικό | bool | Εάν θα διαγραφούν αναδρομικά όλοι οι λογαριασμοί που ανήκουν σε αυτόν τον λογαριασμό. Η προεπιλογή είναι false |
stream_account
Μεταδίδει δεδομένα λογαριασμού από το mainnet RPC URL στο surfnet, διατηρώντας τα τοπικά δεδομένα λογαριασμού συγχρονισμένα με το mainnet.
| Όνομα | Απαιτείται | Τύπος | Περιγραφή |
|---|---|---|---|
public_key | απαιτείται | string | Το pubkey του λογαριασμού προς μετάδοση |
include_owned_accounts | προαιρετικό | bool | Εάν θα γίνεται αναδρομική μετάδοση όλων των λογαριασμών που ανήκουν σε αυτόν τον λογαριασμό. Η προεπιλογή είναι false |
action "setup" "svm::setup_surfnet" {// Set account balanceset_account {public_key = signer.caller.public_keylamports = 999999999}// Set token balanceset_token_account {public_key = signer.caller.public_keytoken = "usdc"amount = 1000000}// Clone a programclone_program_account {source_program_id = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"destination_program_id = variable.my_program_id}// Set program authorityset_program_authority {program_id = variable.my_program_idauthority = signer.caller.public_key}// Deploy a program directlydeploy_program {program_id = variable.my_program_idbinary_path = "./target/deploy/my_program.so"idl_path = "./target/idl/my_program.json"}// Reset an account to re-fetch from upstreamreset_account {public_key = variable.some_pubkey}// Stream account data from mainnetstream_account {public_key = variable.some_pubkeyinclude_owned_accounts = true}}
Is this page helpful?