Jonathan "Duke" Leto
6 years ago
commit
98b338b145
1 changed files with 40 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||
#!/usr/bin/perl |
|||
|
|||
use strict; |
|||
use warnings; |
|||
use BerkeleyDB; |
|||
|
|||
my %wallet; |
|||
my $filename = shift || 'wallet.dat'; |
|||
my $db = tie %wallet, 'BerkeleyDB::Btree', |
|||
-Filename => $filename, |
|||
-Subname => "main", |
|||
-Flags => DB_RDONLY, |
|||
or die "Cannot open file $filename: $! $BerkeleyDB::Error\n"; |
|||
|
|||
my $counts = {}; |
|||
while (my ($k,$v) = each %wallet) { |
|||
my $len = unpack("W", substr($k, 0, 1)); |
|||
my $type = substr $k, 1, $len; |
|||
my $key = substr $k, $len+1; |
|||
|
|||
#printf "%s => %x\n", $k, $v; |
|||
if ($type eq 'key') { |
|||
my $privkey = unpack("H*", $v); |
|||
$key = unpack("H*", $key); |
|||
#print "key=$key, privkey=$privkey\n"; |
|||
} elsif ($type eq 'name') { |
|||
print "name: $key, $v\n"; |
|||
} elsif ($type eq 'bestblock') { |
|||
print "bestblock:\nbestblock: $key, $v\n"; |
|||
} elsif ($type eq 'version') { |
|||
my $version = unpack("I", $v); |
|||
print "version: $version\n"; |
|||
} |
|||
$counts->{$type}++; |
|||
#printf "$len $type %s:\n", $key; |
|||
} |
|||
|
|||
while (my ($k,$v) = each %$counts) { |
|||
print "$k => $v\n"; |
|||
} |
Loading…
Reference in new issue