abstract_std/
constants.rs

1//! # Registry constants
2//!
3//! `abstract_std` contains all contract names supported by Abstract.
4//!
5//! ## Description
6//! These fixed names can be used to provide name-addressable searches for complex logic.
7
8pub const ACCOUNT: &str = "abstract:account";
9pub const REGISTRY: &str = "abstract:registry";
10pub const MODULE_FACTORY: &str = "abstract:module-factory";
11pub const ANS_HOST: &str = "abstract:ans-host";
12pub const IBC_CLIENT: &str = "abstract:ibc-client";
13pub const ICA_CLIENT: &str = "abstract:ica-client";
14pub const IBC_HOST: &str = "abstract:ibc-host";
15
16pub const ABSTRACT_VERSION: &str = env!("CARGO_PKG_VERSION");
17
18/// IBC protocols
19pub const ICS20: &str = "ics-20";
20
21// chain-id prefixes based on `https://cosmos.directory/`
22pub mod juno {
23    pub const JUNO_MAINNET: &str = "juno";
24    pub const JUNO_TESTNET: &str = "uni";
25    pub const JUNO: &[&str] = &[JUNO_MAINNET, JUNO_TESTNET];
26}
27
28pub mod osmosis {
29    pub const OSMOSIS_MAINNET: &str = "osmosis";
30    pub const OSMOSIS_TESTNET: &str = "osmo-test";
31    pub const OSMOSIS: &[&str] = &[OSMOSIS_MAINNET, OSMOSIS_TESTNET];
32}
33
34pub mod terra {
35    pub const TERRA_MAINNET: &str = "phoenix";
36    pub const TERRA_TESTNET: &str = "pisco";
37    pub const TERRA: &[&str] = &[TERRA_MAINNET, TERRA_TESTNET];
38}
39
40pub mod kujira {
41    pub const KUJIRA_MAINNET: &str = "kaiyo";
42    pub const KUJIRA_TESTNET: &str = "harpoon";
43    pub const KUJIRA: &[&str] = &[KUJIRA_MAINNET, KUJIRA_TESTNET];
44}
45
46pub mod neutron {
47    pub const NEUTRON_MAINNET: &str = "neutron";
48    pub const NEUTRON_TESTNET: &str = "pion";
49    pub const NEUTRON: &[&str] = &[NEUTRON_MAINNET, NEUTRON_TESTNET];
50}
51
52pub mod archway {
53    pub const ARCHWAY_MAINNET: &str = "archway";
54    pub const ARCHWAY_TESTNET: &str = "constantine";
55    pub const ARCHWAY: &[&str] = &[ARCHWAY_MAINNET, ARCHWAY_TESTNET];
56}
57
58pub mod union {
59    pub const UNION_TESTNET: &str = "union-testnet";
60    pub const UNION: &[&str] = &[UNION_TESTNET];
61}
62
63pub mod xion {
64    pub const XION_TESTNET: &str = "xion-testnet";
65    pub const XION: &[&str] = &[XION_TESTNET];
66}
67
68pub mod local {
69    pub const MOCK_CHAIN: &str = "cosmos-testnet";
70    pub const LOCAL_CHAIN: &[&str] = &[MOCK_CHAIN];
71}
72
73pub use archway::ARCHWAY;
74pub use juno::JUNO;
75pub use kujira::KUJIRA;
76pub use local::LOCAL_CHAIN;
77pub use neutron::NEUTRON;
78pub use osmosis::OSMOSIS;
79pub use terra::TERRA;
80pub use union::UNION;
81pub use xion::XION;
82
83// EVM chains
84// https://chainlist.org/
85pub mod berachain {
86    pub const BERACHAIN_BARTIO: &str = "bartio";
87    pub const BERACHAIN: &[&str] = &[BERACHAIN_BARTIO];
88}
89
90pub mod ethereum {
91    pub const ETHEREUM_SEPOLIA: &str = "sepolia";
92    pub const ETHEREUM_MAINNET: &str = "ethereum";
93    pub const ETHEREUM: &[&str] = &[ETHEREUM_SEPOLIA, ETHEREUM_MAINNET];
94}
95
96// EVM
97pub use berachain::BERACHAIN;
98pub use ethereum::ETHEREUM;
99
100/// Useful when deploying registry
101#[allow(unused)]
102pub static NATIVE_CONTRACTS: &[&str] = &[ANS_HOST, MODULE_FACTORY, REGISTRY, "cw20"];
103pub static ACCOUNT_CONTRACTS: &[&str] = &[ACCOUNT, ACCOUNT];
104pub const ABSTRACT_EVENT_TYPE: &str = "wasm-abstract";
105
106// Delimiters
107
108/// The delimiter between assets in lists
109pub const ASSET_DELIMITER: &str = ",";
110/// The delimited between types like contract_type/asset1,asset2
111pub const TYPE_DELIMITER: &str = "/";
112/// The delimiter between attributes like contract:protocol
113pub const ATTRIBUTE_DELIMITER: &str = ":";
114/// The delimiter between chains in asset names and traces
115/// chain1>chain2>asset
116pub const CHAIN_DELIMITER: &str = ">";