Ota käyttöön ensimmäinen Solana-ohjelmasi
Rakenna, ota käyttöön ja testaa ensimmäinen ohjelmasi Solana-lohkoketjussa käyttäen Anchor-kehystä. Tämä opas auttaa sinua tutustumaan paremmin Solana Playgroundiin ja valmistaa sinua käyttämään Program Derived Address -osoitteita (PDA) ja Cross Program Invocation -toimintoa (CPI).
Luo Anchor-projekti
- Avaa Solana Playground verkkoselaimessasi
- Napsauta vasemmassa paneelissa + Create a new project
- Syötä Project name (projektin nimi)
- Valitse kehykseksi Anchor (Rust)
- Napsauta Create
Uusi projekti
src/lib.rs
lähdetiedosto avautuu. Se sisältää yhden struktuurin nimeltä
Initialize
, joka tekee seuraavaa:
- Vastaanottaa vaaditun parametrin nimeltä
data: u64
- Luo uuden tilin
- Tallentaa
data: u64
-arvon uuteen tiliin - Lisää viestin tapahtuman ohjelman lokeihin
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 logsOk(())}}#[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}
Ohjelman rakentaminen ja käyttöönotto
- Käännä ohjelmakoodi
$build
Ohjelmatunnuksesi, joka on
määritelty tiedostossa declare_id!()
, päivitetään nyt.
- Lisää SOL lompakkoosi (Valinnainen)
Ohjelman käyttöönotto vaatii SOL-tokeneita ohjelman lohkoketjutilillä. Tarvittaessa lisää SOL lompakkoosi ennen siirtymistä vaiheeseen 3.
- Ota ohjelma käyttöön verkossa
$deploy
Käyttöönoton yhteydessä ohjelman tavukoodi tallennetaan suoritettavaan program account -tiliin.
Huomautus: Halutessasi voit käyttää Build- ja Deploy-painikkeita vasemman reunan paneelissa, kuten alla olevassa kuvakaappauksessa näytetään.
Build ja Deploy
Ohjelman testaaminen
- Avaa testitiedosto nimeltä
tests/anchor.test.ts
. Tämä tiedosto näyttää, miten ohjelmaninitialize
-rakennetta kutsutaan asiakaspuolelta.
// No imports needed: web3, anchor, pg and more are globally availabledescribe("Test", () => {it("initialize", async () => {// Generate keypair for the new accountconst newAccountKp = new web3.Keypair();// Send transactionconst 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 transactionawait pg.connection.confirmTransaction(txHash);// Fetch the created accountconst 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));});});
- Suorita testitiedosto
$test
- Tallenna tulosteessa näkyvä transaktiotunniste (
TxHash
)
(Yllä olevassa esimerkissä transaktiotunniste on
3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc
.)
Huomaa: Halutessasi voit käyttää Test
-painiketta vasemman reunan
paneelissa.
Suorita testi
- Suorita
solana confirm -v [TxHash]
nähdäksesi transaktion lokit
$solana confirm -v 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc
- Tarkastele transaktion tietoja
Avaa joko SolanaFM tai Solana Explorer ja hae transaktiotunnisteella.
Solana Explorer: Aseta verkkoklusteriksi devnet
, jotta se vastaa Solana
Playgroundin klusteria.
Sulje ohjelma
Sulje ohjelma saadaksesi takaisin lohkoketjuohjelmalle allokoidun SOL-määrän.
Tee tämä suorittamalla solana program close [ProgramID]
, käyttäen
declare_id!()
-makroon tallennettua ohjelman osoitetta.
$solana program close 2VvQ11q8xrn5tkPNyeraRsPaATdiPx8weLAD8aD4dn2r
Ohjelmia voi ainoastaan sulkea tai päivittää tili, jolla on päivitysoikeudet. Playground-lompakkosi saa automaattisesti päivitysoikeudet jokaiseen ohjelmaan, kun se otetaan käyttöön. Jos päivitysoikeudet peruutetaan, ohjelmasta tulee muuttumaton.
Onnittelut! Rakensit ja otit käyttöön ensimmäisen Solana-ohjelmasi Anchoria käyttäen.
Seuraavat vaiheet
Nyt kun olet ottanut käyttöön ensimmäisen ohjelmasi, olet valmis tutustumaan ohjelmasta johdettuihin osoitteisiin ja ohjelmien välisiin kutsuihin.
Is this page helpful?