Я запускаю узел Ropsten (возрождение) тестовой сети ethereum. Я хотел бы получить содержимое txpool. С помощью консоли geth я могу получить доступ к переменной txpool.
Мой вопрос: как я могу получить доступ к этой переменной в сценарии web3?
Web3 = require("web3");
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
Что-то вроде следующего:
pendingTx = web3.txpool ?
pendingTx = web3.eth.txpool ?
они все неопределенные...
Web3 1.0.0 легко реализовать самостоятельно:
var Web3 = require('web3');
var web3 = new Web3('ws://127.0.0.1:8546');
web3.eth.extend({
property: 'txpool',
methods: [{
name: 'content',
call: 'txpool_content'
},{
name: 'inspect',
call: 'txpool_inspect'
},{
name: 'status',
call: 'txpool_status'
}]
});
Затем используйте его как обычно:
web3.eth.txpool.status().then(console.log).catch(console.error)
Вывод:
{pending: "0x0", queued: "0x0"}
Точно так же вы можете расширить Web3, чтобы вызвать любой другой «отсутствующий» JSON RPC .
content
не работает, а другие работают.
Санчит
джобидон
Санчит
Исмаэль
--XXXapi
, что позволяет API на стороне сервера быть доступным. На стороне клиента вы можете использовать npmjs.com/package/web3admin , чтобы расширить обычный web3 дополнительными методами. Но некоторые методы все еще отсутствуют, и вам придется добавлять их вручную.