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

  1. Avaa Solana Playground verkkoselaimessasi
  2. Napsauta vasemmassa paneelissa + Create a new project
  3. Syötä Project name (projektin nimi)
  4. Valitse kehykseksi Anchor (Rust)
  5. Napsauta Create

Uusi projektiUusi 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
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
}

Ohjelman rakentaminen ja käyttöönotto

  1. Käännä ohjelmakoodi
Terminal
$
build

Ohjelmatunnuksesi, joka on määritelty tiedostossa declare_id!(), päivitetään nyt.

  1. Lisää SOL lompakkoosi (Valinnainen)

Ohjelman käyttöönotto vaatii SOL-tokeneita ohjelman lohkoketjutilillä. Tarvittaessa lisää SOL lompakkoosi ennen siirtymistä vaiheeseen 3.

  1. Ota ohjelma käyttöön verkossa
Terminal
$
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 DeployBuild ja Deploy

Ohjelman testaaminen

  1. Avaa testitiedosto nimeltä tests/anchor.test.ts. Tämä tiedosto näyttää, miten ohjelman initialize -rakennetta kutsutaan asiakaspuolelta.
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. Suorita testitiedosto
Terminal
$
test
  1. Tallenna tulosteessa näkyvä transaktiotunniste (TxHash)

(Yllä olevassa esimerkissä transaktiotunniste on 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc.)

Huomaa: Halutessasi voit käyttää Test -painiketta vasemman reunan paneelissa.

Suorita testiSuorita testi

  1. Suorita solana confirm -v [TxHash] nähdäksesi transaktion lokit
Terminal
$
solana confirm -v 3TewJtiUz1EgtT88pLJHvKFzqrzDNuHVi8CfD2mWmHEBAaMfC5NAaHdmr19qQYfTiBace6XUmADvR4Qrhe8gH5uc
  1. 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.

Terminal
$
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?

Sisällysluettelo

Muokkaa sivua