GithubHelp home page GithubHelp logo

sheme999 / airswap-protocols Goto Github PK

View Code? Open in Web Editor NEW

This project forked from airswap/airswap-protocols

0.0 0.0 0.0 11.32 MB

AirSwap Contracts and Tools

Home Page: https://about.airswap.io/

License: MIT License

Shell 0.01% JavaScript 55.78% TypeScript 22.58% Solidity 21.62%

airswap-protocols's Introduction

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.

Discord License lerna Twitter Follow

Resources

Contracts

Package Version Description
@airswap/registry npm Server Registry
@airswap/swap npm Atomic Token Swap
@airswap/swap-erc20 npm Atomic Token Swap (ERC20)
@airswap/wrapper npm Wrapper for Native Tokens
@airswap/staking npm Staking for Members
@airswap/pool npm Rewards Pool for Members
@airswap/batch-call npm Batch Token and Order Calls

Tools

Package Version Description
@airswap/libraries npm Libraries for Developers
@airswap/utils npm 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

  1. New work and features are cut from and merged to "develop"

    1. Cut feature branches from develop
    2. Merge feature branches into develop (Squash and Merge)
  2. Merge "develop" into "beta" to publish beta packages. (Semver: x.x.x-beta.x)

    1. Merge develop into beta (Merge Commit): this will publish NPM with "beta" tag.
    2. Tag beta release from beta branch. (x.x.x-beta.x)
    3. Share tagged release with auditors if auditing.
  3. Merge "develop" into "main" to publish latest packages. (Semver: x.x.x)

    1. Merge develop into main (Merge Commit): this will publish NPM with "latest" tag.
    2. Merge main into beta: this will update the beta with latest.
    3. 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

  1. Cut a feature or fix branch from main.
  2. Merge fix into main (Squash and Merge): this will publish to NPM with "latest" tag.
  3. 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.

airswap-protocols's People

Contributors

hensha256 avatar dmosites avatar poiresel avatar ejwessel avatar smartcontrart avatar abolduser avatar hmalik88 avatar dependabot[bot] avatar vdrg avatar perich avatar gpxl-dev avatar mitsichury avatar rhyeal avatar geewynn avatar perelyn-sama avatar cloudonshore avatar piersss avatar francisldn avatar syjk129 avatar wjmelements avatar codyenokida avatar adityakode avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.