ERC1155 is widely adopted; it would make sense to standardise permits for this token type to enable homogeneous support in third-party applications. Further, I’ve seen a few implementations in the wild like t11s’ here: ERC1155Permit.
I’ve put together an example implementation.
You’ll notice a choice to go with
bytes sig rather than
uint8 v, bytes32 r, bytes32 s. This decision was discussed in the ERC4494 thread and the reasoning is that
bytes sig supports smart contract signing.
Given that ERC1155s can be fungible, it makes sense that an address permits an operator to transfer their tokens. This flow is more similar to ERC2612 than ERC4494. This means nonces are indexed by address:
I’d like to open up this thread for feedback on standardising the ERC1155 Permit flow.