mirror of
https://github.com/zap-proto/go.git
synced 2026-10-30 15:05:00 +00:00
Two things the X-chain's wire needs to be sayable. NFTMintOperation reserves 36 bytes for fields that end at 32. Emitting 32 puts the byte tail four bytes early and moves everything after it, so `struct Name @N` states the width the wire reserves. Narrower than the fields is a contradiction and is refused. `package lux.xvm.wire` is one path, rendered by each backend the way that language spells a namespace: C++ opens all of it, Go takes the last segment, which is what a Go package name is. Without it the generated header can only land at global scope, and a chain whose own wire namespace is three deep has to either move or alias — and an alias is a second name for one thing.