Men-deploy Program Solana Pertama Anda

Dalam bagian ini, Anda akan membangun, men-deploy, dan menguji program Solana sederhana (smart contract) menggunakan framework Anchor. Pada akhirnya, Anda akan berhasil men-deploy program pertama Anda ke blockchain Solana.

Tujuan dari bagian ini berfokus pada pengenalan Anda dengan Solana Playground. Panduan ini membahas contoh yang lebih detail di bagian Program Derived Address (PDA) dan Cross-Program Invocation (CPI). Untuk informasi lebih lanjut, lihat halaman Program di Solana.

Membuat Proyek Anchor

Pertama, buka https://beta.solpg.io di tab browser baru.

  • Klik tombol "Create a new project" di panel sisi kiri.

  • Masukkan nama proyek, pilih Anchor sebagai framework, kemudian klik tombol "Create".

Proyek BaruProyek Baru

Anda akan melihat proyek baru dibuat dengan kode program di file lib.rs.

Program Solana dasar ini membuat akun baru dan menyimpan angka di dalamnya. Program ini berisi satu instruksi (initialize) yang:

  • Memerlukan parameter data sebagai input
  • Membuat akun baru
  • Menyimpan nilai parameter data di data akun
  • Mencatat pesan ke log program transaksi
use anchor_lang::prelude::*;
declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");
#[program]
mod hello_anchor {
use super::*;
pub fn initialize(ctx: Context<Initialize>, data: u64) -> Result<()> {
let my_account = &mut ctx.accounts.my_account;
my_account.data = data;
msg!("Your data is: {}", data);
Ok(())
}
}
#[derive(Accounts)]
pub struct Initialize<'info> {
#[account(init, payer = user, space = 8 + 8)]
pub my_account: Account<'info, MyAccount>,
#[account(mut)]
pub user: Signer<'info>,
pub system_program: Program<'info, System>,
}
#[account]
pub struct MyAccount {
pub data: u64,
}

Membangun dan Men-deploy Program

Untuk membangun program, cukup jalankan build di terminal. Perintah build mengompilasi program. Bytecode program kemudian disimpan dalam akun program yang dapat dieksekusi saat di-deploy.

Terminal
$
build

Solana Playground memperbarui alamat di declare_id!(). Alamat ini mewakili alamat on-chain program Anda (program ID).

Setelah membangun program, jalankan deploy di terminal untuk men-deploy program ke jaringan (devnet secara default). Deployment program memerlukan alokasi SOL ke akun on-chain yang menyimpan program.

Sebelum deployment, pastikan Anda memiliki cukup SOL. Anda bisa mendapatkan SOL devnet dengan menjalankan solana airdrop 5 di terminal Playground atau menggunakan Web Faucet.

Terminal
$
deploy

Anda juga dapat menggunakan tombol Build dan Deploy pada panel sisi kiri.

Build and DeployBuild and Deploy

Setelah men-deploy program, Anda dapat memanggil instruksi-instruksinya.

Uji Program

Kode starter mencakup file pengujian yang terletak di tests/anchor.test.ts. File ini menunjukkan cara memanggil instruksi initialize pada program dari sisi klien.

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));
});
});

Untuk menjalankan file pengujian setelah men-deploy program, jalankan test di terminal.

Terminal
$
test

Perhatikan output yang mengonfirmasi bahwa pengujian berhasil.

Anda juga dapat menggunakan tombol Test pada panel sisi kiri.

Run TestRun Test

Anda kemudian dapat melihat log transaksi dengan menjalankan perintah solana confirm -v dan menentukan hash transaksi (tanda tangan) dari output pengujian:

Terminal
$
solana confirm -v [TxHash]

Contohnya:

Terminal
$
solana confirm -v 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc

Anda juga dapat melihat detail transaksi di SolanaFM atau Solana Explorer dengan mencari tanda tangan transaksi (hash).

Ingat untuk memperbarui koneksi cluster (jaringan) pada Explorer yang Anda gunakan agar sesuai dengan Solana Playground. Solana Playground secara default menggunakan cluster devnet.

Tutup Program

Terakhir, menutup program memungkinkan pemulihan penuh SOL yang dialokasikan untuk program on-chain.

Anda dapat menutup program dengan menjalankan perintah berikut dan menentukan alamat program yang ditemukan di declare_id!():

Terminal
$
solana program close [ProgramID]

Contohnya:

Terminal
$
solana program close 2VvQ11q8xrn5tkPNyeraRsPaATdiPx8weLAD8aD4dn2r

Selamat. Anda baru saja membangun dan men-deploy program Solana pertama Anda menggunakan framework Anchor.

Is this page helpful?

Daftar Isi

Edit Halaman