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

63 lines
1.7 KiB
Go

// Copyright (C) 2019-2026, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package txheap
import (
"testing"
"time"
"github.com/stretchr/testify/require"
"github.com/luxfi/ids"
"github.com/luxfi/node/vms/platformvm/txs"
lux "github.com/luxfi/utxo"
"github.com/luxfi/utxo/secp256k1fx"
)
// newAddValidatorTx builds a native-wire AddValidatorTx staker whose
// distinguishing field is its end time, then wraps + initializes it as a
// signed tx (struct-is-wire: constructor + Initialize, no codec).
func newAddValidatorTx(t *testing.T, nodeID ids.NodeID, start, end uint64) *txs.Tx {
t.Helper()
utx, err := txs.NewAddValidatorTx(
&lux.BaseTx{},
txs.Validator{NodeID: nodeID, Start: start, End: end},
nil, // stake outs
&secp256k1fx.OutputOwners{},
0, // delegation shares
)
require.NoError(t, err)
tx := &txs.Tx{Unsigned: utx}
require.NoError(t, tx.Initialize())
return tx
}
func TestByEndTime(t *testing.T) {
require := require.New(t)
txHeap := NewByEndTime()
baseTime := time.Now()
base := uint64(baseTime.Unix())
tx0 := newAddValidatorTx(t, ids.BuildTestNodeID([]byte{0}), base, base+1)
utx0 := tx0.Unsigned.(*txs.AddValidatorTx)
tx1 := newAddValidatorTx(t, ids.BuildTestNodeID([]byte{1}), base, base+2)
utx1 := tx1.Unsigned.(*txs.AddValidatorTx)
tx2 := newAddValidatorTx(t, ids.BuildTestNodeID([]byte{1}), base, base+3)
utx2 := tx2.Unsigned.(*txs.AddValidatorTx)
txHeap.Add(tx2)
require.Equal(utx2.EndTime(), txHeap.Timestamp())
txHeap.Add(tx1)
require.Equal(utx1.EndTime(), txHeap.Timestamp())
txHeap.Add(tx0)
require.Equal(utx0.EndTime(), txHeap.Timestamp())
require.Equal(tx0, txHeap.Peek())
}