-1

我一直在努力解决这个问题,如果有人能提供解决方案,我将不胜感激。基本上,我正在尝试使用比特币的“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”函数发送单笔付款,并且可以通过从 shell 执行它直接在运行 bitcoind 的 vps 中使用 sendmny 函数,但是当我使用上面的 perl 脚本尝试它时它失败了。没有错误消息,我只是得到了从 shell 使用 sendmany 和使用 curl 的说明。

我也对任何其他语言的脚本持开放态度,这些脚本可以让我执行 sendmany。

谢谢您的帮助。

4

1 回答 1

0

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

基本上只需在 %recipients 之前添加一个正斜杠。希望这可以帮助某人。

于 2014-12-15T19:05:45.970 回答