CID 721/1155方法tokenURI是一个公共变量,具有检索数据本身的getter (例如,经常返回ipfs://Qm... CID)。让我们假设tokenURI方法本身在调用它时不会发出某种事件,因为规范中仅有的事件是Transfer、Approval和ApprovalForAll。如果它确实发出了一个事件,那么您可以简单地解析这个方法何时调用的日志。
那么,是否有可能知道一个单独的for 721/1155合同跨Ethereum调用tokenURI的频率,或者至少是一个频率?使用诸如英弗拉或以太扫描这样的集中式服务,它们可能内部就有这种类型的数据,但它并不是公开访问的--例如,通过API (或通过用户界面)调用tokenURI在每个使用各自服务的人中有多少次。
总的目标是了解Ethereum最常用的ERC721 721/1155合同方法,同时突出显示tokenURI读取的频率。我无法在Dune.xyz或图上找到这种确切的信息类型,所以我很好奇,如果我不知道这个is...or有多简单--因为没有记录任何事件,这是不可能的。
发布于 2022-04-04 04:45:19
实际上你不能确定这一点。如果您确实选择在tokenURI函数中发出事件,那么它将不再是一个view --也就是说,它会改变块链的状态,因为日志(事件)存储在块链数据库中,并且需要一个tx来实现。即使你确实做了一个会发出事件的函数,很可能人们只是去eth_call它,没有人会为从区块链读取数据付费。他们也不应该。
此外,函数的可变性也是标准的一部分,因此可变的tokenURI实际上并不是符合元数据扩展的标准。请参阅元数据扩展这里。
总之,如果没有一个非常定制的RPC来记录和跟踪eth_calls,就不可能获得这些数据。即使这样,您也只能为使用RPC的人获取数据,而使用RPC的人只会是用户的子集。像呋喃、炼金术这样的主要供应商可以追踪到这一点,给出一些关于它的想法。
https://ethereum.stackexchange.com/questions/125358
复制相似问题