Documentation SolanaInfrastructure en tant que codeModule SVM

Fonctions SVM

Ces fonctions sont disponibles lors de l'utilisation de l'addon SVM pour Solana et les blockchains compatibles SVM.

system_program_id

svm::system_program_id retourne l'identifiant du System Program, 11111111111111111111111111111111.

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

default_pubkey

svm::default_pubkey retourne une pubkey par défaut, 11111111111111111111111111111111.

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

get_instruction_data_from_idl_path

svm::get_instruction_data_from_idl_path crée des instruction data encodées pour une invocation de programme, en fournissant une vérification des types et une sérialisation basées sur le fichier IDL fourni.

Entrées

NameRequiredTypeDescription
idl_pathrequiredstringLe chemin, relatif au txtx.yml, vers le fichier IDL .json
instruction_namerequiredstringLe nom de l'instruction pour laquelle générer les données
argumentsoptionalarray[string]Les arguments de l'instruction pour lesquels générer les données
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 crée des instruction data encodées pour une invocation de programme, en fournissant une vérification des types et une sérialisation basées sur les données IDL fournies.

Entrées

NameRequiredTypeDescription
idlrequiredstring | SVM_IDLL'IDL du programme
instruction_namerequiredstringLe nom de l'instruction pour laquelle générer les données, tel qu'indexé par l'IDL
argumentsoptionalarray[string]Les arguments de l'instruction pour lesquels générer les données
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 récupère les artefacts de déploiement du programme pour un programme dans un projet Anchor.

Entrées

NomRequisTypeDescription
program_namerequisstringLe nom du programme déployé
keypair_pathoptionnelstringL'emplacement du fichier keypair du programme
idl_pathoptionnelstringL'emplacement du fichier IDL du programme
bin_pathoptionnelstringL'emplacement du fichier binaire du programme
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 récupère les artefacts de déploiement du programme pour un programme non-Anchor.

Entrées

NomRequisTypeDescription
program_namerequisstringLe nom du programme déployé
keypair_pathoptionnelstringL'emplacement du fichier keypair du programme
idl_pathoptionnelstringL'emplacement du fichier IDL du programme
bin_pathoptionnelstringL'emplacement du fichier binaire du programme
variable "contract" {
value = svm::get_program_from_native_project("my_program")
}
output "idl" {
value = variable.contract.idl
}

sol_to_lamports

svm::sol_to_lamports convertit le montant SOL fourni en lamports.

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

lamports_to_sol

svm::lamports_to_sol convertit le nombre de lamports fourni en SOL.

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

find_pda

svm::find_pda trouve un PDA valide en utilisant l'identifiant de programme et les seeds fournis.

Entrées

NomRequisTypeDescription
program_idrequisstringL'adresse du programme dont le PDA est dérivé
seedsoptionnelarray[string]Un tableau optionnel de seeds (max 16, 32 octets chacun)
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 calcule l'adresse du associated token account pour les adresses de portefeuille et de mint de token fournies.

Entrées

NameRequiredTypeDescription
wallet_addressrequiredstringL'adresse du portefeuille
token_mint_addressoptionalstringL'adresse du mint de token
variable "token_account" {
value = svm::get_associated_token_account(signer.caller.address, "So11111111111111111111111111111111111111112")
}

create_token_account_instruction

svm::create_token_account_instruction crée les octets d'instruction bruts pour créer un associated token account.

Entrées

NameRequiredTypeDescription
funding_addressrequiredstringL'adresse du compte de financement
wallet_addressrequiredstringL'adresse du portefeuille
token_mint_addressoptionalstringL'adresse du mint de token
token_program_idoptionalstringL'adresse du 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 crée une représentation en tableau d'octets d'un entier u64, adaptée à une utilisation comme seed dans la dérivation de PDA.

Entrées

NameRequiredTypeDescription
valuerequiredintegerL'entier u64 à convertir en tableau d'octets
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::u64(1000000000)])
}

i64

svm::i64 crée une représentation en tableau d'octets d'un entier i64, adaptée à une utilisation comme seed dans la dérivation de PDA.

Entrées

NameRequiredTypeDescription
valuerequiredintegerL'entier i64 à convertir en tableau d'octets
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::i64(-1000000000)])
}

Is this page helpful?

© 2026 Fondation Solana. Tous droits réservés.