// The package `m` contains models shared between the hub and peer programs.
package m

type PeerInitArgs struct {
	EncPubKey  []byte
	PubSignKey []byte
}

type PeerInitResp struct {
	PeerIP       byte
	Network      []byte
	NetworkState NetworkState
}

type Peer struct {
	PeerIP     byte
	Version    int64
	Name       string
	PublicIP   []byte
	Port       uint16
	Relay      bool
	PubKey     []byte
	PubSignKey []byte
}

type NetworkState struct {
	Peers [256]*Peer
}
