Consensus parameters of one protocol version

interface ProtocolConsensusParameters {
    allowedContractVersions: ContractVersion[];
    allowedOracleAbiVersions: number[];
    contractTxBaseGas: ContractTxBaseGas[];
    effectiveAtHeight: number;
    gasPerByte: number;
    minimumGasPrice: bigint;
    nameAuctionTimeouts: NameAuctionTimeout[];
    nameClaimBidIncrement: number;
    nameClaimFees: bigint[];
    nameClaimLockedFee: bigint;
    nameClaimMaxExpiration: number;
    nameClaimPreclaimDelta: number;
    nameMaxLengthStartingAuction: number;
    namePointerMaxKeySize?: number;
    namePointersMaxCount?: number;
    namePreclaimExpiration: number;
    nameProtectionPeriod: number;
    nameRegistrars: string[];
    stateGasPerBlock: { [propertyName: string]: StateGasPerBlock };
    storeByteGas: number;
    txBaseGas: { [propertyName: string]: number };
    version: number;
}

Hierarchy (View Summary)

Properties

allowedContractVersions: ContractVersion[]

VM/ABI version combinations valid for ContractCreateTx at this protocol

allowedOracleAbiVersions: number[]

ABI versions valid for OracleRegisterTx at this protocol

contractTxBaseGas: ContractTxBaseGas[]

Base fee gas of contract-executing transaction types, per ABI version. Listed on the same basis as tx_base_gas; allowed_contract_versions is what decides acceptance.

effectiveAtHeight: number
gasPerByte: number

Gas per serialized transaction byte counted into the minimum fee

minimumGasPrice: bigint

Consensus minimum gas price (aettos per gas) as a decimal string; the minimum transaction fee is the transaction's fee gas multiplied by this

nameAuctionTimeouts: NameAuctionTimeout[]

AENS auction bid timeout and extension in key blocks by name length; a zero timeout means no auction

nameClaimBidIncrement: number

Minimum percentage a new AENS auction bid must exceed the previous bid by

nameClaimFees: bigint[]

Minimum AENS name fee by name length, as decimal strings; element N (1-based) applies to names of length N and the last element also to longer names. All zeroes when name fees are not enforced at this protocol. Length is the label after IDNA/UTS46 conversion to ASCII, excluding the registrar - not the character count.

nameClaimLockedFee: bigint

Locked fee in aettos, as a decimal string, for a name claim when the name fee is not enforced

nameClaimMaxExpiration: number

Maximum name TTL in key blocks for NameUpdateTx

nameClaimPreclaimDelta: number

Minimum number of key blocks between preclaim and claim

nameMaxLengthStartingAuction: number

The longest name that triggers an AENS auction, measured as for the name_claim_fees index

namePointerMaxKeySize?: number

Maximum byte size of a pointer key in NameUpdateTx; the field is absent when the protocol imposes no limit

namePointersMaxCount?: number

Maximum number of pointers in NameUpdateTx; the field is absent when the protocol imposes no limit

namePreclaimExpiration: number

Number of key blocks after which an AENS preclaim expires

nameProtectionPeriod: number

Number of key blocks an expired name stays protected before it can be claimed again

nameRegistrars: string[]

Valid AENS name registrars

stateGasPerBlock: { [propertyName: string]: StateGasPerBlock }

State rent gas fraction per key block by transaction type; state gas = ceil(ttl_key_blocks * part / whole)

storeByteGas: number

Gas per byte written to a contract store

txBaseGas: { [propertyName: string]: number }

Base fee gas by transaction type (transactions not executing contract code). Listed for every protocol regardless of when the type was introduced: an entry gives what the fee gas would be, not whether that transaction was accepted at that protocol.

version: number