[][src]Module grin_core::core::transaction

Transactions

Structs

Input

A transaction input.

Output

Output for a transaction, defining the new ownership of coins that are being transferred. The commitment is a blinded value for the output while the range proof guarantees the commitment includes a positive value without overflow and the ownership of the private key.

OutputIdentifier

An output_identifier can be build from either an input or an output and contains everything we need to uniquely identify an output being spent. Needed because it is not sufficient to pass a commitment around.

Transaction

A transaction

TransactionBody

TransactionBody is a common abstraction for transaction and block

TxKernel

A proof that a transaction sums to zero. Includes both the transaction's Pedersen commitment and the signature, that guarantees that the commitments amount to zero. The signature signs the fee and the lock_height, which are retained for signature validation.

TxKernelEntry

Wrapper around a tx kernel used when maintaining them in the MMR. These will be useful once we implement relative lockheights via relative kernels as a kernel may have an optional rel_kernel but we will not want to store these directly in the kernel MMR.

Enums

Error

Errors thrown by Transaction validation

KernelFeatures

Various flavors of tx kernel.

OutputFeatures

Various flavors of tx kernel.

Weighting

Enum of possible tx weight verification options -

Functions

aggregate

Aggregate a vec of txs into a multi-kernel tx with cut_through.

cut_through

Matches any output with a potential spending input, eliminating them from the Vec. Provides a simple way to cut-through a block or aggregated transaction. The elimination is stable with respect to the order of inputs and outputs.

deaggregate

Attempt to deaggregate a multi-kernel transaction based on multiple transactions

kernel_features

kernel features as determined by lock height

kernel_sig_msg

Construct msg from tx fee, lock_height and kernel features.