saveProofs method
Future<void>
saveProofs(
{ - required List<CashuProof> proofs,
- required String mintUrl,
})
override
Implementation
@override
Future<void> saveProofs({
required List<CashuProof> proofs,
required String mintUrl,
}) async {
await dbRdy;
/// upsert logic:
final store = _objectBox.store;
store.runInTransaction(TxMode.write, () {
final box = store.box<DbWalletCashuProof>();
final dbTokens =
proofs.map((t) => DbWalletCashuProof.fromNdk(t)).toList();
// find existing proofs by secret
final secretsToCheck = dbTokens.map((t) => t.secret).toList();
final query =
box.query(DbWalletCashuProof_.secret.oneOf(secretsToCheck)).build();
try {
final existing = query.find();
if (existing.isNotEmpty) {
box.removeMany(existing.map((t) => t.dbId).toList());
}
// insert
box.putMany(dbTokens);
} finally {
query.close();
}
});
}