/continuous-token

ERC20 token with built-in Automated Market Maker + Bonding Curve

Primary LanguageSolidity

Continuous Token

ERC20 Continuous Token backed by bonding curves and an automated market maker contract.

Directory Structure

├── app/                                        (Frontend React application)
│   ├── src/
│   │   ├── components/
│   │   ├── pages/
├── config/
├── contracts/                                  (Solidity smart contracts, or "the backend")
├── migrations/                                 (Smart contract deployment scripts)
├── test/                                       (Smart contract unit tests)
└── README.md

Prerequisites

To get started, install the following on your machine:

Solidity Learning Materials

New to Solidity? Here are some recommended resources to start with.

  • Truffle Pet Shop tutorial: An end-to-end walkthrough of the basics of building a dApp.
  • Program the Blockchain: A series of Solidity tutorials.
  • Solidity in Depth: It's important to familiarize yourself with the Solidity language.
  • ERC20 Token Standard Interface: Other than the Solidity, you'll want to get familiar with the ERCX standards and EIP proposals within the ecosystem. The ERC20 standard is a widely adopted interface for tokens.
  • OpenZeppelin: Once you have a firm grasp of the language and standards, start going through open source Solidity projects. The OpenZeppelin project is a useful (albeit incomplete) overview of what's possible with smart contracts.
  • Smart Contract Best Practices: Helps you understand non-functional requirements within the smart contract ecosystem: design patterns, security, upgradability, and tooling.
  • Ethernaut: Advanced security topics. Optional, but important.

Setup

Run Ganache

  • First, make sure that Ganache running locally at port 7545:
  • Go to Settings > Accounts & Keys
  • Disable Autogenerate HD Mnemonic and enter a Mnemonic you wish to use.

Project Setup

git clone https://github.com/yosriady/continuous-token
cd continuous-token
npm install # Installs dependencies
npm run setup:hooks # Sets up pre-commit hook to automatically run linters and unit tests
npm run test
npm run start

The .env file is used to deploy to Testnets such as Rinkeby. If you're developing locally, you can skip this step.

Create an .env file in this project's root directory (see env.sample for an example):

MNEMONIC='foobar'
INFURA_ACCESS_TOKEN='test'

Contributing

We follow GitHub Flow.

To get started, create a new feature branch off of master:

git checkout -b feature/my-new-feature

Make your changes, then create a pull request, and ask for a review. After the review is approved, the author should merge the pull request to master. For this we always try to "squash and merge".

Thanks

continuous-token ❤️ 2018+, Yos Riady. Released under the MIT License.
Authored and maintained by Yos Riady with help from contributors (list).

yos.io  ·  GitHub @yosriady