fedimint_client_module/sm/
dbtx.rs1use fedimint_core::core::ModuleInstanceId;
2use fedimint_core::db::DatabaseTransaction;
3
4pub struct ClientSMDatabaseTransaction<'inner, 'parent> {
7 dbtx: &'inner mut DatabaseTransaction<'parent>,
8 module_instance: ModuleInstanceId,
9}
10
11impl<'inner, 'parent> ClientSMDatabaseTransaction<'inner, 'parent> {
12 pub fn new(
13 dbtx: &'inner mut DatabaseTransaction<'parent>,
14 module_instance: ModuleInstanceId,
15 ) -> Self {
16 Self {
17 dbtx,
18 module_instance,
19 }
20 }
21
22 pub fn module_tx(&mut self) -> DatabaseTransaction<'_> {
24 self.dbtx
25 .to_ref_with_prefix_module_id(self.module_instance)
26 .0
27 .into_nc()
28 }
29
30 #[doc(hidden)]
37 pub fn global_tx(&mut self) -> &mut DatabaseTransaction<'parent> {
38 self.dbtx
39 }
40
41 pub(crate) fn module_id(&self) -> ModuleInstanceId {
42 self.module_instance
43 }
44}