Explorar o código

Add zero when the keys has no activity

Cesar Rodas hai 1 semana
pai
achega
29b9113ccd
Modificáronse 2 ficheiros con 18 adicións e 6 borrados
  1. 2 2
      crates/cdk-sql-common/src/mint/mod.rs
  2. 16 4
      crates/cdk/src/mint/mod.rs

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

@@ -1740,7 +1740,7 @@ where
                         INSERT INTO keyset_amounts (keyset_id, total_issued, total_redeemed)
                         VALUES (:keyset_id, :amount, 0)
                         ON CONFLICT (keyset_id)
-                        DO UPDATE SET total_issued = keyset_amounts.total_issued + :amount
+                        DO UPDATE SET total_issued = keyset_amounts.total_issued + EXCLUDED.total_issued
                         "#,
                     )?
                     .bind("amount", u64::from(signature.amount) as i64)
@@ -1780,7 +1780,7 @@ where
                                 INSERT INTO keyset_amounts (keyset_id, total_issued, total_redeemed)
                                 VALUES (:keyset_id, :amount, 0)
                                 ON CONFLICT (keyset_id)
-                                DO UPDATE SET total_issued = keyset_amounts.total_issued + :amount
+                                DO UPDATE SET total_issued = keyset_amounts.total_issued + EXCLUDED.total_issued
                                 "#,
                             )?
                             .bind("amount", u64::from(signature.amount) as i64)

+ 16 - 4
crates/cdk/src/mint/mod.rs

@@ -950,7 +950,14 @@ impl Mint {
         #[cfg(feature = "prometheus")]
         global::inc_in_flight_requests("total_issued");
 
-        let result = async { Ok(self.localstore.get_total_issued().await?) }.await;
+        let result = async {
+            let mut total_issued = self.localstore.get_total_issued().await?;
+            for keyset in self.keysets().keysets {
+                total_issued.entry(keyset.id).or_default();
+            }
+            Ok(total_issued)
+        }
+        .await;
 
         #[cfg(feature = "prometheus")]
         {
@@ -967,7 +974,14 @@ impl Mint {
         #[cfg(feature = "prometheus")]
         global::inc_in_flight_requests("total_redeemed");
 
-        let total_redeemed = async { Ok(self.localstore.get_total_redeemed().await?) }.await;
+        let total_redeemed = async {
+            let mut total_redeemed = self.localstore.get_total_redeemed().await?;
+            for keyset in self.keysets().keysets {
+                total_redeemed.entry(keyset.id).or_default();
+            }
+            Ok(total_redeemed)
+        }
+        .await;
 
         #[cfg(feature = "prometheus")]
         global::dec_in_flight_requests("total_redeemed");
@@ -1039,8 +1053,6 @@ mod tests {
         };
         let mint = create_mint(config).await;
 
-        println!("{:?}", mint.total_issued().await);
-
         assert_eq!(
             mint.total_issued()
                 .await