用web3js写以太坊脚本

Posted by Kaka Blog on July 15, 2021

web3.js简介

web3.js是一个JavaScript API库,要使DApp在以太坊上运行,我们可以使用web3.js库提供的web3对象。web3.js通过RPC调用与本地节点通信。

安装web3

cnpm install web3

编写转币脚本

var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider("http://192.168.10.30:8545"));

// 判断是否连接
// web3.isConnected()

var arguments = process.argv.splice(2);

var _from = "0x197f9a76706a5189d0adc6277235399664067519";
var _to = arguments[0];
var _value = arguments[1];

web3.eth.sendTransaction({from: _from, to: _to, value: _value}, (err, res) => {
    if (err) {
        console.log("Error: ", err);
    }
    else {
        console.log("Result: ", res);
    }
});

测试

1、运行以下脚本:

node transfer.js 0x13722c70d5f5e5e22593ca4eb0df3e41b14759c6 10000000000

2、第一次会报错:Error: Returned error: authentication needed: password or unlock,先在控制台解锁账户:

> personal.unlockAccount(eth.accounts[0], '123456', 3600)

3、再次运行第一步,正常会输出:

Result:  0xb52d66eac4c47457aa6b1ec33cc4766d967853d73f88c085cd3304c1efbf270a

4、查看账户余额:

> eth.getBalance("0x13722c70d5f5e5e22593ca4eb0df3e41b14759c6")

5、启动挖矿

> miner.start(1)

6、再次查看账户余额,可以看到已转账成功。