Loopring / loopring-wallet-feedback

钱包产品需求汇总(包括安卓和iOS)
10 stars 3 forks source link

Deployed NFTs lose their metadata on both L1 and L2 #185

Closed sk33z3r closed 2 years ago

sk33z3r commented 2 years ago

See the latest update for newest information. TL;DR

Users should not mint using the current UI until it is fixed


It's possible this is directly related to #184 , but I am posting separately since there are a lot of people reporting these symptoms. This also ties into #182.

Repro:

  1. Follow the steps at the official zoho link for minting NFTs to upload your content
  2. Connect wallet to the web app using WalletConnect or MetaMask
  3. Go to My NFTs
  4. Click the Mint NFT button in top-right
  5. Paste your metadata.json CID into the form OBSERVE: Intermittent issues due to #186
  6. Click Mint My NFT and sign the approval message
  7. Click on your newly minted NFT to view its details

Observations:

Issue: In all cases above, when someone deploys their contract, it appears the metadata disappears and the UI shows -- for the name and description, as well as a placeholder image.

Question for the Team: Is it possible this behavior is all directly related to the metadata change in the new smart contract, outlined in #184?

Example of Minted NFT after Deployment: image

sk33z3r commented 2 years ago

I'd be curious, as well, if this ELI5 explanation is accurate:

pacificpleb commented 2 years ago

In my case, I waited a day or so for the NFTs to be visible in L2 wallet before I hit the Deploy button. Then I waited a couple hours for those transactions to complete before I clicked the Withdraw button using my L1 ETH address. When that completed is when I saw null metadata even after waiting a day. I can provide transaction IDs in a PM if it is useful to whoever is working this issue.

sk33z3r commented 2 years ago

Summary

We've just encountered an issue after a user minted an NFT and tried to move it to OpenSea. There is a serious problem here, but we know what the workaround is.

  1. User minted their NFT following the reproduction above, using the official Zoho article on minting
    • metadata.json is a sub-file of the CID entered into the Mint UI
  2. User deployed their contract, and noted to the channel their images disappeared.
  3. The team gave us wording today that this issue is only in Loopring's UI, so the user Withdrew the NFT and sent it to an L1 address for listing on OpenSea
  4. Once at OpenSea, the NFT is blank. There is no metadata information on the page's listing, nor is the picture displaying.
  5. On Etherscan I can see this NFT was minted with the contract from 2022-02-28, which appears to only resolve the top-level hash and not the metadata.json file within the hash

Otherwise, the user's metadata file contents has no issues, and the image file loads quickly, if you look at everything directly through a browser like Brave. Please read onto after the breakdown for a workaround that a community member has found.

Breakdown

The user's OpenSea link

Some notes about what I see here:

image

Clicking the contract address link to go to etherscan reveals that this is minted with the new contract that was submitted for verification on 2022-02-28. This is the contract that removes the hard-coded metadata.json part of the tokenID. See #184 for details.

image

Clicking on the Token ID link will take you to the IPFS hash, but it's the top-level folder with metadata.json in it. It does not resolve to the metadata file itself.

image

The user's metadata is correct

{
  "description": "HappyBirthdayYJ!",
  "image": "ipfs://Qme5etJ92JemXyCVXD38sKAHx3byRNGSDnKtr5EekEfU1U/20220304_131356000_iOS.jpg",
  "name": "Happy Birthday YJ"
}

And I can load the NFT image by visiting the IPFS link under "image"

Workaround

One community member, @fudgebucket27, has been able to sort out a workaround and confirm that the web UI should not be used for minting until it is updated.

This user has created an app that utilizes the new contract tokenID to put metadata.json at the top-level CID. Otherwise, it mints the same way as the mint UI does.

The user's repository for the app: https://github.com/fudgebucket27/LoopMintSharp

Fudgey's process is:

  1. Create metadata.json file.
  2. Upload only the file to Pinata, not inside folder, so the CID resolves to the metadata file
  3. Run the app to mint against the new contract

After mint, the NFT has no issues whatsoever in the Loopring UIs, before or after deployment. Description, name, and image all load as expected. Fudgey has withdrawn the NFT to L1 and is currently running a test to put it on OpenSea to confirm that his workaround is functional. I will update as soon as the block finishes, but may take some time.

Users should not mint using the current UI until it is fixed. Otherwise we are just allowing users to mint things knowing that they will not be functional.


UPDATE: Fudgey's test has finished. Absolutely no issues transferring or getting the listing onto OpenSea. The NFT image displays, as well as the description. The metadata is at the CID, and not a sub-file.

The NFT has some explicit words in it, so I will just link the OpenSea listing. Visit at your own discretion.

https://opensea.io/assets/ethereum/0xd988a1a8f9fdc3b816d032044feb48d3225c99ab/68336602268158309633443505029233496644524001714511924287231603842604590667991

sk33z3r commented 2 years ago

Last observation: The "Unidentified Contract" and missing collection descriptions appear to be an OpenSea thing. Those are meant to be setup in the OpenSea interface, and are not taken from the metadata.json.

pacificpleb commented 2 years ago

Here is what an NFT withdrawn from L2 to L1 looks like in Etherscan:

Screen Shot 2022-03-08 at 6 47 42 AM
pacificpleb commented 2 years ago

Any possibility of these NFTs being fixable at this point or is the only solution to remint and redeploy using the workaround, or minting straight on L1? I assume we won't be rolling back the Ethereum chain lol, so I'm guessing we're boned with these NFTs?

Would rather not spend the fees again on 4 more... :'(

Screen Shot 2022-03-08 at 6 59 51 AM
sk33z3r commented 2 years ago

We've had about a day now of minting being back online with a new UI. Users no longer have to name their json file metadata.json and should upload the file to pinata, instead of a folder with the file in it.

We confirmed that after deployment to L1, the contract and NFT make it to marketplaces like OpenSea without issue, and display data as expected.

Any issues with NFTs minted prior to the button being cut-off should be reported in the Discord channels support or bugs, and someone will be able to sort out the exact issue to resolve any problems, or determine if something was wrong with the mint (like incorrect json content, unpinned files in ipfs, etc.) that would mean a remint is needed. Most issues related to the contract switch have more or less been addressed with the new mint UI.

Officially closing this ticket.