]> Untitled Git - bdk/commitdiff
refactor(chain)!: change String by &str for versioned scripts in migrate_schema
authornymius <155548262+nymius@users.noreply.github.com>
Wed, 4 Dec 2024 17:08:43 +0000 (14:08 -0300)
committernymius <155548262+nymius@users.noreply.github.com>
Wed, 4 Dec 2024 17:41:09 +0000 (14:41 -0300)
`&str` is documenting clearly that `migrate_schema` should only read
`versioned_strings`.

Also, as `schema_vN` methods will return `String`, rust will always
automatically deref `&String` to `&str`.

BREAKING CHANGE: changes parameter versioned_strings from public
function migrate_schema from type &[String] to &[&str].

crates/chain/src/rusqlite_impl.rs
crates/wallet/src/wallet/changeset.rs

index 2a52a2ac165f06a3f33a90624862670f026492f3..7b39f53c02399e3cd031f40460dc09b68d9c39b1 100644 (file)
@@ -61,7 +61,7 @@ fn set_schema_version(
 pub fn migrate_schema(
     db_tx: &Transaction,
     schema_name: &str,
-    versioned_scripts: &[String],
+    versioned_scripts: &[&str],
 ) -> rusqlite::Result<()> {
     init_schemas_table(db_tx)?;
     let current_version = schema_version(db_tx, schema_name)?;
@@ -269,7 +269,7 @@ impl tx_graph::ChangeSet<ConfirmationBlockTime> {
         migrate_schema(
             db_tx,
             Self::SCHEMA_NAME,
-            &[Self::schema_v0(), Self::schema_v1()],
+            &[&Self::schema_v0(), &Self::schema_v1()],
         )
     }
 
@@ -435,7 +435,7 @@ impl local_chain::ChangeSet {
 
     /// Initialize sqlite tables for persisting [`local_chain::LocalChain`].
     pub fn init_sqlite_tables(db_tx: &rusqlite::Transaction) -> rusqlite::Result<()> {
-        migrate_schema(db_tx, Self::SCHEMA_NAME, &[Self::schema_v0()])
+        migrate_schema(db_tx, Self::SCHEMA_NAME, &[&Self::schema_v0()])
     }
 
     /// Construct a [`LocalChain`](local_chain::LocalChain) from sqlite database.
@@ -511,7 +511,7 @@ impl keychain_txout::ChangeSet {
     /// Initialize sqlite tables for persisting
     /// [`KeychainTxOutIndex`](keychain_txout::KeychainTxOutIndex).
     pub fn init_sqlite_tables(db_tx: &rusqlite::Transaction) -> rusqlite::Result<()> {
-        migrate_schema(db_tx, Self::SCHEMA_NAME, &[Self::schema_v0()])
+        migrate_schema(db_tx, Self::SCHEMA_NAME, &[&Self::schema_v0()])
     }
 
     /// Construct [`KeychainTxOutIndex`](keychain_txout::KeychainTxOutIndex) from sqlite database
@@ -635,7 +635,7 @@ mod test {
         // Create initial database with v0 sqlite schema
         {
             let db_tx = conn.transaction()?;
-            migrate_schema(&db_tx, ChangeSet::SCHEMA_NAME, &[ChangeSet::schema_v0()])?;
+            migrate_schema(&db_tx, ChangeSet::SCHEMA_NAME, &[&ChangeSet::schema_v0()])?;
             db_tx.commit()?;
         }
 
@@ -703,7 +703,7 @@ mod test {
             migrate_schema(
                 &db_tx,
                 ChangeSet::SCHEMA_NAME,
-                &[ChangeSet::schema_v0(), ChangeSet::schema_v1()],
+                &[&ChangeSet::schema_v0(), &ChangeSet::schema_v1()],
             )?;
             db_tx.commit()?;
         }
index 5a67fcd076eb54106f121e22e915cc1a89b6c453..36a5b49361058fce4cc84ca5bb9b449b339d0c01 100644 (file)
@@ -90,7 +90,7 @@ impl ChangeSet {
         crate::rusqlite_impl::migrate_schema(
             db_tx,
             Self::WALLET_SCHEMA_NAME,
-            &[Self::schema_v0()],
+            &[&Self::schema_v0()],
         )?;
 
         bdk_chain::local_chain::ChangeSet::init_sqlite_tables(db_tx)?;