continuous-token
continuous-token copied to clipboard
ERC20 token with built-in Automated Market Maker + Bonding Curve
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 Mnemonicand 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
.envfile is used to deploy to Testnets such asRinkeby. 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).