如何检查我的智能合约已售出多少代币

how to check how many token been sold for my Smart contract

我想创建一个智能合约并为 ICO 启动它。我还创建了一个网站,人们可以在其中购买我的代币。我想知道如何检查已售出多少代币(实时)?所以我可以创建一个实时吧台来显示已售出的代币百分比。

或者有什么方法可以监控智能合约中的代币销售过程?

代币合约与任何其他智能合约没有什么不同。没有特殊的内置 Solidity 功能或与之相关的逻辑。它们只是遵循规范的常规智能合约。

因此,如果您想了解已售出的代币数量,请将其编码到您的合同中。虽然售出的代币不是标准 ERC20/ERC721 界面的一部分,但没有什么能阻止您添加 constant 函数来检索此信息。事实上,如果您使用的是基本的 Zeppelin Crowdsale 合约,您可以使用 public 状态变量 weiRaised / rate 来计算它(很可能您应该创建自己的 Crowdsale 分包,所以最好在那里添加你想要的功能。

我们可以使用 Etherscan Developer API 查看针对给定合约地址的交易,并找出总供应量或可供出售的物品数量。

Etherscan Developer 可以做很多事情 API。例如,这里有一个 URL 从以太坊主网拉取数据 -> Etherscan -> JSON 解析器 -> Shields.io 并将其呈现为图像以计算剩余待售的 Su Squares 数量:

来源:https://img.shields.io/badge/dynamic/json.svg?label=Su+Squares+available&url=https%3A%2F%2Fapi.etherscan.io%2Fapi%3Fmodule%3Daccount%26action%3Dtokenbalance%26contractaddress%3D0xE9e3F9cfc1A64DFca53614a0182CFAD56c10624F%26address%3D0xE9e3F9cfc1A64DFca53614a0182CFAD56c10624F%26tag%3Dlatest%26apikey%3DYourApiKeyToken&query=%24.result

^ 不知道SO会不会把图片缓存在这里。但是 URL 是一个实时的 URL,它将可用的 Su Squares 数量从区块链中拉出。