Signing meta transactions unreadable

Many contracts, for the sake of argument lets focus on USD Coin, implements meta transaction execution like that :

    function executeMetaTransaction(
        address userAddress,
        bytes memory functionSignature,
        bytes32 sigR,
        bytes32 sigS,
        uint8 sigV
    )


Problem is that functionSignature is not human readable as it is result of  
(lets assume we want to create meta transaction for approve method for given 
address and amount)

const transaction = await tokenContract.approve.populateTransaction(
  address,
  amount
);

 ( ethersjs is in use but it doesn't change anything with other library )

So now if I call metamask  `eth_signtypeddata_v4`  what user has to sign is 
something like this 

![Screenshot 2023-08-02 at 21.31.21|498x500](upload://akLTKnOXOE2crHLLhRJeFtNxW5q.png)

However this hexadecimal unreadable funtionSignature can be easy decoded if ABI
of contract is known, and MM knows it already. 
Indeed I take functionSignature from above and paste it with ABI for example
here  ``https://bia.is/tools/abi-decoder/  I see  something like this. 

{
  "name": "approve",
  "params": [
    {
      "name": "spender",
      "value": "0xf315467a946c1bf3d8bs2d419477fd913e0c563w5",
      "type": "address"
    },
    {
      "name": "amount",
      "value": "1000",
      "type": "uint256"
    }
  ]
}

All that means MM has enough information to render instead of functionSignature 
nice description of what method with what arguments is going to be called. 
This is definitely better UX and should be easy achievable. 
Do you see chances that PR for this will be accepted?
Or there is some aspect I missed?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.