Solana mahdollistaa välittömät, globaalit token-siirrot alle 0,001 dollarin maksuilla. Rakensitpa rajat ylittäviä rahalähetyksiä, palkanlaskentaa tai treasury-toimintoja, perus-stablecoin-maksu toteutuu alle sekunnissa ja maksaa murto-osan sentistä.
Miten se toimii
Maksu siirtää stablecoineja lähettäjän token-tilin vastaanottajan token-tilille. Jos vastaanottaja saa tätä tokenia ensimmäistä kertaa, hänen token-tilinsä voidaan luoda osana samaa transaktiota.
Katso How Payments Work on Solana maksun peruskäsitteistä.
splToken-apufunktio
@solana/client-kirjastosta
käsittelee ATA-johdannaisen, desimaalien muunnoksen ja transaktioiden
rakentamisen automaattisesti. Tämä on ihanteellinen yksittäisiin
maksusiirtoihin.
Alla olevat vaiheet näyttävät peruskulun. Katso Demo täydellisestä ajettavasta koodista.
Luo token-apufunktio
Konfiguroi splToken()-apufunktio kutsumalla client.splToken()-metodia
mint-osoitteella. Apufunktio tarjoaa metodeja yleisiin token-operaatioihin.
Asettamalla tokenProgram: "auto" tunnistetaan automaattisesti, omistaako mint
accountin Token- vai Token-2022-ohjelma.
Lähetä maksu
Käytä sendTransfer()-metodia siirtääksesi tokeneita lompakoiden välillä.
Metodi käsittelee:
- ATA-selvitys: Johtaa automaattisesti Associated Token Accountit (ATA:t) lähettäjälle ja vastaanottajalle. Jos vastaanottajan ATA:ta ei ole olemassa, ohje tilin luomiseksi lisätään automaattisesti samaan transaktioon.
- Desimaalien muunnos: Hyväksyy token-määrät ja muuntaa ne automaattisesti perusyksiköiksi mintin desimaalien perusteella (esim. 0,25 tokenia -> 250000 perusyksikköä, jos mintillä on 6 desimaalia)
- Transaktioiden rakentaminen: Luo, allekirjoittaa ja lähettää transaktion siirto-ohjeen kanssa
const client = createClient({endpoint: "http://localhost:8899",websocketEndpoint: "ws://localhost:8900",commitment: "confirmed"});const splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});
Tarkista saldot
Siirron valmistuttua käytä fetchBalance() -metodia token-saldojen
tarkistamiseen. Tämä metodi ottaa vastaan lompakon osoitteen ja johtaa
automaattisesti vastaavan ATA:n saldon hakemista varten.
const client = createClient({endpoint: "http://localhost:8899",websocketEndpoint: "ws://localhost:8900",commitment: "confirmed"});const splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});const senderBalance = await splToken.fetchBalance(sender.address);const recipientBalance = await splToken.fetchBalance(recipient.address);
Demo
// Generate keypairs for sender and recipientconst sender = (await generateKeypair()).signer;const recipient = (await generateKeypair()).signer;console.log("Sender Address:", sender.address);console.log("Recipient Address:", recipient.address);// Demo Setup: Create client, mint account, token accounts, and fund with initial tokensconst { client, mint } = await demoSetup(sender, recipient);console.log("\nMint Address:", mint.address);// =============================================================================// Basic Token Payment Demo// =============================================================================// Create splToken helper for this mint using @solana/clientconst splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});// Transfer tokens from sender to recipient (ATA and decimals handled automatically)const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});console.log("\n=== Token Payment Complete ===");console.log("Transaction Signature:", signature.toString());// Fetch final token account balances using splToken helperconst senderBalance = await splToken.fetchBalance(sender.address);const recipientBalance = await splToken.fetchBalance(recipient.address);console.log("\nSender Token Account Balance:", senderBalance);console.log("Recipient Token Account Balance:", recipientBalance);// =============================================================================// Demo Setup Helper Function// =============================================================================
Is this page helpful?