Τεκμηρίωση SolanaΥποδομή ως ΚώδικαςSVM Addon

Συναρτήσεις SVM

Αυτές οι συναρτήσεις είναι διαθέσιμες κατά τη χρήση του πρόσθετου SVM για Solana και blockchains συμβατά με SVM.

system_program_id

svm::system_program_id επιστρέφει το αναγνωριστικό του System Program, 11111111111111111111111111111111.

output "system_program_id" {
value = svm::system_program_id()
}
// > 11111111111111111111111111111111

default_pubkey

svm::default_pubkey επιστρέφει ένα προεπιλεγμένο pubkey, 11111111111111111111111111111111.

output "default_pubkey" {
value = svm::default_pubkey()
}
// > 11111111111111111111111111111111

get_instruction_data_from_idl_path

svm::get_instruction_data_from_idl_path δημιουργεί κωδικοποιημένα instruction data για την εκτέλεση ενός προγράμματος, παρέχοντας έλεγχο τύπων και σειριοποίηση βάσει του παρεχόμενου αρχείου IDL.

Είσοδοι

NameRequiredTypeDescription
idl_pathαπαιτείταιstringΗ διαδρομή, σχετική με το txtx.yml, προς το αρχείο IDL .json
instruction_nameαπαιτείταιstringΤο όνομα της εντολής για την οποία θα δημιουργηθούν δεδομένα
argumentsπροαιρετικόarray[string]Τα ορίσματα εντολής για τα οποία θα δημιουργηθούν δεδομένα
output "data" {
value = svm::get_instruction_data_from_idl("/path/to/idl.json", "my_instruction", ["arg1", "arg2"])
}
// > data: 0x95763bdcc47fa1b305000000776f726c64

get_instruction_data_from_idl

svm::get_instruction_data_from_idl δημιουργεί κωδικοποιημένα instruction data για την εκτέλεση ενός προγράμματος, παρέχοντας έλεγχο τύπων και σειριοποίηση βάσει των παρεχόμενων δεδομένων IDL.

Είσοδοι

NameRequiredTypeDescription
idlαπαιτείταιstring | SVM_IDLΤο IDL του προγράμματος
instruction_nameαπαιτείταιstringΤο όνομα της εντολής για την οποία θα δημιουργηθούν δεδομένα, όπως ευρετηριάζεται από το IDL
argumentsπροαιρετικόarray[string]Τα ορίσματα εντολής για τα οποία θα δημιουργηθούν δεδομένα
output "data" {
value = svm::get_instruction_data_from_idl(variable.contract.idl, "my_instruction", ["arg1", "arg2"])
}
// > data: 0x95763bdcc47fa1b305000000776f726c64

get_program_from_anchor_project

svm::get_program_from_anchor_project ανακτά τα artifacts ανάπτυξης προγράμματος για ένα πρόγραμμα σε ένα έργο Anchor.

Είσοδοι

ΌνομαΑπαιτείταιΤύποςΠεριγραφή
program_nameαπαιτείταιstringΤο όνομα του προγράμματος που αναπτύσσεται
keypair_pathπροαιρετικόstringΗ τοποθεσία του αρχείου keypair του προγράμματος
idl_pathπροαιρετικόstringΗ τοποθεσία του αρχείου IDL του προγράμματος
bin_pathπροαιρετικόstringΗ τοποθεσία του δυαδικού αρχείου του προγράμματος
variable "contract" {
value = svm::get_program_from_anchor_project("my_program")
}
output "idl" {
value = variable.contract.idl
}

get_program_from_native_project

Η svm::get_program_from_native_project ανακτά τα αντικείμενα ανάπτυξης του προγράμματος για ένα πρόγραμμα που δεν είναι Anchor.

Είσοδοι

ΌνομαΑπαιτείταιΤύποςΠεριγραφή
program_nameαπαιτείταιstringΤο όνομα του προγράμματος που αναπτύσσεται
keypair_pathπροαιρετικόstringΗ τοποθεσία του αρχείου keypair του προγράμματος
idl_pathπροαιρετικόstringΗ τοποθεσία του αρχείου IDL του προγράμματος
bin_pathπροαιρετικόstringΗ τοποθεσία του δυαδικού αρχείου του προγράμματος
variable "contract" {
value = svm::get_program_from_native_project("my_program")
}
output "idl" {
value = variable.contract.idl
}

sol_to_lamports

Η svm::sol_to_lamports μετατρέπει το παρεχόμενο ποσό SOL σε lamport.

output "lamports" {
value = svm::sol_to_lamports(1.1)
}
// lamports: 1100000000

lamports_to_sol

Η svm::lamports_to_sol μετατρέπει τον παρεχόμενο αριθμό lamport σε SOL.

output "sol" {
value = svm::lamports_to_sol(1100000000)
}
// sol: 1.1

find_pda

Η svm::find_pda εντοπίζει ένα έγκυρο PDA χρησιμοποιώντας το παρεχόμενο αναγνωριστικό προγράμματος και τους σπόρους.

Είσοδοι

ΌνομαΑπαιτείταιΤύποςΠεριγραφή
program_idαπαιτείταιstringΗ διεύθυνση του προγράμματος από το οποίο παράγεται το PDA
seedsπροαιρετικόarray[string]Ένας προαιρετικός πίνακας σπόρων (έως 16, 32 bytes ο καθένας)
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", ["data"])
}
output "pda" {
value = std::encode_base58(variable.pda.pda)
}
output "bump" {
value = variable.pda.bump_seed
}
// > pda: 4amHoWMBgLkPfM8Nq9ZP33Liq9FCuqrLoU1feejkdsUJ
// > bump: 252

get_associated_token_account

svm::get_associated_token_account υπολογίζει τη διεύθυνση του associated token account για τις παρεχόμενες διευθύνσεις πορτοφολιού και token mint.

Εισόδοι

NameRequiredTypeDescription
wallet_addressrequiredstringΗ διεύθυνση του πορτοφολιού
token_mint_addressoptionalstringΗ διεύθυνση του token mint
variable "token_account" {
value = svm::get_associated_token_account(signer.caller.address, "So11111111111111111111111111111111111111112")
}

create_token_account_instruction

svm::create_token_account_instruction δημιουργεί ακατέργαστα bytes εντολής για τη δημιουργία ενός associated token account.

Εισόδοι

NameRequiredTypeDescription
funding_addressrequiredstringΗ διεύθυνση του λογαριασμού χρηματοδότησης
wallet_addressrequiredstringΗ διεύθυνση του πορτοφολιού
token_mint_addressoptionalstringΗ διεύθυνση του token mint
token_program_idoptionalstringΗ διεύθυνση του Token Program
action "call" "svm::process_instructions" {
signers = [signer.caller]
instruction {
raw_bytes = svm::create_token_account_instruction(
signer.caller.address, // funding address
signer.caller.address, // wallet address
variable.token_mint, // token mint address
variable.token_program // token program id
)
}
}

u64

svm::u64 δημιουργεί μια αναπαράσταση πίνακα byte ενός ακεραίου u64, κατάλληλη για χρήση ως seed στην παραγωγή PDA.

Εισόδοι

NameRequiredTypeDescription
valuerequiredintegerΟ ακέραιος u64 για μετατροπή σε πίνακα byte
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::u64(1000000000)])
}

i64

svm::i64 δημιουργεί μια αναπαράσταση πίνακα byte ενός ακεραίου i64, κατάλληλη για χρήση ως seed στην παραγωγή PDA.

Εισόδοι

NameRequiredTypeDescription
valuerequiredintegerΟ ακέραιος i64 για μετατροπή σε πίνακα byte
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::i64(-1000000000)])
}

Is this page helpful?

© 2026 Ίδρυμα Solana. Με επιφύλαξη παντός δικαιώματος.