Strange behavior of a confirmed transaction

I’ve experienced in testnet this flow:

Called for 3 different nfts a function of a contract that comtains a transfer from and an event

On metamask they stuck as queued (2 of them) and pending the other

On moralis the events were catched and all confirmed true after 10-15 minutes

On polygonscan transactions are on success state

On opensea the owner changed (a marketplace contract)

OwnerOf on my contract of these tokens is still me, and indeed they are still figuring as mine, I can put them on sale again and metamask let me do that, for my contract owner didn’t change, and sale item was not created.

All of this was working till yesterday…

What could have happened? :sweat_smile:

What part doesn’t make sense?

That if the transaction was confirmed and succeeded, the tokens should have been owned by the marketplace contract and not still mine, the sale item should have been created on the contract, and isCurrentlyOnSale(contractaddress, tokenId) that I change on the contract in the transaction should be true

Did you make the query on chain to see what owner it returns?

Yes and it returns still me as owner and false the other function. Instead opensea sees the marketplace contract address as owner

Opensea didn’t update in this case?

The strange aspect was the inconsistent status:

transaction confirmed and succeeded (with events emitted)
on contract the token was not transferred (not correct)
on opensea appeared as transferred (correct)

anyway after a couple of hours more or less now it seems consistent. It was the first time after many many tests that I had such a behavior…maybe some issues on Mumbai testnet

I’m not sure in this case if I had put again on sale the same tokens, if the second transaction would have failed (because it was not mine anymore), I’ll try to see to test it if it happens again


1 Like

how did you check this? as on chain it should be the correct data

More checks: ownerOf was providing still my address, and from the app I was able to put again on sale (that is a transferFrom msg.sender to address(this) of the marketplace contract).

If it was transferred to the marketplace contract it should have raised an error.

It sounds quite strange to me too

Can you post more details - contract addresses, transaction hashes, what ownerOf, etc. is returning at each step and what it should be returning, etc.

Hello as mentioned, after some time I posted, everything aligned correctly, I checked both on the app and via remix quering the contract and retrieved the expected responses.

If it happens again I will report “live” with more details for sure, at this point I presume some momentary issue between metamask (that stucked with the three transactions as queued and pending) and mumbai.

Thank you

1 Like