def remove_tx(self, tx: BaseTransaction) -> None: """ Remove tx inputs and outputs from the wallet index (indexed by its addresses). """ assert tx.hash is not None addresses = tx.get_related_addresses() for address in addresses: self.index[address].discard(tx.hash)
def remove_tx(self, tx: BaseTransaction) -> None: """ Remove tx inputs and outputs from the wallet index (indexed by its addresses). """ assert tx.hash is not None addresses = tx.get_related_addresses() for address in addresses: self.log.debug('delete address', address=address) self._db.delete((self._cf, self._to_key(address, tx)))
def add_tx(self, tx: BaseTransaction) -> None: """ Add tx inputs and outputs to the wallet index (indexed by its addresses). """ assert tx.hash is not None addresses = tx.get_related_addresses() for address in addresses: self.index[address].add(tx.hash) self.publish_tx(tx, addresses=addresses)
def add_tx(self, tx: BaseTransaction) -> None: """ Add tx inputs and outputs to the wallet index (indexed by its addresses). """ assert tx.hash is not None addresses = tx.get_related_addresses() for address in addresses: self.log.debug('put address', address=address) self._db.put((self._cf, self._to_key(address, tx)), b'') self.publish_tx(tx, addresses=addresses)
def publish_tx(self, tx: BaseTransaction, *, addresses: Optional[Iterable[str]] = None) -> None: """ Publish WALLET_ADDRESS_HISTORY for all addresses of a transaction. """ from hathor.pubsub import HathorEvents if not self.pubsub: return if addresses is None: addresses = tx.get_related_addresses() data = tx.to_json_extended() for address in addresses: self.pubsub.publish(HathorEvents.WALLET_ADDRESS_HISTORY, address=address, history=data)