AirSwap is a peer-to-peer trading network. This repository contains smart contracts for use by developers and traders on the AirSwap network.
Package | Version | Description |
---|---|---|
@airswap/registry |
Server Registry | |
@airswap/swap |
Atomic Token Swap | |
@airswap/swap-erc20 |
Atomic Token Swap (ERC20) | |
@airswap/wrapper |
Wrapper for Native Tokens | |
@airswap/staking |
Staking for Members | |
@airswap/pool |
Rewards Pool for Members | |
@airswap/batch-call |
Batch Token and Order Calls |
Package | Version | Description |
---|---|---|
@airswap/libraries |
Libraries for Developers | |
@airswap/utils |
Utils for Developers |
Command | Description |
---|---|
yarn compile |
Compile all contracts to build folders. |
yarn clean |
Clean all contract build folders. |
yarn test |
Run all contract tests in test folders. |
yarn lint:fix |
Run eslint for all JavaScript code. |
yarn pretty:fix |
Run prettier for all JavaScript code. |
Flow for contracts and associated tools: Branch from Develop; Merge Feature → Develop → Beta → Main
Flow for tool updates (not contracts): Branch from Main; Merge Feature → Main → Develop
Regular development process for a complete release
New work and features are cut from and merged to "develop"
Merge "develop" into "beta" to publish beta packages. (Semver: x.x.x-beta.x)
Merge "develop" into "main" to publish latest packages. (Semver: x.x.x)
Each deploys.js
must be limited to contracts deployed from that package version.
Individual package features or patches
Each package has commands yarn deploy
and yarn verify
. Each command takes a --network
flag. For example:
yarn deploy --network sepolia
yarn verify --network sepolia
The source of these scripts can be found in the scripts
folder of each package. The account used to deploy and verify is derived from the PRIVATE_KEY
environment variable in .env
in the repository root.