Deze acties zijn beschikbaar bij gebruik van de SVM-addon voor het bouwen, ondertekenen en uitzenden van transacties.
deploy_program
svm::deploy_program implementeert een Solana-programma op het opgegeven
SVM-compatibele netwerk.
Invoer
| Name | Required | Type | Description |
|---|---|---|---|
description | optional | string | Een beschrijving van de implementatieactie |
program | required | object | De Solana-programma-artefacten om te implementeren |
payer | optional | string | Een verwijzing naar een ondertekenaar voor het betalen van implementatiekosten |
authority | required | string | Een verwijzing naar een ondertekenaar voor de programma-autoriteit |
commitment_level | optional | string | Het bevestigingsniveau ('processed', 'confirmed', 'finalized') |
auto_extend | optional | bool | Of het program account automatisch uitgebreid moet worden (standaard: true) |
Uitvoer
| Name | Type | Description |
|---|---|---|
signatures | object | De berekende transactiehandtekeningen |
program_id | string | De programma-ID van het geïmplementeerde programma |
program_idl | string | De programma-IDL |
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
De svm::process_instructions-actie codeert instructies, voegt ze toe aan een
transactie, en ondertekent en zendt de transactie uit.
Invoer
| Name | Required | Type | Description |
|---|---|---|---|
description | optional | string | Een beschrijving van de transactie |
instruction | required | map | De instructies om aan de transactie toe te voegen |
signers | required | array[string] | Verwijzingen naar ondertekenaarconstructies |
commitment_level | optional | string | Het bevestigingsniveau |
rpc_api_url | required | string | De URL voor API-verzoeken |
Uitvoer
| Naam | Type | Beschrijving |
|---|---|---|
signature | string | De berekende handtekening van de transactie |
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
De actie svm::send_sol codeert een transactie die SOL verzendt, ondertekent
deze en zendt deze uit naar het netwerk.
Invoer
| Naam | Vereist | Type | Beschrijving |
|---|---|---|---|
description | optioneel | string | Een beschrijving van de transactie |
amount | vereist | integer | Het te verzenden bedrag, in lamports |
recipient | vereist | string | Het SVM-adres van de ontvanger |
signer | vereist | string | Een verwijzing naar een ondertekenaarconstruct |
commitment_level | optioneel | string | Het bevestigingsniveau |
rpc_api_url | vereist | string | De URL voor API-verzoeken |
Uitvoer
| Naam | Type | Beschrijving |
|---|---|---|
signature | string | De berekende handtekening van de transactie |
action "send_sol" "svm::send_sol" {description = "Send some SOL"amount = svm::sol_to_lamports(1)signer = signer.callerrecipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"}
send_token
De actie svm::send_token codeert een transactie die het opgegeven token
verzendt, ondertekent deze en zendt deze uit naar het netwerk.
Invoer
| Naam | Vereist | Type | Beschrijving |
|---|---|---|---|
description | optioneel | string | Een beschrijving van de transactie |
amount | vereist | integer | Het te verzenden aantal tokens, in basiseenheid |
token | vereist | string | Het adres van de token mint account |
recipient | vereist | string | Het SVM-adres van de ontvanger |
authority | optioneel | string | De pubkey van het gezagsaccount |
fund_recipient | optioneel | bool | Maak en financier recipient token account aan indien nodig |
signers | vereist | array[string] | Verwijzingen naar ondertekenaarconstructs |
Uitvoer
| Naam | Type | Beschrijving |
|---|---|---|
signature | string | De berekende handtekening van de transactie |
recipient_token_address | pubkey | Het adres van het ontvangende token account |
source_token_address | pubkey | Het adres van het bron token account |
token_mint_address | pubkey | Het adres van de token mint |
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 kan worden gebruikt om een surfnet te configureren.
De volgende bewerkingen worden ondersteund:
set_account- Stel de lamports, eigenaar, gegevens en uitvoerbare velden van een account inset_token_account- Stel het bedrag, de gedelegeerde, het gedelegeerde bedrag en de sluitingsautoriteit in voor een token accountclone_program_account- Kloon een program account van een bron-programma-ID naar een doel-programma-IDset_program_authority- Stel de autoriteit van een programma indeploy_program- Implementeer een programma rechtstreeks op het surfnet (via directe accountschrijving, niet via transacties)reset_account- Reset een account door het uit de lokale cache te verwijderen zodat het opnieuw wordt opgehaald van upstreamstream_account- Stream accountgegevens van mainnet zodat lokale gegevens altijd overeenkomen met mainnet
Invoer
| Naam | Vereist | Type | Beschrijving |
|---|---|---|---|
description | optioneel | string | Een beschrijving van de instelling |
rpc_api_url | vereist | string | De URL voor API-verzoeken |
set_account
Stelt accountgegevens rechtstreeks in op het surfnet.
| Naam | Vereist | Type | Beschrijving |
|---|---|---|---|
public_key | vereist | string | De publieke sleutel van het in te stellen account |
account_path | optioneel | string | Het pad naar een JSON-bestand met de in te stellen accountgegevens. Indien opgegeven, worden andere velden genegeerd |
lamports | optioneel | integer | Het aantal lamports dat het account moet hebben |
data | optioneel | bytes | De gegevens die in het account moeten worden ingesteld |
owner | optioneel | string | De eigenaar die voor het account moet worden ingesteld |
executable | optioneel | bool | De uitvoerbaarheidsinstelling voor het account |
rent_epoch | optioneel | integer | De epoch waarop het account vrijgesteld is van huur |
Ten minste één van lamports, data, owner, executable, of rent_epoch
moet worden opgegeven (tenzij account_path wordt gebruikt).
set_token_account
Stelt token account-gegevens in op het surfnet. Het associated token account wordt automatisch afgeleid van de publieke sleutel van de eigenaar en de token mint.
| Name | Required | Type | Description |
|---|---|---|---|
public_key | required | string | De publieke sleutel van het token owner account dat bijgewerkt moet worden |
token | required | string | Het tokensymbool (bijv. "usdc", "bonk") of de publieke sleutel voor de token mint |
token_program | optional | string | Het token program-ID. Geldige waarden zijn token2020, token2022, of een publieke sleutel (standaard: token2020) |
amount | optional | integer | De hoeveelheid tokens die ingesteld moet worden |
delegate | optional | string | De publieke sleutel van de gedelegeerde die ingesteld moet worden, of null om te wissen |
state | optional | string | De status van het token account. Geldige waarden zijn initialized, frozen, of uninitialized |
delegated_amount | optional | integer | De hoeveelheid tokens om te delegeren |
close_authority | optional | string | De publieke sleutel van de sluitingsautoriteit die ingesteld moet worden, of null om te wissen |
Ten minste één van amount, delegate, state, delegated_amount, of
close_authority moet worden opgegeven.
clone_program_account
Kloont een program account van het ene program-ID naar het andere op het surfnet.
| Name | Required | Type | Description |
|---|---|---|---|
source_program_id | required | string | De publieke sleutel van het te klonen programma |
destination_program_id | required | string | De bestemmings-publieke sleutel van het programma |
set_program_authority
Stelt de upgrade-autoriteit van een programma op het surfnet in of verwijdert deze.
| Naam | Vereist | Type | Beschrijving |
|---|---|---|---|
program_id | vereist | string | De pubkey van het programma waarvoor de autoriteit wordt ingesteld |
authority | optioneel | string | De nieuwe autoriteit voor het programma. Indien niet opgegeven, wordt de autoriteit van het programma ingesteld op None (waardoor het onveranderlijk wordt) |
deploy_program
Implementeert een programma rechtstreeks op het surfnet via het schrijven van accountgegevens (niet via transacties).
| Naam | Vereist | Type | Beschrijving |
|---|---|---|---|
program_id | vereist | string | De pubkey van het programma dat wordt geïmplementeerd |
binary_path | vereist | string | De locatie van het .so-bestand van het programma (bijv. ./target/deploy/my_program.so) |
authority | optioneel | string | De pubkey van de autoriteit over het programma nadat het is geïmplementeerd. Indien niet opgegeven, heeft het programma geen autoriteit |
idl_path | optioneel | string | De locatie van het IDL-bestand van het programma (bijv. ./target/idl/my_program.json) |
reset_account
Reset een account op het surfnet en verwijdert het uit de lokale cache zodat het opnieuw opgehaald wordt van het bovenliggende netwerk.
| Naam | Vereist | Type | Beschrijving |
|---|---|---|---|
public_key | vereist | string | De pubkey van het account dat gereset moet worden |
include_owned_accounts | optioneel | bool | Of alle accounts die eigendom zijn van dit account recursief verwijderd moeten worden. Standaard is false |
stream_account
Streamt accountgegevens van de mainnet RPC URL naar het surfnet, waardoor de lokale accountgegevens gesynchroniseerd blijven met mainnet.
| Naam | Vereist | Type | Beschrijving |
|---|---|---|---|
public_key | vereist | string | De pubkey van het account dat gestreamd moet worden |
include_owned_accounts | optioneel | bool | Of alle accounts die eigendom zijn van dit account recursief gestreamd moeten worden. Standaard is 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?