Te akcje są dostępne podczas korzystania z dodatku SVM do budowania, podpisywania i rozgłaszania transakcji.
deploy_program
svm::deploy_program wdraża program Solana do wskazanej sieci kompatybilnej z
SVM.
Dane wejściowe
| Name | Required | Type | Description |
|---|---|---|---|
description | optional | string | Opis akcji wdrożenia |
program | required | object | Artefakty programu Solana do wdrożenia |
payer | optional | string | Odniesienie do sygnatariusza pokrywającego koszty wdrożenia |
authority | required | string | Odniesienie do sygnatariusza będącego właścicielem programu |
commitment_level | optional | string | Poziom potwierdzenia ('processed', 'confirmed', 'finalized') |
auto_extend | optional | bool | Czy automatycznie rozszerzyć program account (domyślnie: true) |
Dane wyjściowe
| Name | Type | Description |
|---|---|---|
signatures | object | Obliczone sygnatury transakcji |
program_id | string | ID programu wdrożonego programu |
program_idl | string | IDL programu |
action "deploy" "svm::deploy_program" {description = "Deploy hello world program"program = svm::get_program_from_anchor_project("hello_world")authority = signer.authoritypayer = signer.payer # Optional, defaults to authority}
process_instructions
Akcja svm::process_instructions koduje instrukcje, dodaje je do transakcji, a
następnie podpisuje i rozgłasza transakcję.
Dane wejściowe
| Name | Required | Type | Description |
|---|---|---|---|
description | optional | string | Opis transakcji |
instruction | required | map | Instrukcje do dodania do transakcji |
signers | required | array[string] | Odniesienia do konstrukcji sygnatariuszy |
commitment_level | optional | string | Poziom potwierdzenia |
rpc_api_url | required | string | Adres URL dla żądań API |
Dane wyjściowe
| Nazwa | Typ | Opis |
|---|---|---|
signature | string | Obliczony podpis transakcji |
action "program_call" "svm::process_instructions" {description = "Invoke instructions"instruction {program_idl = variable.program.idlinstruction_name = "initialize"instruction_args = [1]payer {public_key = signer.payer.public_key}}signers = [signer.caller]}
send_sol
Akcja svm::send_sol koduje transakcję, która wysyła SOL, podpisuje ją i
rozgłasza do sieci.
Dane wejściowe
| Nazwa | Wymagane | Typ | Opis |
|---|---|---|---|
description | opcjonalne | string | Opis transakcji |
amount | wymagane | integer | Kwota do wysłania, w lamport |
recipient | wymagane | string | Adres SVM odbiorcy |
signer | wymagane | string | Odwołanie do konstruktu podpisującego |
commitment_level | opcjonalne | string | Poziom zatwierdzenia |
rpc_api_url | wymagane | string | URL do żądań API |
Dane wyjściowe
| Nazwa | Typ | Opis |
|---|---|---|
signature | string | Obliczony podpis transakcji |
action "send_sol" "svm::send_sol" {description = "Send some SOL"amount = svm::sol_to_lamports(1)signer = signer.callerrecipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"}
send_token
Akcja svm::send_token koduje transakcję, która wysyła wskazany token,
podpisuje ją i rozgłasza do sieci.
Dane wejściowe
| Nazwa | Wymagane | Typ | Opis |
|---|---|---|---|
description | opcjonalne | string | Opis transakcji |
amount | wymagane | integer | Liczba tokenów do wysłania, w jednostce bazowej |
token | wymagane | string | Adres mint account tokena |
recipient | wymagane | string | Adres SVM odbiorcy |
authority | opcjonalne | string | pubkey konta authority |
fund_recipient | opcjonalne | bool | Utwórz i zasilij token account odbiorcy, jeśli potrzeba |
signers | wymagane | array[string] | Odwołania do konstruktów podpisujących |
Dane wyjściowe
| Nazwa | Typ | Opis |
|---|---|---|
signature | string | Obliczony podpis transakcji |
recipient_token_address | pubkey | Adres token account odbiorcy |
source_token_address | pubkey | Adres źródłowego token account |
token_mint_address | pubkey | Adres mint tokena |
action "send_sol" "svm::send_token" {description = "Send some tokens"amount = 1000000signers = [signer.caller]recipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"token = "3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6"fund_recipient = true}
setup_surfnet
svm::setup_surfnet może być użyty do konfiguracji surfnetu.
Obsługiwane są następujące operacje:
set_account- Ustawia lamports, właściciela, dane oraz pola wykonywalne kontaset_token_account- Ustawia kwotę, delegata, delegowaną kwotę oraz uprawnienia do zamknięcia dla token accountclone_program_account- Klonuje program account ze źródłowego identyfikatora programu do docelowego identyfikatora programuset_program_authority- Ustawia uprawnienia programudeploy_program- Wdraża program bezpośrednio do surfnetu (poprzez bezpośredni zapis do konta, nie transakcje)reset_account- Resetuje konto, usuwając je z lokalnej pamięci podręcznej w celu ponownego pobrania z upstreamstream_account- Strumieniuje dane konta z mainnet, tak aby lokalne dane zawsze odpowiadały mainnet
Dane wejściowe
| Nazwa | Wymagane | Typ | Opis |
|---|---|---|---|
description | opcjonalne | string | Opis konfiguracji |
rpc_api_url | wymagane | string | Adres URL dla żądań API |
set_account
Ustawia dane konta bezpośrednio na surfnecie.
| Nazwa | Wymagane | Typ | Opis |
|---|---|---|---|
public_key | wymagane | string | Klucz publiczny konta do ustawienia |
account_path | opcjonalne | string | Ścieżka do pliku JSON zawierającego dane konta do ustawienia. Jeśli podano, pozostałe pola są ignorowane |
lamports | opcjonalne | integer | Liczba lamports, na jaką konto powinno zostać ustawione |
data | opcjonalne | bytes | Dane do ustawienia w koncie |
owner | opcjonalne | string | Właściciel do ustawienia dla konta |
executable | opcjonalne | bool | Stan wykonywalności do ustawienia dla konta |
rent_epoch | opcjonalne | integer | Epoch, w którym konto będzie zwolnione z czynszu |
Co najmniej jeden z parametrów lamports, data, owner, executable lub
rent_epoch musi zostać podany (chyba że używasz account_path).
set_token_account
Ustawia dane token account w surfnet. associated token account jest automatycznie wyprowadzany z klucza publicznego właściciela i mint tokena.
| Name | Required | Type | Description |
|---|---|---|---|
public_key | required | string | Klucz publiczny konta właściciela tokena do aktualizacji |
token | required | string | Symbol tokena (np. "usdc", "bonk") lub klucz publiczny dla mint tokena |
token_program | optional | string | ID Token Program. Prawidłowe wartości to token2020, token2022 lub klucz publiczny (domyślnie: token2020) |
amount | optional | integer | Ilość tokenów do ustawienia |
delegate | optional | string | Klucz publiczny delegata do ustawienia lub null, aby wyczyścić |
state | optional | string | Stan token account. Prawidłowe wartości to initialized, frozen lub uninitialized |
delegated_amount | optional | integer | Ilość tokenów do delegowania |
close_authority | optional | string | Klucz publiczny urzędu zamknięcia do ustawienia lub null, aby wyczyścić |
Co najmniej jeden z parametrów amount, delegate, state, delegated_amount
lub close_authority musi zostać podany.
clone_program_account
Klonuje program account z jednego ID programu do innego w surfnet.
| Name | Required | Type | Description |
|---|---|---|---|
source_program_id | required | string | Klucz publiczny programu do sklonowania |
destination_program_id | required | string | Docelowy klucz publiczny programu |
set_program_authority
Ustawia lub usuwa uprawnienia do aktualizacji programu w surfnet.
| Nazwa | Wymagane | Typ | Opis |
|---|---|---|---|
program_id | wymagane | string | pubkey programu, dla którego ustawiane są uprawnienia |
authority | opcjonalne | string | Nowe uprawnienia dla programu. Jeśli nie podano, uprawnienia programu zostaną ustawione na None (czyniąc go niezmiennym) |
deploy_program
Wdraża program bezpośrednio do surfnet poprzez zapis danych konta (nie przez transakcje).
| Nazwa | Wymagane | Typ | Opis |
|---|---|---|---|
program_id | wymagane | string | pubkey wdrażanego programu |
binary_path | wymagane | string | Lokalizacja pliku .so programu (np. ./target/deploy/my_program.so) |
authority | opcjonalne | string | pubkey podmiotu uprawnionego do zarządzania programem po jego wdrożeniu. Jeśli nie podano, program nie będzie miał żadnych uprawnień |
idl_path | opcjonalne | string | Lokalizacja pliku IDL programu (np. ./target/idl/my_program.json) |
reset_account
Resetuje konto w surfnet, usuwając je z lokalnej pamięci podręcznej, dzięki czemu zostanie ponownie pobrane z sieci nadrzędnej.
| Nazwa | Wymagane | Typ | Opis |
|---|---|---|---|
public_key | wymagane | string | pubkey konta do zresetowania |
include_owned_accounts | opcjonalne | bool | Czy rekurencyjnie usunąć wszystkie konta należące do tego konta. Domyślnie false |
stream_account
Przesyła strumieniowo dane konta z adresu URL RPC sieci głównej do surfnet, utrzymując lokalne dane konta zsynchronizowane z siecią główną.
| Nazwa | Wymagane | Typ | Opis |
|---|---|---|---|
public_key | wymagane | string | pubkey konta do przesyłania strumieniowego |
include_owned_accounts | opcjonalne | bool | Czy rekurencyjnie przesyłać strumieniowo wszystkie konta należące do tego konta. Domyślnie false |
action "setup" "svm::setup_surfnet" {// Set account balanceset_account {public_key = signer.caller.public_keylamports = 999999999}// Set token balanceset_token_account {public_key = signer.caller.public_keytoken = "usdc"amount = 1000000}// Clone a programclone_program_account {source_program_id = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"destination_program_id = variable.my_program_id}// Set program authorityset_program_authority {program_id = variable.my_program_idauthority = signer.caller.public_key}// Deploy a program directlydeploy_program {program_id = variable.my_program_idbinary_path = "./target/deploy/my_program.so"idl_path = "./target/idl/my_program.json"}// Reset an account to re-fetch from upstreamreset_account {public_key = variable.some_pubkey}// Stream account data from mainnetstream_account {public_key = variable.some_pubkeyinclude_owned_accounts = true}}
Is this page helpful?