@solana/kit sisältää createClient-funktion, joka on pienikokoinen isäntä, jota laajennetaan liitännäisillä. Jokainen
liitännäinen lisää ominaisuuden — RPC-yhteyden, allekirjoittajan, tapahtumien suunnittelun —
ja koostettu asiakas palvelee skriptejä, palvelinreittejä ja käyttöliittymiä yhtä lailla.
Rakennatko React-sovellusta? React-opas käärii tämän
saman asiakkaan @solana/react-kirjastolla, jolloin komponentit lukevat lompakon tilan ja RPC-datan
hookien kautta. Aloita sieltä ja palaa tänne, kun tarvitset tarkempaa hallintaa.
Asennus
$npm install @solana/kit @solana/kit-plugin-rpc @solana/kit-plugin-signer
Käytä mitä tahansa paketinhallintaa. Kit on v7+ ja @solana/kit-plugin-*-paketit ovat
0.13+.
Luo asiakas
Yhdistä liitännäiset .use(...)-metodilla. Aseta allekirjoittaja ensin, sitten RPC-yhteys.
solanaDevnetRpc() lisää client.rpc:n, tilaukset, tapahtumien
suunnittelijan/suorittajan ja client.sendTransaction-apumetodin — joten sovelluksen ei yleensä
tarvitse kytkeä näitä osia itse.
import { createClient, generateKeyPairSigner } from "@solana/kit";import { solanaDevnetRpc } from "@solana/kit-plugin-rpc";import { signer } from "@solana/kit-plugin-signer";const payer = await generateKeyPairSigner();const client = createClient().use(signer(payer)).use(solanaDevnetRpc());const slot = await client.rpc.getSlot().send();console.log("current slot", slot);
signer-liitännäinen asettaa sekä maksajan että sovelluksen identiteetin. RPC-paketti
edellyttää, että maksaja on asetettu ensin, minkä vuoksi järjestyksellä on merkitystä.
Allekirjoittajan variantit
@solana/kit-plugin-signer tarjoaa kolme roolia, jotta voit myöntää asiakkaalle vain tarvittavat oikeudet:
signer(x)— asettaa sekäclient.payern ettäclient.identityn.payer(x)— vain tapahtumamaksaja.identity(x)— vain sovelluksen auktoriteetti.
Jokaisella on *FromFile(path) (Node), generated*(), generated*WithSol(amount)
ja airdrop*()-variantit testejä ja skriptejä varten.
Lähetä tapahtuma
Rakenna käskyt generoidulla ohjelmaklientillä ja välitä ne
client.sendTransaction-metodille. Suunnittelija ratkaisee lohkohashin, arvioi laskennan,
allekirjoittaa asiakkaan maksajalla ja lähettää tapahtuman.
import { getTransferSolInstruction } from "@solana-program/system";import { address, lamports } from "@solana/kit";const transfer = getTransferSolInstruction({source: client.payer,destination: address("Fke...address"),amount: lamports(10_000_000n) // 0.01 SOL});const { context } = await client.sendTransaction([transfer]);console.log("submitted", context.signature);
sendTransaction palauttaa tulososion; tapahtuman allekirjoitus löytyy
result.context.signature-kentästä. Se varmistaa, että suunnitelma mahtuu yhteen tapahtumaan ja
heittää poikkeuksen muutoin — käytä sendTransactions-metodia, kun erä voi kattaa useita
tapahtumia.
Valitse RPC-paketti
@solana/kit-plugin-rpc sisältää klusterivalmiit asetukset:
solanaDevnetRpc()— devnetin oletusasetukset, airdrop käytössä (client.airdrop).solanaMainnetRpc()— mainnet; airdrop on käännösaikainen virhe.solanaLocalRpc()—http://127.0.0.1:8899paikallista validator-solmua varten.solanaRpc({ rpcUrl })— mikä tahansa päätepiste.
import { solanaRpc } from "@solana/kit-plugin-rpc";const client = createClient().use(signer(payer)).use(solanaRpc({ rpcUrl: "https://your-rpc-provider.example" }));
Koosta yksityiskohtaisesti
Valmiit paketit yhdistävät RPC-yhteyden, suunnittelijan, suorittajan ja lähetysapumetodit,
joten useimmat sovellukset eivät koskaan tarvitse osia erikseen. Siirry yksittäisiin liitännäisiin vain
jota yhtä räätälöidäksesi — esimerkiksi mukautettu suunnittelija tai eri tilauskanava. Tämä polku vaatii myös @solana/kit-plugin-instruction-plan-paketin, jonka
valmiit paketit muutoin sisällyttävät puolestasi:
import {solanaRpcConnection,rpcAirdrop,rpcTransactionPlanner,rpcTransactionPlanExecutor} from "@solana/kit-plugin-rpc";import { planAndSendTransactions } from "@solana/kit-plugin-instruction-plan";const client = createClient().use(signer(payer)).use(solanaRpcConnection({ rpcUrl: "https://api.devnet.solana.com" })).use(rpcAirdrop()).use(rpcTransactionPlanner()).use(rpcTransactionPlanExecutor()).use(planAndSendTransactions());
Lisää ohjelma-asiakkaita
Generoidut @solana-program/*-paketit tarjoavat asiakasliitännäisiä, jolloin ohjelmakutsut
liittyvät suoraan asiakkaaseen. Asenna tarvitsemasi ohjelma ja lisää sen liitännäinen .use()-metodilla:
import { tokenProgram } from "@solana-program/token";const client = createClient().use(signer(payer)).use(solanaDevnetRpc()).use(tokenProgram()); // adds client.token
Allekirjoittaminen ilman selainlompakkoa
Ajetaanko API-reitillä, workerissa tai skriptissä headless-tilassa? Allekirjoita taustapalvelun avaintenhallinnan avulla raaka keypair-parin sijaan. Katso Keychain ja Signing in Production.
Yleisiä malleja Solana-kehittäjille
- Jaettu alustus: Rakenna asiakas kerran ydinmoduulissa ja tuo se skripteihin, palvelinreitteihin ja käyttöliittymään.
- Palvelinpuolen lukemat: Pelkällä
signer+solanaRpc-yhdistelmällä (ilman lompakkoliitännäistä) varustettu asiakas lukee tilejä ja simuloi tapahtumia palvelimelta. - Paikallinen testaus: Vaihda RPC-paketti
.use(litesvm())-liitännäiseen@solana/kit-plugin-litesvm-paketista ajaaksesi muistissa olevaa validator-solmua vastaan (vain Node). - Testattavuus: Koostettu asiakas on helppo simuloida — tynkää RPC-vastauksia tai allekirjoittajia ilman selaimen lompakkoa.
Is this page helpful?