game-of-nfts / gon-evidence

This repo records GoN participants' info and evidence.
26 stars 316 forks source link

Bug: Nft stuck on omniflix #366

Open allyter opened 1 year ago

allyter commented 1 year ago

Summary of Bug

For A8 - flow-a2 - never-go-back task, My nft stuck on omniflix.

  1. I minted a NFT with "rawnft08" id under "rawalotcollection" collection in iris. https://gon.ping.pub/iris/tx/EBFEAEB09EA9C19256C86B905B0EBD131099E6905BB4D7DA85D44AABCF9EE437
  2. I sent nft from iris to uptick. https://gon.ping.pub/iris/tx/145B8E7BAB0CFA732051396E0CF467705B86443D7795E094D65EF4E54CE88370
  3. I sent nft from uptick to omniflix. https://explorer.testnet.uptick.network/uptick-network-testnet/tx/27E5A58620F9F7A67FC94E91E983CA101F279CBE0EB0627BAE13DCAFE84F87B6
  4. I sent nft from omniflix to iris. https://gon.ping.pub/omniflix/tx/DB0C0B2B067022973DCAD57E28FE291BD918468D21D60079E72E1F1CA19766EB The tx on omniflix got success response. But the nft didn't appear on iris network. After 1 hour later I tried again to send from omniflix to iris. https://gon.ping.pub/omniflix/tx/43F7407432A435EF6C8A48A5CA81C91851537421C6864A5A00907D39EEF01A52 Second tx got error. Because the owner of nft not me. It changed to omniflix1m2nuc50f4qk2czsahluts574agsn9gr9zrnmkt. My address on omniflix is omniflix14zru37e9zrha0lsnc64e89mc22etq50g49jwuz.

Now the nft stuck between omniflix and iris. Nft does not appear on me neither omniflix network nor iris network.

Environment

Steps to Reproduce

Expected and Actual Behavior

Expected: The nft should have appeared iaa14zru37e9zrha0lsnc64e89mc22etq50gaerxfd on iris network or omniflix14zru37e9zrha0lsnc64e89mc22etq50g49jwuz on omniflix network.

Actual: Now nft owner is omniflix1m2nuc50f4qk2czsahluts574agsn9gr9zrnmkt.

Error Stack

Additional Context

It seems like an ibc relayer bug.

harish551 commented 1 year ago

Hey @allyter

I've gone through your txs

I can see your nft rawnft08 on omniflix testnet and owned by your address only (may be it returned back to your address)

ubuntu@game-of-nfts:~$ omniflixhubd q onft asset ibc/5C7F3C866A58B17FD6022FA8CA36C61EDE07E1673076F5E4A2EDC08E04DE4368 rawnft08 --node https://rpc.gon-flixnet.omniflix.io:443
created_at: "0001-01-01T00:00:00Z"
data: '{"community":"c4e","discord_handle":"allyf#9098","github_username":"allyter","irismod:name":{"value":""},"irismod:uri_hash":{"value":""},"team_name":"Rawalot","uptickd:name":{"value":""},"uptickd:uri_hash":{"value":""}}'
extensible: true
id: rawnft08
metadata:
  description: ""
  media_uri: http://www.rawalot-collection.com/rawalotcollection/rawnft08
  name: ""
  preview_uri: ""
  uri_hash: ""
nsfw: true
owner: omniflix14zru37e9zrha0lsnc64e89mc22etq50g49jwuz
royalty_share: "0.000000000000000000"
transferable: true

You have sent rawnft03 to iris (on omniflix it's owned by escrow address omniflix1m2nuc50f4qk2czsahluts574agsn9gr9zrnmkt) means it's locked

and this nft is availabe on iris you can query nft using below cli instructions

ubuntu@game-of-nfts:~$ iris q nft-transfer class-hash "nft-transfer/channel-0/nft-transfer/channel-41/nft-transfer/channel-3/rawalotcollection" --node https://rpc-gon-irishub.omniflix.io:443
hash: 4334D5829B3BE5D98356D32F6D258FC966D1DBBC236707DA8B20687557F89B85

you can query nft using above classID

ubuntu@game-of-nfts:~$ iris q nft token ibc/4334D5829B3BE5D98356D32F6D258FC966D1DBBC236707DA8B20687557F89B85  rawnft03 --node https://rpc-gon-irishub.omniflix.io:443
data: '{"community":"c4e","discord_handle":"allyf#9098","github_username":"allyter","omniflix:created_at":{"value":"0001-01-01T00:00:00Z"},"omniflix:description":{"value":""},"omniflix:extensible":{"value":true},"omniflix:name":{"value":""},"omniflix:nsfw":{"value":false},"omniflix:preview_uri":{"value":""},"omniflix:royalty_share":{"value":"0.000000000000000000"},"omniflix:transferable":{"value":true},"omniflix:uri_hash":{"value":""},"team_name":"Rawalot","uptickd:name":{"value":""},"uptickd:uri_hash":{"value":""}}'
id: rawnft03
name: ""
owner: iaa14zru37e9zrha0lsnc64e89mc22etq50gaerxfd
uri: http://www.rawalot-collection.com/rawalotcollection/rawnft03
uri_hash: ""

since nft received from different channel it will not save under same collection you created on iris instead it will creates new one

gjermundgaraba commented 1 year ago

I think this is related to #365. I am pretty sure your NFT was returned after I started my hermes relayer. I found the following timeout transaction which corresponds to the time I started my relayer: https://gon.ping.pub/omniflix/tx/A44CC196EF54ED29881FD054AF8E8A63109DA163753BA8DBC9845E7A7CF1F0A1

So, the reason it was stuck was because no relayer had picked up the timed out packet and submitted the timeout proof back to Omniflix.

yuanzd123 commented 1 year ago

@gjermundgaraba Hello there, my nft is stuck at the escrow address too, and I cannot query about the class id in Juno, using the command: junod q wasm contract-state smart juno1stv6sk0mvku34fj2mqrlyru6683866n306mfv52tlugtl322zmks26kg7a '{"nft_contract": {"class_id" : "wasm.juno1stv6sk0mvku34fj2mqrlyru6683866n306mfv52tlugtl322zmks26kg7a/channel-91/nft-transfer/channel-44/wasm.stars1ve46fjrhcrum94c7d8yc2wsdz8cpuw73503e8qn9r44spr6dw0lsvmvtqh/channel-207/supermintG"}}'

It is my transaction: https://gon.ping.pub/omniflix/tx/7B25136A52103139DCAC9E8F7CC45917590A88A3858C6AFBE1F598D23E8AE46D

Is there a way to avoid no relayer picking up the packet? It happens to me very often. Thanks