Ich versuche, eine Funktion zu schreiben, um das Ethereum-Guthaben einer Brieftaschenadresse über web3js abzurufen. Das Problem ist, dass ich es aus irgendeinem Grund nicht zum Laufen bringen kann. Hier ist mein Code, der in VSCode ausgeführt wird:
const testnet = 'https://ropsten.etherscan.io/';
const walletAddress = '0x8690F1feff62008A396B31c2C3f380bD0Ca6d8b8';
const web3 = new Web3(new Web3.providers.HttpProvider(testnet));
var balance = web3.eth.getBalance(walletAddress);
Die Brieftasche enthält 0,98 Ether auf Ropsten, aber aus irgendeinem Grund kehrt sie nicht zurück, wenn ich sie von meinem Code aus anrufe. Was mache ich falsch?
Das Problem mit Ihrer Testnet-URL, https://ropsten.etherscan.io/ , führt keinen Eth-Client aus.
Finden Sie den folgenden Code, um den Ropsten-Knoten zu verbinden.
const testnet = 'https://ropsten.infura.io/';
const walletAddress = '0x8690F1feff62008A396B31c2C3f380bD0Ca6d8b8';
const web3 = new Web3(new Web3.providers.HttpProvider(testnet));
var balance = web3.eth.getBalance(walletAddress); //Will give value in.
balance = web3.toDecimal(balance);
Ich bekomme Wert. Jetzt wird das Gleichgewicht als Wei geben. Überprüfen Sie die web3-API-Methoden auf dasselbe.
https://github.com/ethereum/wiki/wiki/JavaScript-API#web3towei
getBalance()
gibt jetzt ein Versprechen zurück (zumindest in v1.0.0-beta.43), das Sie tun müssen, getBalance(...).then(bal => { console.log(bal); })
und übrigens, um es in Dezimalzahlen umzuwandeln, muss man es jetzt tun, web3.utils.toDecimal()
und wenn es übergeben wird, wird ein Gleichgewicht es zum Kotzen bringen "Fehler: Nummer kann nur sicher bis zu 53 Bit speichern" -- hoffnungslos. nach was? 5 Jahre, wie lange gibt es Ethereum schon? und die grundlegendste Funktionalität ist immer noch kaputtbalance = warte auf web3.eth.getBalance(wallet_address);
Sie müssen sich mit einem Ethereum-Knoten verbinden, der im Ropsten-Netzwerk läuft. https://ropsten.etherscan.io ist kein solcher Knoten.
Sie können stattdessen Infura ausprobieren . Sie stellen öffentliche Ethereum-Knoten bereit. Sie sollten einen API-Schlüssel erhalten, aber es funktioniert (vielleicht mit niedrigerer Ratenbegrenzung?) Auch ohne das:
const testnet = 'https://ropsten.infura.io';
Sie können das neueste Formular verwenden:
var Web3 = require("web3");
var url = 'https://ropsten.infura.io';
var web3 = new Web3(url);
var address = '0x8690F1feff62008A396B31c2C3f380bD0Ca6d8b8';
var balance = web3.eth.getBalance(address);
var wallet = web3.eth.toWei(balance, 'ether');
Hier habe ich versucht, zwei Änderungen zu zeigen, dh
1. no use of 'new Web3.providers.HttpProviders(url)'
2. conversion of balance into wallet through mapping it to ether.
Auch um das Gleichgewicht im Ether-Format anzuzeigen, verwenden Sie es so. Ich sehe, dass viele der Antworten tatsächlich veraltet sind.
const getBalance = await web3.eth.getBalance(walletAddress)
const ethBalance = web3.utils.fromWei(getBalance, 'ether')
console.log(ethBalance)
// 0.98
web3.toDecimal(web3.fromWei(await web3.eth.getBalance('wallet-address')))
ODERweb3.toDecimal(web3.fromWei(await web3.eth.getBalance('wallet-address'),'ether'))
await
vor web3.eth.getBalance, sonst schlägt es fehl.
WtFudge