Open1

solidityで可変長配列を返せない問題について

ぐるーんぐるーん

solidityでは可変長配列は返せないようですね、、、
下記のようなfunctionはエラーを返してしまいます。

GetTrusteeIds
function getTrusteeIds(address _trustee) public view override returns (uint[] memory) {
        trusteeIds.push(2);
        return trusteeIds[_trustee];
    }

こんなときは、配列を事前に設定して可変長配列ではなく固定帳配列を返すようにしましょう。

GetTrusteeIds
trusteeIds.push(2);
function getTrusteeIds(address _trustee) public view override returns (uint[] memory) {
        return trusteeIds[_trustee];
    }

有名なsolutionとして、ERC721Enumerableがありますので、参考にすると良いでしょう!
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/extensions/IERC721Enumerable.sol