我正在尝试使用PHP和Cron从现有帐户使用web3或类似的东西发送以太,有关如何实现此目的的任何提示?
我在SQL表{"address":"0x22b853A8Df90BF9A7e21445C16FBbEaa43e0c307","password":"inu8p","privateKey":"0xb9cabca09e5cbdfb2c953d574bce5b9d837a91ffe1f3817fc6a01da63bf5ff56"}
问题是javascript没有用CRON执行。 Node中是否有可以通过API或其他东西发送POST请求的库?
非常感谢任何帮助。
答案 0 :(得分:1)
您可以使用geth或其他客户端的RPC服务器。您可以通过web3或甚至节点的http模块向RPC服务器发送请求,但Web3更容易。
然后,您可以使用节点cron模块安排此操作,例如:https://www.npmjs.com/package/cron
您需要确保安全设置所使用的任何RPC服务器,因为存在主动扫描和针对它们的攻击。</ p>
部分示例:
//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');
答案 1 :(得分: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'));
在此示例中,您将地址0x22b853A8Df90BF9A7e21445C16FBbEaa43e0c307
(由私钥0xb9cabca09e5cbdfb2c953d574bce5b9d837a91ffe1f3817fc6a01da63bf5ff56
标识)的1.0 ETH发送到地址0xd44d259015b61a5fe5027221239d840d92583adb
。
您需要做的就是创建一个PHP文件并将其添加到您的crontab中。
点击此处查看更多示例:https://github.com/Domraider/php-eth-raw-tx/tree/master/examples