Lue tietoja Solana-verkosta hakemalla eri tilejä. Tässä oppaassa selitetään Solana-tilien rakenne. Jokaisella Solana- tilillä on yksilöllinen osoite, jonka avulla tilin ketjussa oleva data paikallistetaan. Solana-tilit sisältävät joko tiladataa tai suoritettavan ohjelman.
Hae lompakkotili
Lompakkotili on tili, jonka omistaa System Program. Lompakkotilejä käytetään ensisijaisesti SOL:n säilyttämiseen ja tapahtumien allekirjoittamiseen. Kun SOL lähetetään uuteen osoitteeseen ensimmäistä kertaa, järjestelmätili luodaan automaattisesti.
Alla oleva esimerkki luo Kit-asiakkaan, luo uuden allekirjoittajan, pyytää SOL:ia uuden osoitteen rahoittamiseksi ja hakee tilin tiedot asiakkaan RPC- rajapinnasta.
import { createClient, generateKeyPairSigner, lamports } from "@solana/kit";import { solanaRpc, rpcAirdrop } from "@solana/kit-plugin-rpc";import { generatedPayer } from "@solana/kit-plugin-signer";const client = await createClient().use(generatedPayer()).use(solanaRpc({rpcUrl: "http://localhost:8899",rpcSubscriptionsUrl: "ws://localhost:8900"})).use(rpcAirdrop());const signer = await generateKeyPairSigner();console.log(`Address: ${signer.address}`);// Funding an address with SOL automatically creates an accountawait client.airdrop(signer.address, lamports(1_000_000_000n));const accountInfo = await client.rpc.getAccountInfo(signer.address).send();console.log(accountInfo);
Kun haet lompakkotilin getAccountInfo()-funktiolla, Kit palauttaa RPC-
vastauksen, joka on esitetty oikealla olevassa esimerkkitulosteessa.
Vastauksessa on kaksi ylimmän tason kenttää: context kertoo, milloin luku
tapahtui, ja value sisältää RPC-metodin palauttamat tilikentät.
context-kenttä näyttää tilin lukemiseen käytetyn slot-arvon sekä vastauksen
tarjoilleen RPC-rajapintaversion. Myöhempi luku voi palauttaa eri slot-arvon tai
rajapintaversion.
value-kenttä sisältää RPC-metodin palauttaman tilin tilan. Seuraavat vaiheet
käyvät läpi value-kentän sisällä olevat kentät siinä järjestyksessä, jossa ne
esiintyvät.
{context: {slot: 420602714n,apiVersion: "3.1.6"},value: {lamports: 1000000000n,data: ["", "base64"],owner: "11111111111111111111111111111111",executable: false,rentEpoch: 0n,space: 0n}}
lamports-kenttä sisältää tilin SOL-saldon mitattuna
lamport-yksiköissä, jotka ovat SOL:n
pienin yksikkö.
{context: {slot: 420602714n,apiVersion: "3.1.6"},value: {lamports: 1000000000n,data: ["", "base64"],owner: "11111111111111111111111111111111",executable: false,rentEpoch: 0n,space: 0n}}
data-kenttä sisältää tilille tallennetun datan tavuina. RPC palauttaa
tilitiedot tuplena: koodattu dataketjuna, jota seuraa koodausmuoto.
Lompakkotileillä koodattu dataketju on tyhjä, koska tili tallentaa 0 tavua
dataa.
{context: {slot: 420602714n,apiVersion: "3.1.6"},value: {lamports: 1000000000n,data: ["", "base64"],owner: "11111111111111111111111111111111",executable: false,rentEpoch: 0n,space: 0n}}
owner-kenttä näyttää ohjelman, joka omistaa tilin. Lompakoilla omistaja on
aina System Program, jonka osoite on 11111111111111111111111111111111.
{context: {slot: 420602714n,apiVersion: "3.1.6"},value: {lamports: 1000000000n,data: ["", "base64"],owner: "11111111111111111111111111111111",executable: false,rentEpoch: 0n,space: 0n}}
executable-kenttä kertoo, onko tilin osoite kutsuttavissa. true tarkoittaa,
että osoite edustaa ohjelmaa, joka voi käsitellä ohjeita. false tarkoittaa,
että tili tallentaa tilaa, kuten lompakkosaldon tai tilin datan, eikä sitä
kutsuta ohjelmana. Lompakkotilit käyttävät false-arvoa.
{context: {slot: 420602714n,apiVersion: "3.1.6"},value: {lamports: 1000000000n,data: ["", "base64"],owner: "11111111111111111111111111111111",executable: false,rentEpoch: 0n,space: 0n}}
rentEpoch-kenttä on vanhentuneesta rent-mekanismista peräisin oleva
perintökenttä. Kenttä palautetaan edelleen taaksepäin yhteensopivuuden vuoksi.
{context: {slot: 420602714n,apiVersion: "3.1.6"},value: {lamports: 1000000000n,data: ["", "base64"],owner: "11111111111111111111111111111111",executable: false,rentEpoch: 0n,space: 0n}}
space-kenttä näyttää data-kentässä olevien tavujen määrän. space-kenttä
palautetaan tilihaun vastauksessa, mutta se ei ole osa tilin tietotyyppiä.
Lompakkotilin esimerkissä space-kentän arvo on 0, koska data-kenttä sisältää
0 tavua dataa.
{context: {slot: 420602714n,apiVersion: "3.1.6"},value: {lamports: 1000000000n,data: ["", "base64"],owner: "11111111111111111111111111111111",executable: false,rentEpoch: 0n,space: 0n}}
Hae Token Program
Alla oleva esimerkki hakee Token Programin havainnollistaakseen eroa lompakko- ja ohjelmatilien välillä. Token Program määrittelee ohjeet tokenien käsittelyä varten, kuten tokenien luomisen ja siirtämisen. Ohjelmia kutsutaan käsittelemään ohjeita. Ohjelman tila, kuten tokenien tiedot ja saldot, tallennetaan erillisille ohjelman omistamille tileille.
Token Programin osoite on ketjussa sijaitseva program account. Yksinkertaisuuden vuoksi voit ajatella ohjelman osoitetta itse ohjelmana, koska sitä käytetään ohjelman kutsumiseen. Päivitettävissä olevien ohjelmien osalta program account tallentaa metatiedot ja viittaa erilliseen programdata accountiin, joka sisältää käyttöönotetun suoritettavan koodin. Voit tarkastella Token Programin lähdekoodia ja program accountia Solana Explorerissa.
import { address, createClient, fetchJsonParsedAccount } from "@solana/kit";import { solanaRpc } from "@solana/kit-plugin-rpc";import { generatedPayer } from "@solana/kit-plugin-signer";const client = await createClient().use(generatedPayer()).use(solanaRpc({rpcUrl: "https://api.mainnet.solana.com"}));const tokenProgramAddress = address("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");const accountInfo = await client.rpc.getAccountInfo(tokenProgramAddress, {encoding: "base64"}).send();console.log(accountInfo);const parsedAccount = await fetchJsonParsedAccount(client.rpc,tokenProgramAddress);console.log(parsedAccount);
Token Program on suoritettava ohjelmatili. Ohjelmilla on samat perustavanlaatuiset kentät kuin kaikilla tileillä, mutta niillä on keskeisiä eroja.
Token Program -esimerkki käyttää base64 -koodausta palauttaakseen program
accountin raakadatan.
Seuraavat vaiheet käyvät läpi kentät value:n sisällä siinä järjestyksessä,
jossa kentät esiintyvät.
{context: {apiVersion: "3.1.14",slot: 420601581n},value: {data: ["AgAAACfxkLHTr5i4znFMROjK3/n4/EXLjl+sQgLv+BENl903", "base64"],executable: true,lamports: 2191440n,owner: "BPFLoaderUpgradeab1e11111111111111111111111",rentEpoch: 18446744073709551615n,space: 36n}}
data -kenttä tallentaa BPF Upgradeable Loaderin program account -tilan.
Ensimmäinen tuple-alkio sisältää koko tilin datan base64-koodattuna. Toinen
tuple-alkio ilmaisee koodauksen. Tässä 36 tavua sisältävät metatiedot ja program
account -osoitteen.
Päivitettävissä olevien ohjelmien osalta program account -tila viittaa erilliseen programdata accountiin, joka tallentaa ohjelman suoritettavan koodin.
{context: {apiVersion: "3.1.14",slot: 420601581n},value: {data: ["AgAAACfxkLHTr5i4znFMROjK3/n4/EXLjl+sQgLv+BENl903", "base64"],executable: true,lamports: 2191440n,owner: "BPFLoaderUpgradeab1e11111111111111111111111",rentEpoch: 18446744073709551615n,space: 36n}}
executable-kenttä on asetettu arvoon true, mikä ilmaisee, että tilin
osoitetta voidaan kutsua ohjelmana.
{context: {apiVersion: "3.1.14",slot: 420601581n},value: {data: ["AgAAACfxkLHTr5i4znFMROjK3/n4/EXLjl+sQgLv+BENl903", "base64"],executable: true,lamports: 2191440n,owner: "BPFLoaderUpgradeab1e11111111111111111111111",rentEpoch: 18446744073709551615n,space: 36n}}
lamports-kenttä sisältää program account -tilin hallussa olevan SOL-saldon.
Program account -tileillä on oltava riittävästi lamport-yksiköitä
rent-vapausehdon täyttämiseksi.
{context: {apiVersion: "3.1.14",slot: 420601581n},value: {data: ["AgAAACfxkLHTr5i4znFMROjK3/n4/EXLjl+sQgLv+BENl903", "base64"],executable: true,lamports: 2191440n,owner: "BPFLoaderUpgradeab1e11111111111111111111111",rentEpoch: 18446744073709551615n,space: 36n}}
Jokainen program account on
loader-ohjelman
omistama. Token Program account -tilin kohdalla owner on BPF Upgradeable
Loader.
{context: {apiVersion: "3.1.14",slot: 420601581n},value: {data: ["AgAAACfxkLHTr5i4znFMROjK3/n4/EXLjl+sQgLv+BENl903", "base64"],executable: true,lamports: 2191440n,owner: "BPFLoaderUpgradeab1e11111111111111111111111",rentEpoch: 18446744073709551615n,space: 36n}}
rentEpoch-kenttä on perintökenttä vanhentuneesta rent-mekanismista. Kenttä
palautetaan edelleen taaksepäin yhteensopivuuden vuoksi.
{context: {apiVersion: "3.1.14",slot: 420601581n},value: {data: ["AgAAACfxkLHTr5i4znFMROjK3/n4/EXLjl+sQgLv+BENl903", "base64"],executable: true,lamports: 2191440n,owner: "BPFLoaderUpgradeab1e11111111111111111111111",rentEpoch: 18446744073709551615n,space: 36n}}
space-kenttä näyttää program account -tilin datan kokonaiskoon tavuina.
space-arvo on vain 36 tavua, koska program account tallentaa
loader-metatiedot ja ProgramData-tilin osoitteen, ei koko käännettyä ohjelmaa.
{context: {apiVersion: "3.1.14",slot: 420601581n},value: {data: ["AgAAACfxkLHTr5i4znFMROjK3/n4/EXLjl+sQgLv+BENl903", "base64"],executable: true,lamports: 2191440n,owner: "BPFLoaderUpgradeab1e11111111111111111111111",rentEpoch: 18446744073709551615n,space: 36n}}
Edellinen vastaus palautti program account -tilin data-kentän base64-tuplena.
Jäsennetty vastaus purkaa nämä tavut nimetyiksi kentiksi data-objektissa.
programData-kenttä sisältää sen ProgramData-tilin osoitteen, johon
suoritettava ohjelmakoodi on tallennettu.
{executable: true,lamports: 43712780n,programAddress: "BPFLoaderUpgradeab1e11111111111111111111111",space: 36n,address: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",data: {programData: "3gvYRKWyXRR9xKWe1ZjPhLY5ZJRN7KDB4rFZFGoJfFk2",parsedAccountMeta: { program: "bpf-upgradeable-loader", type: "program" }},exists: true}
Hae mint account
mint account on Token Program -ohjelman omistama tili, joka tallentaa tietyn tokenin yleiset metatiedot. mint account tallentaa tokenin kokonaistarjonnan, desimaalien määrän, lyöntivaltuuden ja jäädytysvaltuuden. mint account -osoite yksilöi tokenin Solana-verkossa.
Alla oleva esimerkki hakee USD Coin mint account -tilin havainnollistaakseen, miten ohjelman tila tallennetaan erilliseen tiliin. Tarkat saldot ja tarjonta-arvot voivat vaihdella sen mukaan, mistä slot-kohdasta RPC-solmusi lukee.
import { address, createClient } from "@solana/kit";import { solanaRpc } from "@solana/kit-plugin-rpc";import { generatedPayer } from "@solana/kit-plugin-signer";const client = await createClient().use(generatedPayer()).use(solanaRpc({rpcUrl: "https://api.mainnet.solana.com"}));const mintAddress = address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");const accountInfo = await client.rpc.getAccountInfo(mintAddress, {encoding: "base64"}).send();console.log(accountInfo);
mint account -tilit tallentavat tilaa, eivät suoritettavaa koodia. mint account -tilit ovat Token Program -ohjelman omistamia, ja se sisältää ohjeet siitä, miten mint account -tilejä luodaan ja päivitetään.
Seuraavat vaiheet käyvät läpi kentät value -rakenteessa siinä järjestyksessä
kuin ne esiintyvät.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
data -kenttä sisältää serialisoidun Mint -tilin tilan. Ensimmäinen
tuple-alkio sisältää täydet 82 tavun tilitiedot base64-koodattuna. Toinen
tuple-alkio ilmaisee käytetyn koodauksen.
Lukeaksesi mint account -tililtä sinun täytyy deserialisoida data -kenttä
Mint -tietotyypiksi, kuten näytetään
seuraavassa esimerkissä.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
executable -kenttä ilmaisee, voidaanko tiliä kutsua ohjelmana. mint account
-tilit tallentavat tilaa, joten executable -kentän arvo on false.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
lamports -kenttä sisältää mint account -tilin hallussa olevan SOL-saldon.
lamport-arvo on mint account -tilin vuokravapautussaldo, ei tokenin tarjonta.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
mint account on Token Programin
omistama. mint account'n data-kenttää voi muokata ainoastaan Token Programin
ohjeiden kautta.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
rentEpoch-kenttä on perintökenttä vanhentuneesta rent-mekanismista. Kenttä
palautetaan edelleen taaksepäin yhteensopivuuden vuoksi.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
space-kenttä osoittaa, että mint account sisältää 82 tavua dataa.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
Mint accountin deserialisointi
Tilitiedot tallennetaan data-kenttään serialisoitussa muodossa. Lukeaksesi
tiedot kenttinä kuten supply tai decimals, deserialisoi data-kenttä
omistavaohjelman määrittelemään tilityyppiin. Useimmat Solana-ohjelmat tarjoavat
asiakaskirjastoja apufunktioilla tätä vaihetta varten. Nämä apufunktiot
palauttavat jäsennellyn tilidata, jolloin tulos on helpompi käsitellä.
Esimerkiksi @solana-program/token-kirjasto sisältää
fetchMint()-funktion mint accountin hakemiseen ja mint
accountin data-kentän deserialisoimiseen
Mint
-tietotyypiksi, jonka Token Program määrittelee.
import { address, createClient } from "@solana/kit";import { solanaRpc } from "@solana/kit-plugin-rpc";import { generatedPayer } from "@solana/kit-plugin-signer";import { fetchMint } from "@solana-program/token";const client = await createClient().use(generatedPayer()).use(solanaRpc({rpcUrl: "https://api.mainnet.solana.com"}));const mintAddress = address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");const mint = await fetchMint(client.rpc, mintAddress);console.log(mint);
pub struct Mint {/// Optional authority used to mint new tokens. The mint authority may only/// be provided during mint creation. If no mint authority is present/// then the mint has a fixed supply and no further tokens may be/// minted.pub mint_authority: COption<Pubkey>,/// Total supply of tokens.pub supply: u64,/// Number of base 10 digits to the right of the decimal place.pub decimals: u8,/// Is `true` if this structure has been initializedpub is_initialized: bool,/// Optional authority to freeze token accounts.pub freeze_authority: COption<Pubkey>,}
fetchMint()-funktio hakee mint accountin ja deserialisoi mint accountin
data-kentän Mint-tilityyppiin.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
Voit tarkastella kokonaan deserialisoitua mint account -dataa Solana Explorerissa.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä address sisältää mint account -osoitteen.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä data sisältää deserialisoidun Mint -tilin tilan. Kentän data
sisäkkäiset kentät ovat peräisin Token Program -ohjelman Mint -tilityypistä.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä data.mintAuthority näyttää ainoan tilin, joka voi luoda uusia yksiköitä
tokenille.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä supply näyttää lyötyjen tokenien kokonaismäärän. Tarjonta-arvo on
ilmaistu tokenin pienimmässä yksikössä. Saadaksesi kokonaistarjonnan
vakioyksiköissä, jaa kentän supply arvo decimals -arvolla.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä decimals näyttää tokenin desimaalipaikkojen määrän.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä isInitialized ilmaisee, onko mint account alustettu. Kenttä
isInitialized on Token Program -ohjelmassa käytetty turvallisuustarkistus.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä data.freezeAuthority näyttää tilin, jolla on valtuus jäädyttää token
accounts. token account on erillinen
tili, joka tallentaa omistajan tokenien yksiköitä. Jäädytettynä token account ei
voi siirtää tai polttaa token-saldoaan.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä executable on epätosi. USDC mint account tallentaa tokenin tilan, joten
USDC mint account ei voi toimia ohjelmana.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä lamports sisältää mint accountin hallussa olevan SOL-saldon.
lamport-arvo on mint accountin vuokravapaan saldon arvo, ei token-tarjonta.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä programAddress näyttää ohjelman, joka omistaa mint accountin. USDC:n
tapauksessa omistava ohjelma on Token Program. Vain tiliä omistava ohjelma voi
muokata sen data-kenttää ohjelman käyttöönotettujen käskyjen kautta.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Kenttä space näyttää alkuperäisen mint account -datan koon tavuina. Token
Programin perus-Mint-tili on 82 tavua.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Serialisoitu vs. deserialisoitu tuloste
Molemmat esimerkit lukevat saman USDC mint accountin. Ensimmäinen vastaus jättää
data-kentän serialisoituun muotoon. Mint accountin sisällön lukemiseksi
kyseinen data on purettava omistavan ohjelman määrittelemän tilityypin mukaan.
Mint accountin tapauksessa Token Program määrittelee oikealla näkyvän
Mint-tyypin.
Ennen dekoodausta data-kenttä sisältää
serialisoidun tilitiedon.
{context: {slot: 325000000n,apiVersion: "3.1.14"},value: {data: ["AQAAAJj+huiNm+Lqi8HMpIeLKYjCQPUrhCS/tA7Rot3LXhmbbq9O2SvsHwAGAQEAAABicKqKWcWUBbRShshncubNEm6bil06OFNtN/e0FOi2Zw==","base64"],executable: false,lamports: 407438077149n,owner: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",rentEpoch: 18446744073709551615n,space: 82n}}
Kun data on dekoodattu Mint-muodossa, data-kenttä
sisältää nimetyt tilitiedot.
{address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",data: {mintAuthority: {__option: "Some",value: "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG"},supply: 8985397351591790n,decimals: 6,isInitialized: true,freezeAuthority: {__option: "Some",value: "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"}},executable: false,lamports: 407438077149n,programAddress: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",space: 82n}
Is this page helpful?