文章/教程 Solana & Anchor

Noah · 2024年05月28日 · 73 次阅读

Anchor

  • 导入 anchor

    use anchor_lang::prelude::*;
    
  • declare_id!("public_key");

  • #[program] 宏创建我们的 program(合约)

    #[program]
    mod hello_world {
        use super::*;
    
        pub fn hello(ctx: Context<Hello>) -> Result<()> {
            Ok(())
        }
    }
    
  • Rust println! → Anchor msg!

    msg!("Hello, World!");
    
  • 给结构体派生 [derive(Accounts)] 来定义 Account

    #[derive(Accounts)]
    pub struct Hello {}
    
  • Context

  • build & deploy

  • IDL

  • anchor_spl & mpl_token_metadata

    • 与 token program 和 token_metadata program 交互
    use anchor_spl::{
        associated_token::AssociatedToken,
        metadata::{create_metadata_accounts_v3, CreateMetadataAccountsV3, Metadata},
        token::{burn, mint_to, Burn, Mint, MintTo, Token, TokenAccount},
    };
    use mpl_token_metadata::{pda::find_metadata_account, state::DataV2};
    use solana_program::{pubkey, pubkey::Pubkey};
    

Client SDK

  • Rust
  • TypeScript
    • @coral-xyz/anchor library
    • 为了与我们的链上程序进行交互,我们必须创建一个交易并通过 RPC 端点将其发送到 Solana 集群

Anchor CLI

  • anchor build

Solana CLI

  • solana airdrop 5
  • solana config set --url devnet
  • solana config get
  • solana balance
  • solana confirm -v
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号