I have started geth node (connect to ropsten testnet) on my local OSX system.
Command: geth --testnet --fast --bootnodes "enode://20c9ad97c081d63397d7b685a412227a40e23c8bdc6688c6f37e97cfbc22d2b4d1db1510d8f61e6a8866ad7f0e17c02b14182d37ea7c3c8b9c2683aeb6b733a1@52.169.14.227:30303,enode://6ce05930c72abc632c58e2e4324f7c7ea478cec0ed4fa2528982cf34483094e9cbc9216e7aa349691242576d552a2a56aaeae426c5303ded677ce455ba1acd9d@13.84.180.240:30303" --datadir data--ws --wsport 8546 --wsorigins "*" --rpc --rpcport 8545 --rpccorsdomain "*" --nodiscover --ws --wsport 8546
Geth node is not in block synchronization status
eth.syncing => false
Geth version : 1.8.11-stable
XXX-iMac:~ XXXXX$ geth version
Geth
Version: 1.8.11-stable
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.10.3
Operating System: darwin
GOPATH=
GOROOT=/usr/local/Cellar/go/1.10.3/libexec
Web3 version:
"^1.0.0-beta.34"
Javascript code Running on Node environment
var web3 = new Web3(
new Web3.providers.WebsocketProvider('ws://127.0.0.1:8546')
);
const contractAbi =[...];
const contractAddress = 'xxxxx';
const contractInstance = new web3.eth.Contract(contractAbi, contractAddress);
var res = contractInstance.methods.currentTicket.call((err, result) => {
if (err) {
console.log("error getting currentTicket", err);
}
else {
console.log("success getting currentTicket", result);
}
});
Here currentTicket
is a variable containing an integer value.
Nothing is called, I looked for several github issues ticket and nothing helped me! Any kind of help will be appreciate!
UPDATE1:
I looked for below web3 issues ticket, but nothing helped me!
https://github.com/ethereum/web3.js/issues/989
https://github.com/ethereum/web3.js/issues/1093
UPDATE2:
Getting on front end works well.
async function callAsync(f, params) {
if (!params) params = [];
return new Promise((resolve, reject) => {
f(...params, function(err, res){
if (err) reject(err);
resolve(res);
});
});
}
const contract = web3.eth.contract(contractAbi);
const contractInstance = contract.at(contractAddress);
currentTicket = (await callAsync(contractInstance.currentTicket.call)).c[0];