@@ -757,11 +757,7 @@ pub(crate) async fn handle_command(cli_opts: CliOpts) -> Result<String, Error> {
757757 let home_dir = prepare_home_dir ( cli_opts. datadir ) ?;
758758 let wallet_name = & wallet_opts. wallet ;
759759 let database_path = prepare_wallet_db_dir ( wallet_name, & home_dir) ?;
760- #[ cfg( feature = "redb" ) ]
761- let db = bdk_redb:: redb:: Database :: create ( database_path. join ( "wallet.redb" ) )
762- . map_err ( bdk_redb:: redb:: Error :: from)
763- . map_err ( bdk_redb:: error:: StoreError :: from)
764- . map_err ( PersisterError :: from) ?;
760+
765761 #[ cfg( any( feature = "sqlite" , feature = "redb" ) ) ]
766762 let result = {
767763 let mut persister: Persister = match & wallet_opts. database_type {
@@ -774,17 +770,19 @@ pub(crate) async fn handle_command(cli_opts: CliOpts) -> Result<String, Error> {
774770 }
775771 #[ cfg( feature = "redb" ) ]
776772 DatabaseType :: Redb => {
777- let wallet_name = wallet_opts. clone ( ) . wallet ;
778- tokio:: task:: spawn_blocking ( move || {
779- let store = RedbStore :: new (
780- Arc :: new ( db) ,
781- wallet_name. clone ( ) . unwrap_or ( "wallet1" . to_string ( ) ) ,
782- )
783- . map_err ( PersisterError :: from) ?;
784- log:: debug!( "Redb database opened successfully" ) ;
785- Ok :: < Persister , PersisterError > ( Persister :: RedbStore ( store) )
786- } )
787- . await ??
773+ let db = Arc :: new (
774+ bdk_redb:: redb:: Database :: create ( database_path. join ( "wallet.redb" ) )
775+ . map_err ( bdk_redb:: redb:: Error :: from)
776+ . map_err ( bdk_redb:: error:: StoreError :: from)
777+ . map_err ( PersisterError :: from) ?,
778+ ) ;
779+ let store = RedbStore :: new (
780+ db,
781+ wallet_name. as_deref ( ) . unwrap_or ( "wallet1" ) . to_string ( ) ,
782+ )
783+ . map_err ( PersisterError :: from) ?;
784+ log:: debug!( "Redb database opened successfully" ) ;
785+ Persister :: RedbStore ( store)
788786 }
789787 } ;
790788
@@ -820,12 +818,8 @@ pub(crate) async fn handle_command(cli_opts: CliOpts) -> Result<String, Error> {
820818 #[ cfg( any( feature = "sqlite" , feature = "redb" ) ) ]
821819 let result = {
822820 let home_dir = prepare_home_dir ( cli_opts. datadir ) ?;
823- let database_path = prepare_wallet_db_dir ( & wallet_opts. wallet , & home_dir) ?;
824- #[ cfg( feature = "redb" ) ]
825- let db = bdk_redb:: redb:: Database :: create ( database_path. join ( "wallet.redb" ) )
826- . map_err ( bdk_redb:: redb:: Error :: from)
827- . map_err ( bdk_redb:: error:: StoreError :: from)
828- . map_err ( PersisterError :: from) ?;
821+ let wallet_name = & wallet_opts. wallet ;
822+ let database_path = prepare_wallet_db_dir ( wallet_name, & home_dir) ?;
829823 let mut persister: Persister = match & wallet_opts. database_type {
830824 #[ cfg( feature = "sqlite" ) ]
831825 DatabaseType :: Sqlite => {
@@ -836,17 +830,19 @@ pub(crate) async fn handle_command(cli_opts: CliOpts) -> Result<String, Error> {
836830 }
837831 #[ cfg( feature = "redb" ) ]
838832 DatabaseType :: Redb => {
839- let wallet_name = wallet_opts. clone ( ) . wallet ;
840- tokio:: task:: spawn_blocking ( move || {
841- let store = RedbStore :: new (
842- Arc :: new ( db) ,
843- wallet_name. clone ( ) . unwrap_or ( "wallet1" . to_string ( ) ) ,
844- )
845- . map_err ( PersisterError :: from) ?;
846- log:: debug!( "Redb database opened successfully" ) ;
847- Ok :: < Persister , PersisterError > ( Persister :: RedbStore ( store) )
848- } )
849- . await ??
833+ let db = Arc :: new (
834+ bdk_redb:: redb:: Database :: create ( database_path. join ( "wallet.redb" ) )
835+ . map_err ( bdk_redb:: redb:: Error :: from)
836+ . map_err ( bdk_redb:: error:: StoreError :: from)
837+ . map_err ( PersisterError :: from) ?,
838+ ) ;
839+ let store = RedbStore :: new (
840+ db,
841+ wallet_name. as_deref ( ) . unwrap_or ( "wallet1" ) . to_string ( ) ,
842+ )
843+ . map_err ( PersisterError :: from) ?;
844+ log:: debug!( "Redb database opened successfully" ) ;
845+ Persister :: RedbStore ( store)
850846 }
851847 } ;
852848
@@ -883,44 +879,37 @@ pub(crate) async fn handle_command(cli_opts: CliOpts) -> Result<String, Error> {
883879 #[ cfg( feature = "repl" ) ]
884880 CliSubCommand :: Repl { wallet_opts } => {
885881 let network = cli_opts. network ;
886- #[ cfg( feature = "redb" ) ]
887- let db = bdk_redb:: redb:: Database :: create (
888- prepare_wallet_db_dir (
889- & wallet_opts. wallet ,
890- & prepare_home_dir ( cli_opts. datadir . clone ( ) ) ?,
891- ) ?
892- . join ( "wallet.redb" ) ,
893- )
894- . map_err ( bdk_redb:: redb:: Error :: from)
895- . map_err ( bdk_redb:: error:: StoreError :: from)
896- . map_err ( PersisterError :: from) ?;
897882 #[ cfg( any( feature = "sqlite" , feature = "redb" ) ) ]
898883 let ( mut wallet, mut persister) = {
884+ let wallet_name = & wallet_opts. wallet ;
885+
886+ let home_dir = prepare_home_dir ( cli_opts. datadir . clone ( ) ) ?;
887+
888+ let database_path = prepare_wallet_db_dir ( wallet_name, & home_dir) ?;
889+
899890 let mut persister: Persister = match & wallet_opts. database_type {
900891 #[ cfg( feature = "sqlite" ) ]
901892 DatabaseType :: Sqlite => {
902- let wallet_name = & wallet_opts. wallet ;
903- let home_dir = prepare_home_dir ( cli_opts. datadir . clone ( ) ) ?;
904-
905- let database_path = prepare_wallet_db_dir ( wallet_name, & home_dir) ?;
906893 let db_file = database_path. join ( "wallet.sqlite" ) ;
907894 let connection = Connection :: open ( db_file) . map_err ( PersisterError :: from) ?;
908895 log:: debug!( "Sqlite database opened successfully" ) ;
909896 Persister :: Connection ( connection)
910897 }
911898 #[ cfg( feature = "redb" ) ]
912899 DatabaseType :: Redb => {
913- let wallet_name = wallet_opts. clone ( ) . wallet ;
914- tokio:: task:: spawn_blocking ( move || {
915- let store = RedbStore :: new (
916- Arc :: new ( db) ,
917- wallet_name. clone ( ) . unwrap_or ( "wallet1" . to_string ( ) ) ,
918- )
919- . map_err ( PersisterError :: from) ?;
920- log:: debug!( "Redb database opened successfully" ) ;
921- Ok :: < Persister , PersisterError > ( Persister :: RedbStore ( store) )
922- } )
923- . await ??
900+ let db = Arc :: new (
901+ bdk_redb:: redb:: Database :: create ( database_path. join ( "wallet.redb" ) )
902+ . map_err ( bdk_redb:: redb:: Error :: from)
903+ . map_err ( bdk_redb:: error:: StoreError :: from)
904+ . map_err ( PersisterError :: from) ?,
905+ ) ;
906+ let store = RedbStore :: new (
907+ db,
908+ wallet_name. as_deref ( ) . unwrap_or ( "wallet1" ) . to_string ( ) ,
909+ )
910+ . map_err ( PersisterError :: from) ?;
911+ log:: debug!( "Redb database opened successfully" ) ;
912+ Persister :: RedbStore ( store)
924913 }
925914 } ;
926915 let wallet = new_persisted_wallet ( network, & mut persister, & wallet_opts) ?;
0 commit comments