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.
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 sepoliaThe 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.
