const privateKeyStr = "";
const privateKey = new Buffer(privateKeyStr, 'hex');
const contractAddress = '0x';
const COO = '0x';
let contractAddress = '0x';
let myContract = ...;
//some other articles told use getData method , but getData is undefined. so is use request instead.
let payloadData = myContract.contractMethodName.request(methodParams).params[0].data;
let rawTx = {
nonce: web3.toHex(web3.eth.getTransactionCount(fromAccount)),
gas: web3.toHex("21000"),
gasPrice: web3.toHex(web3.eth.gasPrice.toNumber()),
gasLimit: web3.toHex(40000),
from: fromAccount,
to: contractAddress,
data: payloadData
};
var tx = new Tx(rawTx);
tx.sign(privateKey);
var serializedTx = '0x' + tx.serialize().toString('hex');
web3.eth.sendRawTransaction(serializedTx, function(err, hash) {
if (!err){
console.log('transaction hash : ',hash);
process.exit(0);
} else {
console.error('error is ',err);
process.exit(1);
}
});发布于 2018-03-09 07:55:10
试试这边。
var data = myContract.contractMethodName.getData(params, {from: senderAddr});
var gasPrice = 0.8; //var gasPrice = web3.eth.gasPrice;
var gasLimit = 3000000;
var rawTransaction = {
"from": senderAddr,
"nonce": web3.toHex(nonce),
"gasPrice": web3.toHex(gasPrice * 1e9),
"gasLimit": web3.toHex(gasLimit),
"to": contractAddress,
"value": "0x00",
"data": data,
"chainId": 4 //change the chainID accordingly
};
var privKey = new Buffer(privateKey, 'hex');
var tx = new Tx(rawTransaction);
tx.sign(privKey);
var serializedTx = tx.serialize();
web3.eth.sendRawTransaction('0x' + serializedTx.toString('hex'), function(err, hash) {
if (!err)
{
console.log('Txn Sent and hash is '+hash);
}
else
{
console.error(err);
}
});发布于 2018-03-09 07:58:10
阅读医生们时,您应该这样做:
let payloadData = web3.sha3("contractMethodName()").substr(0,10);或者如果你们有争执
var argument = '0';
let payloadData = web3.sha3("contractMethodName(uint256)").substr(0,10);
payloadData += web3.sha3(argument).substr(0,32);发布于 2020-06-09 19:29:50
https://ethereum.stackexchange.com/questions/42185
复制相似问题