如何在 solidity 中计算区块之间地址的链交易

How to count on chain transactions for an address between blocks in solidity

solidity 中是否有函数可以计算特定区块之间链上特定地址交易的数量?假设它是 BSC 或 ETH 链。

BSC 和以太坊智能合约只能访问当前状态 - 不能访问之前区块的历史状态。

此外,目前没有 EVM 操作码(因此没有 Solidity 函数)可以通过地址查找交易量。


如果您的用例允许使用链下工具,通过地址获取传出交易计数的方法之一是 web3 方法 getTransactionCount() (wrapper for the eth_getTransactionCount RPC 方法)。如果您的提供者是一个存档节点(并且允许请求​​历史状态),您可以获取两个特定区块的交易计数并比较这些值,这将为您提供指定区块之间的计数差异。