diff --git a/crates/cashu/src/mint.rs b/crates/cashu/src/mint.rs index a784a2e9..13f90731 100644 --- a/crates/cashu/src/mint.rs +++ b/crates/cashu/src/mint.rs @@ -4,7 +4,6 @@ use bitcoin::bip32::DerivationPath; use serde::{Deserialize, Serialize}; use uuid::Uuid; -use crate::mint_url::MintUrl; use crate::nuts::{MeltQuoteState, MintQuoteState}; use crate::{Amount, CurrencyUnit, Id, KeySetInfo, PublicKey}; @@ -13,8 +12,6 @@ use crate::{Amount, CurrencyUnit, Id, KeySetInfo, PublicKey}; pub struct MintQuote { /// Quote id pub id: Uuid, - /// Mint Url - pub mint_url: MintUrl, /// Amount of quote pub amount: Amount, /// Unit of quote @@ -34,7 +31,6 @@ pub struct MintQuote { impl MintQuote { /// Create new [`MintQuote`] pub fn new( - mint_url: MintUrl, request: String, unit: CurrencyUnit, amount: Amount, @@ -45,7 +41,6 @@ impl MintQuote { let id = Uuid::new_v4(); Self { - mint_url, id, amount, unit, diff --git a/crates/cdk-integration-tests/src/init_fake_wallet.rs b/crates/cdk-integration-tests/src/init_fake_wallet.rs index 01161001..831ff079 100644 --- a/crates/cdk-integration-tests/src/init_fake_wallet.rs +++ b/crates/cdk-integration-tests/src/init_fake_wallet.rs @@ -50,7 +50,6 @@ where mint_builder = mint_builder .with_name("fake test mint".to_string()) - .with_mint_url(format!("http://{addr}:{port}")) .with_description("fake test mint".to_string()) .with_quote_ttl(10000, 10000) .with_seed(mnemonic.to_seed_normalized("").to_vec()); diff --git a/crates/cdk-integration-tests/src/init_pure_tests.rs b/crates/cdk-integration-tests/src/init_pure_tests.rs index 7ab29a3f..cca127bb 100644 --- a/crates/cdk-integration-tests/src/init_pure_tests.rs +++ b/crates/cdk-integration-tests/src/init_pure_tests.rs @@ -175,7 +175,6 @@ pub async fn create_and_start_test_mint() -> anyhow::Result> { mint_builder = mint_builder .with_name("pure test mint".to_string()) - .with_mint_url("http://aa".to_string()) .with_description("pure test mint".to_string()) .with_quote_ttl(10000, 10000) .with_seed(mnemonic.to_seed_normalized("").to_vec()); @@ -198,7 +197,7 @@ pub fn create_test_wallet_for_mint(mint: Arc) -> anyhow::Result Mint { let quote_ttl = QuoteTTL::new(10000, 10000); Mint::new( - MINT_URL, &mnemonic.to_seed_normalized(""), mint_info, quote_ttl, @@ -72,7 +71,6 @@ async fn mint_proofs( let request_lookup = uuid::Uuid::new_v4().to_string(); let quote = MintQuote::new( - mint.config.mint_url(), "".to_string(), CurrencyUnit::Sat, amount, diff --git a/crates/cdk-mintd/src/main.rs b/crates/cdk-mintd/src/main.rs index ca2d3f7d..f6d728e6 100644 --- a/crates/cdk-mintd/src/main.rs +++ b/crates/cdk-mintd/src/main.rs @@ -301,7 +301,6 @@ async fn main() -> anyhow::Result<()> { mint_builder = mint_builder .with_name(settings.mint_info.name) - .with_mint_url(settings.info.url) .with_version(mint_version) .with_description(settings.mint_info.description) .with_quote_ttl(10000, 10000) diff --git a/crates/cdk-redb/src/mint/migrations.rs b/crates/cdk-redb/src/mint/migrations.rs index 3dafb99a..b7025588 100644 --- a/crates/cdk-redb/src/mint/migrations.rs +++ b/crates/cdk-redb/src/mint/migrations.rs @@ -202,7 +202,6 @@ impl From for MintQuote { fn from(quote: V1MintQuote) -> MintQuote { MintQuote { id: quote.id, - mint_url: quote.mint_url, amount: quote.amount, unit: quote.unit, request: quote.request.clone(), diff --git a/crates/cdk-sqlite/src/mint/migrations/20250129200912_remove_mint_url.sql b/crates/cdk-sqlite/src/mint/migrations/20250129200912_remove_mint_url.sql new file mode 100644 index 00000000..a48fbb27 --- /dev/null +++ b/crates/cdk-sqlite/src/mint/migrations/20250129200912_remove_mint_url.sql @@ -0,0 +1 @@ +ALTER TABLE mint_quote DROP COLUMN mint_url; diff --git a/crates/cdk-sqlite/src/mint/mod.rs b/crates/cdk-sqlite/src/mint/mod.rs index d0c6dbe0..4a2f32b0 100644 --- a/crates/cdk-sqlite/src/mint/mod.rs +++ b/crates/cdk-sqlite/src/mint/mod.rs @@ -10,7 +10,6 @@ use bitcoin::bip32::DerivationPath; use cdk_common::common::LnKey; use cdk_common::database::{self, MintDatabase}; use cdk_common::mint::{self, MintKeySetInfo, MintQuote}; -use cdk_common::mint_url::MintUrl; use cdk_common::nut00::ProofsMethods; use cdk_common::nut05::QuoteState; use cdk_common::secret::Secret; @@ -206,12 +205,11 @@ WHERE active = 1 let res = sqlx::query( r#" INSERT OR REPLACE INTO mint_quote -(id, mint_url, amount, unit, request, state, expiry, request_lookup_id, pubkey) -VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?); +(id, amount, unit, request, state, expiry, request_lookup_id, pubkey) +VALUES (?, ?, ?, ?, ?, ?, ?, ?); "#, ) .bind(quote.id.to_string()) - .bind(quote.mint_url.to_string()) .bind(u64::from(quote.amount) as i64) .bind(quote.unit.to_string()) .bind(quote.request) @@ -1250,7 +1248,6 @@ fn sqlite_row_to_keyset_info(row: SqliteRow) -> Result { fn sqlite_row_to_mint_quote(row: SqliteRow) -> Result { let row_id: Hyphenated = row.try_get("id").map_err(Error::from)?; - let row_mint_url: String = row.try_get("mint_url").map_err(Error::from)?; let row_amount: i64 = row.try_get("amount").map_err(Error::from)?; let row_unit: String = row.try_get("unit").map_err(Error::from)?; let row_request: String = row.try_get("request").map_err(Error::from)?; @@ -1274,7 +1271,6 @@ fn sqlite_row_to_mint_quote(row: SqliteRow) -> Result { Ok(MintQuote { id: row_id.into_uuid(), - mint_url: MintUrl::from_str(&row_mint_url)?, amount: Amount::from(row_amount as u64), unit: CurrencyUnit::from_str(&row_unit).map_err(Error::from)?, request: row_request, diff --git a/crates/cdk/src/mint/builder.rs b/crates/cdk/src/mint/builder.rs index cb68bccf..b2c4c290 100644 --- a/crates/cdk/src/mint/builder.rs +++ b/crates/cdk/src/mint/builder.rs @@ -21,8 +21,6 @@ use crate::types::{LnKey, QuoteTTL}; /// Cashu Mint #[derive(Default)] pub struct MintBuilder { - /// Mint Url - mint_url: Option, /// Mint Info mint_info: MintInfo, /// Mint Storage backend @@ -63,12 +61,6 @@ impl MintBuilder { self } - /// Set mint url - pub fn with_mint_url(mut self, mint_url: String) -> Self { - self.mint_url = Some(mint_url); - self - } - /// Set seed pub fn with_seed(mut self, seed: Vec) -> Self { self.seed = Some(seed); @@ -227,7 +219,6 @@ impl MintBuilder { /// Build mint pub async fn build(&self) -> anyhow::Result { Ok(Mint::new( - self.mint_url.as_ref().ok_or(anyhow!("Mint url not set"))?, self.seed.as_ref().ok_or(anyhow!("Mint seed not set"))?, self.mint_info.clone(), self.quote_ttl.ok_or(anyhow!("Quote ttl not set"))?, diff --git a/crates/cdk/src/mint/config.rs b/crates/cdk/src/mint/config.rs index a669cea0..f4812b8b 100644 --- a/crates/cdk/src/mint/config.rs +++ b/crates/cdk/src/mint/config.rs @@ -7,7 +7,6 @@ use std::sync::Arc; use arc_swap::ArcSwap; use super::{Id, MintInfo, MintKeySet}; -use crate::mint_url::MintUrl; use crate::types::QuoteTTL; /// Mint Inner configuration @@ -16,8 +15,6 @@ pub struct Config { pub keysets: HashMap, /// Mint url pub mint_info: MintInfo, - /// Mint config - pub mint_url: MintUrl, /// Quotes ttl pub quote_ttl: QuoteTTL, } @@ -36,17 +33,11 @@ pub struct SwappableConfig { impl SwappableConfig { /// Creates a new configuration instance - pub fn new( - mint_url: MintUrl, - quote_ttl: QuoteTTL, - mint_info: MintInfo, - keysets: HashMap, - ) -> Self { + pub fn new(quote_ttl: QuoteTTL, mint_info: MintInfo, keysets: HashMap) -> Self { let inner = Config { keysets, quote_ttl, mint_info, - mint_url, }; Self { @@ -59,24 +50,6 @@ impl SwappableConfig { self.config.load().clone() } - /// Gets a copy of the mint url - pub fn mint_url(&self) -> MintUrl { - self.load().mint_url.clone() - } - - /// Replace the current mint url with a new one - pub fn set_mint_url(&self, mint_url: MintUrl) { - let current_inner = self.load(); - let new_inner = Config { - mint_url, - quote_ttl: current_inner.quote_ttl, - mint_info: current_inner.mint_info.clone(), - keysets: current_inner.keysets.clone(), - }; - - self.config.store(Arc::new(new_inner)); - } - /// Gets a copy of the quote ttl pub fn quote_ttl(&self) -> QuoteTTL { self.load().quote_ttl @@ -87,7 +60,6 @@ impl SwappableConfig { let current_inner = self.load(); let new_inner = Config { mint_info: current_inner.mint_info.clone(), - mint_url: current_inner.mint_url.clone(), quote_ttl, keysets: current_inner.keysets.clone(), }; @@ -105,7 +77,6 @@ impl SwappableConfig { let current_inner = self.load(); let new_inner = Config { mint_info, - mint_url: current_inner.mint_url.clone(), quote_ttl: current_inner.quote_ttl, keysets: current_inner.keysets.clone(), }; @@ -119,7 +90,6 @@ impl SwappableConfig { let new_inner = Config { mint_info: current_inner.mint_info.clone(), quote_ttl: current_inner.quote_ttl, - mint_url: current_inner.mint_url.clone(), keysets, }; diff --git a/crates/cdk/src/mint/info.rs b/crates/cdk/src/mint/info.rs index 4cbb174c..3b5370f3 100644 --- a/crates/cdk/src/mint/info.rs +++ b/crates/cdk/src/mint/info.rs @@ -1,21 +1,8 @@ use tracing::instrument; use super::{Mint, MintInfo}; -use crate::mint_url::MintUrl; impl Mint { - /// Set Mint Url - #[instrument(skip_all)] - pub fn set_mint_url(&self, mint_url: MintUrl) { - self.config.set_mint_url(mint_url); - } - - /// Get Mint Url - #[instrument(skip_all)] - pub fn get_mint_url(&self) -> MintUrl { - self.config.mint_url() - } - /// Set Mint Info #[instrument(skip_all)] pub fn set_mint_info(&self, mint_info: MintInfo) { diff --git a/crates/cdk/src/mint/mint_nut04.rs b/crates/cdk/src/mint/mint_nut04.rs index f253486b..32e2242c 100644 --- a/crates/cdk/src/mint/mint_nut04.rs +++ b/crates/cdk/src/mint/mint_nut04.rs @@ -101,7 +101,6 @@ impl Mint { })?; let quote = MintQuote::new( - self.config.mint_url(), create_invoice_response.request.to_string(), unit.clone(), amount, diff --git a/crates/cdk/src/mint/mod.rs b/crates/cdk/src/mint/mod.rs index 23fd96e1..26d9f7f8 100644 --- a/crates/cdk/src/mint/mod.rs +++ b/crates/cdk/src/mint/mod.rs @@ -1,7 +1,6 @@ //! Cashu Mint use std::collections::HashMap; -use std::str::FromStr; use std::sync::Arc; use bitcoin::bip32::{ChildNumber, DerivationPath, Xpriv}; @@ -22,7 +21,6 @@ use crate::cdk_lightning::{self, MintLightning}; use crate::dhke::{sign_message, verify_message}; use crate::error::Error; use crate::fees::calculate_fee; -use crate::mint_url::MintUrl; use crate::nuts::*; use crate::util::unix_time; use crate::Amount; @@ -60,7 +58,6 @@ impl Mint { /// Create new [`Mint`] #[allow(clippy::too_many_arguments)] pub async fn new( - mint_url: &str, seed: &[u8], mint_info: MintInfo, quote_ttl: QuoteTTL, @@ -183,12 +180,7 @@ impl Mint { } Ok(Self { - config: SwappableConfig::new( - MintUrl::from_str(mint_url)?, - quote_ttl, - mint_info, - active_keysets, - ), + config: SwappableConfig::new(quote_ttl, mint_info, active_keysets), pubsub_manager: Arc::new(localstore.clone().into()), secp_ctx, xpriv, @@ -564,6 +556,7 @@ fn derivation_path_from_unit(unit: CurrencyUnit, index: u32) -> Option { active_keysets: HashMap, @@ -671,7 +663,6 @@ mod tests { blinded_signatures: HashMap<[u8; 33], BlindSignature>, quote_proofs: HashMap>, quote_signatures: HashMap>, - mint_url: &'a str, seed: &'a [u8], mint_info: MintInfo, supported_units: HashMap, @@ -697,7 +688,6 @@ mod tests { ); Mint::new( - config.mint_url, config.seed, config.mint_info, config.quote_ttl, @@ -712,12 +702,10 @@ mod tests { #[tokio::test] async fn mint_mod_new_mint() -> Result<(), Error> { let config = MintConfig::<'_> { - mint_url: "http://example.com", ..Default::default() }; let mint = create_mint(config).await?; - assert_eq!(mint.get_mint_url().to_string(), "http://example.com"); let info = mint.mint_info(); assert!(info.name.is_none()); assert!(info.pubkey.is_none()); @@ -751,7 +739,6 @@ mod tests { #[tokio::test] async fn mint_mod_rotate_keyset() -> Result<(), Error> { let config = MintConfig::<'_> { - mint_url: "http://example.com", ..Default::default() }; let mint = create_mint(config).await?; @@ -796,7 +783,6 @@ mod tests { println!("{}", seed); let config = MintConfig::<'_> { - mint_url: "http://example.com", seed: &seed.to_seed_normalized(""), ..Default::default() };