FA2 từ / đến tuần tự hóa
Trong tiêu chuẩn FA2.0, người gửi và người nhận được gửi dưới dạng byte (so với gửi dưới dạng chuỗi đối với FA1.2).
Kết quả mong đợi: Khi giải mã các địa chỉ (chuỗi) thành biểu diễn băm khóa công khai của chúng, tôi sẽ giả định rằng định dạng P2P được tuân theo: https://tezos.gitlab.io/api/p2p.html#public-key-hash-21-bytes-8-bit-tag. Ví dụ: tz1ij8gUYbMRUXa4xX3mNvKguhaWG9GGbURn sẽ là '00fd41f8dd065c16d8bfe0d6aa932b765f5b23f5c0' (21 Byte)
Kết quả đã thấy: Khi kiểm tra một giao dịch hiện có, các byte có độ dài 22 với tiền tố '00' '0000fd41f8dd065c16d8bfe0d6aa932b765f5b23f5c0' (https://better-call.dev/carthagenet/opg/oosHQxzosTdzizkPDvaDYDjjHeRCu4uG3MnfeH6SeceDoZJLNby/contents => rawJSON)
Byte phụ được sử dụng để làm gì? Tôi có nên mong đợi nó luôn là '00' không?
Trả lời
Trong tiêu chuẩn FA2.0, người gửi và người nhận được gửi dưới dạng byte (so với gửi dưới dạng chuỗi đối với FA1.2).
Cả hai tiêu chuẩn mã thông báo đều nói rằng người gửi và người nhận là địa chỉ Michelson. Địa chỉ Michelson có hai cách biểu diễn được phép, dưới dạng chuỗi (biểu diễn có thể đọc được) và dưới dạng byte (biểu diễn được tối ưu hóa).
Byte phụ được sử dụng để làm gì?
Byte phụ được sử dụng để phân biệt tài khoản ngầm với hợp đồng thông minh.
Tôi có nên mong đợi nó luôn là '00' không?
Không, nó chỉ là '00' cho các tài khoản ngầm.
Để có mô tả chi tiết về lược đồ mã hóa nhị phân của địa chỉ Tezos, bạn có thể sử dụng lệnh sau:
$ tezos-codec describe alpha.contract binary schema