diff --git a/packages/dashmate/docker-compose.yml b/packages/dashmate/docker-compose.yml index 53a3c835b9..5088e5bd8d 100644 --- a/packages/dashmate/docker-compose.yml +++ b/packages/dashmate/docker-compose.yml @@ -80,6 +80,7 @@ services: - TOKIO_CONSOLE_RETENTION_SECS=${PLATFORM_DRIVE_ABCI_TOKIO_CONSOLE_RETENTION:?err} - GROVEDB_VISUALIZER_ENABLED=${PLATFORM_DRIVE_ABCI_GROVEDB_VISUALIZER_ENABLED:?err} - GROVEDB_VISUALIZER_ADDRESS=0.0.0.0:${PLATFORM_DRIVE_ABCI_GROVEDB_VISUALIZER_PORT:?err} + - NETWORK=${NETWORK:?err} stop_grace_period: 30s expose: - 26658 diff --git a/packages/rs-drive-abci/.env.local b/packages/rs-drive-abci/.env.local index ebfdf12149..c0e3ac3347 100644 --- a/packages/rs-drive-abci/.env.local +++ b/packages/rs-drive-abci/.env.local @@ -88,3 +88,5 @@ TOKIO_CONSOLE_RETENTION_SECS=180 GROVEDB_VISUALIZER_ENABLED=false GROVEDB_VISUALIZER_ADDRESS=127.0.0.1:8083 + +NETWORK=regtest diff --git a/packages/rs-drive-abci/.env.mainnet b/packages/rs-drive-abci/.env.mainnet index ea1b3915ae..4cf80e1820 100644 --- a/packages/rs-drive-abci/.env.mainnet +++ b/packages/rs-drive-abci/.env.mainnet @@ -88,3 +88,5 @@ TOKIO_CONSOLE_RETENTION_SECS=180 GROVEDB_VISUALIZER_ENABLED=false GROVEDB_VISUALIZER_ADDRESS=127.0.0.1:8083 + +NETWORK=mainnet diff --git a/packages/rs-drive-abci/.env.testnet b/packages/rs-drive-abci/.env.testnet index 11d9a92cdd..ed6de0a52e 100644 --- a/packages/rs-drive-abci/.env.testnet +++ b/packages/rs-drive-abci/.env.testnet @@ -88,3 +88,5 @@ TOKIO_CONSOLE_RETENTION_SECS=180 GROVEDB_VISUALIZER_ENABLED=false GROVEDB_VISUALIZER_ADDRESS=127.0.0.1:8083 + +NETWORK=testnet diff --git a/packages/rs-drive-abci/src/config.rs b/packages/rs-drive-abci/src/config.rs index e8e111400d..733efe45a2 100644 --- a/packages/rs-drive-abci/src/config.rs +++ b/packages/rs-drive-abci/src/config.rs @@ -1,14 +1,14 @@ -use bincode::{Decode, Encode}; -use dashcore_rpc::json::QuorumType; -use std::path::PathBuf; - use crate::logging::LogConfigs; use crate::{abci::config::AbciConfig, error::Error}; +use bincode::{Decode, Encode}; +use dashcore_rpc::json::QuorumType; use dpp::dashcore::Network; use dpp::util::deserializer::ProtocolVersion; use dpp::version::INITIAL_PROTOCOL_VERSION; use drive::config::DriveConfig; use serde::{de::DeserializeOwned, Deserialize, Serialize}; +use std::path::PathBuf; +use std::str::FromStr; /// Configuration for Dash Core RPC client used in consensus logic #[derive(Clone, Debug, Serialize, Deserialize, Default)] @@ -145,7 +145,10 @@ where // https://github.com/softprops/envy/issues/61 and https://github.com/softprops/envy/pull/69 pub struct PlatformConfig { /// The network type - #[serde(default = "PlatformConfig::default_network")] + #[serde( + default = "PlatformConfig::default_network", + deserialize_with = "from_str_to_network_with_aliases" + )] pub network: Network, /// Drive configuration #[serde(flatten)] @@ -224,6 +227,14 @@ pub struct PlatformConfig { pub tokio_console_retention_secs: u64, } +fn from_str_to_network_with_aliases(network_name: &str) -> Network { + match network_name { + "mainnet" => Network::Dash, + "local" => Network::Regtest, + _ => Network::from_str(network_name).expect("failed to parse network name"), + } +} + /// A config suitable for a quorum configuration pub trait QuorumLikeConfig: Sized { /// Quorum type @@ -556,6 +567,7 @@ impl PlatformConfig { fn default_network() -> Network { Network::Regtest //todo: Do not leave this as regtest + // TODO: Yes, must be mainnet } fn default_tokio_console_address() -> String {