FA2 dari / ke serialisasi
Dalam standar FA2.0 pengirim dan penerima dikirim sebagai Bytes (vs. kirim sebagai string untuk FA1.2).
Hasil yang diharapkan: Saat mendekode alamat (string) ke representasi hash kunci publik mereka, saya akan berasumsi bahwa format P2P diikuti: https://tezos.gitlab.io/api/p2p.html#public-key-hash-21-bytes-8-bit-tag. Misalnya tz1ij8gUYbMRUXa4xX3mNvKguhaWG9GGbURn akan menjadi '00fd41f8dd065c16d8bfe0d6aa932b765f5b23f5c0' (21 Bytes)
Hasil yang terlihat: Saat memeriksa transaksi yang ada, byte memiliki panjang 22 dengan awalan '00' '0000fd41f8dd065c16d8bfe0d6aa932b765f5b23f5c0' (https://better-call.dev/carthagenet/opg/oosHQxzosTdzizkPDvaDYDjjHeRCu4uG3MnfeH6SeceDoZJLNby/contents => rawJSON)
Untuk apa byte ekstra digunakan? Haruskah saya mengharapkannya selalu '00'?
Jawaban
Dalam standar FA2.0 pengirim dan penerima dikirim sebagai Bytes (vs. kirim sebagai string untuk FA1.2).
Kedua standar token mengatakan bahwa pengirim dan penerima adalah alamat Michelson. Alamat Michelson memiliki dua representasi yang diperbolehkan, sebagai string (representasi yang dapat dibaca) dan sebagai byte (representasi yang dioptimalkan).
Untuk apa byte ekstra digunakan?
Byte tambahan digunakan untuk membedakan akun implisit dari kontrak pintar.
Haruskah saya mengharapkannya selalu '00'?
Tidak, ini hanya '00' untuk akun implisit.
Untuk penjelasan mendetail tentang skema pengkodean biner alamat Tezos, Anda dapat menggunakan perintah berikut:
$ tezos-codec describe alpha.contract binary schema