3 changed files with 66 additions and 47 deletions
@ -0,0 +1,19 @@ |
|||
#!/usr/bin/env python3 |
|||
import hashlib |
|||
import sys |
|||
|
|||
from pycoin.coins.bitcoin.networks import BitcoinMainnet |
|||
|
|||
import client |
|||
|
|||
def main(): |
|||
conn = client.Connection(('localhost', 50001)) |
|||
addr, = sys.argv[1:] |
|||
script = BitcoinMainnet.ui.script_for_address(addr) |
|||
script_hash = hashlib.sha256(script).digest()[::-1].hex() |
|||
res = conn.call('blockchain.scripthash.get_balance', script_hash)['result'] |
|||
print('{} has {} satoshis'.format(addr, res)) |
|||
|
|||
|
|||
if __name__ == '__main__': |
|||
main() |
@ -0,0 +1,47 @@ |
|||
#!/usr/bin/env python3 |
|||
import hashlib |
|||
import sys |
|||
|
|||
from logbook import Logger, StreamHandler |
|||
|
|||
from pycoin.coins.bitcoin.networks import BitcoinMainnet |
|||
import pycoin.ui.key_from_text |
|||
import pycoin.key |
|||
|
|||
import client |
|||
|
|||
script_for_address = BitcoinMainnet.ui.script_for_address |
|||
|
|||
log = Logger(__name__) |
|||
|
|||
def main(): |
|||
conn = client.Connection(('localhost', 50001)) |
|||
xpub, = sys.argv[1:] |
|||
total = 0 |
|||
k = pycoin.ui.key_from_text.key_from_text(xpub) |
|||
for change in (0, 1): |
|||
empty = 0 |
|||
for n in range(100): |
|||
address = k.subkey(change).subkey(n).address() |
|||
script = script_for_address(address) |
|||
script_hash = hashlib.sha256(script).digest()[::-1].hex() |
|||
log.debug('{}', conn.call('blockchain.scripthash.get_history', |
|||
script_hash)) |
|||
reply = conn.call('blockchain.scripthash.get_balance', script_hash) |
|||
result = reply['result'] |
|||
confirmed = result['confirmed'] / 1e8 |
|||
total += confirmed |
|||
if confirmed: |
|||
log.info('{}/{} => {} has {:11.8f} BTC', |
|||
change, n, address, confirmed) |
|||
empty = 0 |
|||
else: |
|||
empty += 1 |
|||
if empty >= 10: |
|||
break |
|||
log.info('total balance: {} BTC', total) |
|||
|
|||
|
|||
if __name__ == '__main__': |
|||
with StreamHandler(sys.stderr, level='INFO').applicationbound(): |
|||
main() |
Loading…
Reference in new issue