diff --git a/common/client-libs/validator-client/src/nyxd/contract_traits/mod.rs b/common/client-libs/validator-client/src/nyxd/contract_traits/mod.rs index d6ee4acad2..f9dc7cda3e 100644 --- a/common/client-libs/validator-client/src/nyxd/contract_traits/mod.rs +++ b/common/client-libs/validator-client/src/nyxd/contract_traits/mod.rs @@ -71,6 +71,8 @@ pub trait NymContractsProvider { // SPs fn name_service_contract_address(&self) -> Option<&AccountId>; fn service_provider_contract_address(&self) -> Option<&AccountId>; + // swapper + fn swapper_contract_address(&self) -> Option<&AccountId>; } #[derive(Debug, Clone)] @@ -87,6 +89,7 @@ pub struct TypedNymContracts { pub service_provider_directory_contract_address: Option, pub name_service_contract_address: Option, + pub swapper_contract_address: Option, } impl TryFrom for TypedNymContracts { @@ -130,6 +133,10 @@ impl TryFrom for TypedNymContracts { .name_service_contract_address .map(|addr| addr.parse()) .transpose()?, + swapper_contract_address: value + .name_service_contract_address + .map(|addr| addr.parse()) + .transpose()?, }) } } diff --git a/common/client-libs/validator-client/src/nyxd/mod.rs b/common/client-libs/validator-client/src/nyxd/mod.rs index 416bf7bb2f..647cbb52cc 100644 --- a/common/client-libs/validator-client/src/nyxd/mod.rs +++ b/common/client-libs/validator-client/src/nyxd/mod.rs @@ -292,6 +292,9 @@ impl NymContractsProvider for NyxdClient { fn name_service_contract_address(&self) -> Option<&AccountId> { self.config.contracts.name_service_contract_address.as_ref() } + fn swapper_contract_address(&self) -> Option<&AccountId> { + self.config.contracts.swapper_contract_address.as_ref() + } fn service_provider_contract_address(&self) -> Option<&AccountId> { self.config diff --git a/common/network-defaults/src/mainnet.rs b/common/network-defaults/src/mainnet.rs index a598a9dd67..4c2d83331d 100644 --- a/common/network-defaults/src/mainnet.rs +++ b/common/network-defaults/src/mainnet.rs @@ -107,6 +107,10 @@ pub fn export_to_env() { var_names::EPHEMERA_CONTRACT_ADDRESS, EPHEMERA_CONTRACT_ADDRESS, ); + set_var_to_default( + var_names::SWAPPER_CONTRACT_ADDRESS, + SWAPPER_CONTRACT_ADDRESS, + ); set_var_to_default( var_names::REWARDING_VALIDATOR_ADDRESS, REWARDING_VALIDATOR_ADDRESS, @@ -152,6 +156,10 @@ pub fn export_to_env_if_not_set() { var_names::COCONUT_DKG_CONTRACT_ADDRESS, COCONUT_DKG_CONTRACT_ADDRESS, ); + set_var_conditionally_to_default( + var_names::SWAPPER_CONTRACT_ADDRESS, + SWAPPER_CONTRACT_ADDRESS, + ); set_var_conditionally_to_default( var_names::EPHEMERA_CONTRACT_ADDRESS, EPHEMERA_CONTRACT_ADDRESS, diff --git a/nym-wallet/nym-wallet-types/src/network/qa.rs b/nym-wallet/nym-wallet-types/src/network/qa.rs index 85aa00bd5e..ba4ae51c78 100644 --- a/nym-wallet/nym-wallet-types/src/network/qa.rs +++ b/nym-wallet/nym-wallet-types/src/network/qa.rs @@ -1,5 +1,5 @@ use super::parse_optional_str; -use nym_network_defaults::{ChainDetails, DenomDetails, NymContracts, ValidatorDetails}; +use nym_network_defaults::{mainnet::SWAPPER_CONTRACT_ADDRESS, ChainDetails, DenomDetails, NymContracts, ValidatorDetails}; // -- Chain details -- @@ -28,6 +28,8 @@ pub(crate) const SERVICE_PROVIDER_DIRECTORY_CONTRACT_ADDRESS: &str = "n13ehuhysn5mqjeaheeuew2gjs785f6k7jm8vfsqg3jhtpkwppcmzq6m2hmz"; pub(crate) const NAME_SERVICE_CONTRACT_ADDRESS: &str = "n1qum2tr7hh4y7ruzew68c64myjec0dq2s2njf6waja5t0w879lutqadamme"; +pub(crate) const SWAPPER_CONTRACT_ADDRESS: &str = + "n19lc9u84cz0yz3fww5283nucc9yvr8gsjmgeul0"; // -- Constructor functions -- @@ -64,6 +66,7 @@ pub(crate) fn network_details() -> nym_network_defaults::NymNetworkDetails { SERVICE_PROVIDER_DIRECTORY_CONTRACT_ADDRESS, ), name_service_contract_address: parse_optional_str(NAME_SERVICE_CONTRACT_ADDRESS), + swapper_contract_address: parse_optional_str(SWAPPER_CONTRACT_ADDRESS), }, explorer_api: parse_optional_str(EXPLORER_API), } diff --git a/nym-wallet/nym-wallet-types/src/network/sandbox.rs b/nym-wallet/nym-wallet-types/src/network/sandbox.rs index 2d1bc9e0fa..a1ef3bd550 100644 --- a/nym-wallet/nym-wallet-types/src/network/sandbox.rs +++ b/nym-wallet/nym-wallet-types/src/network/sandbox.rs @@ -25,6 +25,8 @@ pub(crate) const COCONUT_DKG_CONTRACT_ADDRESS: &str = "n1ahg0erc2fs6xx3j5m8sfx3ryuzdjh6kf6qm9plsf865fltekyrfsesac6a"; pub(crate) const EPHEMERA_CONTRACT_ADDRESS: &str = "n1ahg0erc2fs6xx3j5m8sfx3ryuzdjh6kf6qm9plsf865fltekyrfsesac6a"; +pub(crate) const SWAPPER_CONTRACT_ADDRESS: &str = + "n1e65nvg9dntgjmfl5ptgpqtlrl89ergakn0zchz68cklhjz6hrnxsmjs5rd"; // -- Constructor functions -- @@ -59,6 +61,7 @@ pub(crate) fn network_details() -> nym_network_defaults::NymNetworkDetails { ephemera_contract_address: parse_optional_str(EPHEMERA_CONTRACT_ADDRESS), service_provider_directory_contract_address: None, name_service_contract_address: None, + swapper_contract_address: parse_optional_str(SWAPPER_CONTRACT_ADDRESS), }, explorer_api: parse_optional_str(EXPLORER_API), }