def json_dict_to_join_split(self, json_dict): join_split = BtcJoinSplit() join_split.public_input_value = bitcoin_to_satoshi( json_dict.get('vpub_new')) join_split.public_output_value = bitcoin_to_satoshi( json_dict.get('vpub_old')) return join_split
def json_dict_to_transaction(self, json_dict, block=None, index=None): transaction = BtcTransaction() transaction.hash = json_dict.get('txid') transaction.size = json_dict.get('size') transaction.virtual_size = json_dict.get('vsize') transaction.version = json_dict.get('version') transaction.lock_time = json_dict.get('locktime') if block is not None: transaction.block_number = block.number transaction.block_hash = json_dict.get('blockhash') if block is not None: transaction.block_hash = block.hash transaction.block_timestamp = json_dict.get('blocktime') if block is not None: transaction.block_timestamp = block.timestamp if index is not None: transaction.index = index transaction.inputs = self.transaction_input_mapper.vin_to_inputs(json_dict.get('vin')) transaction.outputs = self.transaction_output_mapper.vout_to_outputs(json_dict.get('vout')) # Only Zcash transaction.join_splits = self.join_split_mapper.vjoinsplit_to_join_splits(json_dict.get('vjoinsplit')) transaction.value_balance = bitcoin_to_satoshi(json_dict.get('valueBalance')) return transaction
def json_dict_to_output(self, json_dict): output = BtcTransactionOutput() output.index = json_dict.get('n') output.addresses = json_dict.get('addresses') output.txinwitness = json_dict.get('txinwitness') output.value = bitcoin_to_satoshi(json_dict.get('value')) if 'scriptPubKey' in json_dict: script_pub_key = json_dict.get('scriptPubKey') output.script_asm = script_pub_key.get('asm') output.script_hex = script_pub_key.get('hex') output.required_signatures = script_pub_key.get('reqSigs') output.type = script_pub_key.get('type') output.addresses = script_pub_key.get('addresses') return output
def json_dict_to_transaction(self, json_dict, block=None, index=None, coin_price_usd=None): transaction = BtcTransaction() transaction.hash = json_dict.get('hash') transaction.size = json_dict.get('size') transaction.virtual_size = json_dict.get('vsize') transaction.version = json_dict.get('version') transaction.lock_time = json_dict.get('locktime') transaction.transaction_id = json_dict.get('txid') if block is not None: transaction.block_number = block.number transaction.block_hash = json_dict.get('blockhash') if block is not None: transaction.block_hash = block.hash transaction.block_timestamp = json_dict.get('blocktime') if block is not None: transaction.block_timestamp = block.timestamp if index is not None: transaction.index = index transaction.inputs = self.transaction_input_mapper.vin_to_inputs( vin=json_dict.get('vin'), spending_transaction_id=transaction.transaction_id) transaction.outputs = self.transaction_output_mapper.vout_to_outputs( vout=json_dict.get('vout'), create_transaction_id=transaction.transaction_id) # Only Zcash transaction.join_splits = self.join_split_mapper.vjoinsplit_to_join_splits( json_dict.get('vjoinsplit')) transaction.value_balance = bitcoin_to_satoshi( json_dict.get('valueBalance')) # New fields transaction.coin_price_usd = coin_price_usd transaction.weight = json_dict.get('weight') transaction.output_addresses = self.get_output_addresses(transaction) return transaction
def json_dict_to_output(self, json_dict, create_transaction_id=None): output = BtcTransactionOutput() output.index = json_dict.get('n') output.addresses = json_dict.get('addresses') output.txinwitness = json_dict.get('txinwitness') output.value = bitcoin_to_satoshi(json_dict.get('value')) output.create_transaction_id = create_transaction_id if 'scriptPubKey' in json_dict: script_pub_key = json_dict.get('scriptPubKey') output.script_asm = script_pub_key.get('asm') output.script_hex = script_pub_key.get('hex') output.required_signatures = script_pub_key.get('reqSigs') output.type = script_pub_key.get('type') if script_pub_key.get('addresses') is not None and len(script_pub_key.get('addresses')) > 0: output.addresses = script_pub_key.get('addresses') elif script_pub_key.get('address') is None: output.addresses = [] else: output.addresses = [script_pub_key.get('address')] return output