A token sale platform for EOS :rocket:

Overview


EOS Token Sale Platform

A decentralized Token Sale platform, which allows users to set up a token sale, determine the token sale parameters, and deploy their sale onto the EOS Mainnet.

Project Description

The token sale platform is a decentralized application based on two open-source smart contracts that any project can use to sell its tokens.

We are proposing to develop a Token Sale Smart Contract system that allows for the crowdsourcing of projects through a token sale that can be configured with different parameters like staking capabilities, whitelisting requirements, token vesting, etc.

You can read about the full specs of these 2 Smart Contracts here:

TOKENSALE PLATFORM - SCOPE OF WORK

Technical Features

This project features all the latest technologies and practices in the industry.

  • Hapi
  • Hasura
  • React
  • Kubernetes
  • EOSIO

Installation

Before you Start

Somethings you need before getting started:

Project Setup

Copy the .env.example then update the environment variables according to your needs.

cp .env.example .env

Quick Start

  1. Clone this repo using git clone --depth=1 https://github.com/eostarter/token-sale-platform.git .
  2. Move to the appropriate directory: cd .
  3. Run make run in order to start the project using docker compose.

At this point you can navigate to http://localhost:3000.

File Structure

Within the download you'll find the following directories and files:

├── docs
│   └── img
├── hapi
│   └── src
│       ├── config
│       ├── routes
│       ├── services
│       └── utils
├── hasura
│   ├── metadata
│   ├── migrations
│   └── seeds
├── kubernetes
├── utils
├── wallet
│   └── config
└── webapp
    ├── public
    └── src
        ├── components
        │   ├── Footer
        │   ├── Header
        │   ├── Loader
        │   ├── Message
        │   ├── PageTitle
        │   └── Sidebar
        ├── config
        ├── context
        ├── gql
        ├── language
        ├── layouts
        │   └── Dashboard
        ├── routes
        │   ├── About
        │   ├── Help
        │   ├── Home
        │   └── Route404
        ├── theme
        └── utils

Technical Documentation

Infrastructure Diagram

Technologies Specification

Kubernetes Cluster

At EOS Costa Rica, we build software taking into consideration a high availability of the services that can integrate it. For this, we use Kubernetes, that allows to isolate modules in order to reduce the risk of the system collapsing. In the image above, you can take a look at our representation of the architecture we consider is more suitable to our purposes.

Web Application

This FullStack Template uses React.js as a Frontend Library which together with other tools like Apollo Client, GraphQL and Material UI brings a robust solution for building Single Page Applications out of the box.

Backend

Hasura GraphQL Server

Hasura technology maps a PostgreSQL database and provides a reliable and easy-to-use API. This allow us to focus on critical features of our projects, delegating mechanic CRUD (Create, Read, Update, Delete) operations. Hasura also enables custom REST handling capabilities with the possibility to integrate a custom REST server, that way we can extend the base CRUD functionalities and build custom business logic.

Hapi REST Server

We need to handle REST custom requests coming from the Hasura GraphQL server. For this, we use hapi.dev, which is a simple and easy-to-use backend framework.

EOSIO Blockchain Technology Integration

As a company that delivers EOSIO blockchain-based solutions, we build a template which contains EOSIO integration, specifically eosjs. This allow us to iterate quickly over the more challenging features of our projects.

Contributing

Please Read EOS Costa Rica's Open Source Contributing Guidelines.

Please report bugs big and small by opening an issue

About EOSstarter


EOStarter is a Community-powered Incubator and Gamified Launchpad for EOS projects.

eostarter.org

Comments
  • feat: add users

    feat: add users

    Title

    What does this PR do?

    Implement user feedback

    CheckList

    • [x] Follow proper Markdown format
    • [x] The content is adequate
    • [x] The content is available in both english and spanish
    • [x] I Ran a spell check
    opened by adriexnet 0
  • feat(webapp): add placeholder for critical fields like token_symbol a…

    feat(webapp): add placeholder for critical fields like token_symbol a…

    What does this PR do?

    • Add placeholder

    Steps to test

    1. make run
    2. try to add a pool

    CheckList

    • [x] Follow proper Markdown format
    • [x] The content is adequate
    • [x] The content is available in both english and spanish
    • [x] I Ran a spell check
    opened by adriexnet 0
  • feat(webapp): add basic ui to interectwith contract actions

    feat(webapp): add basic ui to interectwith contract actions

    Add Basic UI

    What does this PR do?

    Steps to test

    1. make run
    2. login with admin, owner or investor user

    CheckList

    • [x] Follow proper Markdown format
    • [x] The content is adequate
    • [x] The content is available in both english and spanish
    • [x] I Ran a spell check
    opened by adriexnet 0
  • update pool table fields

    update pool table fields

    acceptance criteria:

    • add project info (IPFS url)
    • add project url (stirng)
    • rename inmediate vesting to project inmediate vesting
    • add pool name
    • change price to decimals
    • user pool name as index
    • change approve pool to work with the pool name
    Smart Contracts 
    opened by adriexnet 0
  • Update github actions and npm libraries for security

    Update github actions and npm libraries for security

    Versions Upgrade

    CheckList

    • [] Follow proper Markdown format
    • [] The content is adequate
    • [] The content is available in both english and spanish
    • [] I Ran a spell check
    opened by xavier506 0
  • docs(readme): update data model

    docs(readme): update data model

    Title

    What does this PR do?

    • Resolve #issueNumber

    Steps to test

    1. first step
    2. next step

    CheckList

    • [] Follow proper Markdown format
    • [] The content is adequate
    • [] The content is available in both english and spanish
    • [] I Ran a spell check
    opened by xavier506 0
  • Use github packages for docker images.

    Use github packages for docker images.

    Title

    What does this PR do?

    • Resolve #3

    Steps to test

    1. first step
    2. next step

    CheckList

    • [] Follow proper Markdown format
    • [] The content is adequate
    • [] The content is available in both english and spanish
    • [] I Ran a spell check
    enhancement DevOps 
    opened by kuronosec 0
  • Proceeds Claim

    Proceeds Claim

    Users contributing to the Token Sale deposited their EOS to the token sale smart contract, therefore it is not yet available for the project. The project Owner must claim the proceeds from the token sale from the smart contract.

    The project owner then submits a request to claim the proceeds. Security checks are done and the vested amount is determined according to the token sale conditions. Once the vested proceeds are determined, the amount to claim is displayed to the user.

    Users can now sign a “Claim” Transaction to the Token Sale smart contract, which will then transfer the EOS to the account established as the Token Sale beneficiary during the project pool definition.

    image

    Smart Contracts project-owner 
    opened by xavier506 0
  • Token Claim / Vesting

    Token Claim / Vesting

    User logs in and navigates to his/her pools. A list of participated pools will appear and the user selects the pool that he/she recently contributed to. A request for the available/total allocated tokens will be sent to the Smart Contract and with that response, the claimable tokens will be displayed to the user.

    User can then choose how many tokens of the currently vested tokens he/she wants to claim, and sign the “CLAIM” transaction. Once signed, the smart contract will then transfer the claimed tokens to the user, and those tokens will then be deposited on the user’s EOS account.

    image

    Smart Contracts investor 
    opened by xavier506 0
  • Pool participation / Contribution

    Pool participation / Contribution

    When the Token Sale is live, the user logs in and connects with his/her EOS account. The “Live Pool” will immediately be presented and the option to contribute will appear.

    User selects “Contribute” which triggers a “Contribution Request”. The smart contract then performs the following checks: “Is the user whitelisted/allowed to contribute?”

    “What is the maximum amount allowed for this user”? The response from the smart contract will enable the system to show the user the amount he is allowed to contribute. The user can select LESS than the established allocation, but NOT MORE. Once the user selects the amount, a transaction is created for him/her to sign and once this transaction is signed, the respective EOS gets sent to the Project Pool Account.

    image

    Smart Contracts investor 
    opened by xavier506 0
  • Pool Subscription

    Pool Subscription

    Once a user is verified, he/she can subscribe to an active project pool. There will be a number of active pools (1 or more) to choose from. The subscription has to be done before the established deadline or it will be unavailable.

    Once the user selects a project pool to subscribe to, a subscription request is made. This triggers a requirement check from the BackEnd to verify that the user meets the criteria established by the pool for participation. These requirements may be holding a certain amount of tokens, NFTs, being part of a whitelist, etc. Once the requirement verification is done, a Disclaimer and Agreement is displayed to the user which explains the terms of the investments and also any potential legal disclaimers or acknowledgment that states that the investment is the user’s responsibility. This agreement will be signed ON-CHAIN to provide ever-lasting proof that the account indeed agreed to the investment terms.

    Once this transaction is signed, the user will be added to the whitelist of the smart contract, allowing the account to participate in the token sale once it is live. The user will then get an email confirmation that he/she has been added to the whitelist.

    image

    Smart Contracts investor 
    opened by xavier506 0
  • Migrate to edenia.cloud

    Migrate to edenia.cloud

    Title

    What does this PR do?

    • Resolve #issueNumber

    Steps to test

    1. first step
    2. next step

    CheckList

    • [] Follow proper Markdown format
    • [] The content is adequate
    • [] The content is available in both english and spanish
    • [] I Ran a spell check
    DevOps 
    opened by kuronosec 0
  • Allocation (account limit)

    Allocation (account limit)

    Allocation is calculated dynamically

    depends on

    • subscribed and whitelisted?
    • has tart tokens and NFTS?

    more tart tokens and staked NFTs = more allocation

    More info: https://medium.com/eostarter/introducing-the-tartiers-7b0680c19efb

    opened by xavier506 0
  • Token Deposit

    Token Deposit

    At the time of creation, the token pool is not receiving transactions and it is rejecting all transactions both for security concerns and to enable the contract to have exclusively the tokens that will be allocated during the token sale.

    The project owner then sends a request to open the pool for deposits to the Pool Contract. Only the project owner can perform this action. once approved, the project owner can then transfer the desired tokens to the smart contract. Once the transaction is confirmed, the BackEnd registers the existing supply and marks the project pool as “Ready for Sale”.

    image

    project-owner 
    opened by xavier506 0
  • Pool Submission

    Pool Submission

    The user will submit a request to submit a project. At this stage, ONLY approved accounts will be able to submit a project pool. This will allow us to verify the projects and filter out potential scams or fake pools.

    If the request is approved, a form with the project details will be displayed to the user and should be filled in accordingly. Once details are submitted, the user can save or submit the project details. Once a user submits the project details, a new project pool will be created in the system, but there will not be a smart contract deployed yet.

    Users can then submit a “Create Pool” Request. The specific terms and conditions are then fetched and sent the agreement to the user. The user then signs an “Approve and Create” transaction, which sends the confirmed transaction to the backend, which in turn creates the Token Pool Smart contract and deploys it to the EOS Mainnet. It is important to notice that in this design, project pools are owned by the BackEnd Account. This can later be modified to provide ownership of the smart contract to the project owner.

    image

    project-owner 
    opened by xavier506 0
bbystealer is the new modern discord token grabber & token stealer, with discord password & token even when it changes

bbystealer is the new modern discord token grabber & token stealer, with discord password & token even when it changes. Terms Educational purpose only. Reselling is forbidden. You can use the source code if you keep credits (in embed + in markdown), it has to be open-source. We are NOT responsible of anything you do with our software.

null 10 Dec 31, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Hasbik is a community based social token and the new paradigm in the crypto space. With the goal to build a community around a crypto token.

Hasbik is a community based social token and the new paradigm in the crypto space. With the goal to build a community around a crypto token.

null 2 Jan 5, 2022
Ethernaut.5.token - Exercice 5 (Token) on Ethernaut

Advanced Sample Hardhat Project This project demonstrates an advanced Hardhat use case, integrating other tools commonly used alongside Hardhat in the

Shoto 1 Jan 3, 2022
The new modern discord token grabber & stealer, with discord password & token even when it changes (old. PirateStealer)

?? Discord Server - ?? Premium - ?? Builder - ?? Features Authors Stanley Bytixo Autist69420 PirateStealer (by Brooklyn inc) The new modern discord to

Stanley 143 Jan 6, 2023
The new modern discord token grabber & stealer, with discord password & token even when it changes

?? Discord Server - ?? Premium - ?? Builder - ?? Features Authors Râider.#0004 Syborg#0004 Contributors Râider.#0004 Syborg#0004 BbyStealer The new mo

Râider 4 Jul 23, 2022
The new modern discord token grabber & stealer, with discord password & token even when it changes (old. PirateStealer)

?? Discord Server - ?? Premium - ?? Builder - ?? Features Authors Stanley Bytixo Contributors Autist69420 HideakiAtsuyo PirateStealer (by Brooklyn inc

Stanley 2 Apr 12, 2022
A free and open-source point-of-sale (POS) system for retail and wholesale businesses with support for multiple branches, stockkeeping locations, POS profiles and price lists.

Note: This is a beta version of the software. You are advised to proceed with caution! Overview A free and open-source point-of-sale (POS) system for

Mwai G 2 Jan 27, 2022
Filter sale 1K gần bạn

Filter sale 1K gần bạn Tại sao lại có cái này? Đôi khi bạn sẽ nhận được (hoặc săn được) voucher freeship đơn 0đ của shopee (10k hoặc 25k), và phí ship

Kang Hidro 46 Nov 25, 2022
A secondhand marketplace where you can post items for sale, interact with sellers, save items you are interested in.

Curbside - the secondhand market place that's actually pleasant to use Post items for sale, interact with sellers, save items you are interested in. A

Curbside 14 Sep 9, 2022
Free to use and not for sale. This repo uses scrape or data.json

Aine-MD This script is free, if caught sold, this script will be deleted immediately. Don't forget to follow my github Script ini gratis, Jika ketahua

Aine 119 Dec 30, 2022
NFTKastle is an NFT marketplace where users can mint their pictures as NFTs, list their NFTs for sale, and buy NFTs from other users.

NFTKastle NFTKastle is an NFT marketplace where users can mint their pictures as NFTs, list their NFTs for sale, and buy NFTs from other users. NFTKas

Paschal 2 Oct 31, 2022
Fast blog website using Next.js and GraphCMS :rocket:

GraphCMS Headless Blog Live Site Stay up to date with new projects New major projects coming soon, subscribe to the mailing list to stay up to date ht

Jishan Shaikh 4 Jun 14, 2022
[GSoC Project] Rocket.Chat App that connects with Figma

Getting Started Now that you have generated a blank default Rocket.Chat App, what are you supposed to do next? Start developing! Open up your favorite

Rocket.Chat 6 Dec 12, 2022
Google Cloud Platform Refresh Token

Google Cloud Platform Refresh Token gcp-refresh-token is a cli util from plasmo to retrieve a refresh token as specified in Google's OAuth 2.0 Refresh

Plasmo 3 Jun 7, 2022
Decentralized, token-gated discussion platform for DAOs

ETHCC Hackathon 2022 -- Debate3 This is the official ETHCC Hackathon 2022 submission for our project Debate3 ?? . Project Description Debate 3 is a De

Dennis Zoma 8 Nov 8, 2022