go-blockchain/consensus/errors.go
Virgil 5789325690 fix(blockchain): complete AX v0.8.0 polish pass
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 16:58:23 +00:00

71 lines
3.6 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 "dappco.re/go/core"
// Sentinel errors for consensus validation failures.
var (
// Transaction structural errors.
// Usage: value := consensus.ErrTxTooLarge
ErrTxTooLarge = core.E("", "consensus: transaction too large", nil)
// Usage: value := consensus.ErrNoInputs
ErrNoInputs = core.E("", "consensus: transaction has no inputs", nil)
// Usage: value := consensus.ErrTooManyInputs
ErrTooManyInputs = core.E("", "consensus: transaction exceeds max inputs", nil)
// Usage: value := consensus.ErrInvalidInputType
ErrInvalidInputType = core.E("", "consensus: unsupported input type", nil)
// Usage: value := consensus.ErrNoOutputs
ErrNoOutputs = core.E("", "consensus: transaction has no outputs", nil)
// Usage: value := consensus.ErrTooFewOutputs
ErrTooFewOutputs = core.E("", "consensus: transaction below min outputs", nil)
// Usage: value := consensus.ErrTooManyOutputs
ErrTooManyOutputs = core.E("", "consensus: transaction exceeds max outputs", nil)
// Usage: value := consensus.ErrInvalidOutput
ErrInvalidOutput = core.E("", "consensus: invalid output", nil)
// Usage: value := consensus.ErrDuplicateKeyImage
ErrDuplicateKeyImage = core.E("", "consensus: duplicate key image in transaction", nil)
// Usage: value := consensus.ErrInvalidExtra
ErrInvalidExtra = core.E("", "consensus: invalid extra field", nil)
// Usage: value := consensus.ErrTxVersionInvalid
ErrTxVersionInvalid = core.E("", "consensus: invalid transaction version for current hardfork", nil)
// Usage: value := consensus.ErrPreHardforkFreeze
ErrPreHardforkFreeze = core.E("", "consensus: non-coinbase transaction rejected during pre-hardfork freeze", nil)
// Transaction economic errors.
// Usage: value := consensus.ErrInputOverflow
ErrInputOverflow = core.E("", "consensus: input amount overflow", nil)
// Usage: value := consensus.ErrOutputOverflow
ErrOutputOverflow = core.E("", "consensus: output amount overflow", nil)
// Usage: value := consensus.ErrNegativeFee
ErrNegativeFee = core.E("", "consensus: outputs exceed inputs", nil)
// Block errors.
// Usage: value := consensus.ErrBlockTooLarge
ErrBlockTooLarge = core.E("", "consensus: block exceeds max size", nil)
// Usage: value := consensus.ErrBlockMajorVersion
ErrBlockMajorVersion = core.E("", "consensus: invalid block major version for height", nil)
// Usage: value := consensus.ErrTimestampFuture
ErrTimestampFuture = core.E("", "consensus: block timestamp too far in future", nil)
// Usage: value := consensus.ErrTimestampOld
ErrTimestampOld = core.E("", "consensus: block timestamp below median", nil)
// Usage: value := consensus.ErrMinerTxInputs
ErrMinerTxInputs = core.E("", "consensus: invalid miner transaction inputs", nil)
// Usage: value := consensus.ErrMinerTxHeight
ErrMinerTxHeight = core.E("", "consensus: miner transaction height mismatch", nil)
// Usage: value := consensus.ErrMinerTxUnlock
ErrMinerTxUnlock = core.E("", "consensus: miner transaction unlock time invalid", nil)
// Usage: value := consensus.ErrRewardMismatch
ErrRewardMismatch = core.E("", "consensus: block reward mismatch", nil)
// Usage: value := consensus.ErrMinerTxProofs
ErrMinerTxProofs = core.E("", "consensus: miner transaction proof count invalid", nil)
// 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.
// Usage: value := consensus.ErrBlockVersion
ErrBlockVersion = ErrBlockMajorVersion
)