Skip to content

Commit 355d0c4

Browse files
committed
contrib: add getcoins.py script to get coins from (signet) faucet
1 parent f79a4a8 commit 355d0c4

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

contrib/signet/getcoins.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env python3
2+
# Copyright (c) 2020 The Bitcoin Core developers
3+
# Distributed under the MIT software license, see the accompanying
4+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
5+
6+
import argparse
7+
import subprocess
8+
import requests
9+
import sys
10+
11+
parser = argparse.ArgumentParser(description='Script to get coins from a faucet.', epilog='You may need to start with double-dash (--) when providing bitcoin-cli arguments.')
12+
parser.add_argument('-c', '--cmd', dest='cmd', default='bitcoin-cli', help='bitcoin-cli command to use')
13+
parser.add_argument('-f', '--faucet', dest='faucet', default='https://signetfaucet.com/claim', help='URL of the faucet')
14+
parser.add_argument('-a', '--addr', dest='addr', default='', help='Bitcoin address to which the faucet should send')
15+
parser.add_argument('-p', '--password', dest='password', default='', help='Faucet password, if any')
16+
parser.add_argument('bitcoin_cli_args', nargs='*', help='Arguments to pass on to bitcoin-cli (default: -signet)')
17+
18+
args = parser.parse_args()
19+
20+
if args.addr == '':
21+
if args.bitcoin_cli_args == []:
22+
args.bitcoin_cli_args = ['-signet']
23+
# get address for receiving coins
24+
try:
25+
args.addr = subprocess.check_output([args.cmd] + args.bitcoin_cli_args + ['getnewaddress', 'faucet', 'bech32']).strip()
26+
except FileNotFoundError:
27+
print('The binary', args.cmd, 'could not be found.')
28+
exit()
29+
30+
data = {'address': args.addr, 'password': args.password}
31+
try:
32+
res = requests.post(args.faucet, data=data)
33+
except:
34+
print('Unexpected error when contacting faucet:', sys.exc_info()[0])
35+
exit()
36+
print(res.text)

0 commit comments

Comments
 (0)