airtea-protocol v1.1.5
AirSwap Protocols
AirSwap is a peer-to-peer trading network. This repository contains smart contracts for use by developers and traders on the AirSwap network.
Resources
- Discord → https://chat.airswap.io/
- X → https://x.com/airswap
- Website → https://www.airswap.io/
- About → https://about.airswap.io/
Contracts
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 |
Tools
Package | Version | Description |
---|---|---|
@airswap/libraries | Libraries for Developers | |
@airswap/utils | Utils for Developers |
Commands
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. |
Branching
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
Process
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.
- Tag beta release from beta branch. (x.x.x-beta.x)
- 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.
- Merge main into beta: this will update the beta with latest.
- Tag release from main branch. (x.x.x)
Each deploys.js
must be limited to contracts deployed from that package version.
Individual package features or patches
- Cut a feature or fix branch from main.
- Merge fix into main (Squash and Merge): this will publish to NPM with "latest" tag.
- Merge main into develop.
Deploying and Verifying
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.