Reputation: 11
Im newbie to Web3.js. I try to call smart contract function but get "Error: Transaction has been reverted by the EVM" error transaction - https://testnet.bscscan.com/tx/0x1b049b626f70f04c7c43ac51738932e8aa6734c90dfa97033d1094cef44f80f0
But when I use Metamask to send this transction via https://testnet.bscscan.com/address/0x2e90f2eb46ee35bb179c10513d3f7fe8b0693254#writeContract 7th function it works https://testnet.bscscan.com/tx/0x46f568703b695d59053b2e1124605eb9927ebb7c29348230a9e259bdac02216d.
Why my transaction via web3.js is rejected, but via Metamask is approved? They have same data web3.js Metamas
My code below (without private key and wallet):
const Web3 = require('web3');
const web3 = new Web3('https://data-seed-prebsc-1-s1.binance.org:8545');
const fromKey = '';
const fromAddr = '';
const toAddr = '0x2e90f2eb46ee35bb179c10513d3f7fe8b0693254';
let tokenAddress = "0x2e90f2eb46ee35bb179c10513d3f7fe8b0693254";
const ABI = JSON.parse(`[{"name":"CommitOwnership","inputs":[{"type":"address","name":"admin","indexed":false}],"anonymous":false,"type":"event","signature":"0x2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e9"},{"name":"ApplyOwnership","inputs":[{"type":"address","name":"admin","indexed":false}],"anonymous":false,"type":"event","signature":"0xebee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a1189105"},{"name":"Deposit","inputs":[{"type":"address","name":"provider","indexed":true},{"type":"uint256","name":"value","indexed":false},{"type":"uint256","name":"locktime","indexed":true},{"type":"int128","name":"type","indexed":false},{"type":"uint256","name":"ts","indexed":false}],"anonymous":false,"type":"event","signature":"0x4566dfc29f6f11d13a418c26a02bef7c28bae749d4de47e4e6a7cddea6730d59"},{"name":"Withdraw","inputs":[{"type":"address","name":"provider","indexed":true},{"type":"uint256","name":"value","indexed":false},{"type":"uint256","name":"ts","indexed":false}],"anonymous":false,"type":"event","signature":"0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568"},{"name":"Supply","inputs":[{"type":"uint256","name":"prevSupply","indexed":false},{"type":"uint256","name":"supply","indexed":false}],"anonymous":false,"type":"event","signature":"0x5e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5c"},{"outputs":[],"inputs":[{"type":"address","name":"token_addr"},{"type":"string","name":"_name"},{"type":"string","name":"_symbol"},{"type":"string","name":"_version"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"commit_transfer_ownership","outputs":[],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":37597,"signature":"0x6b441a40"},{"name":"apply_transfer_ownership","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":38497,"signature":"0x6a1c05ae"},{"name":"commit_smart_wallet_checker","outputs":[],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"nonpayable","type":"function","gas":36307,"signature":"0x57f901e2"},{"name":"apply_smart_wallet_checker","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":37095,"signature":"0x8e5b490f"},{"name":"get_last_user_slope","outputs":[{"type":"int128","name":""}],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"view","type":"function","gas":2569,"constant":true,"signature":"0x7c74a174"},{"name":"user_point_history__ts","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_addr"},{"type":"uint256","name":"_idx"}],"stateMutability":"view","type":"function","gas":1672,"constant":true,"signature":"0xda020a18"},{"name":"locked__end","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_addr"}],"stateMutability":"view","type":"function","gas":1593,"constant":true,"signature":"0xadc63589"},{"name":"checkpoint","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":37052342,"signature":"0xc2c4c5c1"},{"name":"deposit_for","outputs":[],"inputs":[{"type":"address","name":"_addr"},{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":74279891,"signature":"0x3a46273e"},{"name":"create_lock","outputs":[],"inputs":[{"type":"uint256","name":"_value"},{"type":"uint256","name":"_unlock_time"}],"stateMutability":"nonpayable","type":"function","gas":74281465,"signature":"0x65fc3873"},{"name":"increase_amount","outputs":[],"inputs":[{"type":"uint256","name":"_value"}],"stateMutability":"nonpayable","type":"function","gas":74280830,"signature":"0x4957677c"},{"name":"increase_unlock_time","outputs":[],"inputs":[{"type":"uint256","name":"_unlock_time"}],"stateMutability":"nonpayable","type":"function","gas":74281578,"signature":"0xeff7a612"},{"name":"withdraw","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":37223566,"signature":"0x3ccfd60b"},{"name":"balanceOf","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"addr"}],"stateMutability":"view","type":"function","constant":true,"signature":"0x70a08231"},{"name":"balanceOf","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"addr"},{"type":"uint256","name":"_t"}],"stateMutability":"view","type":"function","constant":true,"signature":"0x00fdd58e"},{"name":"balanceOfAt","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"addr"},{"type":"uint256","name":"_block"}],"stateMutability":"view","type":"function","gas":514333,"constant":true,"signature":"0x4ee2cd7e"},{"name":"totalSupply","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","constant":true,"signature":"0x18160ddd"},{"name":"totalSupply","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"t"}],"stateMutability":"view","type":"function","constant":true,"signature":"0xbd85b039"},{"name":"totalSupplyAt","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"_block"}],"stateMutability":"view","type":"function","gas":812560,"constant":true,"signature":"0x981b24d0"},{"name":"changeController","outputs":[],"inputs":[{"type":"address","name":"_newController"}],"stateMutability":"nonpayable","type":"function","gas":36907,"signature":"0x3cebb823"},{"name":"token","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1841,"constant":true,"signature":"0xfc0c546a"},{"name":"supply","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1871,"constant":true,"signature":"0x047fc9aa"},{"name":"locked","outputs":[{"type":"int128","name":"amount"},{"type":"uint256","name":"end"}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":3359,"constant":true,"signature":"0xcbf9fe5f"},{"name":"epoch","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1931,"constant":true,"signature":"0x900cf0cf"},{"name":"point_history","outputs":[{"type":"int128","name":"bias"},{"type":"int128","name":"slope"},{"type":"uint256","name":"ts"},{"type":"uint256","name":"blk"}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":5550,"constant":true,"signature":"0xd1febfb9"},{"name":"user_point_history","outputs":[{"type":"int128","name":"bias"},{"type":"int128","name":"slope"},{"type":"uint256","name":"ts"},{"type":"uint256","name":"blk"}],"inputs":[{"type":"address","name":"arg0"},{"type":"uint256","name":"arg1"}],"stateMutability":"view","type":"function","gas":6079,"constant":true,"signature":"0x28d09d47"},{"name":"user_point_epoch","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":2175,"constant":true,"signature":"0x010ae757"},{"name":"slope_changes","outputs":[{"type":"int128","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":2166,"constant":true,"signature":"0x71197484"},{"name":"controller","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2081,"constant":true,"signature":"0xf77c4791"},{"name":"transfersEnabled","outputs":[{"type":"bool","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2111,"constant":true,"signature":"0xbef97c87"},{"name":"name","outputs":[{"type":"string","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":8543,"constant":true,"signature":"0x06fdde03"},{"name":"symbol","outputs":[{"type":"string","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":7596,"constant":true,"signature":"0x95d89b41"},{"name":"version","outputs":[{"type":"string","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":7626,"constant":true,"signature":"0x54fd4d50"},{"name":"decimals","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2231,"constant":true,"signature":"0x313ce567"},{"name":"future_smart_wallet_checker","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2261,"constant":true,"signature":"0x8ff36fd1"},{"name":"smart_wallet_checker","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2291,"constant":true,"signature":"0x7175d4f7"},{"name":"admin","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2321,"constant":true,"signature":"0xf851a440"},{"name":"future_admin","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2351,"constant":true,"signature":"0x17f7182a"}]`);
let contract = new web3.eth.Contract(ABI, tokenAddress);
send(fromKey, fromAddr, toAddr);
web3.eth.accounts.wallet.add(fromKey);
function send(fromKey, fromAddr, toAddr) {
const privKey =
Buffer.from(fromKey, 'hex');
const addressFrom = fromAddr;
const addressTo = toAddr;
contract.methods.create_lock('100000000000000000000', (Math.floor(Date.now() / 1000) + 1184400).toString()).send({from: fromAddr, gas: web3.utils.toHex(100000)})
.on('transactionHash', function(hash) {console.log("hash: ", hash);; }).on('error', function(error) {console.log("err: ", error); });
;
}
Upvotes: 1
Views: 754
Reputation: 91
Increase your gas limit. 100,000 is not enough. Your failed tx used 100% of the gas, while your successful tax used 284,350
Upvotes: 2