Omniscia Tangible Audit

TangibleReaderHelperV2 Manual Review Findings

TangibleReaderHelperV2 Manual Review Findings

TRH-01M: Potentially Inexposed Function Integration

Description:

The IMarketplace::_idToMarketItem function integrated by the TangibleReaderHelperV2::getPiNFTMarketItemBatch function does not appear to be exposed by the MarketplaceV2 implementation.

Example:

contracts/TangibleReaderHelperV2.sol
92function getPiNFTMarketItemBatch(
93 uint256[] calldata tokenIds
94) external view returns (IMarketplace.MarketItem[] memory marketItems) {
95 uint256 length = tokenIds.length;
96 marketItems = new IMarketplace.MarketItem[](length);
97 IMarketplace piMarketplace = passiveNft.marketplace();
98
99 for (uint256 i; i < length; ) {
100 marketItems[i] = piMarketplace._idToMarketItem(tokenIds[i]);
101 unchecked {
102 ++i;
103 }
104 }
105}

Recommendation:

We advise the Tangible team to revise their integration point as it appears to fail based on the current codebase's implementation.

Alleviation (2ad448279d9e8e4b6edd94bcd2eb22129b6f7357):

The Tangible team revisited this integration and identified that the function is properly exposed by the piMarketplace implementation, rendering this exhibit nullified.