示例#1
0
    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)
示例#2
0
    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)))
示例#3
0
    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)
示例#4
0
    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)