mirror of
https://github.com/luxfi/node.git
synced 2026-10-30 15:24:05 +00:00
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.
48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
//go:build test
|
|
|
|
package common
|
|
|
|
import (
|
|
"context"
|
|
"slices"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/luxfi/constants"
|
|
"github.com/luxfi/ids"
|
|
lux "github.com/luxfi/utxo"
|
|
)
|
|
|
|
func NewDeterministicChainUTXOs(require *require.Assertions, utxoSets map[ids.ID][]*lux.UTXO) *DeterministicChainUTXOs {
|
|
globalUTXOs := NewUTXOs()
|
|
for netID, utxos := range utxoSets {
|
|
for _, utxo := range utxos {
|
|
require.NoError(
|
|
globalUTXOs.AddUTXO(context.Background(), netID, constants.PlatformChainID, utxo),
|
|
)
|
|
}
|
|
}
|
|
return &DeterministicChainUTXOs{
|
|
ChainUTXOs: NewChainUTXOs(constants.PlatformChainID, globalUTXOs),
|
|
}
|
|
}
|
|
|
|
type DeterministicChainUTXOs struct {
|
|
ChainUTXOs
|
|
}
|
|
|
|
func (c *DeterministicChainUTXOs) UTXOs(ctx context.Context, sourceChainID ids.ID) ([]*lux.UTXO, error) {
|
|
utxos, err := c.ChainUTXOs.UTXOs(ctx, sourceChainID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
slices.SortFunc(utxos, func(a, b *lux.UTXO) int {
|
|
return a.Compare(&b.UTXOID)
|
|
})
|
|
return utxos, nil
|
|
}
|