Gunakan halaman ini untuk memahami apa itu token pada rantaian ini sebelum anda mencipta, menyenaraikan atau mengindeks satu. RPL ialah piawaian token Rand, baharu pada rantaian 14. Token ialah aset natif terlindung (shielded): satu entri dalam daftar lejar, dengan baki dipegang sebagai nota biasa dalam pokok komitmen yang sama yang digunakan RAND. Ia bukan kontrak. Untuk mencipta satu langkah demi langkah, lihat Deploy an RPL token.
Sebabnya bersifat struktural. Sebuah Call hanya menulis resit, jadi kontrak gaya ERC-20 tiada tempat untuk menyimpan baki, dan jadual baki awam akan menjadikan token satu-satunya aset telus pada rantaian terlindung. RPL sebaliknya menjadikan token objek lejar kelas pertama. Rantaian 20 menambah RPL-2 (v0.6.8): sesebuah program boleh menyimpan sel keadaan awam dan peti simpanan awam, dan boleh menjadi pihak berkuasa pencetakan bagi tokennya sendiri (di bawah); baki yang dipegang oleh individu tetap berupa nota.
Token ialah entri daftar
TokenRegistry (crates/randprotocol-core/src/ledger/tokens.rs) ialah satu jadual yang dikongsi oleh setiap token, sama ada natif atau dijambatankan. Ia ialah daftar yang sama yang digunakan jambatan untuk menyelesaikan indeks sesuatu aset. Setiap entri:
| medan | peraturan |
|---|---|
id | id aset, 32 bait, beralamat kandungan |
index | u32, nilai yang dibawa oleh perkataan asset sesebuah nota; padat, ditetapkan mengikut urutan pendaftaran bermula dari 1. Indeks 0 ialah RAND dan tidak pernah didaftarkan |
name | 1 hingga 32 bait UTF-8, ruang dibenarkan, tidak boleh diubah |
symbol | 1 hingga 12 bait grafik ASCII (0x21..=0x7e, tanpa ruang kosong), tidak boleh diubah |
decimals | 0 hingga 9, tidak boleh diubah |
authority | pihak berkuasa pencetakan, di bawah |
mint_nonce | pembilang ulang main bagi pihak berkuasa Key |
total_supply | u64, aritmetik disemak; limpahan menyebabkan pencetakan ditolak. Sejak rantaian 15 ia dikekalkan di bawah 2^63 (di bawah) |
registered_at | ketinggian pendaftaran |
Perpuluhan terhenti pada 9 kerana jumlah ialah u64: pada 18 perpuluhan, sebuah u64 hanya memuatkan 18.4 token penuh, dan 9 ialah ketepatan RAND sendiri. Token yang dijambatankan sentiasa didaftarkan pada 8 perpuluhan, walau apa pun yang digunakan oleh syiling sumbernya.
Daftar ini diaktifkan oleh seksyen tokens dalam fail genesis, sebagaimana bridge dan aggregation diaktifkan oleh seksyen masing-masing. Tanpanya, setiap tindakan token ditolak sebelum sebarang semakan lain (TokenError::Disabled). Genesis rantaian 20 mempunyai seksyen tersebut dan menyenaraikan satu token, zUSD, dengan tujuh sandarannya, yang dibawa dari rantaian 14 melalui setiap pemotongan sejak itu; setiap token lain pada rantaian ini hadir melalui transaksi. (Genesis rantaian 14 tidak menyenaraikan satu pun.) Apabila get ini dihidupkan, tokens_root (akar merkle bagi daun blake3("rand-token-leaf-1", bincode(TokenInfo)) mengikut urutan indeks) dilipat ke dalam akar keadaan. Domain akar tersebut ialah rand-state-4 pada rantaian yang tiada apa-apa lain dihidupkan kemudian; akar rantaian 20 turut membawa keadaan faucet dan baris gilir bon, harga gas semasa dan akar keadaan program, cincangan di bawah rand-state-8, dan dibungkus sekali lagi oleh set validator yang dibenarkan (Consensus).
Rantaian yang mempunyai seksyen tokens juga mewajibkan setiap nota alloc genesis membawa pembukaannya (pk, time, r), dan nod mengira semula komitmen serta menolak fail yang tidak sepadan. Komitmen berada pada aset 0 melainkan pembukaan itu menamakan indeks token yang disenaraikan oleh genesis yang sama — rantaian 20 mempunyai dua nota sedemikian, 10 dan 89 zUSD pada indeks 1 — dan bagi setiap token yang disenaraikan, nota genesis mesti berjumlah sama dengan nilai permulaan sandarannya yang locked. Sebaik sahaja sesebuah nota mempunyai perkataan asset yang boleh menamakan token, komitmen genesis yang tidak dibuka akan menjadi satu-satunya cara memasukkan nota tanpa sandaran bagi sebarang aset ke dalam kolam tanpa semakan.
Id aset, indeks dan rpl1…
Sesebuah token mempunyai dua nama, dan RPC memberikan kedua-duanya.
- Id aset ialah 32 bait, beralamat kandungan seperti id program. Id token natif ialah
blake3("rand-rpl-asset", bincode(name, symbol, decimals, authority, initial, salt)), dengansaltialah 32 bait yang dipilih oleh pencipta daninitialialah keseluruhan pencetakan awal, jika ada. Id token yang dijambatankan ialahblake3("rand-rpl-asset", bincode(name, symbol, 8, salt)). Mendaftarkan id yang sudah wujud akan ditolak (TokenError::AlreadyRegistered). - Indeks ialah apa yang sebenarnya dibawa oleh sesebuah nota, kerana id 32 bait tidak muat dalam satu perkataan. Ia ialah singkatan yang hanya bermakna pada rantaian ini.
- Bentuk teks
rpl1…ialah bech32m (BIP-350) dengan bahagian boleh dibaca manusiarplke atas 32 bait id: 52 aksara data dan checksum 6 aksara, 62 aksara kesemuanya. Ia dipaparkan di sebelah id 64-hex di mana-mana token dinamakan dan diterima di mana-mana token dicari; hex kekal diterima. Penghuraian adalah ketat: checksum yang salah, awalan yang salah, muatan yang bukan tepat 32 bait, atau huruf bercampur akan ditolak, supaya kesilapan menaip tidak boleh diselesaikan kepada token yang berbeza.
Simbol tidak unik. Seperti ERC-20 dan SPL, identiti sesebuah token ialah id asetnya, bukan nama atau tikernya.
Nilai lama bagi setiap (chain, token) yang dikira oleh rand_bridgeAssetId dan dicetak oleh rand_getAssets bagi setiap baris sandaran ialah pengecam yang lebih sempit untuk format wayar jambatan, bukan id milik token itu sendiri.
Pihak berkuasa pencetakan
| authority | siapa boleh mengeluarkan unit | catatan |
|---|---|---|
None | tiada sesiapa, selepas pendaftaran | bekalan tetap: pencetakan awal diwajibkan dan itulah semua yang akan ada |
Key(PublicKey) | pemegang satu kunci Dilithium2 | mencetak semula kemudian dengan tandatangan; boleh menyerahkan kuasa kepada kunci lain atau melepaskannya |
Bridge { backings } | hanya kunci dan pelepasan jambatan | tidak pernah pencetakan langsung; wujud hanya melalui tindakan tadbir urus jambatan |
Program(ProgramId) | hanya Invoke program tersebut (RPL-2) | pada rantaian dengan seksyen program_state (rantaian 20): didaftarkan tanpa pencetakan awal, jadi bekalannya bermula pada sifar, dan dicetak atau dibakar hanya oleh peralihan yang dijamin oleh bukti program (rand token create --program <id>). Ditolak semasa pendaftaran pada rantaian tanpa seksyen tersebut |
RegisterToken yang menamakan Bridge ditolak (TokenError::AuthorityNotAllowed), begitu juga yang menamakan Program dengan pencetakan awal atau pada rantaian tanpa program_state. Pihak berkuasa Key ialah tepat satu kunci awam Dilithium2: kunci dengan panjang bait lain ditolak (TokenError::BadAuthorityKey), dan kunci ML-KEM penerima dalam pencetakan dihadkan kepada panjangnya dengan cara yang sama. Kedua-duanya ialah keadaan konsensus atau ruang blok yang dibeli pada yuran rata, maka tiada satu pun boleh sebesar yang sewenang-wenangnya.
Mencipta token
Penciptaan tidak memerlukan kebenaran. Action::RegisterToken { name, symbol, decimals, authority, initial, salt, index } menumpang pada berkas yuran RAND biasa dan membayar BUNDLE_BASE tambah registration_fee daftar. Yuran pendaftaran ialah parameter genesis yang dihadkan antara 1 RAND dan 10,000 RAND, supaya token spam sentiasa mempunyai kos. Pada rantaian 20 ia ialah 1 RAND, jadi satu pendaftaran berharga 1.001 RAND, dan rantaian 20 membakarnya, sebagaimana setiap rantaian sejak 15: proposer hanya mengekalkan asas berkas (di bawah).
index menamakan indeks daftar yang bagi tujuannya pencipta menyegel nota awal. Jika pendaftaran lain mengambil indeks itu terlebih dahulu, transaksi ditolak (TokenError::IndexMismatch) dan bukannya menyebabkan nota terkandas; pencipta membuktikan semula pada indeks seterusnya.
Nota yang dicetak dikira oleh rantaian, bukan dipilih oleh penghantar: note_commitment(recipient.pk, MINT_FROM, amount, index, time, r). Jumlah dan pk penerima adalah awam pada wayar, jadi penerima boleh membina semula nota daripada medan transaksi itu sendiri walaupun sampul yang disegel itu rosak. Deposit jambatan mempunyai pertahanan yang sama.
Mengapa id mengikat keseluruhan pencetakan awal
RegisterToken tidak ditandatangani. Pengikatan transaksi menghalang salinan yang telah dibuktikan daripada diubah, tetapi tidak menyatakan apa-apa tentang apa yang boleh dinamakan oleh salinan baharu. Jika id hanya meliputi jumlah awal, pemerhati pendaftaran yang belum selesai boleh menghantar salinan dengan penerima yang berbeza, mendaftarkannya di bawah id yang sama, dan mengambil keseluruhan bekalan token bekalan tetap dengan membuat komitmen dahulu. Oleh sebab id meliputi keseluruhan pencetakan awal (jumlah, penerima, r, time dan sampul), salinan yang dialihkan akan dicincang kepada id aset yang berbeza: token lain dengan simbol yang sama, sesuatu yang sudah dibenarkan oleh simbol yang tidak unik. Yang asal tetap mendarat pada indeks seterusnya dengan kos satu pembuktian semula.
Pemindahan ialah berkas yang sama seperti RAND
Sejak rantaian 14, setiap transaksi yang memindahkan nilai membawa tepat satu berkas, bentuk aset tersembunyi 4-masuk-4-keluar yang tetap (Transactions and actions). Slot 0–1 membawa aset peribadi, RAND atau mana-mana token RPL, dan litar tidak pernah mengetahui yang mana. Slot 2–3 sentiasa membawa RAND. Pemindahan mana-mana aset ialah Action::None, tindakan yang digunakan oleh pembayaran RAND biasa. Tiada tindakan pemindahan token dan tiada medan awam yang menamakan token.
Apa yang dilihat pemerhati pada pemindahan token tepat sama dengan apa yang diterbitkan oleh pembayaran RAND: satu anchor, empat nullifier, empat komitmen, fee RAND, burn_a = burn_r = burn_asset = 0, satu time, empat teks sifer sampul dan bukti bundle. Sejak chain 17 (pengesahan terpisah), setiap bundle turut membawa satu auth_commit dan satu bukti pengesahan kedua yang lebih kecil, sekali lagi sama untuk setiap aset. Pada chain 20, setiap sampul tepat 1,860 bait dan mempunyai ruang untuk memo yang disulitkan (rand send --memo), sama ada memo dihantar atau tidak. Pemerhati tidak melihat penghantar, penerima, jumlah, aset yang dipindahkan, slot yang merupakan dummy, mahupun baki pulangan.
Dompet membelanjakan sehingga dua nota token itu dalam slot 0–1 dan sehingga dua nota RAND dalam slot 2–3 untuk yuran. Yuran sentiasa dalam RAND, maka pemegang yang mempunyai token tetapi tiada RAND akan ditolak sebelum pembuktian. Kosnya sama dengan kos pembayaran RAND (Yuran). Pada chain 20, itu bermaksud dua bukti STARK yang dijana pada mesin penghantar: pengesahan perbelanjaan (tier 10, kira-kira 7 s, kira-kira 1.37 MB) dan bundle (tier 14, kira-kira 100 s, kira-kira 1.5 MB), kira-kira 2.85 MB pada rangkaian secara keseluruhan. Setiap satu berada di bawah had 4 MiB chain bagi satu bukti. Sebelum chain 17, pemindahan hanya membawa bukti bundle, kira-kira 1.42 MB seperti yang diukur ketika itu.
Pencetakan dan pihak berkuasa
TokenMint { asset, amount, recipient, r, time, envelope, nonce, signature } mencetak lebih banyak token yang dibenarkan oleh Key. SetAuthority { asset, new, nonce, signature } menyerahkan kuasa kepada kunci lain, atau melepaskannya apabila new tiada; selepas dilepaskan, tiada kunci yang dapat mencetak token itu lagi buat selama-lamanya. Kedua-dua tindakan ini ditolak pada token yang kuasanya bukan Key (TokenError::NotKeyAuthority).
Pihak berkuasa menandatangani blake3("rand-rpl-mint-1" | "rand-rpl-authority-1", chain_id ‖ asset_id ‖ nonce ‖ body). nonce mesti sama dengan mint_nonce token itu, yang kemudian bertambah, supaya pencetakan bertandatangan tidak boleh dimainkan semula pada chain ini atau dibawa ke chain lain. body bagi pencetakan merangkumi digest sampul: komitmen sahaja tidak meliputinya, dan tanpa digest itu pihak ketiga boleh membungkus semula pencetakan yang disebarkan dengan sampul yang rosak lalu menghabiskan nonce.
Kedua-dua tindakan menumpang pada bundle yuran RAND yang membayar BUNDLE_BASE. Dompet yang membayar yuran dan kunci yang membenarkan pencetakan adalah berasingan dan boleh dimiliki oleh orang yang berbeza.
Pembakaran
Action::TokenBurn { asset, amount } menumpang pada bundle tunggal yang sama: burn_asset bundle mesti sama dengan asset, burn_a mesti sama dengan amount, dan burn_r ialah 0. Token keluar dari pool melalui slot aset dan yuran RAND melalui slot 2–3 bagi bukti yang sama. total_supply berkurang tepat sebanyak amount. Token berpihak kuasa Bridge ditolak di sini (TokenError::BridgedToken); token itu keluar melalui pembakaran bridge.
Yuran
Setiap tindakan RPL dibayar dalam RAND.
| tindakan | had bawah yuran | pada chain 20 |
|---|---|---|
pemindahan mana-mana aset (Action::None) | BUNDLE_BASE | 0.001 RAND |
RegisterToken | BUNDLE_BASE + registration_fee | 1.001 RAND, di mana 1 RAND dibakar |
TokenMint | BUNDLE_BASE | 0.001 RAND |
SetAuthority | BUNDLE_BASE | 0.001 RAND |
TokenBurn | BUNDLE_BASE | 0.001 RAND |
Genesis chain 20 mempunyai bahagian gas, dan bahagian itu hanya meletakkan harga bagi panggilan dan invoke program. Had bawah ini ialah kadar tetap: tiada tindakan RPL yang dibayar mengikut gas atau mengikut bait.
Apa yang awam dan apa yang tersembunyi
| awam | tersembunyi | |
|---|---|---|
| pendaftaran | nama, simbol, perpuluhan, pihak berkuasa, id aset, jumlah dan penerima pencetakan awal | tiada; inilah cara bekalan token boleh diaudit sejak blok pertamanya |
| pencetakan seterusnya | jumlah, alamat terlindung penerima, medan nota baharu | siapa yang membayar yuran RAND |
| pemindahan | tiada apa-apa yang menunjukkan bahawa token telah bergerak | penghantar, penerima, jumlah, aset yang mana |
| pembakaran | aset dan jumlah | siapa yang memegang nota yang dibakar |
| perubahan pihak berkuasa | kunci baharu, atau bahawa kuasa telah dilepaskan | — |
Oleh itu total_supply sentiasa boleh diaudit: ia ialah jumlah yang ditambah oleh pendaftaran dan setiap pencetakan, ditolak setiap pembakaran. Pemindahan antara pemegang tidak mendedahkan apa-apa, termasuk bahawa token, dan bukan RAND, yang bertukar tangan.
Pendedahan berfungsi seperti pada RAND. Plaintext nota membawa aset, jadi kunci per transaksi (rand tx-key <hash>) atau kunci tontonan membuka nota token sebagaimana ia membuka nota RAND, dan rand_checkTransaction serta rand_getViewingNotes memulangkan asset dalam nota yang didedahkan. Dengan kunci sedemikian, randscan menyelesaikan indeks terhadap registri dan memaparkan pemindahan itu sebagai token yang bernama; halaman awam bagi transaksi yang sama tidak menunjukkan apa-apa daripadanya.
Token yang dijambatankan
Token berpihak kuasa Bridge tetap token RPL: entri registri yang sama, pemindahan tersembunyi yang sama, mekanik pembakaran yang sama. Bekalannya hanya bergerak melalui kunci pada chain sumber (BridgeAttest) atau pelepasan (BridgeBurn). Satu token yang dijambatankan boleh mempunyai banyak sandaran, masing-masing pasangan (chain, token) dengan perpuluhan sumbernya sendiri, jumlah yang dikunci dan had pencetakan, dan total_supply sentiasa sama dengan jumlah yang dikunci oleh sandarannya. Token yang dijambatankan didaftarkan, dan sandaran ditambah, hanya di bawah kuorum penjaga pasca-kuantum bridge.
Pada chain 20, token pertama dalam registri ialah zUSD (“Shielded USD”), indeks 1, 8 perpuluhan, disenaraikan dalam fail genesis dengan tujuh sandaran (USDT dan USDC pada Ethereum, Binance Smart Chain dan Solana, serta USDT pada Tron). Ia mengekalkan id aset yang dimilikinya pada chain 14, di mana ia didaftarkan melalui transaksi pada ketinggian 256: chain 15 hingga 20 masing-masing menyenaraikannya dalam genesis dengan nama, simbol dan salt yang sama. Ia memulakan chain 20 dengan 99 zUSD dalam dua nota genesis (10 dan 89), disandarkan oleh 22 USDT yang dikunci pada Ethereum, 22 pada Binance Smart Chain, 30 pada Tron dan 25 pada Solana, dibawa daripada keadaan bridge chain 19. Chain 19 bermula dengan 10 zUSD, disandarkan oleh 10 USDT pada Solana; chain 18 dengan 9 USDT dikunci pada Tron dan 1 pada Solana. Jumlah bekalannya sama dengan apa yang dikunci oleh sandarannya dan bergerak dengan setiap deposit dan penebusan. Id-nya ialah rpl1xtj6k2x8strx8c2d5fjs50ltztck5ykms4ve7nmzmstf6fhn0v0spelqtx. Bridge menerangkan sandaran, unit pelepasan, had pencetakan, jeda dan tandatangan bersama.
zUSD ialah sebuah bakul, bukan tujuh tuntutan yang berasingan. Sandarannya dikumpulkan pada nilai muka, maka pemegang menanggung risiko setiap sandaran yang disenaraikan, bukan risiko syiling yang didepositkannya: sandaran yang telah hilang tambatannya boleh didepositkan pada nilai par dan zUSD dibakar ke arah sandaran yang sihat, sehingga sandaran yang sihat itu kehabisan. Apa yang menghadkan kerugian ialah tetingkap pencetakan bergulir (pada chain 20, 4,000 zUSD merentasi semua sandaran bagi setiap 24 jam, di samping 100,000 bagi setiap sandaran) dan jagaan yang benar-benar dikunci. Tetingkap itu mengehadkan kadar dan memberi masa untuk menjeda pencetakan. Ia tidak menghadkan jumlah keseluruhan. Sesuatu sandaran disenaraikan hanya di bawah kuorum penjaga pasca-kuantum, dan tidak ketika pencetakan dijeda.
Yuran bridge, dalam zUSD (chain 20). Genesis chain 20 menetapkan bridge.fees: 10 bps pada deposit dan 10 bps pada pembakaran, masing-masing dibundarkan ke bawah kepada unit pelepasan penuh bagi sandaran (100 unit asas bagi USDT 6 perpuluhan), dibayar sebagai nota zUSD kepada alamat perbendaharaan yang dinamakan oleh genesis (v0.6.8, fullnode docs/bridge.md §25). Deposit sebanyak g menambah dua nota: g − fee milik pendeposit dan fee milik perbendaharaan; 1 USDT masuk menjadi 0.999 zUSD kepada pendeposit. Pembakaran sebanyak amount mengekalkan fee sebagai nota perbendaharaan dan melepaskan amount − fee pada chain sumber; penjaga menandatangani jumlah pelepasan itu, dan rand_getBridgeBurn menyediakan amount, release_amount dan fee. Nota yuran diterbitkan dan disandarkan, maka total_supply masih sama dengan jumlah locked sandaran: deposit menggerakkan kedua-duanya sebanyak g, pembakaran mengurangkan kedua-duanya sebanyak amount − fee. Nota yuran tidak membawa sampul. Setiap katanya awam (jumlah daripada transaksi dan kadar genesis, aset dan time, penyilauan yang diterbitkan daripada digest pengesahan atau id transaksi pembakaran, pemilik daripada genesis), maka dompet perbendaharaan membina semulanya daripada medan awam (Nota). BRIDGE_BURN_FEE, iaitu 0.01 RAND yang dibayar oleh pembakaran kepada pencadang, tidak berubah. Chain 14 hingga 19 tidak mempunyai yuran bridge pada Rand.
Registri sejak chain 15
Sejak chain 15, genesis menghidupkan tiga peraturan registri yang tidak ada pada chain 14, dan genesis chain 20 menetapkan tiga nilai yang sama. Setiap satu diikat pada hash genesis dan akar token.
| medan genesis | chain 20 | kesan |
|---|---|---|
tokens.max_tokens | 4096 | pendaftaran tidak pernah menyimpan lebih daripada ini; apabila had dicapai, RegisterToken dan RegisterBridgedToken ditolak dengan RegistryFull. ListBacking tidak menambah token dan tidak terjejas |
tokens.burn_registration_fee | true | registration_fee bagi sesuatu pendaftaran dimusnahkan dan bukan dibayar kepada proposer, yang menyimpan fee − registration_fee. rand_getSupply mengiranya dalam burned dan dalam registration_fees_burned (Bekalan) |
tokens.bound_note_value | true | TokenMint, mint awal atau deposit jambatan bernilai 2^63 atau lebih ditolak dengan AmountTooLarge, dan yang akan menaikkan total_supply sesuatu token kepada 2^63 atau melebihinya ditolak dengan SupplyTooLarge |
Had nilai nota wujud kerana litar bundle menyemak julat setiap jumlah kepada 63 bit: nota bernilai 2^63 atau lebih boleh dikomit tetapi tidak dapat dibelanjakan, sementara masih dikira dalam bekalan token. Setiap nod juga menolak jumlah sedemikian semasa kemasukan pada setiap chain, apa sahaja yang dinyatakan oleh genesisnya.
RPC dan CLI
| kaedah | param | hasil |
|---|---|---|
rand_getTokens | [from_index, limit], pilihan, lalai 0 dan 1000, dihadkan kepada 1000 | { enabled, registration_fee, next_index, max_tokens, burn_registration_fee, bound_note_value, tokens }, menaik mengikut indeks, dibaca mengikut julat dari from_index |
rand_getToken | [token]: indeks, id 64-hex atau rpl1… | satu baris token, atau null; id yang salah bentuk ialah -32602 |
rand_getTokenSupply | [token], bentuk yang sama | { total_supply, backings }; backings kosong bagi token natif |
Setiap jumlah dalam hasil ini (total_supply, registration_fee, locked sesuatu backing, mint_cap_per_day dan minted_today) ialah rentetan perpuluhan, kerana nombor JSON tidak tepat melebihi 2⁵³. index, next_index, mint_day dan max_tokens ialah integer biasa (max_tokens ialah null pada chain tanpa had); burn_registration_fee dan bound_note_value ialah boolean. authority sesuatu baris ialah {"kind":"none"}, {"kind":"key","key","address"}, {"kind":"bridge","backings":[…]} atau {"kind":"program","program"}. Butiran penuh terdapat dalam JSON-RPC.
Privasi. rand_getTokens mempunyai kos yang sama tidak kira token mana yang difikirkan oleh pemanggil. rand_getToken dan rand_getTokenSupply memberitahu nod token mana yang diambil berat oleh pemanggil: sesuai untuk penjelajah, tetapi tidak sesuai untuk dompet yang bakal menghantar. Oleh itu dompet menyelesaikan setiap --asset daripada keseluruhan senarai, dan indeks berangka tidak pernah sampai kepada nod sama sekali.
| arahan | fungsi |
|---|---|
rand token create | mendaftarkan token pada indeks seterusnya dalam pendaftaran, bekalan tetap atau diberi kuasa melalui Key |
rand token mint | mint lebih banyak token yang diberi kuasa melalui Key, ditandatangani oleh kunci autoritinya |
rand token set-authority | menyerahkan autoriti kepada kunci lain (--new-key) atau melepaskannya (--renounce) |
rand token burn <ASSET> <AMOUNT> | memusnahkan unit yang dipegang dompet ini |
rand token info <ASSET> | baris penuh satu token |
rand token list | satu halaman pendaftaran |
rand send <TO> <AMOUNT> --asset <INDEX|rpl1…|hex> | menghantar token dalam satu bundle; tanpa --asset ia menghantar RAND. Ia mencetak cap jari penerima dan jumlah, lalu bertanya send? [y/N] sebelum membuat bukti (--yes melangkau soalan itu) |
rand asset-balance [INDEX] | apa yang dipegang dompet ini bagi satu aset, atau satu baris bagi setiap aset |
rand token register-bridged, rand token list-backing | dua tindakan penyenaraian jambatan; setiap satu memerlukan fail kuorum penjaga PQ |
Sejak v0.5.10, jumlah bagi rand send --asset, rand token mint dan rand token burn adalah dalam unit paparan token, dibaca pada decimals baris pendaftarannya sendiri: 1.5 bagi token 6 perpuluhan ialah 1,500,000 unit terkecilnya, dan digit pecahan yang melebihi bilangan yang dimiliki token ditolak. Pengesahan send mencetak kedua-duanya (1.500000 USDX (1500000 units)). --fixed-supply dan --initial bagi rand token create masih menerima unit terkecil yang utuh, begitu juga rand bridge-burn, dan rand asset-balance mencetak unit terkecil. Pada chain, jumlah sentiasa integer unit terkecil. Bendera dan nilai lalai terdapat dalam Baris arahan.
Perbezaan daripada ERC-20 dan SPL
| ERC-20 / SPL | RPL | |
|---|---|---|
| baki | pemetaan atau akaun awam | nota shielded; hanya pemegang kunci yang dapat melihatnya |
| acara pemindahan | awam, dengan penghantar, penerima dan jumlah | tiada; pemindahan tidak menerbitkan apa-apa yang membezakannya |
| kod bagi setiap token | boleh: cukai, rebase, hook, bekukan | tiada; setiap token mengikut peraturan tetap yang sama |
| pegangan oleh program | ya | pada chain 20 (RPL-2): peti awam sesebuah program, diisi oleh medan burn sesuatu invoke dan dibayar keluar sebagai nota yang dikira oleh chain |
| jumlah | sehingga 256-bit (ERC-20), 64-bit (SPL) | u64, paling banyak 9 perpuluhan |
| penerimaan | ERC-20 tidak memerlukan persediaan; SPL memerlukan akaun token berkaitan | tiada persediaan; alamat shielded menerima apa sahaja |
| kos pemindahan | pelaksanaan EVM atau SVM biasa | dibuktikan oleh penghantar: bundle aset tersembunyi yang dikongsi, dan sejak chain 17 satu bukti kebenaran kecil di sampingnya |
| kelulusan | approve / transferFrom | belum lagi |
| metadata | boleh diubah dalam sesetengah pelaksanaan | pada chain dan tidak boleh diubah |
| bekukan, senarai hitam | boleh pada sesetengah token | di luar skop mengikut reka bentuk |
Had yang diketahui
- Tiada elaun.
approvedantransferFromdireka dalam spesifikasi RPL sebagai akaun elaun yang diperuntukkan dan belum dibina. - Pegangan sesebuah program adalah awam. Pada chain 20 sesebuah program boleh memegang token dalam petinya dan mint tokennya sendiri (RPL-2), tetapi baki peti adalah awam, seperti bekalan sesuatu token; hanya nota yang peribadi. Chain sebelum 20 langsung tiada keadaan program.
- Yuran hanya dalam RAND. Sesuatu token tidak boleh membayar yuran sendiri; dompet yang hanya memegang token tidak boleh bergerak.
- Jumlah
u64dan paling banyak 9 perpuluhan. Syiling sumber 18 perpuluhan diwakili pada ketepatan yang lebih rendah; jambatan menyelesaikannya dengan 8 perpuluhan dan satu unit pelepasan bagi setiap backing. - Setiap pemindahan dibuktikan. Kira-kira 100 s dan beberapa GB memori pada mesin penghantar; tiada laluan yang lebih murah bagi token berbanding RAND.
- Tiada bekukan, senarai hitam atau jeda pada token natif, secara keputusan. Jeda mint jambatan hanya terpakai pada mint yang dibridge.
- Carian bagi setiap token membocorkan minat.
rand_getToken,rand_getTokenSupplydan/tokens/:idpenjelajah memberitahu pelayan token mana yang ditanya.