Chia-Metadata 1.8.2

dotnet add package Chia-Metadata --version 1.8.2                
NuGet\Install-Package Chia-Metadata -Version 1.8.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Chia-Metadata" Version="1.8.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Chia-Metadata --version 1.8.2                
#r "nuget: Chia-Metadata, 1.8.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Chia-Metadata as a Cake Addin
#addin nuget:?package=Chia-Metadata&version=1.8.2

// Install Chia-Metadata as a Cake Tool
#tool nuget:?package=Chia-Metadata&version=1.8.2                

Chia-Metadata

Welcome to the CHIA-Metadata GitHub repository!

CHIA-Metadata is a C# library that serves as a wrapper for Chia NFTs with the CHIP-0007 JSON metadata standard. It simplifies the process of working with Chia NFTs and allows developers to easily create, mint, and manage NFTs on the Chia blockchain.

Here is a code example of how to use CHIA-Metadata to create metadata:

public void TestSerialize()
{
    FileInfo testfile = new FileInfo(Path.Combine("Temp","TestSerialize"));
    if (testfile.Exists) testfile.Delete();
    if (!testfile.Directory.Exists) testfile.Directory.Create();
    MetadataAttribute[] attributes = new MetadataAttribute[]
    {
        new MetadataAttribute(Trait_Type: "type", Value: "TestAttribute"),
        new MetadataAttribute(Trait_Type: "rarity", Value: 2,Min_Value:0, Max_Value:4),
    };
    Chia_Metadata_CHIP_0007_std.CollectionAttribute[] socialMedia_attributes = new Chia_Metadata_CHIP_0007_std.CollectionAttribute[]
    {
        new Chia_Metadata_CHIP_0007_std.CollectionAttribute(Type: "website", Value: "https://kryptomine.ch/"),
        new Chia_Metadata_CHIP_0007_std.CollectionAttribute(Type: "twitter", Value: "@KryptomineCH"),
        new Chia_Metadata_CHIP_0007_std.CollectionAttribute(Type: "discord", Value: "https://discord.gg/J7z3hVHT8a"),
    };
    Collection testCollection = new Collection(
        Name: "testcollection",
        ID: "4ae1649c-6740-11ed-9022-0242ac120002",
        Description: $"This is a unit test collection.{Environment.NewLine}You should never see it out in the wild!",
        IconLink: "https://nft.kryptomine.ch/Kryptomine_Basecollection/KryptoMine_Logo.png",
        BannerLink: "https://nft.kryptomine.ch/Kryptomine_Basecollection/KryptoMine_Logo.png",
        socialMedia: socialMedia_attributes.ToList());

    Metadata data = new Metadata
        (
        Name: "TestSerialize name",
        Description: $"Test Metadata Description{Environment.NewLine}with 2 lines.",
        Minting_Tool: "Chia-Metadata-UnitTests",
        Sensitive_Content: false,
        Series_Number: 1,
        Series_Total: 10000,
        Attributes: attributes.ToList(),
        Collection: testCollection
        );
    data.Save(testfile.FullName);
}

And here is a code example of how to use CHIA-Metadata to load metadata:

public void TestDeSerialize()
{
    Metadata test = Chia_Metadata.IO.Load(Path.Combine("TestAssets", "CryptoCrests_Templar_Order_1.json"));
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Chia-Metadata:

Package Downloads
CHIA-RPC

CHIA-RPC is a C# Nuget package that simplifies communication with the Chia client using RPC-JSON files. The package offers a wrapper for creating RPC objects and accessing RPC JSON via .ToString() or file I/O. It can be used with the HTTP-API, WebSocket API, or CLI of the Chia client.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.8.2 797 7/26/2023
1.6.2.5 1,568 2/8/2023
1.6.2.4 244 2/7/2023
1.6.2.3 274 2/6/2023
1.6.2.2 539 2/5/2023
1.6.2.1 802 1/25/2023
1.6.2 628 1/12/2023
1.6.1.5 370 1/11/2023
1.6.1.2 438 1/10/2023
1.6.1 526 12/29/2022

This is a Major overhaul of the Package.
It implements nullable types for all endpoints. It is likely to require code changes or otherwise at least produces plentiful null value compiler warnings.

Enhanced features:
- Improved handling of null parameters: The RPC interface now properly handles null input parameters. This ensures that the application does not crash or cause unintended behavior when null is passed.
- RPC Parameter nullable: All RPC parameter objects are now nullable. This helps to prevent malformed requests and enhances the robustness of our API communication.
- Added null checks in RPC methods: Methods like BatchUpdate_Async now check if their required parameters are null before executing. This allows us to fail early and return a useful error message instead of causing an unexpected exception at runtime.
- Fixed potential NullReferenceExceptions
- Expanded XML Comments: We have vastly added or expanded XML comments to several classes and methods. These comments serve as in-code documentation and provide useful context and explanations for developers.
- All compiler warnings within the package have been resolved
Please refer to the documentation and updated code comments for more detailed information about these updates. As always, feel free to report any issues or provide feedback on these changes.