diff --git a/mutiny-core/src/federation.rs b/mutiny-core/src/federation.rs index f6e886f10..847e9108a 100644 --- a/mutiny-core/src/federation.rs +++ b/mutiny-core/src/federation.rs @@ -254,6 +254,12 @@ impl FederationClient { "Fedimint on different network {}, expected: {network}", wallet_client.get_network() ); + + // try to delete the storage for this federation + if let Err(e) = fedimint_storage.delete_store().await { + log_error!(logger, "Could not delete fedimint storage: {e}"); + } + return Err(MutinyError::NetworkMismatch); } diff --git a/mutiny-core/src/lib.rs b/mutiny-core/src/lib.rs index 79ba11c6f..28d9b21d3 100644 --- a/mutiny-core/src/lib.rs +++ b/mutiny-core/src/lib.rs @@ -2442,12 +2442,6 @@ pub(crate) async fn create_new_federation( federation_code: federation_code.clone(), }; - federation_mutex - .federations - .insert(next_federation_uuid.clone(), next_federation.clone()); - federation_mutex.version += 1; - storage.insert_federations(federation_mutex.clone()).await?; - // now create the federation process and init it let new_federation = FederationClient::new( next_federation_uuid.clone(), @@ -2459,6 +2453,12 @@ pub(crate) async fn create_new_federation( ) .await?; + federation_mutex + .federations + .insert(next_federation_uuid.clone(), next_federation.clone()); + federation_mutex.version += 1; + storage.insert_federations(federation_mutex.clone()).await?; + let federation_id = new_federation.fedimint_client.federation_id(); let federation_name = new_federation.fedimint_client.get_meta("federation_name"); let federation_expiry_timestamp = new_federation