DownloaderV3 1.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package DownloaderV3 --version 1.0.1                
NuGet\Install-Package DownloaderV3 -Version 1.0.1                
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="DownloaderV3" Version="1.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DownloaderV3 --version 1.0.1                
#r "nuget: DownloaderV3, 1.0.1"                
#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 DownloaderV3 as a Cake Addin
#addin nuget:?package=DownloaderV3&version=1.0.1

// Install DownloaderV3 as a Cake Tool
#tool nuget:?package=DownloaderV3&version=1.0.1                

DownloaderV3

DownloaderV3 is a powerful and flexible .NET library designed to download, decode, and process blockchain event data from sources like Covalent API. The project can be used to fetch blockchain logs, decode them, and store them in the destination of your choice.

Features

  • Modular design with support for multiple data sources and destination databases.
  • Extensible architecture allowing easy integration of new sources or event decoders.
  • Uses the factory pattern to create customizable documents and decoders.
  • Integrated with Entity Framework Core for managing database contexts.

Getting Started

Prerequisites

  • .NET 8.0 or later
  • Entity Framework Core 7.0 or later
  • Access to Covalent API or other blockchain data sources

Installation

Clone the repository and add it to your solution:

git clone https://github.com/The-Poolz/DownloaderV3.git

Or, if you've packaged it as a NuGet package:

dotnet add package DownloaderV3

Dependency Injection Setup

To use DownloaderV3, set up services using ServiceConfigurator:

using Microsoft.Extensions.DependencyInjection;
using DownloaderV3.Helpers;

var services = new ServiceCollection();
ServiceConfigurator.ConfigureServices<CustomDestination>(
    services,
    provider => new CustomDestination(new DbContextOptionsBuilder<CustomDestination>()
        .UseSqlServer("your-connection-string").Options),
    logging => logging.AddConsole()
);

var serviceProvider = services.BuildServiceProvider();
var downloadHandler = serviceProvider.GetRequiredService<DownloadHandler<InputData>>();

ServiceConfigurator simplifies setting up required dependencies such as logging, context, and factories.

Key Classes

  • DownloadHandler<TData>: The main handler for fetching, decoding, and saving blockchain data.
  • BaseDestination: Extend this class to define your own destination for data storage.

Advanced Configuration

To create a custom destination, extend BaseDestination:

public class CustomDestination : BaseDestination
{
    public CustomDestination(DbContextOptions<CustomDestination> options)
        : base(options) { }
    public DbSet<CustomEntity> CustomEntities { get; set; } = null!;
}

Contributing

We welcome contributions! Please feel free to submit issues, fork the repository, and send pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.2 113 10/16/2024
1.0.1 113 10/9/2024
1.0.0 107 9/26/2024

Release Notes for DownloaderV3 v1.0.1: