FA2 von / zur Serialisierung
Im FA2.0-Standard werden Sender und Empfänger als Bytes gesendet (im Gegensatz zum Senden als Zeichenfolge für FA1.2).
Erwartetes Ergebnis: Beim Dekodieren der Adressen (Zeichenfolge) in ihre Hash-Darstellung mit öffentlichem Schlüssel würde ich davon ausgehen, dass das P2P-Format eingehalten wird: https://tezos.gitlab.io/api/p2p.html#public-key-hash-21-bytes-8-bit-tag. ZB wäre tz1ij8gUYbMRUXa4xX3mNvKguhaWG9GGbURn '00fd41f8dd065c16d8bfe0d6aa932b765f5b23f5c0' (21 Bytes)
Gesehenes Ergebnis: Beim Überprüfen einer vorhandenen Transaktion haben die Bytes die Länge 22 mit dem Präfix '00' '0000fd41f8dd065c16d8bfe0d6aa932b765f5b23f5c0' (https://better-call.dev/carthagenet/opg/oosHQxzosTdzizkPDvaDYDjjHeRCu4uG3MnfeH6SeceDoZJLNby/contents => rawJSON)
Wofür wird das zusätzliche Byte verwendet? Sollte ich erwarten, dass es immer '00' ist?
Antworten
Im FA2.0-Standard werden Sender und Empfänger als Bytes gesendet (im Gegensatz zum Senden als Zeichenfolge für FA1.2).
Beide Token-Standards besagen, dass Sender und Empfänger Michelson-Adressen sind. Michelson-Adressen haben zwei zulässige Darstellungen, als Zeichenfolgen (lesbare Darstellung) und als Bytes (optimierte Darstellung).
Wofür wird das zusätzliche Byte verwendet?
Das zusätzliche Byte wird verwendet, um implizite Konten von intelligenten Verträgen zu unterscheiden.
Sollte ich erwarten, dass es immer '00' ist?
Nein, es ist nur '00' für implizite Konten.
Für eine detaillierte Beschreibung des binären Codierungsschemas von Tezos-Adressen können Sie den folgenden Befehl verwenden:
$ tezos-codec describe alpha.contract binary schema