هذه الوظائف متاحة عند استخدام إضافة SVM لسولانا وسلاسل الكتل المتوافقة مع SVM.
system_program_id
svm::system_program_id تُعيد معرّف System Program،
11111111111111111111111111111111.
output "system_program_id" {value = svm::system_program_id()}// > 11111111111111111111111111111111
default_pubkey
svm::default_pubkey تُعيد مفتاحًا عامًا افتراضيًا،
11111111111111111111111111111111.
output "default_pubkey" {value = svm::default_pubkey()}// > 11111111111111111111111111111111
get_instruction_data_from_idl_path
svm::get_instruction_data_from_idl_path تُنشئ instruction data مُشفَّرة
لاستدعاء برنامج، وتوفر فحص الأنواع والتسلسل بناءً على ملف IDL المُقدَّم.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
idl_path | مطلوب | string | المسار، نسبةً إلى txtx.yml، لملف IDL .json |
instruction_name | مطلوب | string | اسم التعليمة المراد توليد البيانات لها |
arguments | اختياري | array[string] | وسائط التعليمة المراد توليد البيانات لها |
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 تُنشئ instruction data مُشفَّرة لاستدعاء
برنامج، وتوفر فحص الأنواع والتسلسل بناءً على بيانات IDL المُقدَّمة.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
idl | مطلوب | string | SVM_IDL | برنامج IDL |
instruction_name | مطلوب | string | اسم التعليمة المراد توليد البيانات لها، كما هو مُفهرَس في IDL |
arguments | اختياري | array[string] | وسائط التعليمة المراد توليد البيانات لها |
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 تسترجع مخرجات نشر البرنامج لبرنامج في
مشروع Anchor.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
program_name | مطلوب | string | اسم البرنامج الجاري نشره |
keypair_path | اختياري | string | موقع ملف keypair الخاص بالبرنامج |
idl_path | اختياري | string | موقع ملف IDL الخاص بالبرنامج |
bin_path | اختياري | string | موقع الملف الثنائي للبرنامج |
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.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
program_name | مطلوب | string | اسم البرنامج الجاري نشره |
keypair_path | اختياري | string | موقع ملف keypair الخاص بالبرنامج |
idl_path | اختياري | string | موقع ملف IDL الخاص بالبرنامج |
bin_path | اختياري | string | موقع الملف الثنائي للبرنامج |
variable "contract" {value = svm::get_program_from_native_project("my_program")}output "idl" {value = variable.contract.idl}
sol_to_lamports
يحوّل svm::sol_to_lamports مقدار SOL المُدخل إلى lamport.
output "lamports" {value = svm::sol_to_lamports(1.1)}// lamports: 1100000000
lamports_to_sol
يحوّل svm::lamports_to_sol عدد lamport المُدخل إلى SOL.
output "sol" {value = svm::lamports_to_sol(1100000000)}// sol: 1.1
find_pda
يبحث svm::find_pda عن PDA صالح باستخدام معرّف البرنامج والبذور المُدخلة.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
program_id | مطلوب | string | عنوان البرنامج المشتق منه PDA |
seeds | اختياري | array[string] | مصفوفة اختيارية من البذور (بحد أقصى 16، بحجم 32 بايت لكل منها) |
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 يحسب عنوان associated token account للمحفظة
وعناوين سك الرموز المقدمة.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
wallet_address | مطلوب | نص | عنوان المحفظة |
token_mint_address | اختياري | نص | عنوان سك الرمز |
variable "token_account" {value = svm::get_associated_token_account(signer.caller.address, "So11111111111111111111111111111111111111112")}
create_token_account_instruction
svm::create_token_account_instruction ينشئ بايتات التعليمات الخام لإنشاء
associated token account.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
funding_address | مطلوب | نص | عنوان حساب التمويل |
wallet_address | مطلوب | نص | عنوان المحفظة |
token_mint_address | اختياري | نص | عنوان سك الرمز |
token_program_id | اختياري | نص | عنوان 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 ينشئ تمثيلاً بصيغة مصفوفة بايت لعدد صحيح من نوع u64، مناسب للاستخدام
كـ seed في اشتقاق PDA.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
value | مطلوب | عدد صحيح | العدد الصحيح u64 المراد تحويله إلى مصفوفة بايت |
variable "pda" {value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::u64(1000000000)])}
i64
svm::i64 ينشئ تمثيلاً بصيغة مصفوفة بايت لعدد صحيح من نوع i64، مناسب للاستخدام
كـ seed في اشتقاق PDA.
المدخلات
| الاسم | مطلوب | النوع | الوصف |
|---|---|---|---|
value | مطلوب | عدد صحيح | العدد الصحيح i64 المراد تحويله إلى مصفوفة بايت |
variable "pda" {value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::i64(-1000000000)])}
Is this page helpful?