使用比特币的sendmany函数和perl

时间:2014-12-15 02:07:59

标签: perl bitcoin bitcoind

我一直在努力解决这个问题,如果有人能提供解决方案,我将不胜感激。基本上,我正在尝试使用比特币的'sendmany'功能(https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list)来发送带有perl脚本的批量付款。我在vps上运行bitcoind,其他功能正常,但sendmany不行。这是我的代码:

use Finance::Bitcoin::API;
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
use Data::Dumper;
my %recipients = ("ADDRESS1" => sprintf("%.8f",0.00005460)+0, "ADDRESS2" => sprintf("%.8f",0.00005460)+0);
my $uri     = "https://$rpcuser:$rpcpass\@$rpcip:8332/";
my $api     = Finance::Bitcoin::API->new( endpoint => $uri );
my $action  = $api->call('sendmany','',%recipients);
if ($api->error)
{
    print Dumper($api->error->{message})."\n";
}
else
{
    print Dumper($action)."\n";
}

我可以使用'sendtoaddress'函数发送单笔付款,我可以直接在运行bitcoind的vps中使用sendmny函数从shell执行它,但是当我使用perl尝试它时它失败了上面的脚本。没有错误消息,我只是从shell获取使用sendmany并使用curl的说明。

我也对任何其他语言的脚本开放,让我执行sendmany。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我终于找到了上面代码中的错误。将行my $action = $api->call('sendmany','',%recipients);替换为my $action = $api->call('sendmany','',\%recipients);

基本上只需在%收件人之前添加正斜杠。希望这有助于某人。