Tokenit ovat digitaalisia varoja, jotka edustavat omistusta eri omaisuusluokkiin. Tokenisaatio mahdollistaa omistusoikeuksien digitalisoinnin. Solanan tokeneita kutsutaan SPL-tokeneiksi (Solana Program Library).
Tämä osio käsittelee peruskäsitteitä siitä, miten tokenit esitetään Solanassa. Katso koodiesimerkkejä osiosta SPL Token Basics.
Keskeiset kohdat
-
Token Programs sisältää kaiken logiikan tokenien kanssa vuorovaikuttamiseen verkossa (sekä vaihdettavat että ei-vaihdettavat).
-
Mint account edustaa tiettyä tokenia ja tallentaa globaalit metatiedot tokenista, kuten kokonaistarjonnan ja mint authorityn (osoite, jolla on oikeus luoda uusia tokenin yksiköitä).
-
Token account seuraa yksittäistä tokenien omistusta tietylle mint accountille tietylle omistajalle.
-
Associated token account on token account, joka on luotu osoitteella, joka johdetaan omistajan ja mint accountin osoitteista.
Token Programit
Solana-ekosysteemissä on kaksi pääasiallista Token Programia. Molempien lähdekoodit alla.
Token Program (alkuperäinen)
- Perustokenitoiminnallisuus (mint, transfer jne.)
- Muuttumaton ja laajalti käytetty
Token Extension Program (Token 2022)
- Sisältää kaikki alkuperäisen Token Programin ominaisuudet
- Lisää ominaisuuksia "laajennusten" kautta
Token Programs sisältää kaiken logiikan tokenien kanssa vuorovaikuttamiseen verkossa (sekä vaihdettavat että ei-vaihdettavat). Kaikki Solanan tokenit ovat käytännössä data-tilejä, jotka omistaa Token Program.
Token Program
Mint account
Solanan tokenit tunnistetaan yksilöllisesti mint accountin osoitteella, jonka Token Program omistaa. Tämä tili toimii globaalina laskurina tietylle tokenille ja tallentaa tietoja kuten:
- Supply: Tokenin kokonaistarjonta
- Decimals: Tokenin desimaalitarkkuus
- Mint authority: Tili, jolla on valtuutus luoda uusia tokenin yksiköitä, kasvattaen tarjontaa
- Freeze authority: Tili, jolla on valtuutus jäädyttää tokeneita token accountissa, estäen niiden siirtämisen tai polttamisen
Mint-auktoriteetti määritetään, kun mint alustetaan. Se valtuuttaa tulevat lyönnit, mutta sen ei tarvitse olla tili, joka loi tai maksoi mint account -tilistä.
Mint Account
Jokaiseen mint accountiin tallennetut täydelliset tiedot sisältävät seuraavat:
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>,}
Viitteeksi, tässä on Solana Explorer -linkki USDC mint accountiin.
Token Account
Token Program luo token accounteja seuratakseen jokaisen tokenin yksikön yksittäistä omistajuutta. Token account tallentaa tietoja kuten:
- Mint: Token, jonka yksiköitä token account sisältää
- Owner: Tili, jolla on valtuutus siirtää tokeneita token accountista
- Amount: Tokenien määrä, jonka token account tällä hetkellä sisältää
Token Account
Jokaiseen token accountiin tallennetut täydelliset tiedot sisältävät seuraavat:
pub struct Account {/// The mint associated with this accountpub mint: Pubkey,/// The owner of this account.pub owner: Pubkey,/// The amount of tokens this account holds.pub amount: u64,/// If `delegate` is `Some` then `delegated_amount` represents/// the amount authorized by the delegatepub delegate: COption<Pubkey>,/// The account's statepub state: AccountState,/// If is_native.is_some, this is a native token, and the value logs the/// rent-exempt reserve. An Account is required to be rent-exempt, so/// the value is used by the Processor to ensure that wrapped SOL/// accounts do not drop below this threshold.pub is_native: COption<u64>,/// The amount delegatedpub delegated_amount: u64,/// Optional authority to close the account.pub close_authority: COption<Pubkey>,}
Lompakko tarvitsee token accountin jokaiselle tokenille (mint), jota se haluaa säilyttää, ja lompakon osoite asetetaan token accountin omistajaksi. Jokainen lompakko voi omistaa useita token accounteja samalle tokenille (mint), mutta token accountilla voi olla vain yksi omistaja ja se voi sisältää vain yhden tokenin (mint) yksiköitä.
Tilien suhteet
Huomaa, että jokaisen token account -tilin data sisältää owner-kentän, joka määrittää, kenellä on
valta token account -tiliin. Tämä eroaa ohjelman omistajasta,
joka on määritelty perustason
Account-tyypissä ja joka on
Token Program kaikille token account -tileille.
Associated Token Account
Associated token accountit yksinkertaistavat token accountin osoitteen löytämistä tietylle mintille ja omistajalle. Ajattele associated token accountia tietyn mintin ja omistajan "oletusarvoisena" token accountina.
Associated token account luodaan osoitteella, joka johdetaan omistajan osoitteesta ja mint accountin osoitteesta. On tärkeää ymmärtää, että associated token account on vain token account, jolla on tietty osoite.
Tämä esittelee keskeisen käsitteen Solana-kehityksessä: Program Derived Address (PDA). PDA johtaa osoitteen deterministisesti käyttäen ennalta määritettyjä syötteitä, mikä helpottaa accountin osoitteen löytämistä.
Associated Token Account
Huomaa, että jokainen lompakko tarvitsee oman token accountinsa pitääkseen hallussaan tokeneita samasta mintistä.
Accounts Relationship Expanded
Is this page helpful?