Skip to content

Al-Qa-qa/constant-product-amm

Repository files navigation

Constant Product AMM Solidity Contract

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. License
  5. Contact
  6. Acknowledgments

About The Project

An Automated Market Maker (AMM) is a decentralized financial protocol that facilitates the trading of digital assets on blockchain networks, such as Ethereum.

We built an AMM smart contract, that depends on constant product algorism (X * Y = K).

We used blockchain technology, the Ethereum network, and smart contract development technology to achieve our goal.

The smart contract is written in solidity, and we used JS/TS to test and interact with the contract.

Built With

The smart contract is built using hardhat framework, ethersjs, and some other packages and dependencies that speed up in development process.

  • Soliditylang
  • Hardhat
  • Openzeppelin-contracts

Getting Started

This is an example of how to run the smart contract locally on your computer.

Prerequisites

You need to check if nodejs and npm are installed on your computer first.

npm --version
node --version

If you don't have node, you can install it from there official website

Installation

Below is an example of how to start interacting with the smart contract locally.

  1. Clone the repo
    git clone https://github.com/Al-Qa-qa/constant-product-amm.git
  2. Install NPM packages (remember to move to the directory constant-product-amm first)
    npm install
  3. Code installed successfully, you can start testing it.

Usage

You can interact with the smart contract on the local network now.

  • npm run compile to compile the solidity code
  • npm run deploy to deploy the contract on the hardhat network
  • npm run test to run the unit testing of the contract

License

This project is under the MIT License. See LICENSE for more information.

Contact

Al-Qa'qa' - @Al_Qa_qa - [email protected]

Project Link: https://github.com/Al-Qa-qa/constant-sum-amm

Acknowledgments

We used some web services, open-source projects, and packages that helped us in our development process, which will be listed below.

We would like to apologize if we used a free package or service and forgot to mention it.