Hey @jefflau.eth @nick.eth etc
I’ve been playing with the wrapper and realized that when a .eth 2LD expires (ERC721) the ERC1155 is still transferrable / tradable / sellable until or unless the .eth 2LD (ERC721) is re-registered.
As getData sets all fuses to 0 (false) if block.timestamp > expiry.
I think it should set CANNOT_TRANSFER to True instead of setting CAN_DO_ANYTHING?
function getData(uint256 tokenId)
...
if (block.timestamp > expiry) {
//fuses = 0; // allow transfers on expiration
fuses = 4; // CANNOT_TRANSFER ?
} else {
fuses = uint32(t >> 160);
}
...
My concern here is that people can register .eth 2LD name’s for 1 month or wrap and let any currently owned .eth 2LD expire - then still be able to sell the ERC1155 on market places after the name expires until someone decides to manually re-register the .eth 2LD.
The 1155 could be traded many times before that happens or someone realizes. Then the person who “paid” for the name will get rugged when a new person registers it again and the token is burned and finally transferred away from the current “holder”.
my foundry test : gist:9b3e75ecc77fdf74a4380e89404f015d (github.com)