def test_valid_address_to_hex(self): address = 'qHmBaB5dWsxWtMh3MNh6B427L47DWavgJD' hex_address = '023b5269b46be13e6ac5c3f122ed263e9fa78114' self.assertEqual(Qtum.address_to_hex(address), hex_address) self.assertEqual(Qtum.hex_to_qtum_address(hex_address, mainnet=False), address)
def balance_put(self, data): txid = data[0] address = data[1] address = Qtum.hex_to_qtum_address(address, mainnet=False) ammount = data[2] check = self.balance.get_balance(address, "PUT") if type(check) == list: update_data_1 = self.balance.inc_balance(address, ammount, "PUT")
def balance_put(self, data): txid = data[0] address = data[1] address = Qtum.hex_to_qtum_address(address, mainnet=mainnet_status) amount = data[2] gasLimit = data[4] gasPrice = data[5] result = self.db.check_address(address, self.coinid_put) if result: update_data_1 = self.balance.inc_balance(address, amount, self.coinid_put) self.client.log_transaction( **{ "coinid": self.coinid_put, "blocknumber": self.from_block, "blockhash": self.block_hash_num(), "vin": [], "vout": [{ address: amount }], "txid": txid, "gasLimit": gasLimit, "gasPrice": gasPrice })
def transaction_out(self, vout, txid): # parsing output try: list_address = [False] for vout_i in vout: try: script_pub_key = vout_i["scriptPubKey"] types = script_pub_key["type"] if types == "call" and self.coinid == coin_id: asm = script_pub_key["asm"] asm_split = asm.split() gasLimit = asm_split[1] gasPrice = asm_split[2] asm_data = asm_split[3] hex_address = asm_data[:8] smart_contr_address = asm_split[4] if smart_contr_address in address_smart_contract and hex_address == sign_transfer: data = asm_data[8:] signatures_list_type = ['address', 'uint'] try: decode = self.abi_to_params( data, signatures_list_type) new_decode = self.change_decode( signatures_list_type, decode) address_token = new_decode[0] value_int = new_decode[1] address_token = Qtum.hex_to_qtum_address( address_token, mainnet=mainnet_status) result = self.db.check_address( address=address_token, coinid=coin_id_put) result_keys = result.keys() if "address" in result_keys: update_data_1 = self.client.inc_balance( address_token, value_int, coin_id_put) self.storge.log_transaction( **{ "coinid": coin_id_put, "blocknumber": self.from_block, "blockhash": self.block_hash_num(), "vin": [], "vout": [{ address_token: value_int }], "txid": txid, "gasLimit": gasLimit, "gasPrice": gasPrice }) except Exception as e: # print(e) pass addresses = script_pub_key["addresses"] value = vout_i["value"] value_int = int(value * (10**8)) for adr in addresses: data = self.db.check_address(adr, self.coinid) result_keys = data.keys() if "address" in result_keys: update_data_1 = self.client.inc_balance( adr, value_int, coin_id) list_address[0] = True list_address += [{adr: value_int}] except: pass return list_address except: pass