mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-23 07:16:47 +00:00

* [NOD-1451] Implement block validator * [NOD-1451] Implement block validator * [NOD-1451] Fix merge errors * [NOD-1451] Implement block validator * [NOD-1451] Implement checkTransactionInIsolation * [NOD-1451] Copy txscript to validator * [NOD-1451] Change txscript to new design * [NOD-1451] Add checkTransactionInContext * [NOD-1451] Add checkBlockSize * [NOD-1451] Add error handling * [NOD-1451] Implement checkTransactionInContext * [NOD-1451] Add checkTransactionMass placeholder * [NOD-1451] Finish validators * [NOD-1451] Add comments and stringers * [NOD-1451] Return model.TransactionValidator interface * [NOD-1451] Premake rule errors for each "code" * [NOD-1451] Populate transaction mass * [NOD-1451] Renmae functions * [NOD-1451] Always use skipPow=false * [NOD-1451] Renames * [NOD-1451] Remove redundant types from WriteElement * [NOD-1451] Fix error message * [NOD-1451] Add checkTransactionPayload * [NOD-1451] Add ValidateProofOfWorkAndDifficulty to block validator interface * [NOD-1451] Move stringers to model * [NOD-1451] Fix error message
20 lines
951 B
Go
20 lines
951 B
Go
package transactionhelper
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
|
"github.com/kaspanet/kaspad/domain/consensus/utils/subnetworks"
|
|
)
|
|
|
|
// CoinbaseTransactionIndex is the index of the coinbase transaction in every block
|
|
const CoinbaseTransactionIndex = 0
|
|
|
|
// IsCoinBase determines whether or not a transaction is a coinbase transaction. A coinbase
|
|
// transaction is a special transaction created by miners that distributes fees and block subsidy
|
|
// to the previous blocks' miners, and to specify the scriptPubKey that will be used to pay the current
|
|
// miner in future blocks. Each input of the coinbase transaction should set index to maximum
|
|
// value and reference the relevant block id, instead of previous transaction id.
|
|
func IsCoinBase(tx *externalapi.DomainTransaction) bool {
|
|
// A coinbase transaction must have subnetwork id SubnetworkIDCoinbase
|
|
return tx.SubnetworkID == subnetworks.SubnetworkIDCoinbase
|
|
}
|