Я устал от получения ошибки CONTANT ниже. Я могу вызвать этот метод непосредственно из ремикса и с фронта с Metamask. Пожалуйста, помогите | nts.ps, я попробовал с HTTP и WSS -поставщиком, я могу сделать сгибание к Project Co Infura, я не заблокирован. PM2 не показывает проблем с приложением Nodejs. За исключением упомянутой проблемы во время звонка. Я также пытался создать контракт с опциями и без него {from, Gas} < /p>
Error call ethAuthorizeAccount: ContractExecutionError: Error happened while trying to execute a function inside a smart contract,
{
cause: [Eip838ExecutionError: execution reverted] {
cause: undefined,
code: -32000,
receipt: undefined,
data: undefined
},
code: 310,
receipt: undefined
}
< /code>
nodejs Impl: < /p>
require('dotenv').config();
const { Web3 } = require('web3');
const contractUtilsABI = require("./abi/latenight-utils_v2-1-0-abi.json");
const apiResponse = require("../helpers/apiResponse");
// Setup Web3
// const web3 = new Web3(new Web3.providers.HttpProvider(process.env.ETH_NODE_INFURA));
const web3WssProvider = new Web3.providers.WebsocketProvider(process.env.ETH_NODE_WSS_INFURA);
const web3 = new Web3(web3WssProvider);
const contractAddressUtils = process.env.CONTRACT_ADDRESS_UTILS;
const key = process.env.ETH_PRIVKEY;
const account = web3.eth.accounts.privateKeyToAccount(key);
const contractUtils = createContract(contractAddressUtils, contractUtilsABI);
contractUtils.defaultHardfork = 'shanghai';
function createContract(_contractAddr, _abi) {
if (web3.utils.isAddress(_contractAddr) && Array.isArray(_abi)) {
// const myContract = new web3.eth.Contract(abi, contractAddress);
console.log('valid contract and abi');
const contract = new web3.eth.Contract(_abi, _contractAddr, {from:account.address, gas: 3000000});
return contract;
} else {
console.error('Invalid contract address or ABI');
}
}
exports.ethAuthorizeAccount = [
async (req, res) => {
const params = req.body;
try {
web3.eth.accounts.wallet.add(account);
const accounts = web3.eth.accounts.wallet;
if (!accounts.length) { return console.log('no accounts found!'); }
const address = web3.eth.accounts.wallet[0].address;
if (web3.utils.isAddress(address)) {
// The address is valid
const checksumAddress = web3.utils.toChecksumAddress(address);
if (address === checksumAddress) {
console.log('The address is checksummed correctly');
const result = await contractUtils.methods.generateRandomBytes32().call().then(console.log);
const block = await web3.eth.getBlockNumber();
console.log(`Latest block: ${block}`);
console.log('\nCALL result: ', result);
} else {
console.error('The address is not checksummed correctly');
}
} else {
console.error('Invalid address');
}
} catch (error) {
console.error(`Error call ethAuthorizeAccount:`, error);
apiResponse.ErrorResponse(res, error);
}
}
]
< /code>
soility call: < /p>
function generateRandomBytes32() external view returns (bytes32) {
// require(_seedNodeCli == seedNodeCli, "access denied");
// Combine block-related data with the sender's address and current timestamp
return keccak256(
abi.encodePacked(
block.timestamp, // Current block timestamp
block.number, // Block number
block.prevrandao, // Block prevrandao (pseudo-randomness)
msg.sender // Sender address
)
);
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -undefined
Nodejs + web3js - eip838executionError Код: -32000 Сообщение - не определенное ⇐ Javascript
Форум по Javascript
1738005568
Anonymous
Я устал от получения ошибки CONTANT ниже. Я могу вызвать этот метод непосредственно из ремикса и с фронта с Metamask. Пожалуйста, помогите | nts.ps, я попробовал с HTTP и WSS -поставщиком, я могу сделать сгибание к Project Co Infura, я не заблокирован. PM2 не показывает проблем с приложением Nodejs. За исключением упомянутой проблемы во время звонка. Я также пытался создать контракт с опциями и без него {from, Gas} < /p>
Error call ethAuthorizeAccount: ContractExecutionError: Error happened while trying to execute a function inside a smart contract,
{
cause: [Eip838ExecutionError: execution reverted] {
cause: undefined,
code: -32000,
receipt: undefined,
data: undefined
},
code: 310,
receipt: undefined
}
< /code>
nodejs Impl: < /p>
require('dotenv').config();
const { Web3 } = require('web3');
const contractUtilsABI = require("./abi/latenight-utils_v2-1-0-abi.json");
const apiResponse = require("../helpers/apiResponse");
// Setup Web3
// const web3 = new Web3(new Web3.providers.HttpProvider(process.env.ETH_NODE_INFURA));
const web3WssProvider = new Web3.providers.WebsocketProvider(process.env.ETH_NODE_WSS_INFURA);
const web3 = new Web3(web3WssProvider);
const contractAddressUtils = process.env.CONTRACT_ADDRESS_UTILS;
const key = process.env.ETH_PRIVKEY;
const account = web3.eth.accounts.privateKeyToAccount(key);
const contractUtils = createContract(contractAddressUtils, contractUtilsABI);
contractUtils.defaultHardfork = 'shanghai';
function createContract(_contractAddr, _abi) {
if (web3.utils.isAddress(_contractAddr) && Array.isArray(_abi)) {
// const myContract = new web3.eth.Contract(abi, contractAddress);
console.log('valid contract and abi');
const contract = new web3.eth.Contract(_abi, _contractAddr, {from:account.address, gas: 3000000});
return contract;
} else {
console.error('Invalid contract address or ABI');
}
}
exports.ethAuthorizeAccount = [
async (req, res) => {
const params = req.body;
try {
web3.eth.accounts.wallet.add(account);
const accounts = web3.eth.accounts.wallet;
if (!accounts.length) { return console.log('no accounts found!'); }
const address = web3.eth.accounts.wallet[0].address;
if (web3.utils.isAddress(address)) {
// The address is valid
const checksumAddress = web3.utils.toChecksumAddress(address);
if (address === checksumAddress) {
console.log('The address is checksummed correctly');
const result = await contractUtils.methods.generateRandomBytes32().call().then(console.log);
const block = await web3.eth.getBlockNumber();
console.log(`Latest block: ${block}`);
console.log('\nCALL result: ', result);
} else {
console.error('The address is not checksummed correctly');
}
} else {
console.error('Invalid address');
}
} catch (error) {
console.error(`Error call ethAuthorizeAccount:`, error);
apiResponse.ErrorResponse(res, error);
}
}
]
< /code>
soility call: < /p>
function generateRandomBytes32() external view returns (bytes32) {
// require(_seedNodeCli == seedNodeCli, "access denied");
// Combine block-related data with the sender's address and current timestamp
return keccak256(
abi.encodePacked(
block.timestamp, // Current block timestamp
block.number, // Block number
block.prevrandao, // Block prevrandao (pseudo-randomness)
msg.sender // Sender address
)
);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79391937/nodejs-web3js-eip838executionerror-code-32000-message-undefined[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия