Files
hush3/util/gen_scriptpubs.pl
2024-02-27 23:59:59 +01:00

47 lines
1.2 KiB
Perl
Executable File

#!/usr/bin/perl
# Copyright (c) 2016-2024 The Hush developers
# Distributed under the GPLv3 software license, see the accompanying
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
use warnings;
use strict;
use JSON;
# Generates taddrs/scriptpubs for testing the decentralized devtax
# where all generated taddrs/scriptpubs will be part of existing wallet.dat
# OR generates scriptpubs for addresses if given a file argument
# addresses must be one-per-line in the file
my $file = shift;
my $N = 20; # hushd is currently hardcoded to use 20 addresses
my $hush = "./src/hush-cli";
my $getnew = "$hush getnewaddress";
my $validate = "$hush validateaddress";
my $fh;
if($file) {
open($fh, '<', $file) or die $!;
}
print "std::string DEVTAX_DATA[DEVTAX_NUM][2] = {\n";
for my $i (1 .. $N) {
my $taddr;
if ($file) {
$taddr = <$fh>;
unless($taddr) {
print "Error: Less than $N addresses in $file !\n";
exit(1);
}
} else {
$taddr = qx{$getnew};
}
chomp $taddr;
my $j = qx{$validate $taddr};
my $json = decode_json($j);
my $scriptpub = $json->{scriptPubKey};
printf qq!{"%s", "%s"},\n!, $taddr, $scriptpub;
}
print "};\n";
close($fh) if $file;