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"
Cut feature branches from develop
Merge feature branches into develop (Squash and Merge)
Merge "develop" into "beta" to publish beta packages. (Semver: x.x.x-beta.x)
Merge develop into beta (Merge Commit): this will publish NPM with "beta" tag.
Share tagged release with auditors if auditing.
Merge "develop" into "main" to publish latest packages. (Semver: x.x.x)
Merge develop into main (Merge Commit): this will publish NPM with "latest" tag.
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.
$ claude mcp add airswap-protocols \
-- python -m otcore.mcp_server <graph>