Эх сурвалжийг харах

Remove lifetime parameter from mint transaction traits

Remove the 'a lifetime parameter from mint database transaction traits:
- QuotesTransaction
- ProofsTransaction
- SignaturesTransaction
- SagaTransaction
- CompletedOperationsTransaction
- Transaction

This simplifies the trait signatures and removes unnecessary lifetime
annotations that were not providing value.
Cesar Rodas 1 сар өмнө
parent
commit
4b247b3657

+ 12 - 14
crates/cdk-common/src/database/mint/mod.rs

@@ -76,7 +76,7 @@ pub trait KeysDatabase {
 
 /// Mint Quote Database writer trait
 #[async_trait]
-pub trait QuotesTransaction<'a> {
+pub trait QuotesTransaction {
     /// Mint Quotes Database Error
     type Err: Into<Error> + From<Error>;
 
@@ -202,7 +202,7 @@ pub trait QuotesDatabase {
 
 /// Mint Proof Transaction trait
 #[async_trait]
-pub trait ProofsTransaction<'a> {
+pub trait ProofsTransaction {
     /// Mint Proof Database Error
     type Err: Into<Error> + From<Error>;
 
@@ -265,7 +265,7 @@ pub trait ProofsDatabase {
 
 #[async_trait]
 /// Mint Signatures Transaction trait
-pub trait SignaturesTransaction<'a> {
+pub trait SignaturesTransaction {
     /// Mint Signature Database Error
     type Err: Into<Error> + From<Error>;
 
@@ -314,7 +314,7 @@ pub trait SignaturesDatabase {
 
 #[async_trait]
 /// Saga Transaction trait
-pub trait SagaTransaction<'a> {
+pub trait SagaTransaction {
     /// Saga Database Error
     type Err: Into<Error> + From<Error>;
 
@@ -353,7 +353,7 @@ pub trait SagaDatabase {
 
 #[async_trait]
 /// Completed Operations Transaction trait
-pub trait CompletedOperationsTransaction<'a> {
+pub trait CompletedOperationsTransaction {
     /// Completed Operations Database Error
     type Err: Into<Error> + From<Error>;
 
@@ -388,14 +388,14 @@ pub trait CompletedOperationsDatabase {
 }
 
 /// Base database writer
-pub trait Transaction<'a, Error>:
+pub trait Transaction<Error>:
     DbTransactionFinalizer<Err = Error>
-    + QuotesTransaction<'a, Err = Error>
-    + SignaturesTransaction<'a, Err = Error>
-    + ProofsTransaction<'a, Err = Error>
+    + QuotesTransaction<Err = Error>
+    + SignaturesTransaction<Err = Error>
+    + ProofsTransaction<Err = Error>
     + KVStoreTransaction<Error>
-    + SagaTransaction<'a, Err = Error>
-    + CompletedOperationsTransaction<'a, Err = Error>
+    + SagaTransaction<Err = Error>
+    + CompletedOperationsTransaction<Err = Error>
 {
 }
 
@@ -410,9 +410,7 @@ pub trait Database<Error>:
     + CompletedOperationsDatabase<Err = Error>
 {
     /// Begins a transaction
-    async fn begin_transaction<'a>(
-        &'a self,
-    ) -> Result<Box<dyn Transaction<'a, Error> + Send + Sync + 'a>, Error>;
+    async fn begin_transaction(&self) -> Result<Box<dyn Transaction<Error> + Send + Sync>, Error>;
 }
 
 /// Type alias for Mint Database

+ 9 - 10
crates/cdk-sql-common/src/mint/mod.rs

@@ -131,7 +131,7 @@ where
 }
 
 #[async_trait]
-impl<RM> database::MintProofsTransaction<'_> for SQLTransaction<RM>
+impl<RM> database::MintProofsTransaction for SQLTransaction<RM>
 where
     RM: DatabasePool + 'static,
 {
@@ -328,8 +328,7 @@ where
 }
 
 #[async_trait]
-impl<RM> database::MintTransaction<'_, Error> for SQLTransaction<RM> where RM: DatabasePool + 'static
-{}
+impl<RM> database::MintTransaction<Error> for SQLTransaction<RM> where RM: DatabasePool + 'static {}
 
 #[async_trait]
 impl<RM> DbTransactionFinalizer for SQLTransaction<RM>
@@ -779,7 +778,7 @@ where
 }
 
 #[async_trait]
-impl<RM> MintQuotesTransaction<'_> for SQLTransaction<RM>
+impl<RM> MintQuotesTransaction for SQLTransaction<RM>
 where
     RM: DatabasePool + 'static,
 {
@@ -1662,7 +1661,7 @@ where
 }
 
 #[async_trait]
-impl<RM> MintSignatureTransaction<'_> for SQLTransaction<RM>
+impl<RM> MintSignatureTransaction for SQLTransaction<RM>
 where
     RM: DatabasePool + 'static,
 {
@@ -2100,7 +2099,7 @@ where
 }
 
 #[async_trait]
-impl<RM> SagaTransaction<'_> for SQLTransaction<RM>
+impl<RM> SagaTransaction for SQLTransaction<RM>
 where
     RM: DatabasePool + 'static,
 {
@@ -2244,7 +2243,7 @@ where
 }
 
 #[async_trait]
-impl<RM> CompletedOperationsTransaction<'_> for SQLTransaction<RM>
+impl<RM> CompletedOperationsTransaction for SQLTransaction<RM>
 where
     RM: DatabasePool + 'static,
 {
@@ -2392,9 +2391,9 @@ impl<RM> MintDatabase<Error> for SQLMintDatabase<RM>
 where
     RM: DatabasePool + 'static,
 {
-    async fn begin_transaction<'a>(
-        &'a self,
-    ) -> Result<Box<dyn database::MintTransaction<'a, Error> + Send + Sync + 'a>, Error> {
+    async fn begin_transaction(
+        &self,
+    ) -> Result<Box<dyn database::MintTransaction<Error> + Send + Sync>, Error> {
         let tx = SQLTransaction {
             inner: ConnectionWithTransaction::new(
                 self.pool.get().map_err(|e| Error::Database(Box::new(e)))?,

+ 1 - 1
crates/cdk/src/mint/issue/mod.rs

@@ -451,7 +451,7 @@ impl Mint {
     #[instrument(skip_all)]
     pub async fn pay_mint_quote(
         &self,
-        tx: &mut Box<dyn database::MintTransaction<'_, database::Error> + Send + Sync + '_>,
+        tx: &mut Box<dyn database::MintTransaction<database::Error> + Send + Sync>,
         mint_quote: &MintQuote,
         wait_payment_response: WaitPaymentResponse,
     ) -> Result<(), Error> {

+ 4 - 4
crates/cdk/src/mint/melt/shared.rs

@@ -176,9 +176,9 @@ pub async fn rollback_melt_quote(
 /// - Change calculation fails
 /// - Blind signing fails
 /// - Database operations fail
-pub async fn process_melt_change<'a>(
+pub async fn process_melt_change(
     mint: &super::super::Mint,
-    db: &'a DynMintDatabase,
+    db: &DynMintDatabase,
     quote_id: &QuoteId,
     inputs_amount: Amount,
     total_spent: Amount,
@@ -187,7 +187,7 @@ pub async fn process_melt_change<'a>(
 ) -> Result<
     (
         Option<Vec<BlindSignature>>,
-        Box<dyn database::MintTransaction<'a, database::Error> + Send + Sync + 'a>,
+        Box<dyn database::MintTransaction<database::Error> + Send + Sync>,
     ),
     Error,
 > {
@@ -281,7 +281,7 @@ pub async fn process_melt_change<'a>(
 /// - Database operations fail
 #[allow(clippy::too_many_arguments)]
 pub async fn finalize_melt_core(
-    tx: &mut Box<dyn database::MintTransaction<'_, database::Error> + Send + Sync + '_>,
+    tx: &mut Box<dyn database::MintTransaction<database::Error> + Send + Sync>,
     pubsub: &PubSubManager,
     quote: &MeltQuote,
     input_ys: &[PublicKey],

+ 1 - 1
crates/cdk/src/mint/mod.rs

@@ -709,7 +709,7 @@ impl Mint {
     /// Handle payment for a specific mint quote (extracted from pay_mint_quote)
     #[instrument(skip_all)]
     async fn handle_mint_quote_payment(
-        tx: &mut Box<dyn database::MintTransaction<'_, database::Error> + Send + Sync + '_>,
+        tx: &mut Box<dyn database::MintTransaction<database::Error> + Send + Sync>,
         mint_quote: &MintQuote,
         wait_payment_response: WaitPaymentResponse,
         pubsub_manager: &Arc<PubSubManager>,

+ 3 - 3
crates/cdk/src/mint/verification.rs

@@ -147,7 +147,7 @@ impl Mint {
     #[instrument(skip_all)]
     pub async fn check_output_already_signed(
         &self,
-        tx: &mut Box<dyn cdk_database::MintTransaction<'_, cdk_database::Error> + Send + Sync + '_>,
+        tx: &mut Box<dyn cdk_database::MintTransaction<cdk_database::Error> + Send + Sync>,
         outputs: &[BlindedMessage],
     ) -> Result<(), Error> {
         let blinded_messages: Vec<PublicKey> = outputs.iter().map(|o| o.blinded_secret).collect();
@@ -173,7 +173,7 @@ impl Mint {
     #[instrument(skip_all)]
     pub async fn verify_outputs(
         &self,
-        tx: &mut Box<dyn cdk_database::MintTransaction<'_, cdk_database::Error> + Send + Sync + '_>,
+        tx: &mut Box<dyn cdk_database::MintTransaction<cdk_database::Error> + Send + Sync>,
         outputs: &[BlindedMessage],
     ) -> Result<Verification, Error> {
         if outputs.is_empty() {
@@ -217,7 +217,7 @@ impl Mint {
     #[instrument(skip_all)]
     pub async fn verify_transaction_balanced(
         &self,
-        tx: &mut Box<dyn cdk_database::MintTransaction<'_, cdk_database::Error> + Send + Sync + '_>,
+        tx: &mut Box<dyn cdk_database::MintTransaction<cdk_database::Error> + Send + Sync>,
         input_verification: Verification,
         inputs: &Proofs,
         outputs: &[BlindedMessage],