diff --git a/packages/rs-sdk-ffi/src/sdk.rs b/packages/rs-sdk-ffi/src/sdk.rs index aa53fa8fcc9..0658793eb34 100644 --- a/packages/rs-sdk-ffi/src/sdk.rs +++ b/packages/rs-sdk-ffi/src/sdk.rs @@ -358,8 +358,14 @@ pub unsafe extern "C" fn dash_sdk_create_trusted(config: *const DashSDKConfig) - info!("dash_sdk_create_trusted: no DAPI addresses provided, using defaults for network"); // Use default addresses for the network match network { - Network::Testnet => SdkBuilder::new_testnet(), - Network::Mainnet => SdkBuilder::new_mainnet(), + Network::Testnet => { + info!("dash_sdk_create_trusted: using default testnet addresses"); + SdkBuilder::new_testnet() + } + Network::Mainnet => { + info!("dash_sdk_create_trusted: using default mainnet addresses"); + SdkBuilder::new_mainnet() + } _ => { error!( ?network, diff --git a/packages/rs-sdk/src/sdk.rs b/packages/rs-sdk/src/sdk.rs index cad1f5e5103..fdd1fa2ce48 100644 --- a/packages/rs-sdk/src/sdk.rs +++ b/packages/rs-sdk/src/sdk.rs @@ -37,6 +37,7 @@ use std::num::NonZeroUsize; use std::path::Path; #[cfg(feature = "mocks")] use std::path::PathBuf; +use std::str::FromStr; use std::sync::atomic::Ordering; use std::sync::{atomic, Arc}; #[cfg(feature = "mocks")] @@ -788,6 +789,8 @@ impl SdkBuilder { /// This is a helper method that preconfigures [SdkBuilder] for testnet use. /// Use this method if you want to connect to Dash Platform testnet during development and testing /// of your solution. + /// + /// Testnet addresses sourced from . pub fn new_testnet() -> Self { let address_list = default_address_list_for_network(Network::Testnet); @@ -799,19 +802,28 @@ impl SdkBuilder { /// This is a helper method that preconfigures [SdkBuilder] for production use. /// Use this method if you want to connect to Dash Platform mainnet with production-ready product. /// - /// ## Panics - /// - /// This method panics if the mainnet configuration cannot be loaded. - /// - /// ## Unstable - /// - /// This method is unstable and can be changed in the future. + /// Mainnet addresses sourced from mnowatch.org. pub fn new_mainnet() -> Self { let address_list = default_address_list_for_network(Network::Mainnet); Self::new(address_list).with_network(Network::Mainnet) } + /// Create a new SdkBuilder instance preconfigured for local network (dashmate gateway). + /// + /// This is a helper method that preconfigures [SdkBuilder] for local development use + /// with a dashmate-managed node. + pub fn new_local() -> Self { + let addresses = AddressList::from_str("https://127.0.0.1:2443") + .expect("hardcoded local address must be valid"); + + Self { + addresses: Some(addresses), + network: Network::Regtest, + ..Default::default() + } + } + /// Configure network type. /// /// Defaults to Network::Mainnet which is mainnet. diff --git a/packages/wasm-sdk/src/sdk.rs b/packages/wasm-sdk/src/sdk.rs index d88a83844d8..d515eb54782 100644 --- a/packages/wasm-sdk/src/sdk.rs +++ b/packages/wasm-sdk/src/sdk.rs @@ -1,28 +1,12 @@ use crate::context_provider::{WasmContext, WasmTrustedContext}; use crate::error::WasmSdkError; use dash_sdk::dpp::version::PlatformVersion; -use dash_sdk::sdk::Uri; use dash_sdk::{Sdk, SdkBuilder}; use rs_dapi_client::{Address, RequestSettings}; use std::ops::{Deref, DerefMut}; use std::time::Duration; use wasm_bindgen::prelude::wasm_bindgen; -fn parse_addresses(addresses: &'static [&str]) -> Vec
{ - addresses - .iter() - .filter_map(|addr| { - Uri::from_maybe_shared(addr) - .ok() - .and_then(|uri| Address::try_from(uri).ok()) - }) - .collect() -} - -fn default_local_addresses() -> Vec
{ - parse_addresses(&["https://127.0.0.1:2443"]) -} - #[wasm_bindgen] pub struct WasmSdk { sdk: Sdk, @@ -248,10 +232,7 @@ impl WasmSdkBuilder { /// Create a new SdkBuilder preconfigured for a local network using default dashmate gateway. #[wasm_bindgen(js_name = "local")] pub fn new_local() -> Self { - let address_list = dash_sdk::sdk::AddressList::from_iter(default_local_addresses()); - let sdk_builder = SdkBuilder::new(address_list) - .with_network(dash_sdk::dpp::dashcore::Network::Regtest) - .with_context_provider(WasmContext {}); + let sdk_builder = SdkBuilder::new_local().with_context_provider(WasmContext {}); Self { inner: sdk_builder,