Skip to content

Smoldata - Zero-ETL indexing platform for smart contracts

Notifications You must be signed in to change notification settings

0xaaiden/smoldata

Repository files navigation

Smoldata - Zero-ETL indexing for smart contracts

GitHub top language GitHub code size in bytesGitHub issues GitHub Repo stars

Smoldata is a platform that enables quick and easy indexing for smart contracts, eliminating the need for time-consuming ETL processes. It simplifies the process of ingesting smart contract data with minimal alterations and transformations. This repository consists of the frontend component of Smoldata. The indexing engine will be open-sourced in the future.

When a user submits a smart contract, it is added to a realtime queue, and a microservice backend pulls the smart contract and uses an internal queue to index smart contracts on a first-come, first-serve basis. Once indexing is complete, the user is notified, and a storage URL is provided to download the event logs.

Table of Contents

Installation

To install the project dependencies, run the following command:

npm install

Usage

To run the project locally, use the following command:

npm start

To build the project for production, use the following command:

npm run build

Components

  • Header.jsx: Header component containing navigation items.
  • homepage.jsx: The homepage component.
  • CircularBar.jsx: A circular bar component.
  • Nav.jsx: The navigation component.
  • Hero.jsx: Hero section for the application.
  • Connect.jsx: Connect button component.
  • Content.jsx: Content component.

Hooks

  • useLogout.js: Custom hook for logging out users.
  • useLogin.js: Custom hook for logging in users.

Pages

  • addContract.js: Page for adding new contracts.
  • smart-contracts.js: Page displaying all smart contracts.
  • homepage.js: The main homepage page.
  • dashboard.js: Dashboard page for users.
  • contractPage.js: Individual contract page.

Firebase Functions

  • fetchUsegit merge dev --allow-unrelated-historiesr.js: Fetch user data from Firebase.
  • createUserDocument.js: Create a new user document in Firebase.
  • config.js: Firebase configuration file.
  • submitContract.js: Submit a new contract to Firebase.

AuthContext

AuthContext.js: Provides an authentication context for the application.

License

This project is open-sourced on GitHub and is available under the MIT License.