Structs

An abbreviated block

An address is the hash of a MelVM covenant. In Bitcoin terminology, all Themelio addresses are “pay-to-script-hash”.

A (serialized) block.

Newtype representing a block height.

The data bound to a coin ID. Contains the “contents” of a coin, i.e. its constraint hash, value, and coin type.

A CoinData but coupled with a block height. This is what actually gets stored in the global state, allowing constraints and the validity-checking algorithm to easily access the age of a coin.

A coin ID, consisting of a transaction hash and index. Uniquely identifies a coin in Themelio’s history.

Newtype representing a monetary value in microunits. The Display and FromStr implementations divide by 1,000,000 automatically.

A block header, which commits to a particular SealedState.

ProposerAction describes the standard action that the proposer takes when proposing a block.

StakeDoc is a stake document. It encapsulates all the information needed to verify consensus proofs.

Transaction represents an individual, serializable Themelio transaction.

A helper struct for creating transactions.

A newtype representing the hash of a transaction.

Enums

Identifies a network.

An enumeration of all the different possible transaction kinds. Currently contains a “faucet” kind that will be (obviously) removed in production.

Constants

Maximum coin value

A stake epoch is 200,000 blocks.

TIP 901: change fee multiplier calculation

TIP 902: introduce non-MEL/non-MEL pools

TIP 906: coin count commitments