async def get_all_transactions(self, wallet_id: int, type: int = None ) -> List[TransactionRecord]: """ Returns all stored transactions. """ if type is None: cursor = await self.db_connection.execute( "SELECT * from transaction_record where wallet_id=?", (wallet_id, )) else: cursor = await self.db_connection.execute( "SELECT * from transaction_record where wallet_id=? and type=?", ( wallet_id, type, ), ) rows = await cursor.fetchall() await cursor.close() records = [] cache_set = set() for row in rows: record = TransactionRecord.from_bytes(row[0]) records.append(record) cache_set.add(record.name) if wallet_id not in self.tx_wallet_cache: self.tx_wallet_cache[wallet_id] = {} self.tx_wallet_cache[wallet_id][type] = cache_set return records
async def get_transaction_above(self, height: uint32) -> List[TransactionRecord]: cursor = await self.db_connection.execute( "SELECT * from transaction_record WHERE confirmed_at_index>?", (height,) ) rows = await cursor.fetchall() await cursor.close() records = [] for row in rows: record = TransactionRecord.from_bytes(row[0]) records.append(record) return records
async def get_all_transactions(self, wallet_id: int) -> List[TransactionRecord]: """ Returns all stored transactions. """ cursor = await self.db_connection.execute( "SELECT * from transaction_record where wallet_id=?", (wallet_id,) ) rows = await cursor.fetchall() await cursor.close() records = [] for row in rows: record = TransactionRecord.from_bytes(row[0]) records.append(record) return records
async def get_not_sent(self) -> List[TransactionRecord]: """ Returns the list of transaction that have not been received by full node yet. """ cursor = await self.db_connection.execute( "SELECT * from transaction_record WHERE sent<? and confirmed=?", ( 4, 0, )) rows = await cursor.fetchall() await cursor.close() records = [] for row in rows: record = TransactionRecord.from_bytes(row[0]) records.append(record) return records
async def get_farming_rewards(self): """ Returns the list of all farming rewards. """ fee_int = TransactionType.FEE_REWARD.value pool_int = TransactionType.COINBASE_REWARD.value cursor = await self.db_connection.execute( "SELECT * from transaction_record WHERE confirmed=? and (type=? or type=?)", (1, fee_int, pool_int)) rows = await cursor.fetchall() await cursor.close() records = [] for row in rows: record = TransactionRecord.from_bytes(row[0]) records.append(record) return records