Solana-DokumentationInfrastructure as CodeSVM Addon

SVM-Funktionen

Diese Funktionen sind verfügbar, wenn das SVM-Addon für Solana und SVM-kompatible Blockchains verwendet wird.

system_program_id

svm::system_program_id gibt die ID des System Program zurück, 11111111111111111111111111111111.

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

default_pubkey

svm::default_pubkey gibt einen Standard-pubkey zurück, 11111111111111111111111111111111.

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

get_instruction_data_from_idl_path

svm::get_instruction_data_from_idl_path erstellt kodierte instruction data für einen Programmaufruf und bietet Typprüfung sowie Serialisierung basierend auf der bereitgestellten IDL-Datei.

Eingaben

NameErforderlichTypBeschreibung
idl_patherforderlichstringDer Pfad, relativ zur txtx.yml, zur IDL-.json-Datei
instruction_nameerforderlichstringDer Name der Anweisung, für die Daten generiert werden sollen
argumentsoptionalarray[string]Die Anweisungsargumente, für die Daten generiert werden sollen
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 erstellt kodierte instruction data für einen Programmaufruf und bietet Typprüfung sowie Serialisierung basierend auf den bereitgestellten IDL-Daten.

Eingaben

NameErforderlichTypBeschreibung
idlerforderlichstring | SVM_IDLDie Programm-IDL
instruction_nameerforderlichstringDer Name der Anweisung, für die Daten generiert werden sollen, wie in der IDL indiziert
argumentsoptionalarray[string]Die Anweisungsargumente, für die Daten generiert werden sollen
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 ruft die Deployment-Artefakte für ein Programm in einem Anchor-Projekt ab.

Eingaben

NameErforderlichTypBeschreibung
program_nameerforderlichstringDer Name des Programms, das deployed wird
keypair_pathoptionalstringDer Speicherort der keypair-Datei des Programms
idl_pathoptionalstringDer Speicherort der IDL-Datei des Programms
bin_pathoptionalstringDer Speicherort der Binärdatei des Programms
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 ruft die Deployment-Artefakte für ein Nicht-Anchor-Programm ab.

Eingaben

NameErforderlichTypBeschreibung
program_nameerforderlichstringDer Name des Programms, das deployed wird
keypair_pathoptionalstringDer Speicherort der keypair-Datei des Programms
idl_pathoptionalstringDer Speicherort der IDL-Datei des Programms
bin_pathoptionalstringDer Speicherort der Binärdatei des Programms
variable "contract" {
value = svm::get_program_from_native_project("my_program")
}
output "idl" {
value = variable.contract.idl
}

sol_to_lamports

svm::sol_to_lamports konvertiert den angegebenen SOL-Betrag in lamports.

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

lamports_to_sol

svm::lamports_to_sol konvertiert die angegebene Anzahl von lamports in SOL.

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

find_pda

svm::find_pda findet eine gültige PDA anhand der angegebenen Programm-ID und Seeds.

Eingaben

NameErforderlichTypBeschreibung
program_iderforderlichstringDie Adresse des Programms, von dem die PDA abgeleitet wird
seedsoptionalarray[string]Ein optionales Array von Seeds (max. 16, je 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 berechnet die Adresse des associated token account für die angegebenen Wallet- und Token-Mint-Adressen.

Eingaben

NameErforderlichTypBeschreibung
wallet_addresserforderlichstringDie Adresse der Wallet
token_mint_addressoptionalstringDie Adresse des Token-Mints
variable "token_account" {
value = svm::get_associated_token_account(signer.caller.address, "So11111111111111111111111111111111111111112")
}

create_token_account_instruction

svm::create_token_account_instruction erstellt rohe Anweisungen-Bytes, um ein associated token account zu erstellen.

Eingaben

NameErforderlichTypBeschreibung
funding_addresserforderlichstringDie Adresse des finanzierenden Konten
wallet_addresserforderlichstringDie Adresse der Wallet
token_mint_addressoptionalstringDie Adresse des Token-Mints
token_program_idoptionalstringDie Adresse des 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 erstellt eine Byte-Array-Darstellung eines u64-Integers, geeignet zur Verwendung als seed bei der PDA-Ableitung.

Eingaben

NameErforderlichTypBeschreibung
valueerforderlichintegerDer u64-Integer, der in ein Byte-Array umgewandelt wird
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::u64(1000000000)])
}

i64

svm::i64 erstellt eine Byte-Array-Darstellung eines i64-Integers, geeignet zur Verwendung als seed bei der PDA-Ableitung.

Eingaben

NameErforderlichTypBeschreibung
valueerforderlichintegerDer i64-Integer, der in ein Byte-Array umgewandelt wird
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::i64(-1000000000)])
}

Is this page helpful?

© 2026 Solana Foundation. Alle Rechte vorbehalten.