1

我正在尝试使用 PHP 和 Cron 从使用 web3 或类似工具的现有帐户发送 Ether,关于如何完成此操作的任何提示?

我在 SQL 表中有 JSON{"address":"0x22b853A8Df90BF9A7e21445C16FBbEaa43e0c307","password":"inu8p","privateKey":"0xb9cabca09e5cbdfb2c953d574bce5b9d837a91ffe1f3817fc6a01da63bf5ff56"}

问题是 javascript 没有被 CRON 执行。Node 中是否有任何库可以通过 API 或其他方式发送 POST 请求?

任何帮助将不胜感激。

4

2 回答 2

1

您可以使用geth或其他客户端的 RPC 服务器。您可以通过web3甚至节点的 http 模块向 RPC 服务器发送请求,但 Web3 更容易。

然后,您可以使用节点 cron 模块安排此操作,例如:https ://www.npmjs.com/package/cron

您需要确保您使用的任何 RPC 服务器都已安全设置,因为存在主动扫描和针对它们的攻击。

部分示例:

//Send some eth every hour
new CronJob('* * * 1 0 0', () => {
  //The following arguments are simplified...
  web3.eth.sendTransaction({from: "0xc0ffee", to: "0xdeadbeef...", value: "1.0"}, () => {
    console.log('transaction sent');
  });
}, null, true, 'America/Los_Angeles');
于 2018-01-16T14:47:59.663 回答
0

你想用 PHP 发送一个原始的以太坊交易,所以在你的情况下,我推荐php-eth-raw-tx包。

用法很简单:

$tx = new \EthereumRawTx\Transaction(
\BitWasp\Buffertools\Buffer::hex('d44d259015b61a5fe5027221239d840d92583adb'),
\BitWasp\Buffertools\Buffer::int(1 * 10**18),
);

$raw = $tx->getRaw(\BitWasp\Buffertools\Buffer::hex('b9cabca09e5cbdfb2c953d574bce5b9d837a91ffe1f3817fc6a01da63bf5ff56'));

在此示例中,您将 1.0 ETH 从地址0x22b853A8Df90BF9A7e21445C16FBbEaa43e0c307(由私钥标识0xb9cabca09e5cbdfb2c953d574bce5b9d837a91ffe1f3817fc6a01da63bf5ff56)发送到地址0xd44d259015b61a5fe5027221239d840d92583adb

您需要做的就是创建一个 PHP 文件并将其添加到您的 crontab 中。

在此处查看更多示例:https ://github.com/Domraider/php-eth-raw-tx/tree/master/examples

于 2018-01-16T21:03:30.163 回答