Podemos verificar os logs de eventos em todos os blocos para implementar tal consulta.
O evento Approval(address indexed _owner, address indexed _spender, uint256 _value) será acionado quando o contrato ERC20 for autorizado.

Quando o evento (Aprovação) é verificado, as informações de autorização do usuário relevante são salvas no banco de dados.

O evento Transfer(address indexed _from, address indexed _to, uint256 _value) será acionado ao transferir dinheiro.

Neste momento, o método subsídio (address _owner, address _spender) do contrato ERC20 é chamado para consultar as informações de autorização mais recentes e, em seguida, atualizar o banco de dados.

Desde a varredura do bloco genesis até o bloco mais recente, todas as informações de autorização do usuário serão salvas no banco de dados. Após ocorrer uma transferência na cadeia, as informações de autorização mais recentes serão atualizadas no banco de dados, para que todas as informações de autorização possam ser consultadas no. base de dados.