我目前正在使用0.2xx版本的Web3 Javascript API.我通过创建智能合约(在REMIX IDE上)来部署我的自定义ERC20令牌.我安装了MetaMask并在https://wallet.ethereum.org/上进行了测试,将一些自定义ERC令牌发送到我的另一个帐户.它运作良好.我想在我的javascript代码中使用Web3添加"发送自定义ERC20令牌"功能.
这是我的代码如下.
var http = require('http');
var Web3 = require('web3');
var Tx = require('ethereumjs-tx');
var abi = [{"...."}];
var data = '0x00..';
var contract_addr = '0x00..';
var owner = '0x00..';
var web3 = new Web3(new Web3.providers.HttpProvider("https://ropsten.infura.io/"));
web3.eth.getBlock("latest", (error, result) => {
//console.log('error:', error);
//console.log('results', result);
});
var myContract = web3.eth.contract(abi);
var myContractInstance = myContract.at(address);
eb3.eth.getDefaultAccount = owner;
var defaultAccount = web3.eth.getDefaultAccount;
console.log('DefaultAccount => ', defaultAccount);
var total = myContractInstance.totalSupply();
var balance = myContractInstance.balanceOf(defaultAccount);
console.log('DefulatAccount total …Run Code Online (Sandbox Code Playgroud) 我在web3提供程序(localhost:8545)上运行时出错
Not possible to connect to the Web3 provider. Make sure the provider is running and a connection is open (via IPC or RPC).
Run Code Online (Sandbox Code Playgroud)
所以我想像下面。
我在本地运行geth,并提供了一些与remix和testnet连接的选项。
$ geth —testnet —rpc —rpcapi “db, net, web3, personal” —rpccorsdomain “https://remix.ethereum.org” console
Run Code Online (Sandbox Code Playgroud)
我给了-rpccorsdomain,因为混音在https上。
无论如何,请在remix IDE中的“运行”选项卡上检查“ web3证明程序”。
然后,修改地址,例如“ http://127.0.0.1:8545 ”,而不是“ http:// localhost:8545 ”。
我不知道为什么会这样,但是当我这样修复后,它仍然可以工作。我记了帐,做了些什么。
但是,由于某种原因,我不得不再次重新下载geth。(我已经换了个人电脑)。而且我现在正在同步块。我认为同步尚未完成,因为blockNumber为0。
> eth.blockNumber
0
Run Code Online (Sandbox Code Playgroud)
所以...我现在正在等待,但我想知道当eth.syncing未完全完成时是否会发生错误。