簡體   English   中英

我如何在 usdt 中獲得余額?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM