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 _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
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
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
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
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
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