Solana DokümantasyonuKod Olarak AltyapıSVM Eklentisi

SVM Fonksiyonları

Bu fonksiyonlar, Solana ve SVM uyumlu blok zincirleri için SVM eklentisi kullanılırken mevcuttur.

system_program_id

svm::system_program_id, System Program'ın kimliğini döndürür, 11111111111111111111111111111111.

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

default_pubkey

svm::default_pubkey varsayılan bir pubkey döndürür, 11111111111111111111111111111111.

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

get_instruction_data_from_idl_path

svm::get_instruction_data_from_idl_path, bir program çağrısı için kodlanmış instruction data oluşturur; sağlanan IDL dosyasına dayalı tür denetimi ve serileştirme sağlar.

Girdiler

NameRequiredTypeDescription
idl_pathgereklistringtxtx.yml dosyasına göre IDL .json dosyasının yolu
instruction_namegereklistringVeri oluşturulacak talimatın adı
argumentsisteğe bağlıarray[string]Veri oluşturulacak talimat argümanları
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, bir program çağrısı için kodlanmış instruction data oluşturur; sağlanan IDL verisine dayalı tür denetimi ve serileştirme sağlar.

Girdiler

NameRequiredTypeDescription
idlgereklistring | SVM_IDLProgram IDL'si
instruction_namegereklistringIDL tarafından indekslenen, veri oluşturulacak talimatın adı
argumentsisteğe bağlıarray[string]Veri oluşturulacak talimat argümanları
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, bir Anchor projesindeki program için program dağıtım artefaktlarını alır.

Girdiler

AdZorunluTürAçıklama
program_namezorunlustringDağıtılan programın adı
keypair_pathisteğe bağlıstringProgram keypair dosyasının konumu
idl_pathisteğe bağlıstringProgram IDL dosyasının konumu
bin_pathisteğe bağlıstringProgram ikili dosyasının konumu
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 kullanmayan bir program için dağıtım artifact'larını getirir.

Girdiler

AdZorunluTürAçıklama
program_namezorunlustringDağıtılan programın adı
keypair_pathisteğe bağlıstringProgram keypair dosyasının konumu
idl_pathisteğe bağlıstringProgram IDL dosyasının konumu
bin_pathisteğe bağlıstringProgram ikili dosyasının konumu
variable "contract" {
value = svm::get_program_from_native_project("my_program")
}
output "idl" {
value = variable.contract.idl
}

sol_to_lamports

svm::sol_to_lamports, sağlanan SOL miktarını lamport cinsine dönüştürür.

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

lamports_to_sol

svm::lamports_to_sol, sağlanan lamport miktarını SOL cinsine dönüştürür.

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

find_pda

svm::find_pda, sağlanan program kimliği ve seed'leri kullanarak geçerli bir PDA bulur.

Girdiler

AdZorunluTürAçıklama
program_idzorunlustringPDA'nın türetildiği programın adresi
seedsisteğe bağlıarray[string]İsteğe bağlı seed dizisi (en fazla 16, her biri 32 bayt)
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, sağlanan cüzdan ve token mint adresleri için associated token account adresini hesaplar.

Girdiler

AdZorunluTürAçıklama
wallet_addresszorunlustringCüzdanın adresi
token_mint_addressisteğe bağlıstringToken mint'in adresi
variable "token_account" {
value = svm::get_associated_token_account(signer.caller.address, "So11111111111111111111111111111111111111112")
}

create_token_account_instruction

svm::create_token_account_instruction, bir associated token account oluşturmak için ham talimat baytları oluşturur.

Girdiler

AdZorunluTürAçıklama
funding_addresszorunlustringFinansman hesabının adresi
wallet_addresszorunlustringCüzdanın adresi
token_mint_addressisteğe bağlıstringToken mint'in adresi
token_program_idisteğe bağlıstringToken Program'ın adresi
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, PDA türetiminde seed olarak kullanılmaya uygun şekilde bir u64 tam sayısının bayt dizisi temsilini oluşturur.

Girdiler

AdZorunluTürAçıklama
valuezorunluintegerBayt dizisine dönüştürülecek u64 tam sayısı
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::u64(1000000000)])
}

i64

svm::i64, PDA türetiminde seed olarak kullanılmaya uygun şekilde bir i64 tam sayısının bayt dizisi temsilini oluşturur.

Girdiler

AdZorunluTürAçıklama
valuezorunluintegerBayt dizisine dönüştürülecek i64 tam sayısı
variable "pda" {
value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::i64(-1000000000)])
}

Is this page helpful?

© 2026 Solana Vakfı. Tüm hakları saklıdır.