Policy

// index using powers of 2 for efficient bitmasking
enum PolicyType : uint32 {
    Tip = 1,
    WitnessLimit = 2,
    Maturity = 4,
    MaxFee = 8,
}
nametypedescription
dataOne of Tip, WitnessLimit, or MaturityPolicy data.

Tip

nametypedescription
tipuint64Additional, optional fee in BASE_ASSET to incentivize block producer to include transaction

WitnessLimit

nametypedescription
witnessLimituint64The maximum amount of witness data allowed for the transaction

Given helper len() that returns the number of bytes of a field.

Transaction is invalid if:

  • len(tx.witnesses) > witnessLimit

Maturity

nametypedescription
maturityuint32Block until which the transaction cannot be included.

Transaction is invalid if:

  • blockheight() < maturity

MaxFee

nametypedescription
max_feeuint64Required policy to specify the maximum fee payable by this transaction using BASE_ASSET. This is used to check transactions before the actual gas_price is known.

Transaction is invalid if:

  • max_fee > sum_inputs(tx, BASE_ASSET_ID) - sum_outputs(tx, BASE_ASSET_ID)
  • max_fee < max_fee(tx, BASE_ASSET_ID, gas_price)