Απαιτεί
cargo add --dev litesvm-token spl-tokenΠλήρης Δοκιμή
tests/spl_token_test.rs
use litesvm::LiteSVM;use litesvm_token::{get_spl_account,spl_token::{native_mint::DECIMALS, state::Account as TokenAccount},CreateAssociatedTokenAccount, CreateMint, MintTo, Transfer,};use solana_sdk::{native_token::LAMPORTS_PER_SOL,signature::{Keypair, Signer},};#[test]fn test_token_transfer() {let mut svm = LiteSVM::new();// Create payer account and fund itlet payer = Keypair::new();svm.airdrop(&payer.pubkey(), 10 * LAMPORTS_PER_SOL).unwrap();// Create two userslet alice = Keypair::new();let bob = Keypair::new();// Create a new SPL token mint with alice as the mint authoritylet mint = CreateMint::new(&mut svm, &payer).authority(&alice.pubkey()).decimals(DECIMALS).send().unwrap();// Create associated token accounts (ATAs) for alice and boblet alice_token_account = CreateAssociatedTokenAccount::new(&mut svm, &payer, &mint).owner(&alice.pubkey()).send().unwrap();let bob_token_account = CreateAssociatedTokenAccount::new(&mut svm, &payer, &mint).owner(&bob.pubkey()).send().unwrap();// Mint 1000 tokens to Alice's accountMintTo::new(&mut svm, &payer, &mint, &alice_token_account, 1000).owner(&alice).send().unwrap();// Transfer 400 tokens from Alice to BobTransfer::new(&mut svm, &payer, &mint, &bob_token_account, 400).source(&alice_token_account).owner(&alice).send().unwrap();// Verify balanceslet alice_account: TokenAccount = get_spl_account(&svm, &alice_token_account).unwrap();let bob_account: TokenAccount = get_spl_account(&svm, &bob_token_account).unwrap();let alice_balance = alice_account.amount;let bob_balance = bob_account.amount;assert_eq!(alice_balance, 600);assert_eq!(bob_balance, 400);println!("SPL token transfer successful!");}
Βασικά Σημεία
- litesvm-token: Βοηθητικό crate που απλοποιεί τη δοκιμή SPL token
- Δημιουργία Mint: Δημιουργία ενός mint με καθορισμένα δεκαδικά και αρχές
- Token Accounts: Δημιουργία token account για αποθήκευση tokens για
χρήστες
- Για να κατανοήσετε τη διαφορά μεταξύ αυτού και ενός ATA, διαβάστε αυτή την ενότητα.
- Έκδοση: Έκδοση tokens σε token account χρησιμοποιώντας την αρχή mint
- Δεκαδικά: Να θυμάστε να λαμβάνετε υπόψη τα δεκαδικά ψηφία κατά τον καθορισμό ποσών
Δείτε Επίσης
- Δοκιμές με SPL Tokens - Ολοκληρωμένος οδηγός για δοκιμές SPL token
Is this page helpful?