Solana-dokumentaatioInfrastruktuuri koodinaSVM-lisäosa

SVM-toiminnot

Nämä toiminnot ovat käytettävissä, kun käytetään SVM-lisäosaa transaktioiden rakentamiseen, allekirjoittamiseen ja lähettämiseen.

deploy_program

svm::deploy_program ottaa käyttöön Solana-ohjelman määritetyssä SVM-yhteensopivassa verkossa.

Syötteet

NimiPakollinenTyyppiKuvaus
descriptionvalinnainenstringKuvaus käyttöönoton toiminnosta
programpakollinenobjectKäyttöön otettavat Solana-ohjelma-artefaktit
payervalinnainenstringViittaus allekirjoittajaan käyttöönottokulujen maksamiseksi
authoritypakollinenstringViittaus allekirjoittajaan ohjelman valtuutusta varten
commitment_levelvalinnainenstringSitoutumistaso ('processed', 'confirmed', 'finalized')
auto_extendvalinnainenboolLaajennetaanko program account automaattisesti (oletus: true)

Tulosteet

NimiTyyppiKuvaus
signaturesobjectLasketut transaktioiden allekirjoitukset
program_idstringKäyttöönotetun ohjelman ohjelmatunnus
program_idlstringOhjelman IDL
action "deploy" "svm::deploy_program" {
description = "Deploy hello world program"
program = svm::get_program_from_anchor_project("hello_world")
authority = signer.authority
payer = signer.payer # Optional, defaults to authority
}

process_instructions

svm::process_instructions-toiminto koodaa ohjeet, lisää ne transaktioon sekä allekirjoittaa ja lähettää transaktion.

Syötteet

NimiPakollinenTyyppiKuvaus
descriptionvalinnainenstringKuvaus transaktiosta
instructionpakollinenmapTransaktioon lisättävät ohjeet
signerspakollinenarray[string]Viittaukset allekirjoittajakonstrukteihin
commitment_levelvalinnainenstringSitoutumistaso
rpc_api_urlpakollinenstringURL API-pyyntöjä varten

Tulosteet

NimiTyyppiKuvaus
signaturestringTapahtuman laskettu allekirjoitus
action "program_call" "svm::process_instructions" {
description = "Invoke instructions"
instruction {
program_idl = variable.program.idl
instruction_name = "initialize"
instruction_args = [1]
payer {
public_key = signer.payer.public_key
}
}
signers = [signer.caller]
}

send_sol

svm::send_sol-toiminto koodaa tapahtuman, joka lähettää SOL:ia, allekirjoittaa sen ja lähettää sen verkkoon.

Syötteet

NimiPakollinenTyyppiKuvaus
descriptionvalinnainenstringTapahtuman kuvaus
amountpakollinenintegerLähetettävä määrä, lamport-yksikköinä
recipientpakollinenstringVastaanottajan SVM-osoite
signerpakollinenstringViittaus allekirjoittajakonstruktiin
commitment_levelvalinnainenstringSitoutumistaso
rpc_api_urlpakollinenstringURL API-pyyntöjä varten

Tulosteet

NimiTyyppiKuvaus
signaturestringTapahtuman laskettu allekirjoitus
action "send_sol" "svm::send_sol" {
description = "Send some SOL"
amount = svm::sol_to_lamports(1)
signer = signer.caller
recipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"
}

send_token

svm::send_token-toiminto koodaa tapahtuman, joka lähettää määritetyn tokenin, allekirjoittaa sen ja lähettää sen verkkoon.

Syötteet

NimiPakollinenTyyppiKuvaus
descriptionvalinnainenstringTapahtuman kuvaus
amountpakollinenintegerLähetettävien tokenien määrä perusyksikköinä
tokenpakollinenstringToken mint account -osoite
recipientpakollinenstringVastaanottajan SVM-osoite
authorityvalinnainenstringAuktoriteettitilin pubkey
fund_recipientvalinnainenboolLuo ja rahoita vastaanottajan token account tarvittaessa
signerspakollinenarray[string]Viittaukset allekirjoittajakonstrukteihin

Tulosteet

NimiTyyppiKuvaus
signaturestringTapahtuman laskettu allekirjoitus
recipient_token_addresspubkeyVastaanottajan token account -osoite
source_token_addresspubkeyLähteen token account -osoite
token_mint_addresspubkeyTokenin mint-osoite
action "send_sol" "svm::send_token" {
description = "Send some tokens"
amount = 1000000
signers = [signer.caller]
recipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"
token = "3bv3j4GvMPjvvBX9QdoX27pVoWhDSXpwKZipFF1QiVr6"
fund_recipient = true
}

setup_surfnet

svm::setup_surfnet voidaan käyttää surfnetin määrittämiseen.

Seuraavat toiminnot ovat tuettuja:

  • set_account - Aseta tilin lamports-, owner-, data- ja executable-kentät
  • set_token_account - Aseta summa, delegoija, delegoitu summa ja sulkemisvaltuutus token account -tilille
  • clone_program_account - Kloonaa program account lähde-ohjelmatunnuksesta kohde-ohjelmatunnukseen
  • set_program_authority - Aseta ohjelman valtuutus
  • deploy_program - Ota ohjelma käyttöön suoraan surfnetissä (suoran tilikirjoituksen kautta, ei tapahtumien kautta)
  • reset_account - Nollaa tili poistamalla se paikallisesta välimuistista, jolloin se haetaan uudelleen ylävirrasta
  • stream_account - Suoratoista tilin tiedot mainnetistä, jotta paikalliset tiedot vastaavat aina mainnetiä

Syötteet

NimiPakollinenTyyppiKuvaus
descriptionvalinnainenstringKuvaus asetuksesta
rpc_api_urlpakollinenstringURL API-pyyntöjä varten

set_account

Asettaa tilin tiedot suoraan surfnetiin.

NimiPakollinenTyyppiKuvaus
public_keypakollinenstringSen tilin julkinen avain, joka asetetaan
account_pathvalinnainenstringPolku JSON-tiedostoon, joka sisältää asetettavat tilin tiedot. Jos annettu, muut kentät ohitetaan
lamportsvalinnainenintegerLamports-määrä, johon tili asetetaan
datavalinnainenbytesTilille asetettava data
ownervalinnainenstringTilille asetettava omistaja
executablevalinnainenboolTilille asetettava suoritettavuustila
rent_epochvalinnainenintegerepoch, jolloin tili on vapautettu vuokrasta

Vähintään yksi seuraavista on annettava: lamports, data, owner, executable tai rent_epoch (ellei käytetä account_path:aa).

set_token_account

Asettaa token account -tiedot surfnetiin. associated token account johdetaan automaattisesti omistajan julkisesta avaimesta ja token mintistä.

NimiPakollinenTyyppiKuvaus
public_keypakollinenstringPäivitettävän token-omistajatilin julkinen avain
tokenpakollinenstringTokenin symboli (esim. "usdc", "bonk") tai token mintin julkinen avain
token_programvalinnainenstringToken Program -tunnus. Kelvolliset arvot ovat token2020, token2022 tai julkinen avain (oletus: token2020)
amountvalinnainenintegerAsetettavien tokenien määrä
delegatevalinnainenstringAsetettavan valtuutetun julkinen avain tai null tyhjentämiseksi
statevalinnainenstringtoken account -tilan arvo. Kelvolliset arvot ovat initialized, frozen tai uninitialized
delegated_amountvalinnainenintegerValtuutettavien tokenien määrä
close_authorityvalinnainenstringAsetettavan sulkemisvaltuuden julkinen avain tai null tyhjentämiseksi

Vähintään yksi seuraavista on annettava: amount, delegate, state, delegated_amount tai close_authority.

clone_program_account

Kloonaa program account yhdestä ohjelmatunnuksesta toiseen surfnetissä.

NimiPakollinenTyyppiKuvaus
source_program_idpakollinenstringKloonattavan ohjelman julkinen avain
destination_program_idpakollinenstringOhjelman kohteen julkinen avain

set_program_authority

Asettaa tai poistaa ohjelman päivitysvaltuuden surfnet-verkossa.

NimiPakollinenTyyppiKuvaus
program_idpakollinenstringSen ohjelman pubkey, jolle valtuus asetetaan
authorityvalinnainenstringOhjelman uusi valtuus. Jos sitä ei anneta, ohjelman valtuudeksi asetetaan None (jolloin siitä tulee muuttumaton)

deploy_program

Ottaa ohjelman käyttöön suoraan surfnet-verkossa tilitietojen kirjoituksen kautta (ei transaktioiden kautta).

NimiPakollinenTyyppiKuvaus
program_idpakollinenstringKäyttöönotettavan ohjelman pubkey
binary_pathpakollinenstringOhjelman .so-tiedoston sijainti (esim. ./target/deploy/my_program.so)
authorityvalinnainenstringSen valtuuden pubkey, jolla on valta ohjelmaan sen käyttöönoton jälkeen. Jos sitä ei anneta, ohjelmalla ei ole valtuutta
idl_pathvalinnainenstringOhjelman IDL-tiedoston sijainti (esim. ./target/idl/my_program.json)

reset_account

Nollaa tilin surfnet-verkossa poistamalla sen paikallisesta välimuistista, jolloin se haetaan uudelleen ylävirran verkosta.

NimiPakollinenTyyppiKuvaus
public_keypakollinenstringNollattavan tilin pubkey
include_owned_accountsvalinnainenboolPoistetaanko rekursiivisesti kaikki tämän tilin omistamat tilit. Oletusarvo on false

stream_account

Virtauttaa tilitietoja mainnet RPC URL:sta surfnetiin, pitäen paikalliset tilitiedot synkronoituina mainnettiin.

NimiPakollinenTyyppiKuvaus
public_keypakollinenstringSen tilin pubkey, jota virtautetaan
include_owned_accountsvalinnainenboolVirtautetaanko rekursiivisesti kaikki tämän tilin omistamat tilit. Oletusarvo on false
action "setup" "svm::setup_surfnet" {
// Set account balance
set_account {
public_key = signer.caller.public_key
lamports = 999999999
}
// Set token balance
set_token_account {
public_key = signer.caller.public_key
token = "usdc"
amount = 1000000
}
// Clone a program
clone_program_account {
source_program_id = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
destination_program_id = variable.my_program_id
}
// Set program authority
set_program_authority {
program_id = variable.my_program_id
authority = signer.caller.public_key
}
// Deploy a program directly
deploy_program {
program_id = variable.my_program_id
binary_path = "./target/deploy/my_program.so"
idl_path = "./target/idl/my_program.json"
}
// Reset an account to re-fetch from upstream
reset_account {
public_key = variable.some_pubkey
}
// Stream account data from mainnet
stream_account {
public_key = variable.some_pubkey
include_owned_accounts = true
}
}

Is this page helpful?

Sisällysluettelo

Muokkaa sivua
© 2026 Solana Foundation. Kaikki oikeudet pidätetään.