[英]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.