I understand we need mnemonic as we did use it in deploying contract with truffle so as to be able to send ether from our ropsten account private keys. I could not find a way use the same in my server.js file to call contract functions. I want to build a webapp which neither uses local node nor metamask and all the transactions are carried by my account. I am sharing my code which i derived from various sources but don't know why is it not executing:
const express = require('express'); const Web3 = require('web3'); const fs = require('fs'); const app = express(); app.use(express.json()); console.log('server side code running'); app.listen(3000, () => { console.log('Listening on port 3000'); }); if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); } else { web3 = new Web3(new Web3.providers.HttpProvider("https://ropsten.infura.io/v3/<api key>")); } var contractabi = JSON.parse(fs.readFileSync('abi.json', 'utf8')); var contractaddress = '0xb51adbdd256930bd6b4c613add6fcca31db49827'; var contract = new web3.eth.Contract(contractabi,contractaddress); const privateKey = 'my private key'; const account = web3.eth.accounts.privateKeyToAccount('0x' + privateKey); web3.eth.accounts.wallet.add(account); web3.eth.defaultAccount = account.address; contract.methods.set(7) .send({ from: web3.eth.defaultAccount, gas: 2000000, gasPrice: 4000000000 }) Error I'm facing: UnhandledPromiseRejectionWarning: Error: Invalid JSON RPC response: "" I think it returns a promise which i'm not able to use. I need help! and if there are alternate ways to do the same, i'm excited to know