Files
platformvm/state/chain_id_node_id.go
zeekay ede37547f6 refactor(platformvm): consolidate block code, drop atomic_block, add v0 lift
- Drop atomic_block.go + legacy *_block_test.go (consolidated)
- Add block/v0/ subdir + lift_v0.go for old version handling
- Copyright header: 'Lux Industries, Inc.' → 'Lux Industries Inc' (no comma)
- block_adapter.go: new adapter layer
2026-06-01 15:22:27 -07:00

38 lines
853 B
Go

// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package state
import (
"fmt"
"github.com/luxfi/ids"
)
// chainIDNodeID = [chainID] + [nodeID]
const chainIDNodeIDEntryLength = ids.IDLen + ids.NodeIDLen
var errUnexpectedChainIDNodeIDLength = fmt.Errorf("expected chainID+nodeID entry length %d", chainIDNodeIDEntryLength)
type chainIDNodeID struct {
chainID ids.ID
nodeID ids.NodeID
}
func (s *chainIDNodeID) Marshal() []byte {
data := make([]byte, chainIDNodeIDEntryLength)
copy(data, s.chainID[:])
copy(data[ids.IDLen:], s.nodeID[:])
return data
}
func (s *chainIDNodeID) Unmarshal(data []byte) error {
if len(data) != chainIDNodeIDEntryLength {
return errUnexpectedChainIDNodeIDLength
}
copy(s.chainID[:], data)
copy(s.nodeID[:], data[ids.IDLen:])
return nil
}