Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when fetching NFT metadata #41829

Closed
3 of 6 tasks
nvonpentz opened this issue Oct 23, 2024 · 0 comments · Fixed by brave/brave-core#26171
Closed
3 of 6 tasks

Crash when fetching NFT metadata #41829

nvonpentz opened this issue Oct 23, 2024 · 0 comments · Fixed by brave/brave-core#26171

Comments

@nvonpentz
Copy link

Description

Reported by @nuo-xu

i'm experiencing a mojom crash for fetching metadata using simplehash.
the api is supposed to return an array of NftMetadata
https://github.com/brave/brave-core/blob/25ddfaf2f0d78108e0610cd2fba4ee348d2c0809/components/brave_wallet/common/brave_wallet.mojom#L1738
but sometimes it returns an array of optional NftMetadata
for example, im getting an size of 5 array but some of them are nullptr

(lldb) p metadatas
(std::vector<mojo::StructPtr<brave_wallet::mojom::NftMetadata> >) size=5 {
  [0] = {
    ptr_ = brave_wallet::mojom::NftMetadata @ 0x0000600003d5a940 {
      pointer = 0x0000600003d5a940
    }
  }
  [1] = {
    ptr_ = nullptr {
      pointer = nullptr
    }
  }
  [2] = {
    ptr_ = nullptr {
      pointer = nullptr
    }
  }
  [3] = {
    ptr_ = brave_wallet::mojom::NftMetadata @ 0x0000600003d59860 {
      pointer = 0x0000600003d59860
    }
  }
  [4] = {
    ptr_ = nullptr {
      pointer = nullptr
    }
  }
}

The API should probably change to return a list of optional NFT metdatas.

Steps to reproduce

Call GetNftMetadatas with these params

nft_ids=solana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9%2Csolana.E5SnwwyR2Qpq9LUYwmeBjxtmah6wid3JFivuLtnyZDaa%2Csolana.5j2tfZyUiQnAoVv3jifuGEMu3xfkPYa9gkNeEomAFqP9

Actual result

Crash

Expected result

Return a list of optional NFTs

Reproduces how often

Easily reproduced

Brave version (brave://version info)

1.71.114 Chromium: 130.0.6723.58 (Official Build) (64-bit)

Channel information

  • release (stable)
  • beta
  • nightly

Reproducibility

  • with Brave Shields disabled
  • with Brave Rewards disabled
  • in the latest version of Chrome

Miscellaneous information

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment