use std::str::FromStr;
use once_cell::sync::Lazy;
use solana_sdk::pubkey::Pubkey;
pub const DEFAULT_VAA_VERSION: u8 = 1;
pub const DEFAULT_VAA_EXPIRY: u64 = 0;
pub const DEFAULT_EVENT_INDEX: u32 = 0;
pub const ACTION_RELEASE_SOL: u8 = 0;
pub const ACTION_RELEASE_SPL: u8 = 1;
pub const ACTION_MINT_WRAPPED: u8 = 2;
pub const ACTION_MINT_WRAPPED_EXISTING: u8 = 3;
pub const ACTION_REGISTER_TOKEN: u8 = 4;
pub static CORE_PROGRAM_ID: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("zera3giq7oM9QJaD6mY1ajGmakv9TZcax5Giky99HD8").expect("valid core program id")
});
pub static TOKEN_BRIDGE_PROGRAM_ID: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("WrapZ8f88HR8waSp7wR8Vgc68z4hKj3p3i2b81oeSxR")
.expect("valid token bridge program id")
});
pub static METADATA_PROGRAM_ID: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s")
.expect("valid metadata program id")
});
pub static BPF_LOADER_UPGRADEABLE_ID: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("BPFLoaderUpgradeab1e11111111111111111111111")
.expect("valid bpf loader program id")
});
pub static TOKEN_PROGRAM_ID: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")
.expect("valid spl token program id")
});
pub static ATA_PROGRAM_ID: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL").expect("valid ata program id")
});
pub static SYSTEM_PROGRAM_ID: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("11111111111111111111111111111111").expect("valid system program id")
});
pub static SYSVAR_INSTRUCTIONS_PUBKEY: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("Sysvar1nstructions1111111111111111111111111")
.expect("valid sysvar instructions pubkey")
});
pub static SYSVAR_RENT_PUBKEY: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("SysvarRent111111111111111111111111111111111")
.expect("valid sysvar rent pubkey")
});
pub static WSOL_MINT: Lazy<Pubkey> = Lazy::new(|| {
Pubkey::from_str("So11111111111111111111111111111111111111112").expect("valid wsol mint")
});