airtea-protocol
v1.1.5
Published
[Forked from AirSwap](https://www.airswap.io/) is a peer-to-peer trading network. This repository contains smart contracts for use by developers and traders on the AirSwap network.
Downloads
3
Readme
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.