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äisten message.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 kohdassa message.accountKeys.
      • numReadonlySignedAccounts: <number> - Viimeiset numReadonlySignedAccounts 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> - Viimeiset numReadonlyUnsignedAccounts 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> - Indeksi message.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, jos maxSupportedTransactionVersion 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 pituudeltaan message.header.numRequiredSignatures eikä koskaan tyhjä. Indeksin i allekirjoitus vastaa julkista avainta indeksissä i kohdassa message.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ät
  • fee: <u64> - tälle tapahtumalle veloitettu maksu, u64-kokonaislukuna
  • preBalances: <array> - taulukko u64-tilisaldoja ennen tapahtuman käsittelyä
  • postBalances: <array> - taulukko u64-tilisaldoja tapahtuman käsittelyn jälkeen
  • innerInstructions: <array|null> - Luettelo sisäisistä ohjeista tai null jos sisäisten ohjeiden tallentaminen ei ollut käytössä tämän tapahtuman aikana
  • preTokenBalances: <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 aikana
  • postTokenBalances: <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 aikana
  • logMessages: <array|null> - taulukko merkkijonolokin viestejä tai null jos lokiviestien tallentaminen ei ollut käytössä tämän tapahtuman aikana
  • rewards: <array|null> - tapahtumatason palkkiot; taulukko JSON-objekteja, jotka sisältävät:
    • pubkey: <string> - Palkkion saaneen tilin julkinen avain base-58-koodattuna merkkijonona
    • lamports: <i64>- tilille hyvitettyjen tai veloitettujen palkkio-lamportien määrä, i64-muodossa
    • postBalance: <u64> - tilin saldo lamporteina palkkion soveltamisen jälkeen
    • rewardType: <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, jos maxSupportedTransactionVersion ei ole asetettu pyynnön parametreissa, tai jos jsonParsed -koodaus on asetettu pyynnön parametreissa.
    • writable: <array[string]> - Järjestetty luettelo base-58-koodatuista osoitteista kirjoitettaville ladatuille tileille
    • readonly: <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-avaimena
    • data: <[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, jos maxSupportedTransactionVersion 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äisin
  • instructions: <array[object]> - Järjestetty lista sisäisistä ohjelmakomennoista, jotka kutsuttiin yhden tapahtumaohjeen aikana.
    • programIdIndex: <number> - Indeksi message.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. VANHENTUNUT
    • uiAmountString: <string> - Token-määrä merkkijonona, desimaalit huomioiden.

Is this page helpful?

Sisällysluettelo

Muokkaa sivua