47 lines
2.5 KiB
Go
47 lines
2.5 KiB
Go
// Copyright (c) 2017-2026 Lethean (https://lt.hn)
|
|
//
|
|
// Licensed under the European Union Public Licence (EUPL) version 1.2.
|
|
// SPDX-License-Identifier: EUPL-1.2
|
|
|
|
package consensus
|
|
|
|
import "errors"
|
|
|
|
// Sentinel errors for consensus validation failures.
|
|
var (
|
|
// Transaction structural errors.
|
|
ErrTxTooLarge = errors.New("consensus: transaction too large")
|
|
ErrNoInputs = errors.New("consensus: transaction has no inputs")
|
|
ErrTooManyInputs = errors.New("consensus: transaction exceeds max inputs")
|
|
ErrInvalidInputType = errors.New("consensus: unsupported input type")
|
|
ErrNoOutputs = errors.New("consensus: transaction has no outputs")
|
|
ErrTooFewOutputs = errors.New("consensus: transaction below min outputs")
|
|
ErrTooManyOutputs = errors.New("consensus: transaction exceeds max outputs")
|
|
ErrInvalidOutput = errors.New("consensus: invalid output")
|
|
ErrDuplicateKeyImage = errors.New("consensus: duplicate key image in transaction")
|
|
ErrInvalidExtra = errors.New("consensus: invalid extra field")
|
|
ErrTxVersionInvalid = errors.New("consensus: invalid transaction version for current hardfork")
|
|
ErrPreHardforkFreeze = errors.New("consensus: non-coinbase transaction rejected during pre-hardfork freeze")
|
|
|
|
// Transaction economic errors.
|
|
ErrInputOverflow = errors.New("consensus: input amount overflow")
|
|
ErrOutputOverflow = errors.New("consensus: output amount overflow")
|
|
ErrNegativeFee = errors.New("consensus: outputs exceed inputs")
|
|
|
|
// Block errors.
|
|
ErrBlockTooLarge = errors.New("consensus: block exceeds max size")
|
|
ErrBlockMajorVersion = errors.New("consensus: invalid block major version for height")
|
|
ErrTimestampFuture = errors.New("consensus: block timestamp too far in future")
|
|
ErrTimestampOld = errors.New("consensus: block timestamp below median")
|
|
ErrMinerTxInputs = errors.New("consensus: invalid miner transaction inputs")
|
|
ErrMinerTxHeight = errors.New("consensus: miner transaction height mismatch")
|
|
ErrMinerTxVersion = errors.New("consensus: invalid miner transaction version for current hardfork")
|
|
ErrMinerTxUnlock = errors.New("consensus: miner transaction unlock time invalid")
|
|
ErrRewardMismatch = errors.New("consensus: block reward mismatch")
|
|
ErrMinerTxProofs = errors.New("consensus: miner transaction proof count invalid")
|
|
|
|
// ErrBlockVersion is an alias for ErrBlockMajorVersion, used by
|
|
// checkBlockVersion when the block major version does not match
|
|
// the expected version for the height in the hardfork schedule.
|
|
ErrBlockVersion = ErrBlockMajorVersion
|
|
)
|