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, })
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