Aksi-aksi ini tersedia saat menggunakan addon SVM untuk pembangunan transaksi, penandatanganan, dan penyiaran.
deploy_program
svm::deploy_program menggunakan program Solana ke jaringan yang kompatibel
dengan SVM yang ditentukan.
Input
| Nama | Wajib | Tipe | Deskripsi |
|---|---|---|---|
description | opsional | string | Deskripsi dari aksi deployment |
program | wajib | object | Artefak program Solana yang akan di-deploy |
payer | opsional | string | Referensi ke penanda tangan untuk membayar biaya deployment |
authority | wajib | string | Referensi ke penanda tangan untuk otoritas program |
commitment_level | opsional | string | Tingkat komitmen ('processed', 'confirmed', 'finalized') |
auto_extend | opsional | bool | Apakah akan memperluas program account secara otomatis (default: true) |
Output
| Nama | Tipe | Deskripsi |
|---|---|---|
signatures | object | Tanda tangan transaksi yang telah dihitung |
program_id | string | ID program dari program yang telah di-deploy |
program_idl | string | IDL program |
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
Aksi svm::process_instructions mengodekan instruksi, menambahkannya ke dalam
transaksi, serta menandatangani & menyiarkan transaksi tersebut.
Input
| Nama | Wajib | Tipe | Deskripsi |
|---|---|---|---|
description | opsional | string | Deskripsi dari transaksi |
instruction | wajib | map | Instruksi yang akan ditambahkan ke transaksi |
signers | wajib | array[string] | Referensi ke konstruk penanda tangan |
commitment_level | opsional | string | Tingkat komitmen |
rpc_api_url | wajib | string | URL untuk permintaan API |
Output
| Name | Type | Description |
|---|---|---|
signature | string | Tanda tangan yang dihitung dari transaksi |
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
Aksi svm::send_sol mengenkode transaksi yang mengirim SOL, menandatanganinya,
dan menyiarkannya ke jaringan.
Input
| Name | Required | Type | Description |
|---|---|---|---|
description | optional | string | Deskripsi transaksi |
amount | required | integer | Jumlah yang dikirim, dalam lamport |
recipient | required | string | Alamat SVM penerima |
signer | required | string | Referensi ke konstruk penanda tangan |
commitment_level | optional | string | Tingkat komitmen |
rpc_api_url | required | string | URL untuk permintaan API |
Output
| Name | Type | Description |
|---|---|---|
signature | string | Tanda tangan yang dihitung dari transaksi |
action "send_sol" "svm::send_sol" {description = "Send some SOL"amount = svm::sol_to_lamports(1)signer = signer.callerrecipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"}
send_token
Aksi svm::send_token mengenkode transaksi yang mengirim token yang ditentukan,
menandatanganinya, dan menyiarkannya ke jaringan.
Input
| Name | Required | Type | Description |
|---|---|---|---|
description | optional | string | Deskripsi transaksi |
amount | required | integer | Jumlah token yang dikirim, dalam satuan dasar |
token | required | string | Alamat mint account token |
recipient | required | string | Alamat SVM penerima |
authority | optional | string | pubkey dari akun otoritas |
fund_recipient | optional | bool | Buat dan danai token account penerima jika diperlukan |
signers | required | array[string] | Referensi ke konstruk penanda tangan |
Output
| Nama | Tipe | Deskripsi |
|---|---|---|
signature | string | Tanda tangan yang dihitung dari transaksi |
recipient_token_address | pubkey | Alamat token account penerima |
source_token_address | pubkey | Alamat token account sumber |
token_mint_address | pubkey | Alamat mint token |
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 dapat digunakan untuk mengonfigurasi surfnet.
Operasi berikut didukung:
set_account- Mengatur lamport, pemilik, data, dan kolom executability dari suatu akunset_token_account- Mengatur jumlah, delegasi, jumlah yang didelegasikan, dan otoritas penutupan untuk suatu token accountclone_program_account- Mengkloning program account dari ID program sumber ke ID program tujuanset_program_authority- Mengatur otoritas suatu programdeploy_program- Men-deploy program langsung ke surfnet (melalui penulisan akun langsung, bukan transaksi)reset_account- Mereset suatu akun, menghapusnya dari cache lokal untuk diambil ulang dari upstreamstream_account- Melakukan streaming data akun dari mainnet agar data lokal selalu sesuai dengan mainnet
Input
| Nama | Diperlukan | Tipe | Deskripsi |
|---|---|---|---|
description | opsional | string | Deskripsi pengaturan |
rpc_api_url | diperlukan | string | URL untuk permintaan API |
set_account
Mengatur data akun secara langsung pada surfnet.
| Nama | Diperlukan | Tipe | Deskripsi |
|---|---|---|---|
public_key | diperlukan | string | Kunci publik dari akun yang akan diatur |
account_path | opsional | string | Jalur ke file JSON yang berisi data akun yang akan diatur. Jika disediakan, kolom lainnya diabaikan |
lamports | opsional | integer | Jumlah lamport yang harus dimiliki akun |
data | opsional | bytes | Data yang akan diatur dalam akun |
owner | opsional | string | Pemilik yang akan diatur untuk akun |
executable | opsional | bool | Status executability yang akan diatur untuk akun |
rent_epoch | opsional | integer | Epoch saat akun akan bebas sewa |
Setidaknya salah satu dari lamports, data, owner, executable, atau
rent_epoch harus disediakan (kecuali menggunakan account_path).
set_token_account
Mengatur data token account pada surfnet. associated token account secara otomatis diturunkan dari kunci publik pemilik dan token mint.
| Name | Required | Type | Description |
|---|---|---|---|
public_key | required | string | Kunci publik dari akun pemilik token yang akan diperbarui |
token | required | string | Simbol token (mis., "usdc", "bonk") atau kunci publik untuk token mint |
token_program | optional | string | ID Token Program. Nilai yang valid adalah token2020, token2022, atau kunci publik (default: token2020) |
amount | optional | integer | Jumlah token yang akan diatur |
delegate | optional | string | Kunci publik dari delegasi yang akan diatur, atau null untuk menghapus |
state | optional | string | Status token account. Nilai yang valid adalah initialized, frozen, atau uninitialized |
delegated_amount | optional | integer | Jumlah token yang akan didelegasikan |
close_authority | optional | string | Kunci publik dari otoritas penutupan yang akan diatur, atau null untuk menghapus |
Setidaknya salah satu dari amount, delegate, state, delegated_amount,
atau close_authority harus disediakan.
clone_program_account
Mengkloning program account dari satu ID program ke ID program lain pada surfnet.
| Name | Required | Type | Description |
|---|---|---|---|
source_program_id | required | string | Kunci publik dari program yang akan dikloning |
destination_program_id | required | string | Kunci publik tujuan dari program |
set_program_authority
Mengatur atau menghapus otoritas peningkatan program di surfnet.
| Name | Required | Type | Description |
|---|---|---|---|
program_id | required | string | pubkey dari program yang akan ditetapkan otoritasnya |
authority | optional | string | Otoritas baru untuk program. Jika tidak disediakan, otoritas program akan diatur ke None (menjadikannya tidak dapat diubah) |
deploy_program
Men-deploy program langsung ke surfnet melalui penulisan data akun (bukan melalui transaksi).
| Name | Required | Type | Description |
|---|---|---|---|
program_id | required | string | pubkey dari program yang sedang di-deploy |
binary_path | required | string | Lokasi file .so program (mis., ./target/deploy/my_program.so) |
authority | optional | string | pubkey dari otoritas atas program setelah di-deploy. Jika tidak disediakan, program tidak akan memiliki otoritas |
idl_path | optional | string | Lokasi file IDL program (mis., ./target/idl/my_program.json) |
reset_account
Mereset akun di surfnet, menghapusnya dari cache lokal sehingga akan diambil ulang dari jaringan upstream.
| Name | Required | Type | Description |
|---|---|---|---|
public_key | required | string | pubkey dari akun yang akan direset |
include_owned_accounts | optional | bool | Apakah akan menghapus secara rekursif semua akun yang dimiliki oleh akun ini. Default-nya adalah false |
stream_account
Melakukan streaming data akun dari URL RPC mainnet ke surfnet, menjaga data akun lokal tetap sinkron dengan mainnet.
| Name | Required | Type | Description |
|---|---|---|---|
public_key | required | string | Kunci publik dari akun yang akan di-stream |
include_owned_accounts | optional | bool | Apakah akan melakukan streaming secara rekursif semua akun yang dimiliki oleh akun ini. Default-nya adalah 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?