Uso un código como este para obtener mi saldo de Ethereum con web3
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="./web3.min.js"></script>
<script type="text/javascript">
window.addEventListener('load', function () {
if (typeof web3 !== 'undefined') {
console.log('Web3 Detected! ' + web3.currentProvider.constructor.name)
window.web3 = new Web3(web3.currentProvider);
} else {
console.log('No Web3 Detected... using HTTP Provider')
window.web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
})
function getBalance() {
var address, wei, balance
address = document.getElementById("address").value
try {
web3.eth.getBalance(address, function (error, wei) {
if (!error) {
var balance = web3.fromWei(wei, 'ether');
document.getElementById("output").innerHTML = balance + " ETH";
}
});
} catch (err) {
document.getElementById("output").innerHTML = err;
}
}
</script>
</head>
<body>
<h1>ETH Balance Fetcher</h1>
<p>Enter your Ethereum Address:</p>
<input type="text" size="50" id="address" />
<button type="button" onClick="getBalance();">Get Balance</button>
<br />
<br />
<div id="output"></div>
</body>
</html>
Pero no funciona para fichas.
Por ejemplo, creo ERC20 y la dirección del contrato es 0xa318948fd693281fa6a95a409b3efb79e228edec
(lo agrego en metamask y muestra el saldo de mi token)
¿Cómo puedo leerlo con web3? gracias por ayudar
Está utilizando mi muestra ETH-Balance , que no funcionará si está buscando un token ERC20. Esta muestra está destinada a obtener el saldo de Ether en una dirección particular.
En su lugar, debe usar mi otra muestra, ERC-20-Token-Balance, donde puede ingresar tanto la dirección del contrato como la dirección donde desea verificar el saldo de los tokens.
Puedes probarlo en vivo aquí: http://shawntabrizi.com/ethbalance/erc20/
async function getERC20Balance() {
var address, contractAddress, contractABI, tokenContract, decimals, balance, name, symbol, adjustedBalance
address = document.getElementById("address").value
contractAddress = document.getElementById("contractAddress").value
contractABI = human_standard_token_abi
tokenContract = web3.eth.contract(contractABI).at(contractAddress)
decimals = promisify(cb => tokenContract.decimals(cb))
balance = promisify(cb => tokenContract.balanceOf(address, cb))
name = promisify(cb => tokenContract.name(cb))
symbol = promisify(cb => tokenContract.symbol(cb))
try {
adjustedBalance = await balance / Math.pow(10, await decimals)
document.getElementById("output2").innerHTML = adjustedBalance;
document.getElementById("output2").innerHTML += " " + await symbol + " (" + await name + ")";
} catch (error) {
document.getElementById("output2").innerHTML = error;
}
}
Jaime
Daniel Qsk
dibujó
gran flota
shane fontaine