Esempio n. 1
0
 def _construct_transaction(self, tx):
     result = {}
     result.update({
         'confirmations':
         tx.get('confirmations', ''),
         'time':
         tx.get('time', ''),
         'txid':
         tx.get('txid', ''),
         'vins': [{
             'txid':
             vin['txid'],
             'n':
             vin['vout'],
             'value':
             bitcoin_to_satoshi(
                 self._get_value_from_vout(vin['txid'], vin['vout'])),
             'address':
             self._get_address_for_vout(vin['txid'], vin['vout'])
         } for vin in tx.get('vin', [])],
         'vouts': [{
             'n':
             vout['n'],
             'value':
             bitcoin_to_satoshi(vout['value']),
             'asm':
             vout['scriptPubKey']['asm'],
             'hex':
             vout['scriptPubKey']['hex'],
             'address':
             vout['scriptPubKey'].get('addresses', ['NONSTANDARD'])[0]
         } for vout in tx.get('vout', [])]
     })
     return result
Esempio n. 2
0
 def _construct_transaction(self, tx):
     result = {}
     result.update({'confirmations': tx.get('confirmations', ''),
                    'time': self._convert_time(tx['time_utc']),
                    'txid': tx.get('tx', ''),
                    'vins': [{'txid': vin['vout_tx'], 'n': vin['n'], 'address': vin['address'],
                              'value': bitcoin_to_satoshi(float(vin['amount']))} for vin in tx.get('vins', [])],
                    'vouts': [{'n': vout['n'], 'value': bitcoin_to_satoshi(float(vout['amount'])),
                               'asm': vout.get('extras', {}).get('asm', ''),
                               'hex': vout.get('extras', {}).get('script', ''),
                               'address': vout['address']} for vout in tx.get('vouts', [])]
                    })
     return result
Esempio n. 3
0
 def _construct_transaction(self, tx):
     result = {}
     result.update({'confirmations': tx.get('confirmations', ''),
                    'time': tx.get('time', ''),
                    'txid': tx.get('txid', ''),
                    'vins': [{'txid': vin['txid'], 'n': vin['vout'], 'value': bitcoin_to_satoshi(self._get_value_from_vout(vin['txid'], vin['vout'])),
                              'address': self._get_address_for_vout(vin['txid'], vin['vout'])} for vin in tx.get('vin', [])],
                    'vouts': [{'n': vout['n'], 'value': bitcoin_to_satoshi(vout['value']),
                               'asm': vout['scriptPubKey']['asm'],
                               'hex': vout['scriptPubKey']['hex'],
                               'address': vout['scriptPubKey'].get('addresses', ['NONSTANDARD'])[0]} for vout in tx.get('vout', [])]
                    })
     return result
    def list_unspents(self, address, min_confirmations, raw=False):
        unconfirmed = True if min_confirmations == 0 else False
        if unconfirmed:
            path = '/address/unspent/{}?unconfirmed=1'.format(address)
        else:
            path = '/address/unspent/{}'.format(address)
        url = self._url + path
        results = self.make_request(url)

        if raw:
            return results

        out = []
        for unspent in results['unspent']:
            if unspent['confirmations'] >= min_confirmations:
                out.append({
                    'txid':
                    unspent['tx'],
                    'vout':
                    unspent['n'],
                    'amount':
                    bitcoin_to_satoshi(float(unspent['amount'])),
                    'confirmations':
                    unspent['confirmations']
                })
        return out
Esempio n. 5
0
    def list_transactions(self, address, **kwargs):
        # blockr returns the last 200 transactions
        path = '/address/txs/{}'.format(address)
        url = self._url + path
        results = self.make_request(url)

        out = []
        for tx in results['txs']:
            out.append({'txid': tx['tx'],
                        'amount': bitcoin_to_satoshi(tx['amount']),
                        'confirmations': tx['confirmations'],
                        'time': self._convert_time(tx['time_utc'])})
        return out
Esempio n. 6
0
    def list_unspents(self, address, min_confirmations):
        response = self.make_request('listunspent', [min_confirmations, 9999999, [address]])
        error = response.get('error')
        if error is not None:
            raise Exception(error)

        results = response.get('result', [])
        out = []
        for unspent in results:
            out.append({'txid': unspent['txid'],
                        'vout': unspent['vout'],
                        'amount': bitcoin_to_satoshi(unspent['amount']),
                        'confirmations': unspent['confirmations']})
        return out
Esempio n. 7
0
    def list_unspents(self, address, min_confirmations):
        response = self.make_request('listunspent', [min_confirmations, 9999999, [address]])
        error = response.get('error')
        if error is not None:
            raise Exception(error)

        results = response.get('result', [])
        out = []
        for unspent in results:
            out.append({'txid': unspent['txid'],
                        'vout': unspent['vout'],
                        'amount': bitcoin_to_satoshi(unspent['amount']),
                        'confirmations': unspent['confirmations']})
        return out
Esempio n. 8
0
    def list_transactions(self, address, account="*", max_transactions=200):
        response = self.make_request("listtransactions", [account, max_transactions, 0, True])
        error = response.get('error')
        if error is not None:
            raise Exception(error)

        results = response.get('result', [])
        results = [tx for tx in results if tx.get('address', '') == address and tx.get('category', '') == 'receive']

        out = []
        for tx in results:
            out.append({'txid': tx['txid'],
                        'amount': bitcoin_to_satoshi(tx['amount']),
                        'confirmations': tx['confirmations'],
                        'time': tx['time']})
        return out
Esempio n. 9
0
    def list_transactions(self, address, account="*", max_transactions=200):
        response = self.make_request("listtransactions", [account, max_transactions, 0, True])
        error = response.get('error')
        if error is not None:
            raise Exception(error)

        results = response.get('result', [])
        results = [tx for tx in results if tx.get('address', '') == address and tx.get('category', '') == 'receive']

        out = []
        for tx in results:
            out.append({'txid': tx['txid'],
                        'amount': bitcoin_to_satoshi(tx['amount']),
                        'confirmations': tx['confirmations'],
                        'time': tx['time']})
        return out
Esempio n. 10
0
    def list_unspents(self, address, min_confirmations):
        unconfirmed = True if min_confirmations == 0 else False
        if unconfirmed:
            path = '/address/unspent/{}?unconfirmed=1'.format(address)
        else:
            path = '/address/unspent/{}'.format(address)
        url = self._url + path
        results = self.make_request(url)

        out = []
        for unspent in results['unspent']:
            if unspent['confirmations'] >= min_confirmations:
                out.append({'txid': unspent['tx'],
                            'vout': unspent['n'],
                            'amount': bitcoin_to_satoshi(float(unspent['amount'])),
                            'confirmations': unspent['confirmations']})
        return out