Rich input data not displaying

I’m using a technology that currently defaults to v3 OZ contracts, which is fine for me as each tokenURI will not be in a shared IPFS directory.

Another contract on this chain from a previous deployment shows “Input data” in “Rich” format that is easy to read and shows function name, and I’m trying to emulate this output:

My contract succeeds in Transfer, everything is fine except for displaying “Input data” on the chain; there is no “Rich” option to display tokenURI and no mention of a function name:

This contract is a minimal implementation, I’m only intending to set a pointer to a unique URL where others can view on Explorer etc.:

pragma solidity ^0.6.12;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract K is ERC721, Ownable {
    
    constructor()
        ERC721("Xray Your Zen", "XYZ")
        public
    {}
    

    function mint(
        address _to,
        uint256 _id,
        string memory uri
    ) external onlyOwner() {
        _mint(_to, _id);
        _setTokenURI(_id, uri);
    }
}

Do I need to return an object from mint? I’ll be trying to return tokenId and using Counters to generate tokenId to return, yet can’t wrap my head around what is going on.

Would you please let me know what’s happening or how to display “Input data” in “Rich” format as in the first image above?

1 Like

Hi @rex,

What is the technology you are using? I assume it supports some ABI’s for what it displays.