[英]How do I get a balance in usdt?
我的代码:
const tokens = {
usdt: "0xbA6879d0Df4b09fC678Ca065c00dd345AdF0365e"
}
const minABI = [
{
constant: true,
inputs: [{ name: "_owner", type: "address" }],
name: "balanceOf",
outputs: [{ name: "balance", type: "uint256" }],
type: "function",
},
];
async function getUsdtBalance() {
const accounts = await ethereum.request({ method: 'eth_requestAccounts' });
const Web3Client = new Web3(window.ethereum);
const contract = new Web3Client.eth.Contract(minABI, tokens.usdt)
const result = await contract.methods.balanceOf(accounts[0]).call();
const format = Web3Client.utils.fromWei(result);
console.log(format)
}
错误:返回的值无效,是否耗尽了 Gas? 如果您没有为从中检索数据的合约使用正确的 ABI、从不存在的块号请求数据或查询未完全同步的节点,您也可能会看到此错误。
这是一个测试网络。 我有 99 个 eth 和 0 个 usdt。
很可能是 ABI 中的一个错误,我自己什么都不懂,我是从指南中获取的。
看起来代码正在运行。 我也认为ABI有问题。 我会将 ABI 更改为如下所示:
const minABI = [
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
];
我添加了一个名为stateMutability
的字段。 此字段允许您定义函数应如何与区块链中的数据交互。 在我们的例子中,我们没有修改数据,而只是读取它,所以我们将值设置为view
。
如果仍然存在问题,检查令牌地址可能是有意义的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.