Files
zeekay 7cf87b230b node-unified is the node
The module already called itself github.com/luxfi/node while containing no node
in Go: cmd/luxd was twenty-one lines that printed the size of a few types, and
the Go column of the matrix measured a VM plugin. A repo that fetches the thing
it claims to be has not replaced it, so the Go sources move in — 1515 files,
the daemon and everything under it — and the build reaches outside this module
for nothing.

Rust and C++ sit beside it unchanged and are still measured against it by the
differential. That is the point of one repo: the reference implementation and
the two ports are the same checkout, so parity is a thing you can run rather
than a thing you assert.

Verified: builds, and the closure carries no lux-private — checked at build time
rather than believed. The daemon starts twelve chains on a local network
(P X C Q Z A B G K M F, plus D through its plugin) and reports healthy.
2026-09-07 16:15:25 -07:00

83 lines
1.7 KiB
Go

// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package genesis
import (
"fmt"
"math"
"time"
"github.com/spf13/pflag"
"github.com/luxfi/ids"
xsgenesis "github.com/luxfi/node/vms/example/xsvm/genesis"
)
const (
TimeKey = "time"
AddressKey = "address"
BalanceKey = "balance"
EncodingKey = "encoding"
binaryEncoding = "binary"
hexEncoding = "hex"
)
func AddFlags(flags *pflag.FlagSet) {
flags.Int64(TimeKey, time.Now().Unix(), "Unix timestamp to include in the genesis")
flags.String(AddressKey, "", "Address to fund in the genesis (required)")
flags.Uint64(BalanceKey, math.MaxUint64, "Amount to provide the funded address in the genesis")
flags.String(EncodingKey, hexEncoding, fmt.Sprintf("Encoding to use for the genesis. Available values: %s or %s", hexEncoding, binaryEncoding))
}
type Config struct {
Genesis *xsgenesis.Genesis
Encoding string
}
func ParseFlags(flags *pflag.FlagSet, args []string) (*Config, error) {
if err := flags.Parse(args); err != nil {
return nil, err
}
timestamp, err := flags.GetInt64(TimeKey)
if err != nil {
return nil, err
}
addrStr, err := flags.GetString(AddressKey)
if err != nil {
return nil, err
}
addr, err := ids.ShortFromString(addrStr)
if err != nil {
return nil, err
}
balance, err := flags.GetUint64(BalanceKey)
if err != nil {
return nil, err
}
encoding, err := flags.GetString(EncodingKey)
if err != nil {
return nil, err
}
return &Config{
Genesis: &xsgenesis.Genesis{
Timestamp: timestamp,
Allocations: []xsgenesis.Allocation{
{
Address: addr,
Balance: balance,
},
},
},
Encoding: encoding,
}, nil
}