mirror of
https://github.com/luxfi/sdk.git
synced 2026-10-30 15:19:23 +00:00
Lux Partners Limited is not the entity behind this work. Every place the old name stood — copyright lines, site footers, brand config, legal and compliance text — now names the company that actually holds it. lux.fund is the exception and is not renamed to match: that site belongs to Lux Assets Management LLC, a different company, and it says so. Two kinds of line were left for a person rather than rewritten. A dated news item recording that Lux Partners Limited was established in the Isle of Man is a historical fact, and renaming it would falsify the record. And a sentence asserting that the company is domiciled in the Isle of Man is a claim about a jurisdiction, not a name — an Inc or an LLC is not an Isle of Man company, so swapping the name there would assert something untrue. Co-authored-by: Hanzo Dev <[email protected]>
57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
// Copyright (C) 2020-2025, Lux Industries Inc All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
// Package chain provides blockchain transaction and block types.
|
|
package chain
|
|
|
|
import (
|
|
"github.com/luxfi/ids"
|
|
)
|
|
|
|
// Transaction represents a blockchain transaction
|
|
type Transaction interface {
|
|
// ID returns the transaction ID
|
|
ID() ids.ID
|
|
|
|
// Bytes returns the serialized transaction
|
|
Bytes() []byte
|
|
|
|
// Sign signs the transaction with the given signers
|
|
Sign(signers []ids.ShortID) error
|
|
|
|
// Verify verifies the transaction signatures
|
|
Verify() error
|
|
}
|
|
|
|
// Action represents an action within a transaction
|
|
type Action interface {
|
|
// TypeID returns the type ID of the action
|
|
TypeID() uint8
|
|
|
|
// Execute executes the action
|
|
Execute() error
|
|
}
|
|
|
|
// Result represents the result of transaction execution
|
|
type Result struct {
|
|
Success bool
|
|
Error error
|
|
Outputs []Output
|
|
}
|
|
|
|
// Output represents a transaction output
|
|
type Output struct {
|
|
AssetID ids.ID
|
|
Amount uint64
|
|
Owner ids.ShortID
|
|
}
|
|
|
|
// Block represents a blockchain block
|
|
type Block struct {
|
|
Height uint64
|
|
ID ids.ID
|
|
ParentID ids.ID
|
|
Timestamp int64
|
|
Transactions []Transaction
|
|
}
|