// /* // * This file is part of Stack Wallet. // * // * Copyright (c) 2023 Cypher Stack // * All Rights Reserved. // * The code is distributed under GPLv3 license, see LICENSE file for details. // * Generated by Cypher Stack on 2023-05-26 // * // */ // // import 'package:stackwallet/db/hive/db.dart'; // import 'package:stackwallet/models/balance.dart'; // import 'package:stackwallet/models/isar/models/ethereum/eth_contract.dart'; // import 'package:stackwallet/utilities/amount/amount.dart'; // // abstract class TokenCacheKeys { // static String tokenBalance(String contractAddress) { // return "tokenBalanceCache_$contractAddress"; // } // } // // mixin EthTokenCache { // late final String _walletId; // late final EthContract _token; // // void initCache(String walletId, EthContract token) { // _walletId = walletId; // _token = token; // } // // // token balance cache // Balance getCachedBalance() { // final jsonString = DB.instance.get( // boxName: _walletId, // key: TokenCacheKeys.tokenBalance(_token.address), // ) as String?; // if (jsonString == null) { // return Balance( // total: Amount( // rawValue: BigInt.zero, // fractionDigits: _token.decimals, // ), // spendable: Amount( // rawValue: BigInt.zero, // fractionDigits: _token.decimals, // ), // blockedTotal: Amount( // rawValue: BigInt.zero, // fractionDigits: _token.decimals, // ), // pendingSpendable: Amount( // rawValue: BigInt.zero, // fractionDigits: _token.decimals, // ), // ); // } // return Balance.fromJson( // jsonString, // _token.decimals, // ); // } // // Future updateCachedBalance(Balance balance) async { // await DB.instance.put( // boxName: _walletId, // key: TokenCacheKeys.tokenBalance(_token.address), // value: balance.toJsonIgnoreCoin(), // ); // } // }