Bu eylemler, işlem oluşturma, imzalama ve yayınlama için SVM eklentisi kullanılırken mevcuttur.
deploy_program
svm::deploy_program, bir Solana programını belirtilen SVM uyumlu ağa dağıtır.
Girdiler
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
description | isteğe bağlı | string | Dağıtım eyleminin açıklaması |
program | zorunlu | object | Dağıtılacak Solana program yapıları |
payer | isteğe bağlı | string | Dağıtım maliyetlerini karşılayan imzalayıcıya referans |
authority | zorunlu | string | Program yetkisi için imzalayıcıya referans |
commitment_level | isteğe bağlı | string | Taahhüt seviyesi ('processed', 'confirmed', 'finalized') |
auto_extend | isteğe bağlı | bool | program account'un otomatik genişletilip genişletilmeyeceği (varsayılan: true) |
Çıktılar
| Ad | Tür | Açıklama |
|---|---|---|
signatures | object | Hesaplanan işlem imzaları |
program_id | string | Dağıtılan programın program kimliği |
program_idl | string | Program IDL'si |
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
svm::process_instructions eylemi, talimatları kodlar, bunları bir işleme ekler
ve işlemi imzalayarak yayınlar.
Girdiler
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
description | isteğe bağlı | string | İşlemin açıklaması |
instruction | zorunlu | map | İşleme eklenecek talimatlar |
signers | zorunlu | array[string] | İmzalayıcı yapılarına referanslar |
commitment_level | isteğe bağlı | string | Taahhüt seviyesi |
rpc_api_url | zorunlu | string | API istekleri için URL |
Çıktılar
| Ad | Tür | Açıklama |
|---|---|---|
signature | string | İşlem için hesaplanan imza |
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
svm::send_sol eylemi, SOL gönderen bir işlemi kodlar, imzalar ve ağa yayınlar.
Girdiler
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
description | isteğe bağlı | string | İşlemin açıklaması |
amount | zorunlu | integer | Gönderilecek miktar, lamport cinsinden |
recipient | zorunlu | string | Alıcının SVM adresi |
signer | zorunlu | string | Bir imzalayıcı yapısına referans |
commitment_level | isteğe bağlı | string | Taahhüt seviyesi |
rpc_api_url | zorunlu | string | API istekleri için URL |
Çıktılar
| Ad | Tür | Açıklama |
|---|---|---|
signature | string | İşlem için hesaplanan imza |
action "send_sol" "svm::send_sol" {description = "Send some SOL"amount = svm::sol_to_lamports(1)signer = signer.callerrecipient = "zbBjhHwuqyKMmz8ber5oUtJJ3ZV4B6ePmANfGyKzVGV"}
send_token
svm::send_token eylemi, belirtilen token'ı gönderen bir işlemi kodlar, imzalar
ve ağa yayınlar.
Girdiler
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
description | isteğe bağlı | string | İşlemin açıklaması |
amount | zorunlu | integer | Gönderilecek token miktarı, temel birim cinsinden |
token | zorunlu | string | Token mint account adresi |
recipient | zorunlu | string | Alıcının SVM adresi |
authority | isteğe bağlı | string | Yetki hesabının pubkey değeri |
fund_recipient | isteğe bağlı | bool | Gerekirse alıcı token account oluştur ve fonla |
signers | zorunlu | array[string] | İmzalayıcı yapılarına referanslar |
Çıktılar
| Ad | Tür | Açıklama |
|---|---|---|
signature | string | İşlem tarafından hesaplanan imza |
recipient_token_address | pubkey | Alıcı token account adresi |
source_token_address | pubkey | Kaynak token account adresi |
token_mint_address | pubkey | Token mint adresi |
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 bir surfnet yapılandırmak için kullanılabilir.
Aşağıdaki işlemler desteklenmektedir:
set_account- Bir hesabın lamports, sahip, veri ve çalıştırılabilir alanlarını ayarlarset_token_account- Bir token account için miktar, delege, delege edilen miktar ve kapatma yetkisini ayarlarclone_program_account- Bir program account'ı kaynak program kimliğinden hedef program kimliğine klonlarset_program_authority- Bir programın yetkisini ayarlardeploy_program- Surfnet'e doğrudan bir program dağıtır (işlemler aracılığıyla değil, doğrudan hesap yazma yoluyla)reset_account- Bir hesabı sıfırlar, yerel önbellekten kaldırarak upstream'den yeniden getirilmesini sağlarstream_account- Mainnet'ten hesap verilerini akışa alarak yerel verilerin her zaman mainnet ile eşleşmesini sağlar
Girdiler
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
description | isteğe bağlı | string | Kurulumun açıklaması |
rpc_api_url | zorunlu | string | API istekleri için URL |
set_account
Hesap verilerini doğrudan surfnet üzerinde ayarlar.
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
public_key | zorunlu | string | Ayarlanacak hesabın açık anahtarı |
account_path | isteğe bağlı | string | Ayarlanacak hesap verilerini içeren JSON dosyasının yolu. Sağlanırsa diğer alanlar yoksayılır |
lamports | isteğe bağlı | integer | Hesabın sahip olması gereken lamport miktarı |
data | isteğe bağlı | bytes | Hesapta ayarlanacak veri |
owner | isteğe bağlı | string | Hesap için ayarlanacak sahip |
executable | isteğe bağlı | bool | Hesap için ayarlanacak çalıştırılabilirlik durumu |
rent_epoch | isteğe bağlı | integer | Hesabın kira muafiyetine kavuşacağı epoch |
lamports, data, owner, executable veya rent_epoch değerlerinden en az
biri sağlanmalıdır (account_path kullanılmıyorsa).
set_token_account
surfnet üzerindeki token account verilerini ayarlar. associated token account, sahibin genel anahtarı ve token mint'inden otomatik olarak türetilir.
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
public_key | zorunlu | string | Güncellenecek token sahibi hesabının genel anahtarı |
token | zorunlu | string | Token sembolü (örn. "usdc", "bonk") veya token mint için genel anahtar |
token_program | isteğe bağlı | string | Token Program kimliği. Geçerli değerler: token2020, token2022 veya bir genel anahtar (varsayılan: token2020) |
amount | isteğe bağlı | integer | Ayarlanacak token miktarı |
delegate | isteğe bağlı | string | Ayarlanacak temsilcinin genel anahtarı veya temizlemek için null |
state | isteğe bağlı | string | token account durumu. Geçerli değerler: initialized, frozen veya uninitialized |
delegated_amount | isteğe bağlı | integer | Devredilecek token miktarı |
close_authority | isteğe bağlı | string | Ayarlanacak kapatma yetkilisinin genel anahtarı veya temizlemek için null |
amount, delegate, state, delegated_amount veya close_authority
değerlerinden en az biri sağlanmalıdır.
clone_program_account
Bir program account'ı surfnet üzerinde bir program kimliğinden diğerine klonlar.
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
source_program_id | zorunlu | string | Klonlanacak programın genel anahtarı |
destination_program_id | zorunlu | string | Programın hedef genel anahtarı |
set_program_authority
Bir programın surfnet üzerindeki yükseltme yetkisini ayarlar veya kaldırır.
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
program_id | zorunlu | string | Yetki atanacak programın pubkey değeri |
authority | isteğe bağlı | string | Program için yeni yetki. Belirtilmezse, programın yetkisi None olarak ayarlanır (değiştirilemez hale gelir) |
deploy_program
Bir programı hesap verisi yazma yoluyla (işlemler aracılığıyla değil) doğrudan surfnet'e dağıtır.
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
program_id | zorunlu | string | Dağıtılan programın pubkey değeri |
binary_path | zorunlu | string | Programın .so dosyasının konumu (örn. ./target/deploy/my_program.so) |
authority | isteğe bağlı | string | Program dağıtıldıktan sonra program üzerindeki yetkinin pubkey değeri. Belirtilmezse, programın yetkisi olmaz |
idl_path | isteğe bağlı | string | Programın IDL dosyasının konumu (örn. ./target/idl/my_program.json) |
reset_account
surfnet üzerindeki bir hesabı sıfırlar; yerel önbellekten kaldırarak yukarı akış ağından yeniden getirilmesini sağlar.
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
public_key | zorunlu | string | Sıfırlanacak hesabın pubkey değeri |
include_owned_accounts | isteğe bağlı | bool | Bu hesaba ait tüm hesapların yinelemeli olarak silinip silinmeyeceği. Varsayılan değer false'tur |
stream_account
Mainnet RPC URL'sinden surfnet'e hesap verilerini akışa alır ve yerel hesap verilerini mainnet ile senkronize tutar.
| Ad | Zorunlu | Tür | Açıklama |
|---|---|---|---|
public_key | zorunlu | string | Akışa alınacak hesabın pubkey'i |
include_owned_accounts | isteğe bağlı | bool | Bu hesaba ait tüm hesapların yinelemeli olarak akışa alınıp alınmayacağı. Varsayılan değer false'tur |
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?