Skip to main content

foundry_cli/utils/
tempo.rs

1use std::str::FromStr;
2
3use alloy_primitives::{Address, hex};
4
5/// Parses a fee token address.
6pub fn parse_fee_token_address(address_or_id: &str) -> eyre::Result<Address> {
7    Address::from_str(address_or_id).or_else(|_| Ok(token_id_to_address(address_or_id.parse()?)))
8}
9
10fn token_id_to_address(token_id: u64) -> Address {
11    let mut address_bytes = [0u8; 20];
12    address_bytes[..12].copy_from_slice(&hex!("20C000000000000000000000"));
13    address_bytes[12..20].copy_from_slice(&token_id.to_be_bytes());
14    Address::from(address_bytes)
15}