Uniquery 0.1.2
See the version list below for details.
dotnet add package Uniquery --version 0.1.2
NuGet\Install-Package Uniquery -Version 0.1.2
<PackageReference Include="Uniquery" Version="0.1.2" />
paket add Uniquery --version 0.1.2
#r "nuget: Uniquery, 0.1.2"
// Install Uniquery as a Cake Addin #addin nuget:?package=Uniquery&version=0.1.2 // Install Uniquery as a Cake Tool #tool nuget:?package=Uniquery&version=0.1.2
Uniquery.Net
Easy to use tool for querying indexed NFT data.
This is a c# implementation of Uniquery with many improvements on top.
Improvements
- Overall structure has been improved:
- confusing method
getClient("name")
has been replaced with static functions. - All types have been converted to native c# classes
- confusing method
Uniquery.Universal
- very cozy way to query data from multiple endpoints at the same time.- Inclusion of new Networks/NftStandards, that are missing in the original uniquery: Unique, Quartz, Opal
- More flexible parameters
Instalation
Nuget package: https://www.nuget.org/packages/Uniquery/
dotnet add package Uniquery
Supported Networks/NftStandards
- Rmrk
- RmrkV2
- Basilisk
- Glmr
- Movr
- Unique
- Quartz
- Opal
Motivation
Originally, I just wanted query NFT data to display them in PlutoWallet. Afterwards, I received request from Kodadot to make a full c# implementation, hence, here it is.
This tool will be useful to many people and will significantly simplify the querying of NFT data.
Without Uniquery you would have to write something like this:
query itemListByCollectionIdList {
nft: nftEntities(where: { collection: { id_eq: "7EA1DCF47E98A25067-CAVE" }}) {
id
metadata
currentOwner
issuer
}
}
With Uniquery you can write this:
string id = "7EA1DCF47E98A25067-CAVE";
var nfts = await Uniquery.Rmrk.NftListByCollectionId(id);
Use of Uniquery.Universal
One of the major improvements over the original Kodadot/Uniquery js package is the inclusion of
Uniquery.Universal
Without Uniquery.Universal
you would have to write something like this:
string issuerAddress = "5HGuhwGJZC5zvWQm1kGpobJxwAv6bUtKyLGjKL7m2YaJtmDQ";
var collections = new List<Collection>();
collections.AddRange(await Uniquery.Rmrk.CollectionListByIssuer(issuerAddress));
collections.AddRange(await Uniquery.RmrkV2.CollectionListByIssuer(issuerAddress));
collections.AddRange(await Uniquery.Unique.CollectionListByIssuer(issuerAddress));
collections.AddRange(await Uniquery.Quartz.CollectionListByIssuer(issuerAddress));
collections.AddRange(await Uniquery.Opal.CollectionListByIssuer(issuerAddress));
collections.AddRange(await Uniquery.Basilisk.CollectionListByIssuer(issuerAddress));
collections.AddRange(await Uniquery.Movr.CollectionListByIssuer(issuerAddress));
collections.AddRange(await Uniquery.Glmr.CollectionListByIssuer(issuerAddress));
With Uniquery.Universal
you can write this:
string issuerAddress = "5HGuhwGJZC5zvWQm1kGpobJxwAv6bUtKyLGjKL7m2YaJtmDQ";
var collections = Uniquery.Universal.CollectionListByOwner(issuerAddress);
Documentation
Methods
- CollectionById - Returns collection by id.
- CollectionListByIssuer - returns collections where issuer (creator) is equal to provided address
- CollectionListByName - returns collections where name contains provided name
- CollectionListByOwner - returns collections where owner is equal to provided address
- NftById - returns NFT by id
- NftListByCollectionId - returns NFTs where collection id is equal to provided id
- NftListByName - returns NFTs by name
- NftListByMetadataId - returns NFTs where metadata match Nft metadata id
- NftListByCollectionMetadataId - returns NFTs where metadata match Collection metadata id
- NftListByOwner - returns NFTs owned by the address
- NftList - returns NFTs
- EventList - returns all events
- EventListByAddress - returns events by address
- EventListByCollectionId - returns events by collection id
- EventListByInteraction - returns events by interaction
- EventListByNftId - returns events by nft id
Parameters
- <custom_parameter> = custom filter parameter
- limit = number of returned items, Default = 25
- offset = offset of index of the returned items, Default = 0
- orderBy = ordering of the returned items, Default = <time_desc>
In-code documentation with wispering and examples is also included: <img width="1003" alt="Screenshot 2023-07-07 at 11 49 19" src="https://github.com/RostislavLitovkin/Uniquery.Net/assets/77352013/d543d139-d508-4e90-a497-34b3e0b18785">
Inspiration
- https://github.com/kodadot/uniquery - This project is a c# implementation of this original javascript package.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net7.0
- GraphQL.Client (>= 6.0.0)
- GraphQL.Client.Serializer.Newtonsoft (>= 6.0.0)
- Substrate.NET.API (>= 0.9.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.