I need to track transfers in my erc1155 and I'm thinking of using the bytes memory data
parameter to add a tag like "insurance_payment" the only problem is that the data parameter doesn't stay on chain, to solve that, I'm thinking in modifying the TransferSingle
and TransferBatch
events to add a data parameter so I can retreave it later, would that break compatibility with the erc1155 standard?
Yes, that breaks compatibility. The data
is only meant to be used to forward to the receiver.
but that would affect someone trying to use the contract?
Adding a data
field to events would change the event selector completely. Your contract will stop being ERC1155 compliant and will not be compatible with things like Etherscan, OpenSea, wallets, etc.