Αυτές οι συναρτήσεις είναι διαθέσιμες κατά τη χρήση του πρόσθετου SVM για Solana και blockchains συμβατά με 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 επιστρέφει ένα προεπιλεγμένο 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.
Είσοδοι
| Name | Required | Type | Description |
|---|---|---|---|
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.
Είσοδοι
| Name | Required | Type | Description |
|---|---|---|---|
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 ανακτά τα artifacts ανάπτυξης
προγράμματος για ένα πρόγραμμα σε ένα έργο 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 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 υπολογίζει τη διεύθυνση του associated token
account για τις παρεχόμενες διευθύνσεις πορτοφολιού και token mint.
Εισόδοι
| Name | Required | Type | Description |
|---|---|---|---|
wallet_address | required | string | Η διεύθυνση του πορτοφολιού |
token_mint_address | optional | string | Η διεύθυνση του token mint |
variable "token_account" {value = svm::get_associated_token_account(signer.caller.address, "So11111111111111111111111111111111111111112")}
create_token_account_instruction
svm::create_token_account_instruction δημιουργεί ακατέργαστα bytes εντολής για
τη δημιουργία ενός associated token account.
Εισόδοι
| Name | Required | Type | Description |
|---|---|---|---|
funding_address | required | string | Η διεύθυνση του λογαριασμού χρηματοδότησης |
wallet_address | required | string | Η διεύθυνση του πορτοφολιού |
token_mint_address | optional | string | Η διεύθυνση του token mint |
token_program_id | optional | string | Η διεύθυνση του 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 δημιουργεί μια αναπαράσταση πίνακα byte ενός ακεραίου u64, κατάλληλη
για χρήση ως seed στην παραγωγή PDA.
Εισόδοι
| Name | Required | Type | Description |
|---|---|---|---|
value | required | integer | Ο ακέραιος u64 για μετατροπή σε πίνακα byte |
variable "pda" {value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::u64(1000000000)])}
i64
svm::i64 δημιουργεί μια αναπαράσταση πίνακα byte ενός ακεραίου i64, κατάλληλη
για χρήση ως seed στην παραγωγή PDA.
Εισόδοι
| Name | Required | Type | Description |
|---|---|---|---|
value | required | integer | Ο ακέραιος i64 για μετατροπή σε πίνακα byte |
variable "pda" {value = svm::find_pda("3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6", [svm::i64(-1000000000)])}
Is this page helpful?