Diese Aktionen sind verfügbar, wenn das SVM-Addon für die Erstellung, das Signieren und das Übertragen von Transaktionen verwendet wird.
deploy_program
svm::deploy_program stellt ein Solana-Programm im angegebenen SVM-kompatiblen
Netzwerk bereit.
Eingaben
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
description | optional | string | Eine Beschreibung der Deployment-Aktion |
program | erforderlich | object | Die Solana-Programmartefakte für das Deployment |
payer | optional | string | Ein Verweis auf einen Signer zur Deckung der Deployment-Kosten |
authority | erforderlich | string | Ein Verweis auf einen Signer für die Programmautorität |
commitment_level | optional | string | Die Commitment-Stufe ('processed', 'confirmed', 'finalized') |
auto_extend | optional | bool | Ob das program account automatisch erweitert werden soll (Standard: true) |
Ausgaben
| Name | Typ | Beschreibung |
|---|---|---|
signatures | object | Die berechneten Transaktionssignaturen |
program_id | string | Die Programm-ID des bereitgestellten Programms |
program_idl | string | Die Programm-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
Die Aktion svm::process_instructions kodiert Anweisungen, fügt sie einer
Transaktion hinzu und signiert & überträgt die Transaktion.
Eingaben
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
description | optional | string | Eine Beschreibung der Transaktion |
instruction | erforderlich | map | Die Anweisungen, die der Transaktion hinzugefügt werden |
signers | erforderlich | array[string] | Verweise auf Signer-Konstrukte |
commitment_level | optional | string | Die Commitment-Stufe |
rpc_api_url | erforderlich | string | Die URL für API-Anfragen |
Ausgaben
| Name | Typ | Beschreibung |
|---|---|---|
signature | string | Die berechnete Signatur der Transaktion |
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
Die Aktion svm::send_sol kodiert eine Transaktion, die SOL sendet, signiert
sie und überträgt sie an das Netzwerk.
Eingaben
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
description | optional | string | Eine Beschreibung der Transaktion |
amount | erforderlich | integer | Der zu sendende Betrag in lamports |
recipient | erforderlich | string | Die SVM-Adresse des Empfängers |
signer | erforderlich | string | Ein Verweis auf ein Signer-Konstrukt |
commitment_level | optional | string | Das Commitment-Level |
rpc_api_url | erforderlich | string | Die URL für API-Anfragen |
Ausgaben
| Name | Typ | Beschreibung |
|---|---|---|
signature | string | Die berechnete Signatur der Transaktion |
action "send_sol" "svm::send_sol" {description = "Send some SOL"amount = svm::sol_to_lamports(1)signer = signer.callerrecipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"}
send_token
Die Aktion svm::send_token kodiert eine Transaktion, die den angegebenen Token
sendet, signiert sie und überträgt sie an das Netzwerk.
Eingaben
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
description | optional | string | Eine Beschreibung der Transaktion |
amount | erforderlich | integer | Die zu sendende Token-Menge in der Basiseinheit |
token | erforderlich | string | Die Adresse des token mint account |
recipient | erforderlich | string | Die SVM-Adresse des Empfängers |
authority | optional | string | Der pubkey des Autoritäts-Konten |
fund_recipient | optional | bool | Empfänger-token account erstellen und finanzieren, falls nötig |
signers | erforderlich | array[string] | Verweise auf Signer-Konstrukte |
Ausgaben
| Name | Type | Beschreibung |
|---|---|---|
signature | string | Die berechnete Signatur der Transaktion |
recipient_token_address | pubkey | Die Adresse des Empfänger-token account |
source_token_address | pubkey | Die Adresse des Quell-token account |
token_mint_address | pubkey | Die Token-Mint-Adresse |
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 kann verwendet werden, um ein Surfnet zu konfigurieren.
Die folgenden Operationen werden unterstützt:
set_account- Setzt die lamport-, Eigentümer-, Daten- und ausführbaren Felder eines Kontenset_token_account- Setzt den Betrag, den Delegierten, den delegierten Betrag und die Schließberechtigung für ein token accountclone_program_account- Klont ein program account von einer Quell-Programm-ID zu einer Ziel-Programm-IDset_program_authority- Setzt die Berechtigung eines Programmsdeploy_program- Deployt ein Programm direkt auf das Surfnet (via direktem Konten-Schreibzugriff, nicht über Transaktionen)reset_account- Setzt ein Konten zurück und entfernt es aus dem lokalen Cache, damit es erneut vom Upstream abgerufen werden kannstream_account- Streamt Konten-Daten vom Mainnet, sodass lokale Daten immer mit dem Mainnet übereinstimmen
Eingaben
| Name | Erforderlich | Type | Beschreibung |
|---|---|---|---|
description | optional | string | Eine Beschreibung des Setups |
rpc_api_url | erforderlich | string | Die URL für API-Anfragen |
set_account
Setzt Konten-Daten direkt auf dem Surfnet.
| Name | Erforderlich | Type | Beschreibung |
|---|---|---|---|
public_key | erforderlich | string | Der öffentliche Schlüssel des zu setzenden Konten |
account_path | optional | string | Der Pfad zu einer JSON-Datei mit den zu setzenden Konten-Daten. Falls angegeben, werden andere Felder ignoriert |
lamports | optional | integer | Die Anzahl der lamports, auf die das Konten gesetzt werden soll |
data | optional | bytes | Die im Konten zu setzenden Daten |
owner | optional | string | Der für das Konten zu setzende Eigentümer |
executable | optional | bool | Der für das Konten zu setzende Ausführbarkeitsstatus |
rent_epoch | optional | integer | Die epoch, bei der das Konten mietfrei ist |
Mindestens eines von lamports, data, owner, executable oder rent_epoch
muss angegeben werden (außer bei Verwendung von account_path).
set_token_account
Setzt token account-Daten im Surfnet. Der associated token account wird automatisch aus dem öffentlichen Schlüssel des Eigentümers und dem Token-Mint abgeleitet.
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
public_key | erforderlich | string | Der öffentliche Schlüssel des Token-Eigentümer-Konten, das aktualisiert werden soll |
token | erforderlich | string | Das Token-Symbol (z. B. "usdc", "bonk") oder der öffentliche Schlüssel für den Token-Mint |
token_program | optional | string | Die Token Program-ID. Gültige Werte sind token2020, token2022 oder ein öffentlicher Schlüssel (Standard: token2020) |
amount | optional | integer | Die Anzahl der zu setzenden Token |
delegate | optional | string | Der öffentliche Schlüssel des zu setzenden Delegierten oder null zum Löschen |
state | optional | string | Der Status des token account. Gültige Werte sind initialized, frozen oder uninitialized |
delegated_amount | optional | integer | Die Anzahl der zu delegierenden Token |
close_authority | optional | string | Der öffentliche Schlüssel der zu setzenden Abschluss-Autorität oder null zum Löschen |
Mindestens eines von amount, delegate, state, delegated_amount oder
close_authority muss angegeben werden.
clone_program_account
Klont ein program account von einer Programm-ID zu einer anderen im Surfnet.
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
source_program_id | erforderlich | string | Der öffentliche Schlüssel des zu klonenden Programms |
destination_program_id | erforderlich | string | Der Ziel-öffentliche Schlüssel des Programms |
set_program_authority
Legt die Upgrade-Authority eines Programms im Surfnet fest oder entfernt sie.
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
program_id | erforderlich | string | Der pubkey des Programms, für das die Upgrade-Authority festgelegt werden soll |
authority | optional | string | Die neue Upgrade-Authority für das Programm. Wenn nicht angegeben, wird die Upgrade-Authority des Programms auf None gesetzt (macht es unveränderlich) |
deploy_program
Stellt ein Programm direkt im Surfnet über das Schreiben von Kontendaten bereit (nicht über Transaktionen).
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
program_id | erforderlich | string | Der pubkey des bereitzustellenden Programms |
binary_path | erforderlich | string | Der Speicherort der .so-Datei des Programms (z. B. ./target/deploy/my_program.so) |
authority | optional | string | Der pubkey der Upgrade-Authority über das Programm nach der Bereitstellung. Wenn nicht angegeben, hat das Programm keine Upgrade-Authority |
idl_path | optional | string | Der Speicherort der IDL-Datei des Programms (z. B. ./target/idl/my_program.json) |
reset_account
Setzt ein Konten im Surfnet zurück und entfernt es aus dem lokalen Cache, sodass es erneut vom Upstream-Netzwerk abgerufen wird.
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
public_key | erforderlich | string | Der pubkey des zurückzusetzenden Konten |
include_owned_accounts | optional | bool | Ob alle Konten, die diesem Konten gehören, rekursiv gelöscht werden sollen. Standardwert ist false |
stream_account
Streamt Kontodaten von der Mainnet-RPC-URL zum Surfnet und hält die lokalen Konten-Daten mit dem Mainnet synchron.
| Name | Erforderlich | Typ | Beschreibung |
|---|---|---|---|
public_key | erforderlich | string | Der öffentliche Schlüssel (pubkey) des zu streamenden Konten |
include_owned_accounts | optional | bool | Ob alle Konten, die diesem Konten gehören, rekursiv gestreamt werden sollen. Standard ist 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?