Skip to main content

Module tempo

Module tempo 

Source
Expand description

Tempo precompile and fee token initialization for Anvil.

When running in Tempo mode, Anvil needs to set up Tempo-specific precompiles and fee tokens (PathUSD, AlphaUSD, BetaUSD, ThetaUSD) to enable proper transaction validation.

This module provides a storage provider adapter for Anvil’s Db trait and uses the shared initialization logic from foundry-evm-core.

Re-exportsΒ§

use alloy_primitives::Address; πŸ”’
use alloy_primitives::B256; πŸ”’
use alloy_primitives::U256; πŸ”’
use alloy_primitives::address; πŸ”’
use foundry_evm::core::tempo::ALPHA_USD_ADDRESS; πŸ”’
use foundry_evm::core::tempo::BETA_USD_ADDRESS; πŸ”’
use foundry_evm::core::tempo::PATH_USD_ADDRESS; πŸ”’
use foundry_evm::core::tempo::THETA_USD_ADDRESS; πŸ”’
use foundry_evm::core::tempo::initialize_tempo_genesis_at_hardfork; πŸ”’
use revm::DatabaseRef; πŸ”’
use revm::context::BlockEnv; πŸ”’
use revm::context::journaled_state::JournalCheckpoint; πŸ”’
use revm::state::AccountInfo; πŸ”’
use revm::state::Bytecode; πŸ”’
use std::collections::HashMap; πŸ”’
use tempo_hardfork::TempoHardfork; πŸ”’
use tempo_precompiles::TIP_FEE_MANAGER_ADDRESS; πŸ”’
use tempo_precompiles::account_keychain::AccountKeychain; πŸ”’
use tempo_precompiles::account_keychain::IAccountKeychain::KeyRestrictions; πŸ”’
use tempo_precompiles::account_keychain::IAccountKeychain::SignatureType; πŸ”’
use tempo_precompiles::error::TempoPrecompileError; πŸ”’
use tempo_precompiles::storage::PrecompileStorageProvider; πŸ”’
use tempo_precompiles::storage::StorageCtx; πŸ”’
use tempo_precompiles::tip_fee_manager::IFeeManager; πŸ”’
use tempo_precompiles::tip_fee_manager::TipFeeManager; πŸ”’
use tempo_precompiles::tip20::ITIP20; πŸ”’
use tempo_precompiles::tip20::TIP20Token; πŸ”’
use tempo_primitives::TempoBlockEnv; πŸ”’
use super::db::Db; πŸ”’

StructsΒ§

AnvilStorageProvider
Storage provider adapter for Anvil’s Db to work with Tempo precompiles.

ConstantsΒ§

ADMIN πŸ”’
Admin address used for genesis initialization.
SENDER πŸ”’
Sender address used for genesis initialization.

FunctionsΒ§

initialize_tempo_precompiles
Initialize Tempo precompiles and fee tokens for Anvil.