File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed
Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -199,3 +199,37 @@ where
199199
200200 assert_eq ! ( changeset_read. network, Some ( Network :: Bitcoin ) ) ;
201201}
202+
203+ pub fn persist_keychains < Db , CreateDb > ( filename : & str , create_db : CreateDb )
204+ where
205+ CreateDb : Fn ( & Path ) -> anyhow:: Result < Db > ,
206+ Db : WalletPersister ,
207+ Db :: Error : Debug ,
208+ {
209+ // create db
210+ let temp_dir = tempfile:: tempdir ( ) . expect ( "must create tempdir" ) ;
211+ let file_path = temp_dir. path ( ) . join ( filename) ;
212+ let mut db = create_db ( & file_path) . expect ( "db should get created" ) ;
213+
214+ // initialize db
215+ let changeset =
216+ WalletPersister :: initialize ( & mut db) . expect ( "should initialize and load empty changeset" ) ;
217+ assert_eq ! ( changeset, ChangeSet :: default ( ) ) ;
218+
219+ let descriptor: Descriptor < DescriptorPublicKey > = DESCRIPTORS [ 0 ] . parse ( ) . unwrap ( ) ;
220+ let change_descriptor: Descriptor < DescriptorPublicKey > = DESCRIPTORS [ 1 ] . parse ( ) . unwrap ( ) ;
221+
222+ let changeset = ChangeSet {
223+ descriptor : Some ( descriptor. clone ( ) ) ,
224+ change_descriptor : Some ( change_descriptor. clone ( ) ) ,
225+ ..ChangeSet :: default ( )
226+ } ;
227+
228+ WalletPersister :: persist ( & mut db, & changeset) . expect ( "should persist descriptors" ) ;
229+
230+ let changeset_read =
231+ WalletPersister :: initialize ( & mut db) . expect ( "should read persisted changeset" ) ;
232+
233+ assert_eq ! ( changeset_read. descriptor. unwrap( ) , descriptor) ;
234+ assert_eq ! ( changeset_read. change_descriptor. unwrap( ) , change_descriptor) ;
235+ }
You can’t perform that action at this time.
0 commit comments