İlk Solana Programınızı Dağıtın

Anchor framework kullanarak ilk programınızı Solana Blockchain'e oluşturun, dağıtın ve test edin. Bu rehber, Solana Playground'u daha iyi tanımanıza ve program derived address (PDA) ve cross program invocation (CPI) kullanmaya hazırlanmanıza yardımcı olacak.

Anchor Projesi Oluşturma

  1. Web tarayıcınızda Solana Playground adresini açın
  2. Sol panelde + Create a new project (Yeni proje oluştur) seçeneğine tıklayın
  3. Bir Project name (Proje adı) girin
  4. Framework olarak Anchor (Rust) seçin
  5. Create (Oluştur) düğmesine tıklayın

Yeni ProjeYeni Proje

src/lib.rs kaynak dosyası açılacaktır. Bu dosya, Initialize adlı bir yapı içerir ve şunları yapar:

  • data: u64 adlı gerekli bir parametre alır
  • Yeni bir hesap oluşturur
  • data: u64 değerini yeni hesaba kaydeder
  • İşlemin program günlüklerine bir mesaj ekler
lib.rs
use anchor_lang::prelude::*;
// This is your program's public key and it will update
// automatically when you build the project.
declare_id!("11111111111111111111111111111111");
#[program]
mod hello_anchor {
use super::*;
pub fn initialize(ctx: Context<Initialize>, data: u64) -> Result<()> {
ctx.accounts.new_account.data = data;
msg!("Changed data to: {}!", data); // Message will show up in the tx logs
Ok(())
}
}
#[derive(Accounts)]
pub struct Initialize<'info> {
// We must specify the space in order to initialize an account.
// First 8 bytes are default account discriminator,
// next 8 bytes come from NewAccount.data being type u64.
// (u64 = 64 bits unsigned integer = 8 bytes)
#[account(
init,
payer = signer,
space = 8 + 8
)]
pub new_account: Account<'info, NewAccount>,
#[account(mut)]
pub signer: Signer<'info>,
pub system_program: Program<'info, System>,
}
#[account]
pub struct NewAccount {
data: u64
}

Programı derleme ve dağıtma

  1. Program kodunu derleyin
Terminal
$
build

declare_id!() içinde tanımlanan program kimliğiniz şimdi güncellenecektir.

  1. Cüzdanınıza SOL ekleyin (İsteğe bağlı)

Bir programı dağıtmak, programın zincir üzerindeki hesabında SOL gerektirir. Gerekirse, 3. adıma geçmeden önce cüzdanınıza SOL ekleyin.

  1. Programı ağa dağıtın
Terminal
$
deploy

Dağıtıldığında, programın bayt kodu çalıştırılabilir bir program hesabında saklanır.

Not: Tercih ederseniz, aşağıdaki ekran görüntüsünde gösterildiği gibi sol panel üzerindeki Build ve Deploy düğmelerini kullanabilirsiniz.

Derleme ve DağıtmaDerleme ve Dağıtma

Programı test etme

  1. tests/anchor.test.ts adlı test dosyasını açın. Bu dosya, programın initialize yapısının istemciden nasıl çağrılacağını gösterir.
anchor.test.ts
// No imports needed: web3, anchor, pg and more are globally available
describe("Test", () => {
it("initialize", async () => {
// Generate keypair for the new account
const newAccountKp = new web3.Keypair();
// Send transaction
const data = new BN(42);
const txHash = await pg.program.methods
.initialize(data)
.accounts({
newAccount: newAccountKp.publicKey,
signer: pg.wallet.publicKey,
systemProgram: web3.SystemProgram.programId
})
.signers([newAccountKp])
.rpc();
console.log(`Use 'solana confirm -v ${txHash}' to see the logs`);
// Confirm transaction
await pg.connection.confirmTransaction(txHash);
// Fetch the created account
const newAccount = await pg.program.account.newAccount.fetch(
newAccountKp.publicKey
);
console.log("On-chain data is:", newAccount.data.toString());
// Check whether the data on-chain is equal to local 'data'
assert(data.eq(newAccount.data));
});
});
  1. Test dosyasını çalıştırın
Terminal
$
test
  1. Çıktıda yer alan işlem hash'ini (TxHash) kaydedin

(Yukarıdaki örnekte, işlem hash'i 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc şeklindedir.)

Not: Tercih ederseniz, sol panel üzerindeki Test düğmesini kullanabilirsiniz.

Test ÇalıştırTest Çalıştır

  1. İşlem kayıtlarını görüntülemek için solana confirm -v [TxHash] komutunu çalıştırın
Terminal
$
solana confirm -v 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc
  1. İşlem detaylarını görüntüleyin

SolanaFM veya Solana Explorer sayfalarından birini açın ve işlem hash'ini aratın.

Solana Explorer: Ağ kümesini Solana Playground ile eşleşecek şekilde devnet olarak ayarlayın.

Programı kapatma

Zincir üzerindeki programa tahsis edilen SOL'u geri almak için programı kapatın. Bunu yapmak için, declare_id!() makrosunda saklanan program adresini kullanarak solana program close [ProgramID] komutunu çalıştırın.

Terminal
$
solana program close 2VvQ11q8xrn5tkPNyeraRsPaATdiPx8weLAD8aD4dn2r

Programlar yalnızca yükseltme yetkisine sahip bir hesap tarafından kapatılabilir veya güncellenebilir. Playground cüzdanınız, her program dağıtıldığında otomatik olarak o program için yükseltme yetkilisi olur. Yükseltme yetkisi iptal edilirse, program değiştirilemez hale gelir.

Tebrikler! Anchor kullanarak ilk Solana programınızı oluşturdunuz ve dağıttınız.

Sonraki adımlar

İlk programınızı dağıttıktan sonra, artık program-türetilmiş adresler ve programlar arası çağrı konularını keşfetmeye hazırsınız.

Is this page helpful?

İçindekiler

Sayfayı Düzenle