예제 #1
0
 def doSendCoinToAccountants(self, *args, **kwargs):
     """
     Action method.
     """
     if self.offline_mode:
         self.automat('coin-confirmed')
         return
     coins = [args[0], ]
     if _Debug:
         lg.out(_DebugLevel, 'coins_miner.doSendCoinToAccountants: %s' % coins)
     for idurl in self.connected_accountants:
         p2p_service.SendCoin(idurl, coins)
def send_to_miner(coins):
    """
    """
    if not is_connected():
        return succeed(None)
    result = Deferred()
    p2p_service.SendCoin(
        contract_chain_consumer.A().connected_miner,
        coins,
        callbacks={
            commands.Ack(): lambda response, info: result.callback(response),
            commands.Fail(): lambda response, info: result.errback(Exception(response)),
        }
    )
    return result
 def doRequestCustomerSignature(self, *args, **kwargs):
     """
     Action method.
     """
     bytes_allocated = accounting.get_customer_quota(self.customer_idurl)
     assert bytes_allocated is not None
     assert bytes_allocated > 0
     coin_json = coins_io.storage_contract_open(
         self.customer_idurl,
         self.current_duration,
         bytes_allocated,
     )
     coin_json_sined = coins_io.add_signature(coin_json, 'creator')
     p2p_service.SendCoin(self.customer_idurl, [
         coin_json_sined,
     ],
                          callbacks={
                              commands.Ack(): self._on_signature_ack,
                              commands.Fail(): self._on_signature_fail,
                          })
예제 #4
0
 def _on_command_retrieve_coin(self, newpacket, info):
     query_j = coins_io.read_query_from_packet(newpacket)
     if not query_j:
         p2p_service.SendFail(newpacket, 'incorrect query received')
         return False
     coins, error = coins_db.query_json(query_j)
     if error:
         p2p_service.SendFail(newpacket, error)
         return False
     result_coins = []
     for coin in coins:
         result_coins.append(coin)
         if len(result_coins) > self.max_coins_per_packet:
             result_coins.append(None)
             break
     if not result_coins:
         p2p_service.SendFail(newpacket, 'no coins found')
         return False
     p2p_service.SendCoin(newpacket.CreatorID, result_coins, packet_id=newpacket.PacketID)
     return True