| 知乎专栏 | 多维度架构 |
目录
注意本章采用 web3.js v1.0.0 版本,这个版本仍在beta阶段,还没有 release。
你看到网上很多实例,安照例子的步骤操作,发现无法成功,很可能跟版本有关。v1.0.0 与之前的版本还是有很大差异,所以选择版本很重要。因为 v1.0.0 很快就会 release 所以本章不会在用早起版本举例。
![]() |
npm init npm install web3 --save npm install solc
geth --testnet --syncmode light --cache 1024 --ipcpath /Users/neo/Library/Ethereum/geth.ipc
Ropsten 测试网上转账的例子
fs = require('fs');
var net = require('net');
var Web3 = require('web3');
var web3 = new Web3('/Users/neo/Library/Ethereum/geth.ipc', net);
console.log(web3.version)
const abi = fs.readFileSync('output/TokenERC20.abi', 'utf-8');
const contractAddress = "0x70682386d0dE84B1e549DC3c4305CCB2D261b2a8";
const coinbase = "0xB94054c174995AE2A9E7fcf6c7924635FBa8ECF7";
const toAddress = "0xf56b81a2bcb964D2806071e9Be4289A5559BB0fA";
balanceWei = web3.eth.getBalance(coinbase);
console.log(balanceWei);
const contract = new web3.eth.Contract(JSON.parse(abi), contractAddress, { from: coinbase , gas: 100000});
web3.eth.personal.unlockAccount(coinbase, "netkiller").then(function(result){
console.log(result)
contract.methods.balanceOf(coinbase).call().then(console.log).catch(console.error);
contract.methods.balanceOf(toAddress).call().then(console.log).catch(console.error);
});
contract.methods.transfer(toAddress, 10000).send().then(function(receipt){
console.log(receipt);
}).catch(console.error);
contract.methods.balanceOf(coinbase).call().then(console.log).catch(console.error);
contract.methods.balanceOf(toAddress).call().then(console.log).catch(console.error);