Home

Awesome

<p align="center"><a href="https://twitter.com/algoworld_nft/status/1450608110268211203"><img width=100% src="https://i.imgur.com/cGWGmxa.png" alt="687474703a2f2f6936332e74696e797069632e636f6d2f333031336c67342e706e67" border="0" /></a></p> <p align="center"> <a href="https://algorand.com"><img src="https://img.shields.io/badge/Powered by-Algorand-blue.svg" /></a> <a href="https://algoworld.io"><img src="https://img.shields.io/badge/AlgoWorld-Website-pink.svg" /></a> <a href="https://algoworldexplorer.io"><img src="https://img.shields.io/badge/AlgoWorldExplorer-Platform-red.svg" /></a> <a><img src="https://visitor-badge.glitch.me/badge?page_id=AlgoWorldNFT.algoworld-contracts&right_color=green" /></a> <a href="https://github.com/AlgoWorldNFT/algoworld-contracts/actions/workflows/ci.yaml"><img src="https://github.com/AlgoWorldNFT/algoworld-contracts/actions/workflows/ci.yaml/badge.svg" /></a> <a href="https://codecov.io/gh/AlgoWorldNFT/algoworld-contracts"><img src="https://codecov.io/gh/AlgoWorldNFT/algoworld-contracts/branch/main/graph/badge.svg?token=2O1VAOJCUD" /></a> </p>

๐Ÿ“ƒ About

The following repository hosts the source codes for:

โš ๏ธ NOTE: These contracts were created in collaboration with Solution Architect from Algorand (credits @cusma) and audited by TENSET security. Code is provided under MIT license.

Prerequisites

๐Ÿš€ Overview

AlgoWorld currently offers several smart signatures used for swapping on AlgoWorld Swapper.


If you are looking to install algoworld contracts into your project run the following command:

pip install algoworld-contracts

Example usage

from algoworld_contracts import contracts

# Replace inputParams with real values
asa_to_asa_swap = contracts.get_swapper_teal(
        inputParams.creator_address,
        inputParams.offered_asa_id,
        inputParams.offered_asa_amount,
        inputParams.requested_asa_id,
        inputParams.requested_asa_amount,
        inputParams.incentive_wallet,
        inputParams.incentive_fee,
    )

# asa_to_asa_swap is a string of TEAL code
response = algod.compile(asa_to_asa_swap)
...

Swapper

There are two main types of smart signatures available:

โš™๏ธ Installation

This section assumes that poetry and pre-commit are installed and executed from the root folder of this repository.

  1. Clone the repo
git clone https://github.com/AlgoWorldNFT/algoworld-contracts
  1. Install python requirements
poetry install # install all dependencies
poetry shell # activate virtual env

(OPTIONAL) 3. Configure pre-commit hooks

pre-commit install

If you are not going to setup pre-commit locally, there is a Github Actions plugin that will autoformat your branch if you are opening a PR with commits that contain un-formatted code.

๐Ÿงช Testing

Testing assumes that docker-compose is installed and available. Project is relying on pytest-docker-compose plugin that automatically boots up temporary algorand sandbox and destroys the containers after the tests are finished.

(.venv) pytest

You can also include [pytest] into your commit message to trigger the test in CI pipeline on push action (on pr it is triggered automatically).

๐Ÿšง Contribution guideline

See CONTRIBUTING.md

โญ๏ธ Stargazers

Special thanks to everyone who forked or starred the repository โค๏ธ

Stargazers repo roster for @AlgoWorldNFT/algoworld-contracts

Forkers repo roster for @AlgoWorldNFT/algoworld-contracts