import argparse
import daemon
def main():
parser = argparse.ArgumentParser()
parser.add_argument('txid')
parser.add_argument('--dev', action='store_true')
parser.add_argument('--networkid')
parser.add_argument('--port')
args = parser.parse_args()
if args.dev:
d = daemon.Daemon(port=args.port, cookie_dir=f'~/.tapyrus/dev-{args.networkid}')
else:
d = daemon.Daemon(port=args.port, cookie_dir=f'~/.tapyrus/prod-{args.networkid}')
txid = args.txid
txn, = d.request('getrawtransaction', [[txid, True]])
vin = txn['vin']
fee = 0.0
for txi in txn['vin']:
prev_txid = txi['txid']
prev_tx, = d.request('getrawtransaction', [[prev_txid, True]])
index = txi['vout']
prev_txo = prev_tx['vout'][index]
print(f"{prev_txid}:{index:<5} {prev_txo['value']:+20.8f}")
fee += prev_txo['value']
for i, txo in enumerate(txn['vout']):
print(f"{txid}:{i:<5} {-txo['value']:+20.8f}")
fee -= txo['value']
print(f"Fee = {1e6 * fee:.2f} uBTC = {1e8 * fee / txn['vsize']:.2f} sat/vB")
if __name__ == '__main__':
main()