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
Exemplo n.º 2
0
    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
Exemplo n.º 4
0
    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