查看用户拥有的代币列表的简便方法?
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 数组。数组的长度应该是这个所有者拥有的代币数量。
我想这可以在前端用在“传播运算符”中!
我确信这可以在前端和 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 数组。数组的长度应该是这个所有者拥有的代币数量。
我想这可以在前端用在“传播运算符”中!