The Core module provides fundamental system types, errors, and constants for Tetcore.
pub struct ChainId(pub u32);pub struct SystemVersion(pub u32);pub enum CoreChainType {
Development,
Local,
Testnet,
Mainnet,
}pub struct BlockNumber(pub u64);pub struct Nonce(pub u64);pub enum SystemErrorKind {
Unknown,
InvalidTransaction,
InvalidSignature,
InsufficientFunds,
InsufficientGas,
NonceTooLow,
NonceTooHigh,
ChainIdMismatch,
InvalidBlock,
InvalidState,
StorageOverflow,
StorageUnderflow,
ModuleNotFound,
MethodNotFound,
CallFailed,
ContractNotFound,
// ... more variants
}pub enum EventPhase {
Initialization,
ApplyExtrinsic(u32),
Finalization,
}pub enum SystemEventType {
ExtrinsicSuccess,
ExtrinsicFailed { error: SystemError },
CodeUpdated,
RuntimeUpdated,
NewAccount { account: Address },
KilledAccount { account: Address },
Transfer { from: Address, to: Address, amount: u128 },
// ... more variants
}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)>,
}pub struct SystemProperties {
pub ss58_format: u8,
pub token_symbol: String,
pub token_decimals: u8,
pub chain_type: CoreChainType,
}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,
}pub struct SystemInfo {
pub chain_id: ChainId,
pub version: RuntimeVersion,
pub properties: SystemProperties,
pub constants: Constants,
}pub struct Timestamp(u64);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>,
}