blockful-io / swaplace-contracts

Swaplace is an open-source, ownerless and feeless token swap protocol
https://app.swaplace.xyz/
MIT License
33 stars 33 forks source link
blockchain ethereum evm otc publicgoods solidity swap typescript

Swaplace

Tests Fuzz Testing

This repository contains the core smart contracts for the Swaplace Protocol; The lightest Swap protocol in the market.

TL;DR

Incentives

This repository is subjected to incentives for the community to contribute to the project. The incentive distribution and amount are being discussed but the eligibility has already started.

Features

    struct Swap {
        address owner;
        address allowed;
        uint256 expiry;
        Asset[] biding;
        Asset[] asking;
    }

Setup

You should install the dependencies using Yarn (used in the project) or npm to deploy this code. The project uses Hardhat as a development environment. Which relies on Node.js (Recommended version v18.16.0).

To make sure that NodeJS is installed correctly, open the integrated terminal and run the following command:

node -v

Yarn:

Install Yarn globally and check if the version appears:

npm install --global yarn
yarn --version

Install the dependencies using Yarn:

yarn install

npm:

Install the dependencies using npm:

npm install

Environment Variables

The project comes with a .env.example file. You should rename it to .env and fill the variables with your values. Most RPC providers offer free testnet nodes. You can use Alchemy or Infura to get a free node.

WARNING: The private keys used in the .env file are from hardhat accounts. They are not meant to be used in production.

Testing and Deploying

Run the tests in localhost or try the contracts in a desired network by specifying the network name in hardhat.config.js.

yarn test
yarn testnet <network>

Deploy the contracts in the desired network according to the networks available in hardhat.config.js.

yarn deploy <network>

Contributing