txs

package
v1.36.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2026 License: BSD-3-Clause Imports: 30 Imported by: 6

Documentation

Overview

Package txs is a generated GoMock package.

Index

Constants

View Source
const (
	MaxNameLen    = 128
	MaxGenesisLen = constants.MiB
)
View Source
const MaxChainAddressLength = 4096

Variables

View Source
var (
	ErrConvertPrimaryNetwork      = errors.New("cannot convert the primary network")
	ErrConvertMustHaveValidators  = errors.New("conversion must establish at least one validator")
	ErrConvertMustEstablishOwnSet = errors.New("conversion must establish an own validator set (sovereign mode)")
)
View Source
var (
	ErrZeroWeight                   = errors.New("validator weight must be non-zero")
	ErrAddressTooLong               = errors.New("address is too long")
	ErrValidatorsNotSortedAndUnique = errors.New("validators must be sorted and unique")
	ErrOwnSetMustIncludeValidator   = errors.New("sovereign (non-restaking) network must include at least one genesis validator")
	ErrNoOwnSetButHasValidators     = errors.New("network with no own set must not carry validators")
	ErrContractManagerNeedsAddress  = errors.New("contract-governed own set requires a manager address")
)
View Source
var (
	ErrWeightTooSmall = errors.New("weight of this validator is too low")

	// Deprecated: use errBadChainID instead
	ErrBadChainID = errBadChainID
)
View Source
var (
	ErrCantValidatePrimaryNetwork = errors.New("new blockchain can't be validated by primary network")
)
View Source
var (
	ErrNilSignedTx = errors.New("nil signed tx is not valid")
)
View Source
var (
	ErrNilTx = errors.New("tx is nil")
)
View Source
var (
	ErrRemovePrimaryNetworkValidator = errors.New("can't remove primary network validator with RemoveChainValidatorTx")
)
View Source
var (
	ErrTransferPermissionlessChain = errors.New("cannot transfer ownership of a permissionless chain")
)
View Source
var (
	ErrWrongLocktime = errors.New("wrong locktime reported")
)
View Source
var (
	ErrZeroBalance = errors.New("balance must be greater than 0")
)

Functions

func BoundedBy

func BoundedBy(stakerStart, stakerEnd, lowerBound, upperBound time.Time) bool

BoundedBy returns true iff staker start and end are a (non-strict) subset of the provided time bound

func MarshalOwner added in v1.36.3

func MarshalOwner(o any) ([]byte, error)

MarshalOwner is the ONE canonical byte encoding of an owner — same layout as the owner embedded in every tx, lifted to a standalone buffer. Used wherever a stable owner identity is needed off the tx wire (e.g. lock-owner hash keys in utxo verification, the L1-validator balance/deactivation owner blobs stored in P-Chain state). Takes `any` to match the fx.Owned.Owners() surface it serves. One encoding everywhere; no codec.

func UnmarshalOwner added in v1.36.3

func UnmarshalOwner(b []byte) (*secp256k1fx.OutputOwners, error)

UnmarshalOwner is the exact inverse of MarshalOwner — it parses the canonical standalone owner buffer back into *secp256k1fx.OutputOwners. Same layout, no codec; the marshal/unmarshal pair is the one owner byte codec every consumer (executor, service, state-owner blobs) shares.

Types

type AddChainValidatorTx deprecated added in v1.22.22

type AddChainValidatorTx struct {
	// contains filtered or unexported fields
}

AddChainValidatorTx is the legacy per-chain validator registration tx. The struct IS the wire: it holds the zap buffer and reads its fields by offset. No codec, no marshal.

Wire: zap header + object{ envelope@0..76, Validator@77, Chain@121, ChainAuth@153 }.

Deprecated: Use AddValidatorTx. Retained for one release cycle for wire/codec compat with pre-LP-018 binaries.

func NewAddChainValidatorTx added in v1.36.3

func NewAddChainValidatorTx(base *lux.BaseTx, validator Validator, chain ids.ID, chainAuth verify.Verifiable) (*AddChainValidatorTx, error)

NewAddChainValidatorTx builds the tx into a fresh zap buffer — the one place a field becomes bytes (construction, not serialization).

func (AddChainValidatorTx) BlockchainID added in v1.36.3

func (t AddChainValidatorTx) BlockchainID() ids.ID

func (AddChainValidatorTx) Bytes added in v1.36.3

func (t AddChainValidatorTx) Bytes() []byte

func (*AddChainValidatorTx) Chain added in v1.36.3

func (tx *AddChainValidatorTx) Chain() ids.ID

Chain is the network id this validator registers under (offset read).

func (*AddChainValidatorTx) ChainAuth added in v1.22.22

func (tx *AddChainValidatorTx) ChainAuth() verify.Verifiable

ChainAuth proves the issuer may add this validator to the network.

func (*AddChainValidatorTx) ChainID added in v1.36.3

func (tx *AddChainValidatorTx) ChainID() ids.ID

ChainID is the network id this validator registers under (legacy ChainValidator.ChainID, sourced from the pure Chain() accessor).

func (*AddChainValidatorTx) CurrentPriority added in v1.22.22

func (*AddChainValidatorTx) CurrentPriority() Priority

func (*AddChainValidatorTx) EndTime added in v1.36.3

func (tx *AddChainValidatorTx) EndTime() time.Time

func (AddChainValidatorTx) InitRuntime added in v1.36.3

func (AddChainValidatorTx) InitRuntime(*runtime.Runtime)

func (*AddChainValidatorTx) Initialize added in v1.22.87

func (tx *AddChainValidatorTx) Initialize(ctx context.Context) error

Initialize is a no-op; Runtime is passed explicitly to InitRuntime.

func (AddChainValidatorTx) InputIDs added in v1.36.3

func (t AddChainValidatorTx) InputIDs() set.Set[ids.ID]

func (AddChainValidatorTx) Inputs added in v1.36.3

func (t AddChainValidatorTx) Inputs() []*lux.TransferableInput

func (AddChainValidatorTx) Memo added in v1.36.3

func (t AddChainValidatorTx) Memo() []byte

func (AddChainValidatorTx) NetworkID added in v1.36.3

func (t AddChainValidatorTx) NetworkID() uint32

func (*AddChainValidatorTx) NodeID added in v1.22.22

func (tx *AddChainValidatorTx) NodeID() ids.NodeID

func (AddChainValidatorTx) Outputs added in v1.36.3

func (t AddChainValidatorTx) Outputs() []*lux.TransferableOutput

func (*AddChainValidatorTx) PendingPriority added in v1.22.22

func (*AddChainValidatorTx) PendingPriority() Priority

func (*AddChainValidatorTx) PublicKey added in v1.22.22

func (*AddChainValidatorTx) PublicKey() (*bls.PublicKey, bool, error)

func (*AddChainValidatorTx) SetBytes added in v1.36.3

func (t *AddChainValidatorTx) SetBytes(b []byte)

func (*AddChainValidatorTx) StartTime added in v1.36.3

func (tx *AddChainValidatorTx) StartTime() time.Time

func (*AddChainValidatorTx) SyntacticVerify added in v1.22.22

func (tx *AddChainValidatorTx) SyntacticVerify(rt *runtime.Runtime) error

SyntacticVerify returns nil iff [tx] is valid.

func (*AddChainValidatorTx) Validator added in v1.36.3

func (tx *AddChainValidatorTx) Validator() Validator

Validator is the inline validator descriptor (offset read).

func (*AddChainValidatorTx) Visit added in v1.22.22

func (tx *AddChainValidatorTx) Visit(visitor Visitor) error

func (*AddChainValidatorTx) Weight added in v1.36.3

func (tx *AddChainValidatorTx) Weight() uint64

type AddDelegatorTx

type AddDelegatorTx struct {
	// contains filtered or unexported fields
}

AddDelegatorTx is an unsigned addDelegatorTx. The struct IS the wire: it holds the zap buffer and reads its fields by offset. No codec, no marshal.

Wire: zap header + object{ envelope@0..76, Validator@77, StakeOuts@121, DelegationRewardsOwner@137 }.

func NewAddDelegatorTx added in v1.36.3

func NewAddDelegatorTx(base *lux.BaseTx, validator Validator, stakeOuts []*lux.TransferableOutput, delegationRewardsOwner fx.Owner) (*AddDelegatorTx, error)

NewAddDelegatorTx builds the tx into a fresh zap buffer.

func (AddDelegatorTx) BlockchainID added in v1.36.3

func (t AddDelegatorTx) BlockchainID() ids.ID

func (AddDelegatorTx) Bytes added in v1.36.3

func (t AddDelegatorTx) Bytes() []byte

func (*AddDelegatorTx) ChainID added in v1.22.22

func (*AddDelegatorTx) ChainID() ids.ID

func (*AddDelegatorTx) CurrentPriority

func (*AddDelegatorTx) CurrentPriority() Priority

func (*AddDelegatorTx) DelegationRewardsOwner

func (tx *AddDelegatorTx) DelegationRewardsOwner() fx.Owner

DelegationRewardsOwner is where staking rewards go when done validating.

func (*AddDelegatorTx) EndTime added in v1.36.3

func (tx *AddDelegatorTx) EndTime() time.Time

func (AddDelegatorTx) InitRuntime added in v1.22.87

func (AddDelegatorTx) InitRuntime(*runtime.Runtime)

func (*AddDelegatorTx) Initialize added in v1.14.2

func (tx *AddDelegatorTx) Initialize(ctx context.Context) error

Initialize is a no-op; Runtime is passed explicitly to InitRuntime.

func (AddDelegatorTx) InputIDs added in v1.36.3

func (t AddDelegatorTx) InputIDs() set.Set[ids.ID]

func (AddDelegatorTx) Inputs added in v1.36.3

func (t AddDelegatorTx) Inputs() []*lux.TransferableInput

func (AddDelegatorTx) Memo added in v1.36.3

func (t AddDelegatorTx) Memo() []byte

func (AddDelegatorTx) NetworkID added in v1.36.3

func (t AddDelegatorTx) NetworkID() uint32

func (*AddDelegatorTx) NodeID

func (tx *AddDelegatorTx) NodeID() ids.NodeID

func (AddDelegatorTx) Outputs added in v1.36.3

func (t AddDelegatorTx) Outputs() []*lux.TransferableOutput

func (*AddDelegatorTx) PendingPriority

func (*AddDelegatorTx) PendingPriority() Priority

func (*AddDelegatorTx) PublicKey

func (*AddDelegatorTx) PublicKey() (*bls.PublicKey, bool, error)

func (*AddDelegatorTx) RewardsOwner

func (tx *AddDelegatorTx) RewardsOwner() fx.Owner

func (*AddDelegatorTx) SetBytes added in v1.36.3

func (t *AddDelegatorTx) SetBytes(b []byte)

func (*AddDelegatorTx) Stake

func (tx *AddDelegatorTx) Stake() []*lux.TransferableOutput

Stake is where staked tokens go when done validating, with FxID set on each output (secp256k1fx) as the legacy InitRuntime did.

func (*AddDelegatorTx) StakeOuts

func (tx *AddDelegatorTx) StakeOuts() []*lux.TransferableOutput

StakeOuts is where staked tokens go when done validating (offset read).

func (*AddDelegatorTx) StartTime added in v1.36.3

func (tx *AddDelegatorTx) StartTime() time.Time

func (*AddDelegatorTx) SyntacticVerify

func (tx *AddDelegatorTx) SyntacticVerify(rt *runtime.Runtime) error

SyntacticVerify returns nil iff [tx] is valid.

func (*AddDelegatorTx) Validator added in v1.36.3

func (tx *AddDelegatorTx) Validator() Validator

Validator describes the delegatee (offset read).

func (*AddDelegatorTx) Visit

func (tx *AddDelegatorTx) Visit(visitor Visitor) error

func (*AddDelegatorTx) Weight added in v1.36.3

func (tx *AddDelegatorTx) Weight() uint64

type AddPermissionlessDelegatorTx

type AddPermissionlessDelegatorTx struct {
	// contains filtered or unexported fields
}

AddPermissionlessDelegatorTx is an unsigned addPermissionlessDelegatorTx. The struct IS the wire: it holds the zap buffer and reads its fields by offset. No codec, no marshal.

Wire: zap header + object{ envelope@0..76, Validator@77, Chain@121, StakeOuts@153, DelegationRewardsOwner@169 }.

func NewAddPermissionlessDelegatorTx added in v1.36.3

func NewAddPermissionlessDelegatorTx(base *lux.BaseTx, validator Validator, chain ids.ID, stakeOuts []*lux.TransferableOutput, delegationRewardsOwner fx.Owner) (*AddPermissionlessDelegatorTx, error)

NewAddPermissionlessDelegatorTx builds the tx into a fresh zap buffer.

func (AddPermissionlessDelegatorTx) BlockchainID added in v1.36.3

func (t AddPermissionlessDelegatorTx) BlockchainID() ids.ID

func (AddPermissionlessDelegatorTx) Bytes added in v1.36.3

func (t AddPermissionlessDelegatorTx) Bytes() []byte

func (*AddPermissionlessDelegatorTx) Chain added in v1.22.22

func (tx *AddPermissionlessDelegatorTx) Chain() ids.ID

Chain is the id of the chain this validator is validating (offset read).

func (*AddPermissionlessDelegatorTx) ChainID added in v1.22.22

func (tx *AddPermissionlessDelegatorTx) ChainID() ids.ID

func (*AddPermissionlessDelegatorTx) CurrentPriority

func (tx *AddPermissionlessDelegatorTx) CurrentPriority() Priority

func (*AddPermissionlessDelegatorTx) DelegationRewardsOwner

func (tx *AddPermissionlessDelegatorTx) DelegationRewardsOwner() fx.Owner

DelegationRewardsOwner is where staking rewards go when done validating.

func (*AddPermissionlessDelegatorTx) EndTime added in v1.36.3

func (tx *AddPermissionlessDelegatorTx) EndTime() time.Time

func (AddPermissionlessDelegatorTx) InitRuntime added in v1.22.87

func (AddPermissionlessDelegatorTx) InitRuntime(*runtime.Runtime)

func (*AddPermissionlessDelegatorTx) Initialize added in v1.14.2

func (tx *AddPermissionlessDelegatorTx) Initialize(ctx context.Context) error

Initialize is a no-op; Runtime is passed explicitly to InitRuntime.

func (AddPermissionlessDelegatorTx) InputIDs added in v1.36.3

func (t AddPermissionlessDelegatorTx) InputIDs() set.Set[ids.ID]

func (AddPermissionlessDelegatorTx) Inputs added in v1.36.3

func (t AddPermissionlessDelegatorTx) Inputs() []*lux.TransferableInput

func (AddPermissionlessDelegatorTx) Memo added in v1.36.3

func (t AddPermissionlessDelegatorTx) Memo() []byte

func (AddPermissionlessDelegatorTx) NetworkID added in v1.36.3

func (t AddPermissionlessDelegatorTx) NetworkID() uint32

func (*AddPermissionlessDelegatorTx) NodeID

func (AddPermissionlessDelegatorTx) Outputs added in v1.36.3

func (t AddPermissionlessDelegatorTx) Outputs() []*lux.TransferableOutput

func (*AddPermissionlessDelegatorTx) PendingPriority

func (tx *AddPermissionlessDelegatorTx) PendingPriority() Priority

func (*AddPermissionlessDelegatorTx) PublicKey

func (*AddPermissionlessDelegatorTx) RewardsOwner

func (tx *AddPermissionlessDelegatorTx) RewardsOwner() fx.Owner

func (*AddPermissionlessDelegatorTx) SetBytes added in v1.36.3

func (t *AddPermissionlessDelegatorTx) SetBytes(b []byte)

func (*AddPermissionlessDelegatorTx) Stake

Stake is where staked tokens go when done validating, with FxID set on each output (secp256k1fx) as the legacy InitRuntime did.

func (*AddPermissionlessDelegatorTx) StakeOuts

StakeOuts is where staked tokens go when done validating (offset read).

func (*AddPermissionlessDelegatorTx) StartTime added in v1.36.3

func (tx *AddPermissionlessDelegatorTx) StartTime() time.Time

func (*AddPermissionlessDelegatorTx) SyntacticVerify

func (tx *AddPermissionlessDelegatorTx) SyntacticVerify(rt *runtime.Runtime) error

SyntacticVerify returns nil iff [tx] is valid.

func (*AddPermissionlessDelegatorTx) Validator added in v1.36.3

func (tx *AddPermissionlessDelegatorTx) Validator() Validator

Validator describes the validator being delegated to (offset read).

func (*AddPermissionlessDelegatorTx) Visit

func (tx *AddPermissionlessDelegatorTx) Visit(visitor Visitor) error

func (*AddPermissionlessDelegatorTx) Weight added in v1.36.3

func (tx *AddPermissionlessDelegatorTx) Weight() uint64

type AddPermissionlessValidatorTx

type AddPermissionlessValidatorTx struct {
	// contains filtered or unexported fields
}

AddPermissionlessValidatorTx is an unsigned addPermissionlessValidatorTx. The struct IS the wire: it holds the zap buffer and reads its fields by offset. No codec, no marshal.

Wire: zap header + object{ envelope@0..76, Validator@77, Chain@121, Signer@153, StakeOuts@298, ValidatorRewardsOwner@314, DelegatorRewardsOwner@334, DelegationShares@354 }.

func NewAddPermissionlessValidatorTx added in v1.36.3

func NewAddPermissionlessValidatorTx(base *lux.BaseTx, validator Validator, chain ids.ID, sig signer.Signer, stakeOuts []*lux.TransferableOutput, validatorRewardsOwner fx.Owner, delegatorRewardsOwner fx.Owner, delegationShares uint32) (*AddPermissionlessValidatorTx, error)

NewAddPermissionlessValidatorTx builds the tx into a fresh zap buffer.

func (AddPermissionlessValidatorTx) BlockchainID added in v1.36.3

func (t AddPermissionlessValidatorTx) BlockchainID() ids.ID

func (AddPermissionlessValidatorTx) Bytes added in v1.36.3

func (t AddPermissionlessValidatorTx) Bytes() []byte

func (*AddPermissionlessValidatorTx) Chain added in v1.22.22

func (tx *AddPermissionlessValidatorTx) Chain() ids.ID

Chain is the id of the chain this validator is validating (offset read).

func (*AddPermissionlessValidatorTx) ChainID added in v1.22.22

func (tx *AddPermissionlessValidatorTx) ChainID() ids.ID

func (*AddPermissionlessValidatorTx) CurrentPriority

func (tx *AddPermissionlessValidatorTx) CurrentPriority() Priority

func (*AddPermissionlessValidatorTx) DelegationRewardsOwner

func (tx *AddPermissionlessValidatorTx) DelegationRewardsOwner() fx.Owner

func (*AddPermissionlessValidatorTx) DelegationShares

func (tx *AddPermissionlessValidatorTx) DelegationShares() uint32

DelegationShares is the fee (times 10,000) charged to delegators.

func (*AddPermissionlessValidatorTx) DelegatorRewardsOwner

func (tx *AddPermissionlessValidatorTx) DelegatorRewardsOwner() fx.Owner

DelegatorRewardsOwner is where delegation rewards go when done validating.

func (*AddPermissionlessValidatorTx) EndTime added in v1.36.3

func (tx *AddPermissionlessValidatorTx) EndTime() time.Time

func (AddPermissionlessValidatorTx) InitRuntime added in v1.22.87

func (AddPermissionlessValidatorTx) InitRuntime(*runtime.Runtime)

func (*AddPermissionlessValidatorTx) Initialize added in v1.14.2

func (tx *AddPermissionlessValidatorTx) Initialize(ctx context.Context) error

Initialize is a no-op; Runtime is passed explicitly to InitRuntime.

func (AddPermissionlessValidatorTx) InputIDs added in v1.36.3

func (t AddPermissionlessValidatorTx) InputIDs() set.Set[ids.ID]

func (AddPermissionlessValidatorTx) Inputs added in v1.36.3

func (t AddPermissionlessValidatorTx) Inputs() []*lux.TransferableInput

func (AddPermissionlessValidatorTx) Memo added in v1.36.3

func (t AddPermissionlessValidatorTx) Memo() []byte

func (AddPermissionlessValidatorTx) NetworkID added in v1.36.3

func (t AddPermissionlessValidatorTx) NetworkID() uint32

func (*AddPermissionlessValidatorTx) NodeID

func (AddPermissionlessValidatorTx) Outputs added in v1.36.3

func (t AddPermissionlessValidatorTx) Outputs() []*lux.TransferableOutput

func (*AddPermissionlessValidatorTx) PendingPriority

func (tx *AddPermissionlessValidatorTx) PendingPriority() Priority

func (*AddPermissionlessValidatorTx) PublicKey

func (tx *AddPermissionlessValidatorTx) PublicKey() (*bls.PublicKey, bool, error)

func (*AddPermissionlessValidatorTx) SetBytes added in v1.36.3

func (t *AddPermissionlessValidatorTx) SetBytes(b []byte)

func (*AddPermissionlessValidatorTx) Shares

func (tx *AddPermissionlessValidatorTx) Shares() uint32

func (*AddPermissionlessValidatorTx) Signer

Signer is the BLS key for this validator (empty signer off the primary network) (offset read).

func (*AddPermissionlessValidatorTx) Stake

Stake is where staked tokens go when done validating, with FxID set on each output (secp256k1fx) as the legacy InitRuntime did.

func (*AddPermissionlessValidatorTx) StakeOuts

StakeOuts is where staked tokens go when done validating (offset read).

func (*AddPermissionlessValidatorTx) StartTime added in v1.36.3

func (tx *AddPermissionlessValidatorTx) StartTime() time.Time

func (*AddPermissionlessValidatorTx) SyntacticVerify

func (tx *AddPermissionlessValidatorTx) SyntacticVerify(rt *runtime.Runtime) error

SyntacticVerify returns nil iff [tx] is valid.

func (*AddPermissionlessValidatorTx) ValidationRewardsOwner

func (tx *AddPermissionlessValidatorTx) ValidationRewardsOwner() fx.Owner

func (*AddPermissionlessValidatorTx) Validator added in v1.36.3

func (tx *AddPermissionlessValidatorTx) Validator() Validator

Validator describes the validator (offset read).

func (*AddPermissionlessValidatorTx) ValidatorRewardsOwner

func (tx *AddPermissionlessValidatorTx) ValidatorRewardsOwner() fx.Owner

ValidatorRewardsOwner is where validation rewards go when done validating.

func (*AddPermissionlessValidatorTx) Visit

func (tx *AddPermissionlessValidatorTx) Visit(visitor Visitor) error

func (*AddPermissionlessValidatorTx) Weight added in v1.36.3

func (tx *AddPermissionlessValidatorTx) Weight() uint64

type AddValidatorTx

type AddValidatorTx struct {
	// contains filtered or unexported fields
}

AddValidatorTx is an unsigned addValidatorTx. The struct IS the wire: it holds the zap buffer and reads its fields by offset. No codec, no marshal.

Wire: zap header + object{ envelope@0..76, Validator@77, StakeOuts@121, RewardsOwner@137, DelegationShares@157 }.

func NewAddValidatorTx added in v1.36.3

func NewAddValidatorTx(base *lux.BaseTx, validator Validator, stakeOuts []*lux.TransferableOutput, rewardsOwner fx.Owner, delegationShares uint32) (*AddValidatorTx, error)

NewAddValidatorTx builds the tx into a fresh zap buffer.

func (AddValidatorTx) BlockchainID added in v1.36.3

func (t AddValidatorTx) BlockchainID() ids.ID

func (AddValidatorTx) Bytes added in v1.36.3

func (t AddValidatorTx) Bytes() []byte

func (*AddValidatorTx) ChainID added in v1.22.22

func (*AddValidatorTx) ChainID() ids.ID

func (*AddValidatorTx) CurrentPriority

func (*AddValidatorTx) CurrentPriority() Priority

func (*AddValidatorTx) DelegationRewardsOwner

func (tx *AddValidatorTx) DelegationRewardsOwner() fx.Owner

func (*AddValidatorTx) DelegationShares

func (tx *AddValidatorTx) DelegationShares() uint32

DelegationShares is the fee (times 10,000) charged to delegators.

func (*AddValidatorTx) EndTime added in v1.36.3

func (tx *AddValidatorTx) EndTime() time.Time

func (AddValidatorTx) InitRuntime added in v1.22.87

func (AddValidatorTx) InitRuntime(*runtime.Runtime)

func (*AddValidatorTx) Initialize added in v1.14.2

func (tx *AddValidatorTx) Initialize(ctx context.Context) error

Initialize is a no-op; Runtime is passed explicitly to InitRuntime.

func (AddValidatorTx) InputIDs added in v1.36.3

func (t AddValidatorTx) InputIDs() set.Set[ids.ID]

func (AddValidatorTx) Inputs added in v1.36.3

func (t AddValidatorTx) Inputs() []*lux.TransferableInput

func (AddValidatorTx) Memo added in v1.36.3

func (t AddValidatorTx) Memo() []byte

func (AddValidatorTx) NetworkID added in v1.36.3

func (t AddValidatorTx) NetworkID() uint32

func (*AddValidatorTx) NodeID

func (tx *AddValidatorTx) NodeID() ids.NodeID

func (AddValidatorTx) Outputs added in v1.36.3

func (t AddValidatorTx) Outputs() []*lux.TransferableOutput

func (*AddValidatorTx) PendingPriority

func (*AddValidatorTx) PendingPriority() Priority

func (*AddValidatorTx) PublicKey

func (*AddValidatorTx) PublicKey() (*bls.PublicKey, bool, error)

func (*AddValidatorTx) RewardsOwner

func (tx *AddValidatorTx) RewardsOwner() fx.Owner

RewardsOwner is where staking rewards go when done validating.

func (*AddValidatorTx) SetBytes added in v1.36.3

func (t *AddValidatorTx) SetBytes(b []byte)

func (*AddValidatorTx) Shares

func (tx *AddValidatorTx) Shares() uint32

func (*AddValidatorTx) Stake

func (tx *AddValidatorTx) Stake() []*lux.TransferableOutput

Stake is where staked tokens go when done validating, with FxID set on each output (secp256k1fx) as the legacy InitRuntime did.

func (*AddValidatorTx) StakeOuts

func (tx *AddValidatorTx) StakeOuts() []*lux.TransferableOutput

StakeOuts is where staked tokens go when done validating (offset read).

func (*AddValidatorTx) StartTime added in v1.36.3

func (tx *AddValidatorTx) StartTime() time.Time

func (*AddValidatorTx) SyntacticVerify

func (tx *AddValidatorTx) SyntacticVerify(rt *runtime.Runtime) error

SyntacticVerify returns nil iff [tx] is valid.

func (*AddValidatorTx) ValidationRewardsOwner

func (tx *AddValidatorTx) ValidationRewardsOwner() fx.Owner

func (*AddValidatorTx) Validator added in v1.36.3

func (tx *AddValidatorTx) Validator() Validator

Validator describes the delegatee (offset read).

func (*AddValidatorTx) Visit

func (tx *AddValidatorTx) Visit(visitor Visitor) error

func (*AddValidatorTx) Weight added in v1.36.3

func (tx *AddValidatorTx) Weight() uint64

type AdvanceTimeTx

type AdvanceTimeTx struct {
	// contains filtered or unexported fields
}

AdvanceTimeTx increases the chain's timestamp. The struct IS the wire: it holds the zap buffer and reads its field by offset. No codec, no marshal.

Wire: zap header + object{ kind:u8@0, Time:u64@1 }.

func NewAdvanceTimeTx added in v1.36.3

func NewAdvanceTimeTx(t uint64) *AdvanceTimeTx

NewAdvanceTimeTx builds the tx into a fresh zap buffer — the one place a field becomes bytes (construction, not serialization).

func (*AdvanceTimeTx) Bytes

func (tx *AdvanceTimeTx) Bytes() []byte

Bytes returns the underlying zap buffer literally — no encode.

func (*AdvanceTimeTx) InitRuntime added in v1.22.87

func (*AdvanceTimeTx) InitRuntime(*runtime.Runtime)

func (*AdvanceTimeTx) Initialize added in v1.14.2

func (tx *AdvanceTimeTx) Initialize(context.Context) error

func (*AdvanceTimeTx) InputIDs

func (*AdvanceTimeTx) InputIDs() set.Set[ids.ID]

func (*AdvanceTimeTx) Outputs

func (*AdvanceTimeTx) Outputs() []*lux.TransferableOutput

func (*AdvanceTimeTx) SetBytes

func (tx *AdvanceTimeTx) SetBytes(b []byte)

SetBytes wraps b as this tx's buffer (zero copy); the Parse dispatch uses it.

func (*AdvanceTimeTx) SyntacticVerify

func (*AdvanceTimeTx) SyntacticVerify(*runtime.Runtime) error

func (*AdvanceTimeTx) Time

func (tx *AdvanceTimeTx) Time() uint64

Time is the unix time this tx proposes advancing the chain to (offset read).

func (*AdvanceTimeTx) Timestamp

func (tx *AdvanceTimeTx) Timestamp() time.Time

Timestamp returns Time as a time.Time.

func (*AdvanceTimeTx) Visit

func (tx *AdvanceTimeTx) Visit(visitor Visitor) error

type BaseTx

type BaseTx struct {
	// contains filtered or unexported fields
}

BaseTx is the bare spending envelope: kind + NetworkID/BlockchainID/Outs/ Ins/Memo, no delta fields. The struct IS the wire — it embeds spendingTx, which holds the zap buffer and serves the whole envelope surface (Bytes/ NetworkID/Outputs/InputIDs/Memo/...). Delta-carrying tx types embed spendingTx the same way and add their own field accessors.

Wire: zap header + object{ envelope@0..76 } (kind=kindBase).

func NewBaseTx added in v1.36.3

func NewBaseTx(base *lux.BaseTx) (*BaseTx, error)

NewBaseTx builds a bare spending tx into a fresh zap buffer — the one place the envelope fields become bytes (construction, not serialization).

func (BaseTx) BlockchainID added in v1.36.3

func (t BaseTx) BlockchainID() ids.ID

func (BaseTx) Bytes

func (t BaseTx) Bytes() []byte

func (BaseTx) InitRuntime added in v1.22.87

func (BaseTx) InitRuntime(*runtime.Runtime)

func (*BaseTx) Initialize added in v1.14.2

func (tx *BaseTx) Initialize(context.Context) error

func (BaseTx) InputIDs

func (t BaseTx) InputIDs() set.Set[ids.ID]

func (BaseTx) Inputs added in v1.36.3

func (t BaseTx) Inputs() []*lux.TransferableInput

func (BaseTx) Memo added in v1.36.3

func (t BaseTx) Memo() []byte

func (BaseTx) NetworkID added in v1.36.3

func (t BaseTx) NetworkID() uint32

func (BaseTx) Outputs

func (t BaseTx) Outputs() []*lux.TransferableOutput

func (*BaseTx) SetBytes

func (t *BaseTx) SetBytes(b []byte)

func (*BaseTx) SyntacticVerify

func (tx *BaseTx) SyntacticVerify(rt *runtime.Runtime) error

SyntacticVerify returns nil iff this tx is well formed.

func (*BaseTx) Visit

func (tx *BaseTx) Visit(visitor Visitor) error

type ChainValidator deprecated added in v1.22.22

type ChainValidator struct {
	Validator `serialize:"true"`

	// ID of the chain this validator is validating
	Chain ids.ID `serialize:"true" json:"chainID"`
}

ChainValidator is the legacy per-chain validator descriptor used by AddChainValidatorTx. The Chain field is the network ID this validator registers under (pre-LP-018: L1 ID).

Deprecated: Use Validator with AddValidatorTx. Under LP-018 sovereign-L1, validators validate networks — not chains. Chains live on networks (created via CreateChainTx); validators no longer register per-chain. Retained for one release cycle for wire/codec compat with pre-LP-018 binaries.

func (*ChainValidator) ChainID added in v1.22.22

func (v *ChainValidator) ChainID() ids.ID

ChainID is the ID of the chain this validator is validating

func (*ChainValidator) Verify added in v1.22.22

func (v *ChainValidator) Verify() error

Verify this validator is valid

type ConvertNetworkTx added in v1.36.3

type ConvertNetworkTx struct {
	// contains filtered or unexported fields
}

ConvertNetworkTx PROMOTES an existing network: it changes the network's security from inherited (restaked from parent) to sovereign (its own validator set + on-chain manager) and re-anchors its Parent. This is the endomorphism `Network → Network` — distinct from CreateNetworkTx (the `∅ → Network` constructor). Examples: an L2 (parent = an L1, inherited) converts to an L1 (parent = Primary, sovereign); an L3 promotes to L1.

Requires the existing network owner's authorization (Auth). The genesis validator set is established here (shared NetworkValidator component); the manager lives on an existing chain (ManagerChainID) of the network.

func NewConvertNetworkTx added in v1.36.3

func NewConvertNetworkTx(
	base *lux.BaseTx,
	network, parent, managerChainID ids.ID,
	sec security.Mode,
	managerAddress []byte,
	validators []*NetworkValidator,
	auth verify.Verifiable,
) (*ConvertNetworkTx, error)

func (*ConvertNetworkTx) Auth added in v1.36.3

func (tx *ConvertNetworkTx) Auth() verify.Verifiable

func (ConvertNetworkTx) BlockchainID added in v1.36.3

func (t ConvertNetworkTx) BlockchainID() ids.ID

func (ConvertNetworkTx) Bytes added in v1.36.3

func (t ConvertNetworkTx) Bytes() []byte

func (ConvertNetworkTx) InitRuntime added in v1.36.3

func (ConvertNetworkTx) InitRuntime(*runtime.Runtime)

func (ConvertNetworkTx) InputIDs added in v1.36.3

func (t ConvertNetworkTx) InputIDs() set.Set[ids.ID]

func (ConvertNetworkTx) Inputs added in v1.36.3

func (t ConvertNetworkTx) Inputs() []*lux.TransferableInput

func (*ConvertNetworkTx) ManagerAddress added in v1.36.3

func (tx *ConvertNetworkTx) ManagerAddress() []byte

func (*ConvertNetworkTx) ManagerChainID added in v1.36.3

func (tx *ConvertNetworkTx) ManagerChainID() ids.ID

func (ConvertNetworkTx) Memo added in v1.36.3

func (t ConvertNetworkTx) Memo() []byte

func (*ConvertNetworkTx) Network added in v1.36.3

func (tx *ConvertNetworkTx) Network() ids.ID

func (ConvertNetworkTx) NetworkID added in v1.36.3

func (t ConvertNetworkTx) NetworkID() uint32

func (ConvertNetworkTx) Outputs added in v1.36.3

func (t ConvertNetworkTx) Outputs() []*lux.TransferableOutput

func (*ConvertNetworkTx) Parent added in v1.36.3

func (tx *ConvertNetworkTx) Parent() ids.ID

func (*ConvertNetworkTx) Security added in v1.36.3

func (tx *ConvertNetworkTx) Security() security.Mode

func (*ConvertNetworkTx) SetBytes added in v1.36.3

func (t *ConvertNetworkTx) SetBytes(b []byte)

func (*ConvertNetworkTx) Sovereign added in v1.36.3

func (tx *ConvertNetworkTx) Sovereign() bool

func (*ConvertNetworkTx) SyntacticVerify added in v1.36.3

func (tx *ConvertNetworkTx) SyntacticVerify(rt *runtime.Runtime) error

func (*ConvertNetworkTx) Validators added in v1.36.3

func (tx *ConvertNetworkTx) Validators() []*NetworkValidator

func (*ConvertNetworkTx) Visit added in v1.36.3

func (tx *ConvertNetworkTx) Visit(visitor Visitor) error

type CreateChainTx

type CreateChainTx struct {
	// contains filtered or unexported fields
}

CreateChainTx creates a blockchain on a chain. The struct IS the wire: it embeds the spending envelope and reads its delta fields by offset.

Delta layout (fixed section, after the 77-byte spending envelope):

ChainID        32B @ 77   (id: chain that validates this blockchain)
VMID           32B @ 109  (id: VM running on the new blockchain)
BlockchainName 8B  @ 141  (text ptr: human readable name)
FxIDs          8B  @ 149  (id list ptr: feature extensions)
GenesisData    8B  @ 157  (bytes ptr: genesis state)
ChainAuth      8B  @ 165  (auth ptr: sig-index list)

func NewCreateChainTx added in v1.36.3

func NewCreateChainTx(base *lux.BaseTx, chainID ids.ID, blockchainName string, vmID ids.ID, fxIDs []ids.ID, genesisData []byte, chainAuth verify.Verifiable) (*CreateChainTx, error)

NewCreateChainTx builds the tx into a fresh zap buffer.

func (CreateChainTx) BlockchainID added in v1.36.3

func (t CreateChainTx) BlockchainID() ids.ID

func (*CreateChainTx) BlockchainName added in v1.22.22

func (tx *CreateChainTx) BlockchainName() string

BlockchainName is a human-readable (non-unique) name for the blockchain.

func (CreateChainTx) Bytes added in v1.36.3

func (t CreateChainTx) Bytes() []byte

func (*CreateChainTx) ChainAuth added in v1.22.22

func (tx *CreateChainTx) ChainAuth() verify.Verifiable

ChainAuth authorizes this blockchain to be added to the chain.

func (*CreateChainTx) ChainID added in v1.22.22

func (tx *CreateChainTx) ChainID() ids.ID

ChainID is the ID of the chain that validates this blockchain (offset read).

func (*CreateChainTx) FxIDs

func (tx *CreateChainTx) FxIDs() []ids.ID

FxIDs are the IDs of the feature extensions running on the new blockchain.

func (*CreateChainTx) GenesisData

func (tx *CreateChainTx) GenesisData() []byte

GenesisData is the byte representation of the new blockchain's genesis state.

func (CreateChainTx) InitRuntime added in v1.36.3

func (CreateChainTx) InitRuntime(*runtime.Runtime)

func (*CreateChainTx) Initialize added in v1.14.2

func (tx *CreateChainTx) Initialize(ctx context.Context) error

Initialize is a no-op; the struct is already the wire.

func (CreateChainTx) InputIDs added in v1.36.3

func (t CreateChainTx) InputIDs() set.Set[ids.ID]

func (CreateChainTx) Inputs added in v1.36.3

func (t CreateChainTx) Inputs() []*lux.TransferableInput

func (CreateChainTx) Memo added in v1.36.3

func (t CreateChainTx) Memo() []byte

func (CreateChainTx) NetworkID added in v1.36.3

func (t CreateChainTx) NetworkID() uint32

func (CreateChainTx) Outputs added in v1.36.3

func (t CreateChainTx) Outputs() []*lux.TransferableOutput

func (*CreateChainTx) SetBytes added in v1.36.3

func (t *CreateChainTx) SetBytes(b []byte)

func (*CreateChainTx) SyntacticVerify

func (tx *CreateChainTx) SyntacticVerify(rt *runtime.Runtime) error

func (*CreateChainTx) VMID

func (tx *CreateChainTx) VMID() ids.ID

VMID is the ID of the VM running on the new blockchain.

func (*CreateChainTx) Visit

func (tx *CreateChainTx) Visit(visitor Visitor) error

type CreateNetworkTx added in v1.22.84

type CreateNetworkTx struct {
	// contains filtered or unexported fields
}

func NewCreateNetworkTx added in v1.36.3

func NewCreateNetworkTx(
	base *lux.BaseTx,
	parent ids.ID,
	owner fx.Owner,
	sec security.Mode,
	validators []*NetworkValidator,
	managerChainID ids.ID,
	managerAddress []byte,
) (*CreateNetworkTx, error)

func (CreateNetworkTx) BlockchainID added in v1.36.3

func (t CreateNetworkTx) BlockchainID() ids.ID

func (CreateNetworkTx) Bytes added in v1.36.3

func (t CreateNetworkTx) Bytes() []byte

func (CreateNetworkTx) InitRuntime added in v1.22.87

func (CreateNetworkTx) InitRuntime(*runtime.Runtime)

func (CreateNetworkTx) InputIDs added in v1.36.3

func (t CreateNetworkTx) InputIDs() set.Set[ids.ID]

func (CreateNetworkTx) Inputs added in v1.36.3

func (t CreateNetworkTx) Inputs() []*lux.TransferableInput

func (*CreateNetworkTx) ManagerAddress added in v1.36.3

func (tx *CreateNetworkTx) ManagerAddress() []byte

func (*CreateNetworkTx) ManagerChainID added in v1.36.3

func (tx *CreateNetworkTx) ManagerChainID() ids.ID

func (CreateNetworkTx) Memo added in v1.36.3

func (t CreateNetworkTx) Memo() []byte

func (CreateNetworkTx) NetworkID added in v1.36.3

func (t CreateNetworkTx) NetworkID() uint32

func (CreateNetworkTx) Outputs added in v1.36.3

func (t CreateNetworkTx) Outputs() []*lux.TransferableOutput

func (*CreateNetworkTx) Owner added in v1.22.84

func (tx *CreateNetworkTx) Owner() fx.Owner

func (*CreateNetworkTx) Parent added in v1.36.3

func (tx *CreateNetworkTx) Parent() ids.ID

func (*CreateNetworkTx) Security added in v1.36.3

func (tx *CreateNetworkTx) Security() security.Mode

func (*CreateNetworkTx) SetBytes added in v1.36.3

func (t *CreateNetworkTx) SetBytes(b []byte)

func (*CreateNetworkTx) Sovereign added in v1.36.3

func (tx *CreateNetworkTx) Sovereign() bool

func (*CreateNetworkTx) SyntacticVerify added in v1.22.84

func (tx *CreateNetworkTx) SyntacticVerify(rt *runtime.Runtime) error

func (*CreateNetworkTx) Validators added in v1.36.3

func (tx *CreateNetworkTx) Validators() []*NetworkValidator

func (*CreateNetworkTx) Visit added in v1.22.84

func (tx *CreateNetworkTx) Visit(visitor Visitor) error

type DelegatorTx

type DelegatorTx interface {
	UnsignedTx
	PermissionlessStaker

	RewardsOwner() fx.Owner
}

type DisableL1ValidatorTx

type DisableL1ValidatorTx struct {
	// contains filtered or unexported fields
}

DisableL1ValidatorTx disables an L1 validator, proving authorization with a credential. The struct IS the wire: it embeds spendingTx (the envelope) and adds the validation id plus an auth sig-index list.

Wire: zap header + object{ envelope@0..76, ValidationID:32B@77, DisableAuth:listptr@109 } (kind=kindDisableL1Validator).

func NewDisableL1ValidatorTx added in v1.36.3

func NewDisableL1ValidatorTx(base *lux.BaseTx, validationID ids.ID, disableAuth verify.Verifiable) (*DisableL1ValidatorTx, error)

NewDisableL1ValidatorTx builds the tx into a fresh zap buffer.

func (DisableL1ValidatorTx) BlockchainID added in v1.36.3

func (t DisableL1ValidatorTx) BlockchainID() ids.ID

func (DisableL1ValidatorTx) Bytes added in v1.36.3

func (t DisableL1ValidatorTx) Bytes() []byte

func (*DisableL1ValidatorTx) DisableAuth

func (tx *DisableL1ValidatorTx) DisableAuth() verify.Verifiable

DisableAuth authorizes this validator to be disabled (offset read).

func (DisableL1ValidatorTx) InitRuntime added in v1.36.3

func (DisableL1ValidatorTx) InitRuntime(*runtime.Runtime)

func (DisableL1ValidatorTx) InputIDs added in v1.36.3

func (t DisableL1ValidatorTx) InputIDs() set.Set[ids.ID]

func (DisableL1ValidatorTx) Inputs added in v1.36.3

func (t DisableL1ValidatorTx) Inputs() []*lux.TransferableInput

func (DisableL1ValidatorTx) Memo added in v1.36.3

func (t DisableL1ValidatorTx) Memo() []byte

func (DisableL1ValidatorTx) NetworkID added in v1.36.3

func (t DisableL1ValidatorTx) NetworkID() uint32

func (DisableL1ValidatorTx) Outputs added in v1.36.3

func (t DisableL1ValidatorTx) Outputs() []*lux.TransferableOutput

func (*DisableL1ValidatorTx) SetBytes added in v1.36.3

func (t *DisableL1ValidatorTx) SetBytes(b []byte)

func (*DisableL1ValidatorTx) SyntacticVerify

func (tx *DisableL1ValidatorTx) SyntacticVerify(rt *runtime.Runtime) error

func (*DisableL1ValidatorTx) ValidationID

func (tx *DisableL1ValidatorTx) ValidationID() ids.ID

ValidationID is the id of the validator being disabled (offset read).

func (*DisableL1ValidatorTx) Visit

func (tx *DisableL1ValidatorTx) Visit(visitor Visitor) error

type ExportTx

type ExportTx struct {
	// contains filtered or unexported fields
}

ExportTx sends funds to another chain. The struct IS the wire: it embeds the spending envelope and reads its delta fields by offset.

Delta layout (fixed section, after the 77-byte spending envelope):

DestinationChain 32B @ 77   (id: chain to send the funds to)
ExportedOutputs  8B  @ 109  (output list ptr)
OwnerAddrs       8B  @ 117  (shared owner-address array ptr)

func NewExportTx added in v1.36.3

func NewExportTx(base *lux.BaseTx, destinationChain ids.ID, exportedOutputs []*lux.TransferableOutput) (*ExportTx, error)

NewExportTx builds the tx into a fresh zap buffer.

func (ExportTx) BlockchainID added in v1.36.3

func (t ExportTx) BlockchainID() ids.ID

func (ExportTx) Bytes added in v1.36.3

func (t ExportTx) Bytes() []byte

func (*ExportTx) DestinationChain

func (tx *ExportTx) DestinationChain() ids.ID

DestinationChain is the chain the exported funds are sent to (offset read).

func (*ExportTx) ExportedOutputs

func (tx *ExportTx) ExportedOutputs() []*lux.TransferableOutput

ExportedOutputs are the outputs exported to the destination chain.

func (ExportTx) InitRuntime added in v1.22.87

func (ExportTx) InitRuntime(*runtime.Runtime)

func (*ExportTx) Initialize added in v1.22.87

func (tx *ExportTx) Initialize(ctx context.Context) error

Initialize is a no-op; the struct is already the wire.

func (ExportTx) InputIDs added in v1.36.3

func (t ExportTx) InputIDs() set.Set[ids.ID]

func (ExportTx) Inputs added in v1.36.3

func (t ExportTx) Inputs() []*lux.TransferableInput

func (ExportTx) Memo added in v1.36.3

func (t ExportTx) Memo() []byte

func (ExportTx) NetworkID added in v1.36.3

func (t ExportTx) NetworkID() uint32

func (ExportTx) Outputs added in v1.36.3

func (t ExportTx) Outputs() []*lux.TransferableOutput

func (*ExportTx) SetBytes added in v1.36.3

func (t *ExportTx) SetBytes(b []byte)

func (*ExportTx) SyntacticVerify

func (tx *ExportTx) SyntacticVerify(rt *runtime.Runtime) error

SyntacticVerify this transaction is well-formed.

func (*ExportTx) Visit

func (tx *ExportTx) Visit(visitor Visitor) error

type ImportTx

type ImportTx struct {
	// contains filtered or unexported fields
}

ImportTx consumes funds produced on another chain. The struct IS the wire: it embeds the spending envelope and reads its delta fields by offset.

Delta layout (fixed section, after the 77-byte spending envelope):

SourceChain    32B @ 77   (id: chain to consume the funds from)
ImportedInputs 8B  @ 109  (input list ptr)
SigIndices     8B  @ 117  (shared input sig-index array ptr)

func NewImportTx added in v1.36.3

func NewImportTx(base *lux.BaseTx, sourceChain ids.ID, importedInputs []*lux.TransferableInput) (*ImportTx, error)

NewImportTx builds the tx into a fresh zap buffer.

func (ImportTx) BlockchainID added in v1.36.3

func (t ImportTx) BlockchainID() ids.ID

func (ImportTx) Bytes added in v1.36.3

func (t ImportTx) Bytes() []byte

func (*ImportTx) ImportedInputs

func (tx *ImportTx) ImportedInputs() []*lux.TransferableInput

ImportedInputs are the inputs consuming UTXOs produced on the source chain.

func (ImportTx) InitRuntime added in v1.22.87

func (ImportTx) InitRuntime(*runtime.Runtime)

func (*ImportTx) Initialize added in v1.22.87

func (tx *ImportTx) Initialize(ctx context.Context) error

Initialize is a no-op; the struct is already the wire.

func (*ImportTx) InputIDs

func (tx *ImportTx) InputIDs() set.Set[ids.ID]

func (*ImportTx) InputUTXOs

func (tx *ImportTx) InputUTXOs() set.Set[ids.ID]

InputUTXOs returns the UTXOIDs of the imported funds.

func (ImportTx) Inputs added in v1.36.3

func (t ImportTx) Inputs() []*lux.TransferableInput

func (ImportTx) Memo added in v1.36.3

func (t ImportTx) Memo() []byte

func (ImportTx) NetworkID added in v1.36.3

func (t ImportTx) NetworkID() uint32

func (ImportTx) Outputs added in v1.36.3

func (t ImportTx) Outputs() []*lux.TransferableOutput

func (*ImportTx) SetBytes added in v1.36.3

func (t *ImportTx) SetBytes(b []byte)

func (*ImportTx) SourceChain

func (tx *ImportTx) SourceChain() ids.ID

SourceChain is the chain the imported funds are consumed from (offset read).

func (*ImportTx) SyntacticVerify

func (tx *ImportTx) SyntacticVerify(rt *runtime.Runtime) error

SyntacticVerify this transaction is well-formed.

func (*ImportTx) Visit

func (tx *ImportTx) Visit(visitor Visitor) error

type IncreaseL1ValidatorBalanceTx

type IncreaseL1ValidatorBalanceTx struct {
	// contains filtered or unexported fields
}

IncreaseL1ValidatorBalanceTx tops up an L1 validator's continuous-fee balance. The struct IS the wire: it embeds spendingTx (the envelope) and adds two delta fields read by offset.

Wire: zap header + object{ envelope@0..76, ValidationID:32B@77, Balance:u64@109 } (kind=kindIncreaseL1ValidatorBalance).

func NewIncreaseL1ValidatorBalanceTx added in v1.36.3

func NewIncreaseL1ValidatorBalanceTx(base *lux.BaseTx, validationID ids.ID, balance uint64) (*IncreaseL1ValidatorBalanceTx, error)

NewIncreaseL1ValidatorBalanceTx builds the tx into a fresh zap buffer.

func (*IncreaseL1ValidatorBalanceTx) Balance

func (tx *IncreaseL1ValidatorBalanceTx) Balance() uint64

Balance is the amount to add; Balance <= sum($LUX inputs) - sum($LUX outputs) - TxFee (offset read).

func (IncreaseL1ValidatorBalanceTx) BlockchainID added in v1.36.3

func (t IncreaseL1ValidatorBalanceTx) BlockchainID() ids.ID

func (IncreaseL1ValidatorBalanceTx) Bytes added in v1.36.3

func (t IncreaseL1ValidatorBalanceTx) Bytes() []byte

func (IncreaseL1ValidatorBalanceTx) InitRuntime added in v1.36.3

func (IncreaseL1ValidatorBalanceTx) InitRuntime(*runtime.Runtime)

func (IncreaseL1ValidatorBalanceTx) InputIDs added in v1.36.3

func (t IncreaseL1ValidatorBalanceTx) InputIDs() set.Set[ids.ID]

func (IncreaseL1ValidatorBalanceTx) Inputs added in v1.36.3

func (t IncreaseL1ValidatorBalanceTx) Inputs() []*lux.TransferableInput

func (IncreaseL1ValidatorBalanceTx) Memo added in v1.36.3

func (t IncreaseL1ValidatorBalanceTx) Memo() []byte

func (IncreaseL1ValidatorBalanceTx) NetworkID added in v1.36.3

func (t IncreaseL1ValidatorBalanceTx) NetworkID() uint32

func (IncreaseL1ValidatorBalanceTx) Outputs added in v1.36.3

func (t IncreaseL1ValidatorBalanceTx) Outputs() []*lux.TransferableOutput

func (*IncreaseL1ValidatorBalanceTx) SetBytes added in v1.36.3

func (t *IncreaseL1ValidatorBalanceTx) SetBytes(b []byte)

func (*IncreaseL1ValidatorBalanceTx) SyntacticVerify

func (tx *IncreaseL1ValidatorBalanceTx) SyntacticVerify(rt *runtime.Runtime) error

func (*IncreaseL1ValidatorBalanceTx) ValidationID

func (tx *IncreaseL1ValidatorBalanceTx) ValidationID() ids.ID

ValidationID is the id of the validator being topped up (offset read).

func (*IncreaseL1ValidatorBalanceTx) Visit

func (tx *IncreaseL1ValidatorBalanceTx) Visit(visitor Visitor) error

type MockScheduledStaker added in v1.1.11

type MockScheduledStaker struct {
	// contains filtered or unexported fields
}

MockScheduledStaker is a mock of ScheduledStaker interface.

func NewMockScheduledStaker added in v1.1.11

func NewMockScheduledStaker(ctrl *gomock.Controller) *MockScheduledStaker

NewMockScheduledStaker creates a new mock instance.

func (*MockScheduledStaker) ChainID added in v1.22.22

func (m *MockScheduledStaker) ChainID() ids.ID

ChainID mocks base method.

func (*MockScheduledStaker) CurrentPriority added in v1.1.11

func (m *MockScheduledStaker) CurrentPriority() Priority

CurrentPriority mocks base method.

func (*MockScheduledStaker) EXPECT added in v1.1.11

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockScheduledStaker) EndTime added in v1.1.11

func (m *MockScheduledStaker) EndTime() time.Time

EndTime mocks base method.

func (*MockScheduledStaker) NodeID added in v1.1.11

func (m *MockScheduledStaker) NodeID() ids.NodeID

NodeID mocks base method.

func (*MockScheduledStaker) PendingPriority added in v1.1.11

func (m *MockScheduledStaker) PendingPriority() Priority

PendingPriority mocks base method.

func (*MockScheduledStaker) PublicKey added in v1.1.11

func (m *MockScheduledStaker) PublicKey() (*bls.PublicKey, bool, error)

PublicKey mocks base method.

func (*MockScheduledStaker) StartTime added in v1.1.11

func (m *MockScheduledStaker) StartTime() time.Time

StartTime mocks base method.

func (*MockScheduledStaker) Weight added in v1.1.11

func (m *MockScheduledStaker) Weight() uint64

Weight mocks base method.

type MockScheduledStakerMockRecorder added in v1.1.11

type MockScheduledStakerMockRecorder struct {
	// contains filtered or unexported fields
}

MockScheduledStakerMockRecorder is the mock recorder for MockScheduledStaker.

func (*MockScheduledStakerMockRecorder) ChainID added in v1.22.22

ChainID indicates an expected call of ChainID.

func (*MockScheduledStakerMockRecorder) CurrentPriority added in v1.1.11

func (mr *MockScheduledStakerMockRecorder) CurrentPriority() *gomock.Call

CurrentPriority indicates an expected call of CurrentPriority.

func (*MockScheduledStakerMockRecorder) EndTime added in v1.1.11

EndTime indicates an expected call of EndTime.

func (*MockScheduledStakerMockRecorder) NodeID added in v1.1.11

NodeID indicates an expected call of NodeID.

func (*MockScheduledStakerMockRecorder) PendingPriority added in v1.1.11

func (mr *MockScheduledStakerMockRecorder) PendingPriority() *gomock.Call

PendingPriority indicates an expected call of PendingPriority.

func (*MockScheduledStakerMockRecorder) PublicKey added in v1.1.11

func (mr *MockScheduledStakerMockRecorder) PublicKey() *gomock.Call

PublicKey indicates an expected call of PublicKey.

func (*MockScheduledStakerMockRecorder) StartTime added in v1.1.11

func (mr *MockScheduledStakerMockRecorder) StartTime() *gomock.Call

StartTime indicates an expected call of StartTime.

func (*MockScheduledStakerMockRecorder) Weight added in v1.1.11

Weight indicates an expected call of Weight.

type NFTStaker added in v1.16.56

type NFTStaker interface {
	Staker
	GetValidatorNFT() *ValidatorNFTInfo
}

NFTStaker is an interface for stakers that use NFTs for validation

type NetworkValidator added in v1.36.3

type NetworkValidator struct {
	NodeID                types.JSONByteSlice
	Weight                uint64
	Balance               uint64
	Signer                signer.ProofOfPossession
	RemainingBalanceOwner message.PChainOwner
	DeactivationOwner     message.PChainOwner
}

NetworkValidator is a genesis validator value (shared component; encoded into / decoded from the tx buffer).

func (*NetworkValidator) Compare added in v1.36.3

func (v *NetworkValidator) Compare(o *NetworkValidator) int

func (*NetworkValidator) Verify added in v1.36.3

func (v *NetworkValidator) Verify() error

type PermissionlessStaker

type PermissionlessStaker interface {
	Staker

	Outputs() []*lux.TransferableOutput
	Stake() []*lux.TransferableOutput
}

type Priority

type Priority byte
const (
	// Legacy AddDelegatorTx delegators move from pending to current first,
	PrimaryNetworkDelegatorLegacyPendingPriority Priority = iota + 1
	// then primary network validators,
	PrimaryNetworkValidatorPendingPriority
	// then AddPermissionlessDelegatorTx delegators,
	PrimaryNetworkDelegatorPermissionlessPendingPriority
	// then permissionless chain validators,
	ChainPermissionlessValidatorPendingPriority
	// then permissionless chain delegators.
	ChainPermissionlessDelegatorPendingPriority
	// then permissioned chain validators,
	ChainPermissionedValidatorPendingPriority

	// First permissioned chain validators are removed from the current
	// validator set,
	// Invariant: All permissioned stakers must be removed first because they
	//            are removed by the advancement of time. Permissionless stakers
	//            are removed with a RewardValidatorTx after time has advanced.
	ChainPermissionedValidatorCurrentPriority
	// then permissionless chain delegators,
	ChainPermissionlessDelegatorCurrentPriority
	// then permissionless chain validators,
	ChainPermissionlessValidatorCurrentPriority
	// then primary network delegators,
	PrimaryNetworkDelegatorCurrentPriority
	// then primary network validators.
	PrimaryNetworkValidatorCurrentPriority
)

func (Priority) IsCurrent

func (p Priority) IsCurrent() bool

func (Priority) IsCurrentDelegator

func (p Priority) IsCurrentDelegator() bool

func (Priority) IsCurrentValidator

func (p Priority) IsCurrentValidator() bool

func (Priority) IsDelegator

func (p Priority) IsDelegator() bool

func (Priority) IsPending

func (p Priority) IsPending() bool

func (Priority) IsPendingDelegator

func (p Priority) IsPendingDelegator() bool

func (Priority) IsPendingValidator

func (p Priority) IsPendingValidator() bool

func (Priority) IsPermissionedValidator

func (p Priority) IsPermissionedValidator() bool

func (Priority) IsValidator

func (p Priority) IsValidator() bool

type RegisterL1ValidatorTx

type RegisterL1ValidatorTx struct {
	// contains filtered or unexported fields
}

RegisterL1ValidatorTx registers an L1 validator. The struct IS the wire: it embeds the spending envelope and reads its delta fields by offset.

Delta layout (fixed section, after the 77-byte spending envelope):

Balance           u64  @ 77   (Balance <= sum($LUX inputs) - sum($LUX outputs) - TxFee)
ProofOfPossession 96B  @ 85   (fixed, BLS PoP of the key in the Message)
Message           8B   @ 181  (bytes ptr: signed Warp AddressedCall payload)

func NewRegisterL1ValidatorTx added in v1.36.3

func NewRegisterL1ValidatorTx(base *lux.BaseTx, balance uint64, proofOfPossession [bls.SignatureLen]byte, message []byte) (*RegisterL1ValidatorTx, error)

NewRegisterL1ValidatorTx builds the tx into a fresh zap buffer.

func (*RegisterL1ValidatorTx) Balance

func (tx *RegisterL1ValidatorTx) Balance() uint64

Balance is the initial balance funding this L1 validator (offset read).

func (RegisterL1ValidatorTx) BlockchainID added in v1.36.3

func (t RegisterL1ValidatorTx) BlockchainID() ids.ID

func (RegisterL1ValidatorTx) Bytes added in v1.36.3

func (t RegisterL1ValidatorTx) Bytes() []byte

func (RegisterL1ValidatorTx) InitRuntime added in v1.36.3

func (RegisterL1ValidatorTx) InitRuntime(*runtime.Runtime)

func (RegisterL1ValidatorTx) InputIDs added in v1.36.3

func (t RegisterL1ValidatorTx) InputIDs() set.Set[ids.ID]

func (RegisterL1ValidatorTx) Inputs added in v1.36.3

func (t RegisterL1ValidatorTx) Inputs() []*lux.TransferableInput

func (RegisterL1ValidatorTx) Memo added in v1.36.3

func (t RegisterL1ValidatorTx) Memo() []byte

func (*RegisterL1ValidatorTx) Message

func (tx *RegisterL1ValidatorTx) Message() []byte

Message is the signed Warp message carrying the RegisterL1Validator payload.

func (RegisterL1ValidatorTx) NetworkID added in v1.36.3

func (t RegisterL1ValidatorTx) NetworkID() uint32

func (RegisterL1ValidatorTx) Outputs added in v1.36.3

func (t RegisterL1ValidatorTx) Outputs() []*lux.TransferableOutput

func (*RegisterL1ValidatorTx) ProofOfPossession

func (tx *RegisterL1ValidatorTx) ProofOfPossession() [bls.SignatureLen]byte

ProofOfPossession is the BLS PoP of the key included in the Message.

func (*RegisterL1ValidatorTx) SetBytes added in v1.36.3

func (t *RegisterL1ValidatorTx) SetBytes(b []byte)

func (*RegisterL1ValidatorTx) SyntacticVerify

func (tx *RegisterL1ValidatorTx) SyntacticVerify(rt *runtime.Runtime) error

func (*RegisterL1ValidatorTx) Visit

func (tx *RegisterL1ValidatorTx) Visit(visitor Visitor) error

type RemoveChainValidatorTx added in v1.22.22

type RemoveChainValidatorTx struct {
	// contains filtered or unexported fields
}

RemoveChainValidatorTx removes a validator from a chain. The struct IS the wire: it embeds spendingTx (the envelope) and adds the node id, chain id, and an auth sig-index list.

Wire: zap header + object{ envelope@0..76, NodeID:20B@77, Chain:32B@97, ChainAuth:listptr@129 } (kind=kindRemoveChainValidator).

func NewRemoveChainValidatorTx added in v1.36.3

func NewRemoveChainValidatorTx(base *lux.BaseTx, nodeID ids.NodeID, chain ids.ID, chainAuth verify.Verifiable) (*RemoveChainValidatorTx, error)

NewRemoveChainValidatorTx builds the tx into a fresh zap buffer.

func (RemoveChainValidatorTx) BlockchainID added in v1.36.3

func (t RemoveChainValidatorTx) BlockchainID() ids.ID

func (RemoveChainValidatorTx) Bytes added in v1.36.3

func (t RemoveChainValidatorTx) Bytes() []byte

func (*RemoveChainValidatorTx) Chain added in v1.22.22

func (tx *RemoveChainValidatorTx) Chain() ids.ID

Chain is the chain to remove the node from (offset read).

func (*RemoveChainValidatorTx) ChainAuth added in v1.22.22

func (tx *RemoveChainValidatorTx) ChainAuth() verify.Verifiable

ChainAuth proves the issuer's right to remove the node from the chain (offset read).

func (RemoveChainValidatorTx) InitRuntime added in v1.36.3

func (RemoveChainValidatorTx) InitRuntime(*runtime.Runtime)

func (*RemoveChainValidatorTx) Initialize added in v1.22.87

func (tx *RemoveChainValidatorTx) Initialize(context.Context) error

func (RemoveChainValidatorTx) InputIDs added in v1.36.3

func (t RemoveChainValidatorTx) InputIDs() set.Set[ids.ID]

func (RemoveChainValidatorTx) Inputs added in v1.36.3

func (t RemoveChainValidatorTx) Inputs() []*lux.TransferableInput

func (RemoveChainValidatorTx) Memo added in v1.36.3

func (t RemoveChainValidatorTx) Memo() []byte

func (RemoveChainValidatorTx) NetworkID added in v1.36.3

func (t RemoveChainValidatorTx) NetworkID() uint32

func (*RemoveChainValidatorTx) NodeID added in v1.22.22

func (tx *RemoveChainValidatorTx) NodeID() ids.NodeID

NodeID is the node to remove from the chain (offset read).

func (RemoveChainValidatorTx) Outputs added in v1.36.3

func (t RemoveChainValidatorTx) Outputs() []*lux.TransferableOutput

func (*RemoveChainValidatorTx) SetBytes added in v1.36.3

func (t *RemoveChainValidatorTx) SetBytes(b []byte)

func (*RemoveChainValidatorTx) SyntacticVerify added in v1.22.22

func (tx *RemoveChainValidatorTx) SyntacticVerify(rt *runtime.Runtime) error

func (*RemoveChainValidatorTx) Visit added in v1.22.22

func (tx *RemoveChainValidatorTx) Visit(visitor Visitor) error

type RewardValidatorTx

type RewardValidatorTx struct {
	// contains filtered or unexported fields
}

RewardValidatorTx is a transaction that represents a proposal to remove a validator that is currently validating from the validator set.

If this transaction is accepted and the next block accepted is a Commit block, the validator is removed and the address that the validator specified receives the staked LUX as well as a validating reward.

If this transaction is accepted and the next block accepted is an Abort block, the validator is removed and the address that the validator specified receives the staked LUX but no reward.

The struct IS the wire: it holds the zap buffer and reads its field by offset. No codec, no marshal.

Wire: zap header + object{ kind:u8@0, TxID:32B@1 }.

func NewRewardValidatorTx added in v1.36.3

func NewRewardValidatorTx(txID ids.ID) *RewardValidatorTx

NewRewardValidatorTx builds the tx into a fresh zap buffer — the one place a field becomes bytes (construction, not serialization).

func (*RewardValidatorTx) Bytes

func (tx *RewardValidatorTx) Bytes() []byte

Bytes returns the underlying zap buffer literally — no encode.

func (*RewardValidatorTx) InitRuntime added in v1.22.87

func (*RewardValidatorTx) InitRuntime(*runtime.Runtime)

func (*RewardValidatorTx) Initialize added in v1.14.2

func (tx *RewardValidatorTx) Initialize(context.Context) error

func (*RewardValidatorTx) InputIDs

func (*RewardValidatorTx) InputIDs() set.Set[ids.ID]

func (*RewardValidatorTx) Outputs

func (*RewardValidatorTx) SetBytes

func (tx *RewardValidatorTx) SetBytes(b []byte)

SetBytes wraps b as this tx's buffer (zero copy); the Parse dispatch uses it.

func (*RewardValidatorTx) SyntacticVerify

func (*RewardValidatorTx) SyntacticVerify(*runtime.Runtime) error

func (*RewardValidatorTx) TxID

func (tx *RewardValidatorTx) TxID() ids.ID

TxID is the id of the tx that created the delegator/validator being removed/rewarded (offset read).

func (*RewardValidatorTx) Visit

func (tx *RewardValidatorTx) Visit(visitor Visitor) error

type RuntimeInitializable added in v1.22.87

type RuntimeInitializable interface {
	InitRuntime(rt *runtime.Runtime)
}

RuntimeInitializable defines the interface for initializing context

type ScheduledStaker

type ScheduledStaker interface {
	Staker
	StartTime() time.Time
	PendingPriority() Priority
}

type SetL1ValidatorWeightTx

type SetL1ValidatorWeightTx struct {
	// contains filtered or unexported fields
}

SetL1ValidatorWeightTx carries a signed Warp message that sets an L1 validator's weight. The struct IS the wire: it embeds spendingTx (the envelope) and adds the Warp Message as a variable-length bytes tail.

Wire: zap header + object{ envelope@0..76, Message:bytesptr@77 } (kind=kindSetL1ValidatorWeight).

func NewSetL1ValidatorWeightTx added in v1.36.3

func NewSetL1ValidatorWeightTx(base *lux.BaseTx, message []byte) (*SetL1ValidatorWeightTx, error)

NewSetL1ValidatorWeightTx builds the tx into a fresh zap buffer.

func (SetL1ValidatorWeightTx) BlockchainID added in v1.36.3

func (t SetL1ValidatorWeightTx) BlockchainID() ids.ID

func (SetL1ValidatorWeightTx) Bytes added in v1.36.3

func (t SetL1ValidatorWeightTx) Bytes() []byte

func (SetL1ValidatorWeightTx) InitRuntime added in v1.36.3

func (SetL1ValidatorWeightTx) InitRuntime(*runtime.Runtime)

func (SetL1ValidatorWeightTx) InputIDs added in v1.36.3

func (t SetL1ValidatorWeightTx) InputIDs() set.Set[ids.ID]

func (SetL1ValidatorWeightTx) Inputs added in v1.36.3

func (t SetL1ValidatorWeightTx) Inputs() []*lux.TransferableInput

func (SetL1ValidatorWeightTx) Memo added in v1.36.3

func (t SetL1ValidatorWeightTx) Memo() []byte

func (*SetL1ValidatorWeightTx) Message

func (tx *SetL1ValidatorWeightTx) Message() []byte

Message is the signed Warp message (an AddressedCall carrying the SetL1ValidatorWeight payload). Returns a copy so callers can't mutate the buffer.

func (SetL1ValidatorWeightTx) NetworkID added in v1.36.3

func (t SetL1ValidatorWeightTx) NetworkID() uint32

func (SetL1ValidatorWeightTx) Outputs added in v1.36.3

func (t SetL1ValidatorWeightTx) Outputs() []*lux.TransferableOutput

func (*SetL1ValidatorWeightTx) SetBytes added in v1.36.3

func (t *SetL1ValidatorWeightTx) SetBytes(b []byte)

func (*SetL1ValidatorWeightTx) SyntacticVerify

func (tx *SetL1ValidatorWeightTx) SyntacticVerify(rt *runtime.Runtime) error

func (*SetL1ValidatorWeightTx) Visit

func (tx *SetL1ValidatorWeightTx) Visit(visitor Visitor) error

type Staker

type Staker interface {
	ChainID() ids.ID
	NodeID() ids.NodeID
	// PublicKey returns the BLS public key registered by this transaction. If
	// there was no key registered by this transaction, it will return false.
	PublicKey() (*bls.PublicKey, bool, error)
	EndTime() time.Time
	Weight() uint64
	CurrentPriority() Priority
}

type StakerTx

type StakerTx interface {
	UnsignedTx
	Staker
}

type TransferChainOwnershipTx added in v1.22.22

type TransferChainOwnershipTx struct {
	// contains filtered or unexported fields
}

TransferChainOwnershipTx re-owns a chain. The struct IS the wire: it embeds the spending envelope and reads its delta fields by offset.

Delta layout (fixed section, after the 77-byte spending envelope):

Chain           32B @ 77   (id)
ChainAuth       8B  @ 109  (auth ptr: sig-index list)
Owner.Threshold u32 @ 117
Owner.Locktime  u64 @ 121
Owner.Addrs     8B  @ 129  (addr list ptr)

func NewTransferChainOwnershipTx added in v1.36.3

func NewTransferChainOwnershipTx(base *lux.BaseTx, chain ids.ID, chainAuth verify.Verifiable, owner fx.Owner) (*TransferChainOwnershipTx, error)

NewTransferChainOwnershipTx builds the tx into a fresh zap buffer.

func (TransferChainOwnershipTx) BlockchainID added in v1.36.3

func (t TransferChainOwnershipTx) BlockchainID() ids.ID

func (TransferChainOwnershipTx) Bytes added in v1.36.3

func (t TransferChainOwnershipTx) Bytes() []byte

func (*TransferChainOwnershipTx) Chain added in v1.22.22

func (tx *TransferChainOwnershipTx) Chain() ids.ID

Chain is the ID of the chain this tx is modifying (offset read).

func (*TransferChainOwnershipTx) ChainAuth added in v1.22.22

func (tx *TransferChainOwnershipTx) ChainAuth() verify.Verifiable

ChainAuth proves the issuer has the right to modify the chain.

func (TransferChainOwnershipTx) InitRuntime added in v1.22.87

func (TransferChainOwnershipTx) InitRuntime(*runtime.Runtime)

func (*TransferChainOwnershipTx) Initialize added in v1.22.87

func (tx *TransferChainOwnershipTx) Initialize(ctx context.Context) error

Initialize is a no-op; the struct is already the wire.

func (TransferChainOwnershipTx) InputIDs added in v1.36.3

func (t TransferChainOwnershipTx) InputIDs() set.Set[ids.ID]

func (TransferChainOwnershipTx) Inputs added in v1.36.3

func (t TransferChainOwnershipTx) Inputs() []*lux.TransferableInput

func (TransferChainOwnershipTx) Memo added in v1.36.3

func (t TransferChainOwnershipTx) Memo() []byte

func (TransferChainOwnershipTx) NetworkID added in v1.36.3

func (t TransferChainOwnershipTx) NetworkID() uint32

func (TransferChainOwnershipTx) Outputs added in v1.36.3

func (t TransferChainOwnershipTx) Outputs() []*lux.TransferableOutput

func (*TransferChainOwnershipTx) Owner added in v1.22.22

func (tx *TransferChainOwnershipTx) Owner() fx.Owner

Owner is who is now authorized to manage this chain.

func (*TransferChainOwnershipTx) SetBytes added in v1.36.3

func (t *TransferChainOwnershipTx) SetBytes(b []byte)

func (*TransferChainOwnershipTx) SyntacticVerify added in v1.22.22

func (tx *TransferChainOwnershipTx) SyntacticVerify(rt *runtime.Runtime) error

func (*TransferChainOwnershipTx) Visit added in v1.22.22

func (tx *TransferChainOwnershipTx) Visit(visitor Visitor) error

type TransformChainTx added in v1.22.22

type TransformChainTx struct {
	// contains filtered or unexported fields
}

TransformChainTx transforms a chain into a permissionless one. The struct IS the wire: it embeds the spending envelope and reads its delta fields by offset.

Delta layout (fixed section, after the 77-byte spending envelope):

Chain                    32B @ 77
AssetID                  32B @ 109
InitialSupply            u64 @ 141
MaximumSupply            u64 @ 149
MinConsumptionRate       u64 @ 157
MaxConsumptionRate       u64 @ 165
MinValidatorStake        u64 @ 173
MaxValidatorStake        u64 @ 181
MinStakeDuration         u32 @ 189
MaxStakeDuration         u32 @ 193
MinDelegationFee         u32 @ 197
MinDelegatorStake        u64 @ 201
MaxValidatorWeightFactor u8  @ 209
UptimeRequirement        u32 @ 210
ChainAuth                8B  @ 214  (auth ptr: sig-index list)

func NewTransformChainTx added in v1.36.3

func NewTransformChainTx(
	base *lux.BaseTx,
	chain ids.ID,
	assetID ids.ID,
	initialSupply uint64,
	maximumSupply uint64,
	minConsumptionRate uint64,
	maxConsumptionRate uint64,
	minValidatorStake uint64,
	maxValidatorStake uint64,
	minStakeDuration uint32,
	maxStakeDuration uint32,
	minDelegationFee uint32,
	minDelegatorStake uint64,
	maxValidatorWeightFactor byte,
	uptimeRequirement uint32,
	chainAuth verify.Verifiable,
) (*TransformChainTx, error)

NewTransformChainTx builds the tx into a fresh zap buffer.

func (*TransformChainTx) AssetID added in v1.22.22

func (tx *TransformChainTx) AssetID() ids.ID

AssetID is the asset to use when staking on the chain.

func (TransformChainTx) BlockchainID added in v1.36.3

func (t TransformChainTx) BlockchainID() ids.ID

func (TransformChainTx) Bytes added in v1.36.3

func (t TransformChainTx) Bytes() []byte

func (*TransformChainTx) Chain added in v1.22.22

func (tx *TransformChainTx) Chain() ids.ID

Chain is the ID of the chain to transform (offset read).

func (*TransformChainTx) ChainAuth added in v1.22.22

func (tx *TransformChainTx) ChainAuth() verify.Verifiable

ChainAuth authorizes this transformation.

func (TransformChainTx) InitRuntime added in v1.36.3

func (TransformChainTx) InitRuntime(*runtime.Runtime)

func (*TransformChainTx) InitialSupply added in v1.22.22

func (tx *TransformChainTx) InitialSupply() uint64

InitialSupply is the amount to initially specify as the current supply.

func (*TransformChainTx) Initialize added in v1.22.87

func (tx *TransformChainTx) Initialize(ctx context.Context) error

Initialize is a no-op; the struct is already the wire.

func (TransformChainTx) InputIDs added in v1.36.3

func (t TransformChainTx) InputIDs() set.Set[ids.ID]

func (TransformChainTx) Inputs added in v1.36.3

func (t TransformChainTx) Inputs() []*lux.TransferableInput

func (*TransformChainTx) MaxConsumptionRate added in v1.22.22

func (tx *TransformChainTx) MaxConsumptionRate() uint64

MaxConsumptionRate is the rate to allocate funds if the validator's stake duration is equal to the minting period.

func (*TransformChainTx) MaxStakeDuration added in v1.22.22

func (tx *TransformChainTx) MaxStakeDuration() uint32

MaxStakeDuration is the maximum number of seconds a staker can stake for.

func (*TransformChainTx) MaxValidatorStake added in v1.22.22

func (tx *TransformChainTx) MaxValidatorStake() uint64

MaxValidatorStake is the maximum amount of funds a single validator can be allocated, including delegated funds.

func (*TransformChainTx) MaxValidatorWeightFactor added in v1.22.22

func (tx *TransformChainTx) MaxValidatorWeightFactor() byte

MaxValidatorWeightFactor is the factor which calculates the maximum amount of delegation a validator can receive.

func (*TransformChainTx) MaximumSupply added in v1.22.22

func (tx *TransformChainTx) MaximumSupply() uint64

MaximumSupply is the amount to specify as the maximum token supply.

func (TransformChainTx) Memo added in v1.36.3

func (t TransformChainTx) Memo() []byte

func (*TransformChainTx) MinConsumptionRate added in v1.22.22

func (tx *TransformChainTx) MinConsumptionRate() uint64

MinConsumptionRate is the rate to allocate funds if the validator's stake duration is 0.

func (*TransformChainTx) MinDelegationFee added in v1.22.22

func (tx *TransformChainTx) MinDelegationFee() uint32

MinDelegationFee is the minimum percentage a validator must charge a delegator for delegating.

func (*TransformChainTx) MinDelegatorStake added in v1.22.22

func (tx *TransformChainTx) MinDelegatorStake() uint64

MinDelegatorStake is the minimum amount of funds required to become a delegator.

func (*TransformChainTx) MinStakeDuration added in v1.22.22

func (tx *TransformChainTx) MinStakeDuration() uint32

MinStakeDuration is the minimum number of seconds a staker can stake for.

func (*TransformChainTx) MinValidatorStake added in v1.22.22

func (tx *TransformChainTx) MinValidatorStake() uint64

MinValidatorStake is the minimum amount of funds required to become a validator.

func (TransformChainTx) NetworkID added in v1.36.3

func (t TransformChainTx) NetworkID() uint32

func (TransformChainTx) Outputs added in v1.36.3

func (t TransformChainTx) Outputs() []*lux.TransferableOutput

func (*TransformChainTx) SetBytes added in v1.36.3

func (t *TransformChainTx) SetBytes(b []byte)

func (*TransformChainTx) SyntacticVerify added in v1.22.22

func (tx *TransformChainTx) SyntacticVerify(rt *runtime.Runtime) error

func (*TransformChainTx) UptimeRequirement added in v1.22.22

func (tx *TransformChainTx) UptimeRequirement() uint32

UptimeRequirement is the minimum percentage a validator must be online and responsive to receive a reward.

func (*TransformChainTx) Visit added in v1.22.22

func (tx *TransformChainTx) Visit(visitor Visitor) error

type Tx

type Tx struct {
	// Unsigned is the tx body (a zap-backed UnsignedTx).
	Unsigned UnsignedTx `json:"unsignedTx"`

	// Creds are the credentials authorizing the tx.
	Creds []verify.Verifiable `json:"credentials"`

	TxID ids.ID `json:"id"`
	// contains filtered or unexported fields
}

Tx is a signed transaction: an unsigned tx (itself a zap buffer) plus its credentials. The signed bytes are unsigned ‖ creds; there is no codec.

func NewSigned

func NewSigned(unsigned UnsignedTx, signers [][]*secp256k1.PrivateKey) (*Tx, error)

NewSigned builds a signed tx from an unsigned tx (already a zap buffer) and signs it.

func Parse

func Parse(signedBytes []byte) (*Tx, error)

Parse wraps signed bytes zero-copy: the leading self-delimiting zap buffer is the unsigned body; any remainder is the credential buffer. TxID = hash(signedBytes), no re-encoding.

func (*Tx) Bytes

func (tx *Tx) Bytes() []byte

func (*Tx) GossipID

func (tx *Tx) GossipID() ids.ID

func (*Tx) ID

func (tx *Tx) ID() ids.ID

func (*Tx) Initialize

func (tx *Tx) Initialize() error

Initialize binds the tx's cached bytes and TxID from its Unsigned buffer and Creds. Used for txs built fresh in-process (wallet, block builder) whose Unsigned buffer is already set. For txs from disk/wire use Parse.

func (*Tx) InputIDs

func (tx *Tx) InputIDs() set.Set[ids.ID]

InputIDs returns the set of inputs this transaction consumes.

func (*Tx) SetBytes

func (tx *Tx) SetBytes(signedBytes []byte)

SetBytes binds the exact signed bytes and derives TxID = hash(signedBytes).

func (*Tx) Sign

func (tx *Tx) Sign(signers [][]*secp256k1.PrivateKey) error

Sign attaches credentials for the provided signer sets over the unsigned bytes, then binds signed bytes = unsigned ‖ creds.

func (*Tx) Size

func (tx *Tx) Size() int

func (*Tx) SyntacticVerify

func (tx *Tx) SyntacticVerify(rt *runtime.Runtime) error

func (*Tx) UTXOs

func (tx *Tx) UTXOs() []*lux.UTXO

UTXOs returns the UTXOs this transaction produces.

type UnsignedTx

type UnsignedTx interface {
	// RuntimeInitializable is required for both platformvm and exchangevm
	// transaction types to share initialization logic.
	RuntimeInitializable
	secp256k1fx.UnsignedTx
	SetBytes(unsignedBytes []byte)

	// InputIDs returns the set of inputs this transaction consumes
	InputIDs() set.Set[ids.ID]

	Outputs() []*lux.TransferableOutput

	// Attempts to verify this transaction without any provided state.
	SyntacticVerify(rt *runtime.Runtime) error

	// Visit calls [visitor] with this transaction's concrete type
	Visit(visitor Visitor) error
}

UnsignedTx is an unsigned transaction

type Validator

type Validator struct {
	// Node ID of the validator
	NodeID ids.NodeID `serialize:"true" json:"nodeID"`

	// Unix time this validator starts validating
	Start uint64 `serialize:"true" json:"start"`

	// Unix time this validator stops validating
	End uint64 `serialize:"true" json:"end"`

	// Weight of this validator used when sampling
	Wght uint64 `serialize:"true" json:"weight"`
}

Validator is a validator.

func (*Validator) EndTime

func (v *Validator) EndTime() time.Time

EndTime is the time that this validator will leave the validator set

func (*Validator) StartTime

func (v *Validator) StartTime() time.Time

StartTime is the time that this validator will enter the validator set

func (*Validator) Verify

func (v *Validator) Verify() error

Verify validates the ID for this validator

func (*Validator) Weight

func (v *Validator) Weight() uint64

Weight is this validator's weight when sampling

type ValidatorNFTInfo added in v1.16.56

type ValidatorNFTInfo struct {
	ContractAddress string `json:"contractAddress"`
	TokenID         uint64 `json:"tokenId"`
	CollectionName  string `json:"collectionName"`
}

ValidatorNFTInfo contains NFT information for validator staking

type ValidatorTx

type ValidatorTx interface {
	UnsignedTx
	PermissionlessStaker

	ValidationRewardsOwner() fx.Owner
	DelegationRewardsOwner() fx.Owner
	Shares() uint32
}

ValidatorTx defines the interface for a validator transaction that supports delegation.

type Visitor

type Visitor interface {
	AddValidatorTx(*AddValidatorTx) error
	AddChainValidatorTx(*AddChainValidatorTx) error
	AddDelegatorTx(*AddDelegatorTx) error
	CreateNetworkTx(*CreateNetworkTx) error
	ConvertNetworkTx(*ConvertNetworkTx) error
	CreateChainTx(*CreateChainTx) error
	ImportTx(*ImportTx) error
	ExportTx(*ExportTx) error
	AdvanceTimeTx(*AdvanceTimeTx) error
	RewardValidatorTx(*RewardValidatorTx) error

	RemoveChainValidatorTx(*RemoveChainValidatorTx) error
	TransformChainTx(*TransformChainTx) error
	AddPermissionlessValidatorTx(*AddPermissionlessValidatorTx) error
	AddPermissionlessDelegatorTx(*AddPermissionlessDelegatorTx) error

	TransferChainOwnershipTx(*TransferChainOwnershipTx) error
	BaseTx(*BaseTx) error

	RegisterL1ValidatorTx(*RegisterL1ValidatorTx) error
	SetL1ValidatorWeightTx(*SetL1ValidatorWeightTx) error
	IncreaseL1ValidatorBalanceTx(*IncreaseL1ValidatorBalanceTx) error
	DisableL1ValidatorTx(*DisableL1ValidatorTx) error
}

Allow vm to execute custom logic against the underlying transaction types.

Directories

Path Synopsis
Package bench holds the reflection codec-vs-native-ZAP benchmark harness for the platformvm txs.
Package bench holds the reflection codec-vs-native-ZAP benchmark harness for the platformvm txs.
Package builder is a generated GoMock package.
Package builder is a generated GoMock package.
Package fee implements gas complexity calculations for platform transactions.
Package fee implements gas complexity calculations for platform transactions.
Package mempool is a generated GoMock package.
Package mempool is a generated GoMock package.
mempoolmock
Package mempoolmock is a generated GoMock package.
Package mempoolmock is a generated GoMock package.
Package txsmock is a generated GoMock package.
Package txsmock is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL