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
| Name | Required | Type | Description |
|---|---|---|---|
idl_path | required | string | Le chemin, relatif au txtx.yml, vers le fichier IDL .json |
instruction_name | required | string | Le nom de l'instruction pour laquelle générer les données |
arguments | optional | array[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
| Name | Required | Type | Description |
|---|---|---|---|
idl | required | string | SVM_IDL | L'IDL du programme |
instruction_name | required | string | Le nom de l'instruction pour laquelle générer les données, tel qu'indexé par l'IDL |
arguments | optional | array[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
| Nom | Requis | Type | Description |
|---|---|---|---|
program_name | requis | string | Le nom du programme déployé |
keypair_path | optionnel | string | L'emplacement du fichier keypair du programme |
idl_path | optionnel | string | L'emplacement du fichier IDL du programme |
bin_path | optionnel | string | L'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
| Nom | Requis | Type | Description |
|---|---|---|---|
program_name | requis | string | Le nom du programme déployé |
keypair_path | optionnel | string | L'emplacement du fichier keypair du programme |
idl_path | optionnel | string | L'emplacement du fichier IDL du programme |
bin_path | optionnel | string | L'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
| Nom | Requis | Type | Description |
|---|---|---|---|
program_id | requis | string | L'adresse du programme dont le PDA est dérivé |
seeds | optionnel | array[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
| Name | Required | Type | Description |
|---|---|---|---|
wallet_address | required | string | L'adresse du portefeuille |
token_mint_address | optional | string | L'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
| Name | Required | Type | Description |
|---|---|---|---|
funding_address | required | string | L'adresse du compte de financement |
wallet_address | required | string | L'adresse du portefeuille |
token_mint_address | optional | string | L'adresse du mint de token |
token_program_id | optional | string | L'adresse du 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 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
| Name | Required | Type | Description |
|---|---|---|---|
value | required | integer | L'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
| Name | Required | Type | Description |
|---|---|---|---|
value | required | integer | L'entier i64 à convertir en tableau d'octets |
variable "pda" {value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::i64(-1000000000)])}
Is this page helpful?