#web3 #web3js
#web3 #web3js
Вопрос:
Я пытаюсь получить внутренние транзакции. Все работает нормально, кроме приведенного ниже кода.
Ниже приведен фрагмент кода, который я использую.
const Web3 = require('web3');
const web3explorer = require('web3-explorer');
web3 = new Web3(new Web3.providers.WebsocketProvider(`ws://RPC ADDRESS`));
web3explorer(web3);
const filter = { 'fromBlock': '0x...', 'toAddress': [addr] };
web3.trace.filter(filter, (err, tx) => {
console.log(err)
if (err || !tx) {
console.error(`TraceWeb3 error :${err}`);
}
});
Вывод:
Ошибка: возвращенная ошибка: метод trace_filter не существует / недоступен
Вот как выглядит мой package.json
- «web3»: «^ 1.0.0-бета.37»
- «web3-explorer»: «1.0.2»
Ответ №1:
Метод trace_filter
RPC реализован в программном обеспечении узла OpenEthereum (см. Их документы).
Это их пользовательский метод, построенный поверх официального API Ethereum JSON-RPC (docs).
Поэтому, когда вы подключены к другому программному обеспечению узла, отличному от OpenEthereum, доступность этого метода не гарантируется.
Решение: подключитесь к поставщику узлов, работающему под управлением OpenEthereum, у которого есть этот метод.