Elichai Turkel d3ede3a46f
Add new ErrMissingTxOut and ErrInvalidTransactionsInNewBlock errors (#972)
* Add new ErrMissingTxOut error

* Add tests for ruleError wrapping

* Update consensus to use new ErrMissingTxOut type where appropriate

* Add new ErrInvalidTransactionsInNewBlock error

* Add wrapping tests for ErrInvalidTransactionsInNewBlock

* Fix Review suggestions

* Fix broken serialization(add pointer redirection)
2020-10-29 16:59:00 +02:00

56 lines
1.2 KiB
Go

package externalapi
import (
"encoding/hex"
"fmt"
)
// DomainTransaction represents a Kaspa transaction
type DomainTransaction struct {
Version int32
Inputs []*DomainTransactionInput
Outputs []*DomainTransactionOutput
LockTime uint64
SubnetworkID DomainSubnetworkID
Gas uint64
PayloadHash DomainHash
Payload []byte
Fee uint64
Mass uint64
}
// DomainTransactionInput represents a Kaspa transaction input
type DomainTransactionInput struct {
PreviousOutpoint DomainOutpoint
SignatureScript []byte
Sequence uint64
UTXOEntry *UTXOEntry
}
// DomainOutpoint represents a Kaspa transaction outpoint
type DomainOutpoint struct {
TransactionID DomainTransactionID
Index uint32
}
// String stringifies an outpoint.
func (op DomainOutpoint) String() string {
return fmt.Sprintf("%s:%d", op.TransactionID, op.Index)
}
// DomainTransactionOutput represents a Kaspad transaction output
type DomainTransactionOutput struct {
Value uint64
ScriptPublicKey []byte
}
// DomainTransactionID represents the ID of a Kaspa transaction
type DomainTransactionID DomainHash
// String stringifies a transaction ID.
func (id DomainTransactionID) String() string {
return hex.EncodeToString(id[:])
}