|
|
@ -3,17 +3,36 @@ use strict; |
|
|
|
use warnings; |
|
|
|
use Bitcoin::RPC::Client; |
|
|
|
use Hush::Util qw/barf/; |
|
|
|
use File::Spec::Functions; |
|
|
|
#use Carp::Always; |
|
|
|
use URL::Encode qw/url_encode/; |
|
|
|
|
|
|
|
sub new { |
|
|
|
my $port = $ENV{HUSH_RPC_PORT} || 8822; |
|
|
|
my $host = "127.0.0.1"; |
|
|
|
my $HOME = $ENV{HOME}; |
|
|
|
my $config = catfile($HOME, qw/.hush hush.conf/); |
|
|
|
my ($user,$password) = ('',''); |
|
|
|
if (-e $config) { |
|
|
|
open(my $fh, '<', $config) or die $!; |
|
|
|
while(<$fh>) { |
|
|
|
if (m!^rpcuser=(.*)$!) { |
|
|
|
$user = $1; |
|
|
|
}elsif (m!^rpcpassword=(.*)$!) { |
|
|
|
# default Hush instructions use base62 |
|
|
|
$password = url_encode($1); |
|
|
|
} |
|
|
|
last if ($user && $password); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
my $rpc = Bitcoin::RPC::Client->new( |
|
|
|
port => $port, # set this to 18822 to use testnet |
|
|
|
host => $host, |
|
|
|
user => $ENV{HUSH_RPC_USERNAME} || "hush", |
|
|
|
password => $ENV{HUSH_RPC_PASSWORD} || "hushmegently", |
|
|
|
user => $ENV{HUSH_RPC_USERNAME} || $user, |
|
|
|
password => $ENV{HUSH_RPC_PASSWORD} || $password, |
|
|
|
# rpc calls, how do they work? |
|
|
|
debug => 1, |
|
|
|
debug => $ENV{HUSH_DEBUG} || 0, |
|
|
|
); |
|
|
|
my $info = $rpc->getinfo; |
|
|
@ -23,12 +42,17 @@ sub new { |
|
|
|
my $coins = { |
|
|
|
8822 => 'HUSH', |
|
|
|
18822 => 'TUSH', |
|
|
|
7770 => 'KMD', |
|
|
|
17770 => 'KMD-test', |
|
|
|
8232 => 'ZEC', |
|
|
|
18232 => 'TAZ', |
|
|
|
1989 => 'BTCZ', |
|
|
|
11989 => 'BTCZ-test', |
|
|
|
}; |
|
|
|
my $sites = { |
|
|
|
"HUSH" => 'https://myhush.org', |
|
|
|
"TUSH" => 'https://myhush.org', |
|
|
|
"KMD" => 'https://komodoplatform.com', |
|
|
|
"ZEC" => 'https://z.cash', |
|
|
|
"TAZ" => 'https://z.cash', |
|
|
|
}; |
|
|
|