Yleiset JSON-tietorakenteet Solana RPC -menetelmille
Erilaiset Solana RPC -menetelmät palauttavat monimutkaisempia vastauksia jäsenneltyinä JSON-objekteina, jotka sisältävät tietyt avain-arvoparit.
Yleisimmät näistä JSON-tietorakenteista sisältävät:
Transaktiot
Transaktiot ovat melko erilaisia verrattuna muihin lohkoketjuihin. Tutustu Transaktion anatomiaan oppiaksesi lisää Solanan transaktioista.
JSON
Transaktion JSON-rakenne on määritelty seuraavasti:
message: <object>
- Määrittelee transaktion sisällön.accountKeys: <array[string]>
- Luettelo base-58-koodatuista julkisista avaimista, joita transaktio käyttää, mukaan lukien ohjeet ja allekirjoitukset. Ensimmäistenmessage.header.numRequiredSignatures
julkisen avaimen on allekirjoitettava transaktio.header: <object>
- Määrittelee transaktion vaatimat tilitypit ja allekirjoitukset.numRequiredSignatures: <number>
- Allekirjoitusten kokonaismäärä, joka vaaditaan transaktion vahvistamiseksi. Allekirjoitusten on vastattava ensimmäisiänumRequiredSignatures
avaimia kohdassamessage.accountKeys
.numReadonlySignedAccounts: <number>
- ViimeisetnumReadonlySignedAccounts
allekirjoitetuista avaimista ovat vain luku -tilejä. Ohjelmat voivat käsitellä useita transaktioita, jotka lataavat vain luku -tilejä yhden PoH-merkinnän sisällä, mutta eivät saa hyvittää tai veloittaa lamporteja tai muokata tilin tietoja. Samaa luku-kirjoitus-tiliä koskevat transaktiot arvioidaan peräkkäin.numReadonlyUnsignedAccounts: <number>
- ViimeisetnumReadonlyUnsignedAccounts
allekirjoittamattomista avaimista ovat vain luku -tilejä.
recentBlockhash: <string>
- Base-58-koodattu tiiviste viimeaikaisesta lohkosta pääkirjassa, jota käytetään estämään transaktion kahdentuminen ja antamaan transaktioille elinkaari.instructions: <array[object]>
- Luettelo ohjelmakäskyistä, jotka suoritetaan järjestyksessä ja toteutetaan yhtenä atomisena transaktiona, jos kaikki onnistuvat.programIdIndex: <number>
- Indeksimessage.accountKeys
-taulukkoon, joka osoittaa ohjelmatilin, joka suorittaa tämän ohjeen.accounts: <array[number]>
- Luettelo järjestetyistä indekseistämessage.accountKeys
-taulukkoon, joka osoittaa, mitkä tilit välitetään ohjelmalle.data: <string>
- Ohjelman syöttötiedot koodattuna base-58-merkkijonona.
addressTableLookups: <array[object]|undefined>
- Luettelo osoitetaulukon hakuja, joita transaktio käyttää ladatakseen dynaamisesti osoitteita lohkoketjun osoitehakutaulukoista. Määrittelemätön, josmaxSupportedTransactionVersion
ei ole asetettu.accountKey: <string>
- Base-58-koodattu julkinen avain osoitehakutaulun tilille.writableIndexes: <array[number]>
- Luettelo indekseistä, joita käytetään kirjoitettavien tilien osoitteiden lataamiseen hakutaulusta.readonlyIndexes: <array[number]>
- Luettelo indekseistä, joita käytetään vain luku -tilien osoitteiden lataamiseen hakutaulusta.
signatures: <array[string]>
- Luettelo base-58-koodatuista allekirjoituksista, jotka on lisätty transaktioon. Luettelo on aina pituudeltaanmessage.header.numRequiredSignatures
eikä koskaan tyhjä. Indeksini
allekirjoitus vastaa julkista avainta indeksissäi
kohdassamessage.accountKeys
. Ensimmäistä käytetään transaktion tunnuksena.
JSON jäsennetty
Tapahtuman jäsennetty JSON-rakenne noudattaa samankaltaista rakennetta kuin tavallinen JSON-muoto, mutta sisältää lisäksi tilin ja ohjeiden tietojen jäsennyksen:
message: <object>
- Määrittelee tapahtuman sisällön.accountKeys: <array[object]>
- Luettelo tapahtuman käyttämistä tilitiedoista.pubkey: <string>
- Tilin base-58-koodattu julkinen avain.signer: <boolean>
- Ilmaisee, onko tili vaadittu tapahtuman allekirjoittaja.writable: <boolean>
- Ilmaisee, onko tili kirjoitettavissa.source: <string>
- Tilin lähde (tapahtuma tai hakutaulukko).
recentBlockhash: <string>
- Base-58-koodattu tiiviste äskettäisestä lohkosta kirjanpidossa, jota käytetään estämään tapahtumien kahdentuminen ja määrittämään tapahtumien elinaika.instructions: <array[object]>
- Luettelo jäsennetyistä ohjelmakomennoista.program: <string>
- Kutsuttavan ohjelman nimi.programId: <string>
- Ohjelman base-58-koodattu julkinen avain.stackHeight: <number|null>
- Ohjeen pinokorkeus.parsed: <object>
- Ohjelmakohtaiset jäsennetyt tiedot.type: <string>
- Ohjeen tyyppi (esim. "transfer").info: <object>
- Ohjelma- ja ohjetyyppikohtaiset jäsennetyt ohjetiedot.
signatures: <array[string]>
- Luettelo tapahtumaan sovelletuista base-58-koodatuista allekirjoituksista.
Tapahtuman tilan metatiedot
err: <object|null>
- Virhe jos tapahtuma epäonnistui, null jos tapahtuma onnistui. TransactionError-määritelmätfee: <u64>
- tälle tapahtumalle veloitettu maksu, u64-kokonaislukunapreBalances: <array>
- taulukko u64-tilisaldoja ennen tapahtuman käsittelyäpostBalances: <array>
- taulukko u64-tilisaldoja tapahtuman käsittelyn jälkeeninnerInstructions: <array|null>
- Luettelo sisäisistä ohjeista tainull
jos sisäisten ohjeiden tallentaminen ei ollut käytössä tämän tapahtuman aikanapreTokenBalances: <array|undefined>
- Luettelo token-saldoista ennen tapahtuman käsittelyä tai jätetty pois, jos token-saldon tallentaminen ei ollut vielä käytössä tämän tapahtuman aikanapostTokenBalances: <array|undefined>
- Luettelo token-saldoista tapahtuman käsittelyn jälkeen tai jätetty pois, jos token-saldon tallentaminen ei ollut vielä käytössä tämän tapahtuman aikanalogMessages: <array|null>
- taulukko merkkijonolokin viestejä tainull
jos lokiviestien tallentaminen ei ollut käytössä tämän tapahtuman aikanarewards: <array|null>
- tapahtumatason palkkiot; taulukko JSON-objekteja, jotka sisältävät:pubkey: <string>
- Palkkion saaneen tilin julkinen avain base-58-koodattuna merkkijononalamports: <i64>
- tilille hyvitettyjen tai veloitettujen palkkio-lamportien määrä, i64-muodossapostBalance: <u64>
- tilin saldo lamporteina palkkion soveltamisen jälkeenrewardType: <string|undefined>
- palkkion tyyppi: "fee", "rent", "voting", "staking"commission: <u8|undefined>
- äänestystilin provisio palkkion hyvityshetkellä, näkyy vain äänestys- ja panostuspalkkioissa
- VANHENTUNUT:
status: <object>
- Tapahtuman tila"Ok": <null>
- Tapahtuma onnistui"Err": <ERR>
- Tapahtuma epäonnistui TransactionError-virheellä
loadedAddresses: <object|undefined>
- Osoitehakutaulukoista ladatut tapahtumaosoitteet. Määrittelemätön, josmaxSupportedTransactionVersion
ei ole asetettu pyynnön parametreissa, tai josjsonParsed
-koodaus on asetettu pyynnön parametreissa.writable: <array[string]>
- Järjestetty luettelo base-58-koodatuista osoitteista kirjoitettaville ladatuille tileillereadonly: <array[string]>
- Järjestetty luettelo base-58-koodatuista osoitteista vain luku -ladatuille tileille
returnData: <object|undefined>
- viimeisin tapahtuman ohjeen tuottama paluutieto, jossa on seuraavat kentät:programId: <string>
- ohjelma, joka tuotti paluutiedon, base-58-koodattuna Pubkey-avaimenadata: <[string, encoding]>
- itse paluutieto base-64-koodattuna binääridatana
computeUnitsConsumed: <u64|undefined>
- tapahtuman kuluttamien laskentayksiköiden määräversion: <"legacy"|number|undefined>
- Tapahtuman versio. Määrittelemätön, josmaxSupportedTransactionVersion
ei ole asetettu pyynnön parametreissa.signatures: <array>
- näkyy, jos tapahtuman tiedoille on pyydetty "signatures"; taulukko allekirjoitusmerkkijonoja, jotka vastaavat tapahtumien järjestystä lohkossa
Sisäiset ohjeet
Solanan ajoympäristö tallentaa ohjelmien väliset ohjeet, jotka kutsutaan tapahtumien käsittelyn aikana, ja tekee nämä saataville lisätäkseen läpinäkyvyyttä siitä, mitä lohkoketjussa suoritettiin kunkin tapahtumaohjeen aikana. Kutsutut ohjeet ryhmitellään alkuperäisen tapahtumaohjeen mukaan ja ne listataan käsittelyjärjestyksessä.
Sisäisten ohjeiden JSON-rakenne on määritelty objektilistana seuraavassa rakenteessa:
index: number
- Sen tapahtumaohjeen indeksi, josta sisäinen ohje/ohjeet ovat peräisininstructions: <array[object]>
- Järjestetty lista sisäisistä ohjelmakomennoista, jotka kutsuttiin yhden tapahtumaohjeen aikana.programIdIndex: <number>
- Indeksimessage.accountKeys
-taulukossa, joka osoittaa ohjelman tilin, joka suorittaa tämän ohjeen.accounts: <array[number]>
- Lista järjestetyistä indekseistämessage.accountKeys
-taulukossa, jotka osoittavat mitkä tilit välitetään ohjelmalle.data: <string>
- Ohjelman syöttödata koodattuna base-58-merkkijonona.
Token-saldot
Token-saldojen JSON-rakenne on määritelty objektilistana seuraavassa rakenteessa:
accountIndex: <number>
- Sen tilin indeksi, jonka token-saldo ilmoitetaan.mint: <string>
- Tokenin mint-tilin pubkey.owner: <string|undefined>
- Token-saldon omistajan pubkey.programId: <string|undefined>
- Token Program -ohjelman pubkey, joka omistaa tilin.uiTokenAmount: <object>
-amount: <string>
- Tokenien raakamäärä merkkijonona, desimaaleja huomioimatta.decimals: <number>
- Tokenin mint-tilille määritettyjen desimaalien määrä.uiAmount: <number|null>
- Token-määrä liukulukuna, desimaalit huomioiden. VANHENTUNUTuiAmountString: <string>
- Token-määrä merkkijonona, desimaalit huomioiden.
Is this page helpful?