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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
idl_path | erforderlich | string | Der Pfad, relativ zur txtx.yml, zur IDL-.json-Datei |
instruction_name | erforderlich | string | Der Name der Anweisung, für die Daten generiert werden sollen |
arguments | optional | array[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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
idl | erforderlich | string | SVM_IDL | Die Programm-IDL |
instruction_name | erforderlich | string | Der Name der Anweisung, für die Daten generiert werden sollen, wie in der IDL indiziert |
arguments | optional | array[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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
program_name | erforderlich | string | Der Name des Programms, das deployed wird |
keypair_path | optional | string | Der Speicherort der keypair-Datei des Programms |
idl_path | optional | string | Der Speicherort der IDL-Datei des Programms |
bin_path | optional | string | Der 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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
program_name | erforderlich | string | Der Name des Programms, das deployed wird |
keypair_path | optional | string | Der Speicherort der keypair-Datei des Programms |
idl_path | optional | string | Der Speicherort der IDL-Datei des Programms |
bin_path | optional | string | Der 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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
program_id | erforderlich | string | Die Adresse des Programms, von dem die PDA abgeleitet wird |
seeds | optional | array[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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
wallet_address | erforderlich | string | Die Adresse der Wallet |
token_mint_address | optional | string | Die 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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
funding_address | erforderlich | string | Die Adresse des finanzierenden Konten |
wallet_address | erforderlich | string | Die Adresse der Wallet |
token_mint_address | optional | string | Die Adresse des Token-Mints |
token_program_id | optional | string | Die Adresse des Token Program |
action "call" "svm::process_instructions" {signers = [signer.caller]instruction {raw_bytes = svm::create_token_account_instruction(signer.caller.address, // funding addresssigner.caller.address, // wallet addressvariable.token_mint, // token mint addressvariable.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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
value | erforderlich | integer | Der 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
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
value | erforderlich | integer | Der i64-Integer, der in ein Byte-Array umgewandelt wird |
variable "pda" {value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::i64(-1000000000)])}
Is this page helpful?