hiero-ledger / hiero-ledger/hiero-enterprise-java
feat(mirror-node): implement missing NFT metadata and NFT type query support
- Dominant language
- Java
- Stars
- 6
- Forks
- 21
- Avg merge
- 10h 27m
- Merged PRs (30d)
- 37
Description
### Problem
While reviewing the Mirror Node support in `hiero-enterprise-java`, I noticed that some NFT-related query methods are already part of the API surface but are still not implemented.
Examples:
- `getNftMetadata(TokenId tokenId)` in `AbstractMirrorNodeClient`
- `findNftTypesByOwner(AccountId ownerId)` in `MirrorNodeClientImpl`
- `findAllNftTypes()` in `MirrorNodeClientImpl`
At the moment, these methods throw `UnsupportedOperationException`, which makes NFT Mirror Node support incomplete and inconsistent for users of the high-level query APIs.
### Solution
Implement the missing NFT Mirror Node methods by wiring them to the appropriate Mirror Node REST endpoints and existing JSON conversion patterns.
Suggested scope:
- implement `getNftMetadata(TokenId tokenId)`
- implement `findNftTypesByOwner(AccountId ownerId)`
- implement `findAllNftTypes()`
- add/extend converter support if needed
- add tests for the affected Spring and MicroProfile paths
### Alternatives
An alternative would be to leave these methods unimplemented and ask users to query the Mirror Node REST API directly. However, that would break consistency with the rest of the repository’s high-level Mirror Node abstractions and reduce the usefulness of the existing NFT query surface.
Contributor guide
Research direction
Start with getNftMetadata(TokenId tokenId) in AbstractMirrorNodeClient and findNftTypesByOwner(AccountId ownerId) and findAllNftTypes() in MirrorNodeClientImpl; compare their existing JSON conversion patterns and the corresponding Mirror Node REST endpoints. Implement the three methods, extending converter support if needed, and add tests covering the affected Spring and MicroProfile paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100