GithubHelp home page GithubHelp logo

nganha9999 / nuklai-contracts Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nuklai/nuklai-contracts

0.0 0.0 0.0 1.24 MB

Smart Contracts for the Data Tunnel Protocol

TypeScript 70.70% Solidity 29.30%

nuklai-contracts's Introduction

Nuklai Smart Contracts

This repository contains the smart contracts for the Nuklai protocol.

The protocol empowers Dataset owners to seamlessly integrate, configure, and maintain their Datasets on-chain. It achieves this by issuing ERC721 tokens, each serving as a unique digital representation of a Dataset. These tokens not only signify ownership but also act as a gateway for contributors.

In addition, the protocol serves as a marketplace, enabling data providers (owners of datasets) to publish and monetize their data through subscriptions from consumers. It goes beyond data management and allows users to actively contribute to these datasets.

Contributions are recorded on-chain as distinct ERC721 tokens called fragments, each representing a valuable addition to a Dataset. Contributors can be rewarded with revenue for their valuable contributions, fostering collaboration and innovation within the ecosystem. This multifaceted approach transforms data management into a dynamic and inclusive process, benefitting all participants.


Developers are required to have some familiarity with:


Table of Contents

Expand

Install

To install all the dependencies of this repo, execute the following command:

yarn

or

yarn install

Usage

1. Build contracts

To compile contracts, export ABIs, and generate TypeScript interfaces, execute the following command:

yarn build

2. Reset Environment

To remove cached and temporary files, execute the following command:

yarn clean

3. Tests

To run all unit tests, execute the following command:

yarn test

4. Coverage

To generate a coverage report, execute the following command:

yarn coverage

5. Contracts Size

To generate a contracts size report, execute the following command:

yarn contract-size

6. Linting

To run linting on all configured source files (*.sol, *.ts, *.js, *.json), execute the following command:

yarn lint

Contributing

  1. Fork it or Clone it
  2. Create your feature or fix branch (git checkout -b feature/foo)
  3. Commit your changes (git commit -am 'add something')
  4. Push the branch (git push origin feature/foo)
  5. Create a new Pull Request

Contracts Description

Smart Contract Description
DatasetFactory Facilitates the streamlined integration and configuration of Datasets in the Nuklai protocol, in a single transaction. Each Dataset integration results in the minting of an ERC721 token (Dataset NFT) which is transferred to the respective Dataset owner
DatasetNFT The protocol's core extends ERC721 to mint tokens representing unique datasets, enabling dataset configuration, and maintaining a record of these configurations
FragmentNFT An ERC721 extension where each token represents an incorporated contribution to a specific dataset. Contribution types are encoded as tags which are linked to the respective token
DistributionManager Manages the distribution of fees to dataset owners and contributors. It provides configuration options for fee distribution percentages among parties
GenericSingleDatasetSubscriptionManager An abstract contract serving as the foundation for managing single dataset subscriptions and related operations
ERC20SubscriptionManager Extends the abstract GenericSingleDatasetSubscriptionManager contract to handle dataset subscriptions using ERC20 or native tokens as payment
VerifierManager Configures and coordinates verifiers for datasets' proposed contributions, handling approval or rejection operations based on the configured verifiers
AcceptManuallyVerifier Verifier that provides the resolution mechanisms for the Dataset owner to either accept or reject proposed contributions manually
AcceptAllVerifier Verifier that automatically accepts all proposed contributions by default

nuklai-contracts's People

Contributors

apostolosmavro avatar rafael-ab avatar pash7ka avatar galimba avatar najlachamseddine avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.