use dynamic_waas_sdk_core::ThresholdSignatureScheme;
#[derive(Debug, Clone, Copy)]
pub(crate) struct MpcSchemeConfig {
pub n: u16,
pub t: u16,
pub client_threshold: u16,
}
impl MpcSchemeConfig {
pub(crate) fn from(scheme: ThresholdSignatureScheme) -> Self {
match scheme {
ThresholdSignatureScheme::TwoOfTwo => Self {
n: 2,
t: 2,
client_threshold: 1,
},
ThresholdSignatureScheme::TwoOfThree => Self {
n: 3,
t: 2,
client_threshold: 2,
},
}
}
}
pub const EVM_DERIVATION_PATH: &[u32] = &[44, 60, 0, 0, 0];
pub const SVM_DERIVATION_PATH: &[u32] = &[44, 501, 0, 0, 0];
pub const PREPROD_RELAY_API_KEY: &str =
"ev:key:1:7j2jIPMzlcKlpDz1RTV6Vadsm8sgmj1VHZzJXqW9ie1dgmyzKmccEGI8BBWU0PaXv:XfF7Ri:ivvRp1";
pub const PROD_RELAY_API_KEY: &str =
"ev:key:1:7kRuVm1sE1J5FjGz2ijufy0IkATzrBKEvde0IMLW1dt3xbFcdTdOKHO0vNnJeAjAD:YmAPOP:Jh7DdD";
pub const PREPROD_RELAY_APP_ID: &str = "app_32d15525a875";
pub const PROD_RELAY_APP_ID: &str = "app_6e12fc400995";
pub const PREPROD_KEYSHARES_RELAY_URL: &str = "https://waas-keyshares-relay.dynamic-preprod.xyz";
pub const PROD_KEYSHARES_RELAY_URL: &str = "https://waas-keyshares-relay.dynamicauth.com";
pub fn relay_app_id_for(env: dynamic_waas_sdk_core::Environment) -> Option<&'static str> {
use dynamic_waas_sdk_core::Environment;
match env {
Environment::Production => Some(PROD_RELAY_APP_ID),
Environment::Preprod => Some(PREPROD_RELAY_APP_ID),
_ => None,
}
}
pub fn keyshares_relay_url_for(env: dynamic_waas_sdk_core::Environment) -> &'static str {
use dynamic_waas_sdk_core::Environment;
match env {
Environment::Production => PROD_KEYSHARES_RELAY_URL,
_ => PREPROD_KEYSHARES_RELAY_URL,
}
}
pub fn relay_api_key_for(env: dynamic_waas_sdk_core::Environment) -> Option<&'static str> {
use dynamic_waas_sdk_core::Environment;
match env {
Environment::Production => Some(PROD_RELAY_API_KEY),
Environment::Preprod => Some(PREPROD_RELAY_API_KEY),
_ => None,
}
}
pub(crate) fn threshold_wire(scheme: ThresholdSignatureScheme) -> &'static str {
match scheme {
ThresholdSignatureScheme::TwoOfTwo => "TWO_OF_TWO",
ThresholdSignatureScheme::TwoOfThree => "TWO_OF_THREE",
}
}