FA2 จาก / ไปยังอนุกรม

Aug 24 2020

ในมาตรฐาน FA2.0 ผู้ส่งและผู้รับจะส่งเป็นไบต์ (เทียบกับส่งเป็นสตริงสำหรับ FA1.2)

ผลลัพธ์ที่คาดหวัง: เมื่อถอดรหัสที่อยู่ (สตริง) เป็นการแสดงแฮชคีย์สาธารณะของพวกเขาฉันจะถือว่ารูปแบบ P2P เป็นไปตาม: https://tezos.gitlab.io/api/p2p.html#public-key-hash-21-bytes-8-bit-tag. เช่น tz1ij8gUYbMRUXa4xX3mNvKguhaWG9GGbURn จะเป็น '00fd41f8dd065c16d8bfe0d6aa932b765f5b23f5c0' (21 ไบต์)

ผลลัพธ์ที่เห็น: เมื่อตรวจสอบธุรกรรมที่มีอยู่ไบต์มีความยาว 22 โดยมี '00' นำหน้า '0000fd41f8dd065c16d8bfe0d6aa932b765f5b23f5c0' (https://better-call.dev/carthagenet/opg/oosHQxzosTdzizkPDvaDYDjjHeRCu4uG3MnfeH6SeceDoZJLNby/contents => rawJSON)

ไบต์พิเศษใช้สำหรับอะไร? ฉันควรคาดหวังให้เป็น '00' เสมอหรือไม่?

คำตอบ

5 RaphaëlCauderlier Aug 24 2020 at 19:30

ในมาตรฐาน FA2.0 ผู้ส่งและผู้รับจะส่งเป็นไบต์ (เทียบกับส่งเป็นสตริงสำหรับ FA1.2)

มาตรฐานโทเค็นทั้งสองระบุว่าผู้ส่งและผู้รับเป็นที่อยู่ของ Michelson ที่อยู่ Michelson มีการแสดงที่อนุญาตสองรายการเป็นสตริง (การแสดงที่อ่านได้) และเป็นไบต์ (การแทนค่าที่เหมาะสมที่สุด)

ไบต์พิเศษใช้สำหรับอะไร?

ไบต์พิเศษใช้เพื่อแยกบัญชีโดยปริยายจากสัญญาอัจฉริยะ

ฉันควรคาดหวังให้เป็น '00' เสมอหรือไม่?

ไม่เป็นเพียง "00" สำหรับบัญชีโดยปริยาย

สำหรับคำอธิบายโดยละเอียดของสกีมาการเข้ารหัสไบนารีของที่อยู่ Tezos คุณสามารถใช้คำสั่งต่อไปนี้:

$ tezos-codec describe alpha.contract binary schema