я пытаюсь отправить транзакцию RAW в узел js.Я передаю несколько параметров транзакции, а затем подписываю ее своим закрытым ключом.Когда я это делаю, txHash отправляется в сеть Rinkeby.Однако у меня "недостаточно средств на газ * цена + стоимость".
Что кажется очень странным, так это то, что когда я декодирую свою транзакцию, адрес отправителя полностью отличается от поля "from", которое я передаю в параметрах транзакции, есть идеи, почему оно отличается?
, когда я изменяю приватноеключ, с которым я подписываюсь, тогда есть еще один другой адрес отправителя - может быть, есть какая-то проблема в закрытом ключе?Кажется, я могу войти в свою учетную запись с помощью закрытого ключа, например, .. MEW
Мой код:
const web3 = new Web3(new Web3.providers.HttpProvider(config.ethNodeURL));
var multiSig = new web3.eth.Contract(abi, multiSigAddress); //'0x2ea7b894702873daf8036ad870b671bb2caa9a36');
let txBuilder = multiSig.methods.submitTransaction(toAddress, value, []);
let encodedTx = txBuilder.encodeABI();
const gasPrice = await web3.eth.getGasPrice();
const nonce = await web3.eth.getTransactionCount(fromAddress);
const gasPriceLimit = await web3.eth.estimateGas({
"from" : fromAddress,
"nonce" : nonce,
"to" : toAddress,
"data" : encodedTx
});
const txParams = {
nonce: nonce,
gasPrice: gasPrice,
gasLimit: 60000,
to: toAddress,
from: fromAddress,
data: encodedTx,
// EIP 155 chainId - mainnet: 1, ropsten: 3
chainId: config.ethChainId
}
web3.eth.accounts.signTransaction(txParams, privateKey, function (error, signedTx) {
if (error) {
console.log(error);
} else {
console.log(signedTx);
console.log(signedTx.rawTransaction);
console.log(new EthereumTx(signedTx.rawTransaction).getSenderAddress().toString('hex'));
//THAT above console log logs some completely random address instead of the one passed in "from" in txParams
}
});