查看用户拥有的代币列表的简便方法?

Easy way to view a list of the tokens owned by a user?

我确信这可以在前端和 solidity 中完成。我看到一些看起来效率低下的帖子,据我了解,当 ERC721 包已经具有获取这些信息所需的功能时,他们正在创建一个新的映射并将不必要的数据存储到区块链。

找到第一部分的答案了!!

 function ownerOfTokenIds(address tokenOwner) external view returns (uint256[] memory) {
        uint256[] memory result = new uint256[](balanceOf(tokenOwner));
        uint256 counter = 0;
        for (uint256 i = 0; i < tokenCounter; i++) {
            if (ownerOf(i) == tokenOwner) {
                result[counter] = i;
                counter++;
            }
        }
        return result;
    }

我修复了第一个 post 中的代码,问题是我必须声明一个名为 result 的 uint[] 内存变量并将其设置为一个新的 uint 数组。数组的长度应该是这个所有者拥有的代币数量。

我想这可以在前端用在“传播运算符”中!