diff --git a/lib/services/mixins/epic_cash_hive.dart b/lib/services/mixins/epic_cash_hive.dart new file mode 100644 index 000000000..80053034a --- /dev/null +++ b/lib/services/mixins/epic_cash_hive.dart @@ -0,0 +1,112 @@ +import 'package:stackwallet/hive/db.dart'; + +mixin EpicCashHive { + late final String _walletId; + + void initEpicCashHive(String walletId) { + _walletId = walletId; + } + + // receiving index + int? epicGetReceivingIndex() { + return DB.instance.get(boxName: _walletId, key: "receivingIndex") + as int?; + } + + Future epicUpdateReceivingIndex(int index) async { + await DB.instance.put( + boxName: _walletId, + key: "receivingIndex", + value: index, + ); + } + + // change index + int? epicGetChangeIndex() { + return DB.instance.get(boxName: _walletId, key: "changeIndex") + as int?; + } + + Future epicUpdateChangeIndex(int index) async { + await DB.instance.put( + boxName: _walletId, + key: "changeIndex", + value: index, + ); + } + + // slateToAddresses + Map epicGetSlatesToAddresses() { + return DB.instance.get( + boxName: _walletId, + key: "slate_to_address", + ) as Map? ?? + {}; + } + + Future epicUpdateSlatesToAddresses(Map map) async { + await DB.instance.put( + boxName: _walletId, + key: "slate_to_address", + value: map, + ); + } + + // slatesToCommits + Map? epicGetSlatesToCommits() { + return DB.instance.get( + boxName: _walletId, + key: "slatesToCommits", + ) as Map?; + } + + Future epicUpdateSlatesToCommits(Map map) async { + await DB.instance.put( + boxName: _walletId, + key: "slatesToCommits", + value: map, + ); + } + + // last scanned block + int? epicGetLastScannedBlock() { + return DB.instance.get(boxName: _walletId, key: "lastScannedBlock") + as int?; + } + + Future epicUpdateLastScannedBlock(int blockHeight) async { + await DB.instance.put( + boxName: _walletId, + key: "lastScannedBlock", + value: blockHeight, + ); + } + + // epic restore height + int? epicGetRestoreHeight() { + return DB.instance.get(boxName: _walletId, key: "restoreHeight") + as int; + } + + Future epicUpdateRestoreHeight(int height) async { + await DB.instance.put( + boxName: _walletId, + key: "restoreHeight", + value: height, + ); + } + + // epic creation height + int? epicGetCreationHeight() { + return DB.instance.get(boxName: _walletId, key: "creationHeight") + as int; + } + + Future epicUpdateCreationHeight(int height) async { + await DB.instance.put( + boxName: _walletId, + key: "creationHeight", + value: height, + ); + } +}