We have the same issue with our own app that communicates with the blockchain node directly.
So it's not a bug in PolkadotJS.
Steps to reproduce
Precondition
Select Kusama assets hub, pallet "uniques"
create an NFT collection, mint several tokens in this collection
Scenario
open PolkadotJS
open Developer -> Chain state
select "uniques", "account". Provide params: accountID, collection ID, item ID
make a request. The result will be null, means the record with given keys exist and account owns the token
transfer NFT token to another address via any other app
record displayed by the PolkadotJS should switch to <none> - means there is no record with the given keys. But this doesn't happen.
make one more request with the same params: accountID, collection ID, item ID. The result is still null instead of <none>
make a request without an optional param ItemID - the list of tokens owned by AccountID in the provided CollectionID doesn't include the token been sent on previous step, as expected.
Is there an existing issue?
Experiencing problems? Have you tried our Stack Exchange first?
Description of bug
Issues:
Steps to reproduce provided below.
Collection "Account" of the pallet "uniques" stores "empty tuple" / "no record". https://github.com/paritytech/substrate/blob/cb450b626ac8e8848db76933e114e57e7cce3e8d/frame/uniques/src/lib.rs#L180 Another collection "Asset" of the same pallet stores a struct. And for "Asset" all works fine. https://github.com/paritytech/substrate/blob/cb450b626ac8e8848db76933e114e57e7cce3e8d/frame/uniques/src/lib.rs#L208 Seems there are some issues with the Substrate internal logic or API that arise when we request data for the collection that stores empty tuple.
We have the same issue with our own app that communicates with the blockchain node directly. So it's not a bug in PolkadotJS.
Steps to reproduce
Precondition
Scenario
null
, means the record with given keys exist and account owns the token<none>
- means there is no record with the given keys. But this doesn't happen.null
instead of<none>