class FundRequestContractsService {

    @Cacheable(value = "possible_tokens", keyGenerator = "getAllPossibleTokensKeyGenerator")
    public List<TokenInfoDto> getAllPossibleTokens(final String platform, final String platformId) {
        return checkNotEmpty(getAllPossibleTokens().stream()
                                                   .filter(token -> tokenWhitelistPreconditionContract.isValid(platform, platformId, token.getAddress()))
                                                   .collect(Collectors.toList()));
    }

    public  FundRequestContractsService(final FundRequestContract fundRequestContract,
                                       final TokenWhitelistPreconditionContract tokenWhitelistPreconditionContract,
                                       final Web3j web3j,
                                       final TokenInfoService tokenInfoService);

}