Skip to content

Latest commit

 

History

History
177 lines (140 loc) · 2.74 KB

File metadata and controls

177 lines (140 loc) · 2.74 KB

Core

Overview

The Core module provides fundamental system types, errors, and constants for Tetcore.

Chain Types

ChainId

pub struct ChainId(pub u32);

SystemVersion

pub struct SystemVersion(pub u32);

CoreChainType

pub enum CoreChainType {
    Development,
    Local,
    Testnet,
    Mainnet,
}

Block Types

BlockNumber

pub struct BlockNumber(pub u64);

Nonce

pub struct Nonce(pub u64);

Errors

SystemErrorKind

pub enum SystemErrorKind {
    Unknown,
    InvalidTransaction,
    InvalidSignature,
    InsufficientFunds,
    InsufficientGas,
    NonceTooLow,
    NonceTooHigh,
    ChainIdMismatch,
    InvalidBlock,
    InvalidState,
    StorageOverflow,
    StorageUnderflow,
    ModuleNotFound,
    MethodNotFound,
    CallFailed,
    ContractNotFound,
    // ... more variants
}

Events

EventPhase

pub enum EventPhase {
    Initialization,
    ApplyExtrinsic(u32),
    Finalization,
}

SystemEventType

pub enum SystemEventType {
    ExtrinsicSuccess,
    ExtrinsicFailed { error: SystemError },
    CodeUpdated,
    RuntimeUpdated,
    NewAccount { account: Address },
    KilledAccount { account: Address },
    Transfer { from: Address, to: Address, amount: u128 },
    // ... more variants
}

Runtime

RuntimeVersion

pub struct RuntimeVersion {
    pub spec_name: String,
    pub impl_name: String,
    pub authoring_version: u32,
    pub spec_version: u32,
    pub impl_version: u32,
    pub apis: Vec<(String, u32)>,
}

SystemProperties

pub struct SystemProperties {
    pub ss58_format: u8,
    pub token_symbol: String,
    pub token_decimals: u8,
    pub chain_type: CoreChainType,
}

Constants

pub struct Constants {
    pub max_block_length: u32,
    pub max_transaction_size: u32,
    pub max_call_depth: u32,
    pub max_storage_size: u64,
    pub block_gas_limit: u64,
    pub transaction_gas_limit: u64,
    pub storage_gas_per_byte: u64,
    pub evm_gas_per_nanosecond: u64,
    pub min_balance: u128,
    pub max_authorities: u32,
    pub min_validator_stake: u128,
    pub epochs_per_era: u64,
    pub blocks_per_epoch: u64,
}

SystemInfo

pub struct SystemInfo {
    pub chain_id: ChainId,
    pub version: RuntimeVersion,
    pub properties: SystemProperties,
    pub constants: Constants,
}

Time

Timestamp

pub struct Timestamp(u64);

Event Filtering

EventFilter

pub struct EventFilter {
    pub module: Option<String>,
    pub event_type: Option<String>,
    pub from_block: Option<BlockNumber>,
    pub to_block: Option<BlockNumber>,
    pub from_address: Option<Address>,
    pub to_address: Option<Address>,
}