繁体   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