1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//! Constants for Altius USD multi-token transactions.
//!
//! These constants define the default fee parameters for USD multi-token chains.
//!
//! **IMPORTANT**: This is the single source of truth for Rust code.
//! All addresses must be defined here AND in the JS SDK (sdk/js/src/constants.js).
//! When modifying addresses, update BOTH SDKs.
use ;
// ============================================================================
// Address Constants
// These addresses are derived from the Altius predeploy system.
// ============================================================================
/// USDA Fee Token (ERC20) - Genesis Fee Token (index 1)
pub const USDA_ADDRESS: Address = address!;
/// Fee Token Factory (index 0)
pub const FEE_TOKEN_FACTORY_ADDRESS: Address = address!;
/// Fee Manager (Independent prefix)
pub const FEE_MANAGER_ADDRESS: Address = address!;
/// Fee Token address prefix (first 10 bytes).
/// All fee token addresses start with this prefix.
/// Used by JS SDK and external consumers; Rust code uses [`is_fee_token_prefix`] from altius-precompiles.
pub const FEE_TOKEN_PREFIX: = ;
/// Zero address
pub const ZERO_ADDRESS: Address = address!;
// ============================================================================
// Fee Configuration
// ============================================================================
/// Base fee in attodollars per gas (50 G-attodollars/gas).
pub const BASE_FEE_ATTO: u64 = 50_000_000_000;
/// Token decimals for USDA and fee tokens (ERC-20 standard)
pub const TOKEN_DECIMALS: u8 = 18;
/// Default max fee per gas (2x base fee)
pub const DEFAULT_MAX_FEE_PER_GAS: u64 = 100_000_000_000;
/// Default faucet amount in token units (100 USDA with 18 decimals).
pub const DEFAULT_FAUCET_AMOUNT: u128 = 100_000_000_000_000_000_000;
/// Default faucet amount in microdollars.
pub const DEFAULT_FAUCET_AMOUNT_MICRO: u64 = 100_000_000;
/// Default faucet amount in microdollars (for JS compatibility)
pub const FAUCET_AMOUNT_MICRO: u64 = 100_000_000;
/// Default faucet amount in token units (for JS compatibility)
pub const FAUCET_AMOUNT_WEI: u128 = 100_000_000_000_000_000_000;
/// Default transfer amount in microdollars (10 USDA)
pub const TRANSFER_AMOUNT_MICRO: u64 = 10_000_000;
/// Default transfer amount in token units (10 USDA with 18 decimals)
pub const TRANSFER_AMOUNT_WEI: u128 = 10_000_000_000_000_000_000;
// ============================================================================
// Gas Configuration
// ============================================================================
/// Default gas limit for ERC20 transfers.
pub const DEFAULT_GAS_LIMIT: u64 = 100_000;
// ============================================================================
// Validation Constants
// ============================================================================
/// Reserved address threshold (indices 0-255 are reserved)
pub const RESERVED_THRESHOLD: u64 = 256;
// ============================================================================
// Faucet Configuration
// ============================================================================
/// Faucet address (derived from Hardhat/Anvil default mnemonic)
/// This is the default address used by Hardhat/Anvil for the first account.
pub const FAUCET_ADDRESS: Address = address!;
/// Default fee token for faucet (USDA)
pub const FAUCET_FEE_TOKEN: Address = USDA_ADDRESS;