Coder Social home page Coder Social logo

bacharif / ark-project Goto Github PK

View Code? Open in Web Editor NEW

This project forked from arkprojectnfts/ark-project

0.0 0.0 0.0 2.53 MB

Ark Project: A Decentralized Orderbook Protocol with Tools for Creating NFT Marketplaces on Starknet & L3, Developed Using Cairo & Rust

Home Page: https://arkproject.dev/

License: Apache License 2.0

Shell 0.06% JavaScript 0.55% Rust 26.10% TypeScript 46.86% CSS 0.19% Makefile 0.19% Dockerfile 0.09% Cairo 25.96%

ark-project's Introduction

arkproject in ๐Ÿฆ€๐Ÿฆ€

Overview

Rust libraries and binaries related to the ArkProject.

This library aims at providing the building block and functionalities for the Starknet community in order to work with NFTs.

Architecture

The indexation of NFTs is at the moment a challenge on Starknet due to the standards being in progress.

To propose a flexible and evolutive approach, arkproject provides several crates to modularize the process.

- Pontos

Pontos is an NFT indexer library for Starknet. By defining a core process, Pontos is highly extensible using it's two traits:

StorageManager: This trait exposes all the functions that Pontos uses to access/store data required for the indexation.

EventHandler: During the core process of Pontos, some events may be interesting to be handled by external code, without modifying the core code of Pontos. You can impl this trait to react on each event emitted by Pontos.

Even if the metadata are not at the core of the indexing process, they are vital for any NFT ecosystem. The metadata crate aims at providing basic functions to work with normalized metadata. In the current design, this crate totally separated from the indexation loop as it can be massively optimized elsewhere.

- Starknet

To work, the indexer must interact with Starknet. The starknet crate provides an epurated Starknet provider interface required by indexers and utilitary functions related to Starknet types.

- Solis

Solis is the sequencer that powers the Arkchain, where the decentralized orderbook lives. For now Solis is not decentralizable, but it will be.

Solis is for now based on Katana from Dojo project. To run Solis, cargo run -p solis.

- Diri

Diri is an indexer library for Solis and the Arkchain smart contracts. As Pontos, Diri defines a core logic that can be configured using the two following traits:

StorageManager: This trait exposes all the functions that Diri uses to access/store data required for the indexation.

EventHandler: During the core process of Diri, some events may be interesting to be handled by external code, without modifying the core code of Diri. You can impl this trait to react on each event emitted by Diri.

Features

  • Indexer logic for Starknet NFT
  • Indexer for arkchain orderbook
  • Generic storage for indexer data with SQL-lite
  • NFT Metadata manager interface

Quick start

Examples are available in the example folder. They can be run with the following command:

RUST_LOG="ark=trace,storage=trace" cargo run --example diri

To work on a specific package:

cargo build -p <package>

License

Ark Project is licensed under the Apache License.

ark-project's People

Contributors

remiroyc avatar kwiss avatar glihm avatar dependabot[bot] avatar ybensacq avatar yohantz avatar github-actions[bot] 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.