Skip to main content

ape-cairo: A compiler plugin for the cairo programming language

Project description

Ape Cairo

Ape compiler plugin around the Cairo language.

Dependencies

  • python3 version 3.7 or greater, python3-dev

Installation

via pip

You can install the latest release via pip:

pip install ape-cairo

via setuptools

You can clone the repository and use setuptools for the most up-to-date version:

git clone https://github.com/ApeWorX/<PYPI_NAME>.git
cd ape-cairo
python3 setup.py install

Quick Usage

In a project directory where there are .cairo files in your contracts/ directory, run the compile command:

ape compile

Configure Dependencies

You can configure dependencies, such as from GitHub, using your ape-config.yaml file.

There are two things you need to add:

  1. Add your dependency to Ape's root dependencies: key to trigger downloading and compiling it.
  2. Configure the ape-cairo plugin to load that dependency in your project.

For more information on dependencies, see this guide.

Your resulting ape-config.yaml will look something like:

dependencies:
  - name: OpenZeppelinCairo
    github: OpenZeppelin/cairo-contracts
    version: 0.1.0
    contracts_folder: src

cairo:
  dependencies:
    - OpenZeppelinCairo@0.1.0

NOTE: We are changing the contracts/ folder to be src for this dependency.

Now, in my contracts/ folder, I can import from openzeppelin:

from openzeppelin.token.erc20.library import (
    ERC20_name,
    ERC20_symbol,
    ERC20_totalSupply,
    ERC20_decimals,
    ERC20_balanceOf,
    ERC20_allowance,
    ERC20_mint,
    ERC20_burn,
    ERC20_initializer,
    ERC20_approve,
    ERC20_increaseAllowance,
    ERC20_decreaseAllowance,
    ERC20_transfer,
    ERC20_transferFrom
)

Development

This project is in development and should be considered a beta. Things might not be in their final state and breaking changes may occur. Comments, questions, criticisms and pull requests are welcomed.

License

This project is licensed under the Apache 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ape-cairo-0.3.0a1.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

ape_cairo-0.3.0a1-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file ape-cairo-0.3.0a1.tar.gz.

File metadata

  • Download URL: ape-cairo-0.3.0a1.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/35.0 requests/2.28.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.12.0 keyring/23.6.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.8.13

File hashes

Hashes for ape-cairo-0.3.0a1.tar.gz
Algorithm Hash digest
SHA256 4d22a21403deb8ac87a87c4b4900623fd94365a6b8e0e9c6175699bc99a0e21b
MD5 a7c1d941326aaa657f336e4abae342d6
BLAKE2b-256 3d463b6a28c6bbf38bbdb749fcc19992ff9fd41494c58fc5ac9e74a6a585f44f

See more details on using hashes here.

File details

Details for the file ape_cairo-0.3.0a1-py3-none-any.whl.

File metadata

  • Download URL: ape_cairo-0.3.0a1-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/35.0 requests/2.28.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.12.0 keyring/23.6.0 rfc3986/2.0.0 colorama/0.4.5 CPython/3.8.13

File hashes

Hashes for ape_cairo-0.3.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 efa771cc79a36e13de8388d2212a87f5f28e6e72d31047a185fb45721fa1662c
MD5 7e5bf8ed02c43d100e20fe2ae6d8f435
BLAKE2b-256 9d9d90b4c2b57a28766e4343cf49ff72905b72218ec2d8d4a9c2fb2c23b13366

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page