Git Product home page Git Product logo

cairo-contracts's Introduction

⚠️ Note from Aspect Team ⚠️

This repo is a fork of the OpenZeppelin contracts. The reason for the fork was to have long string support for tokenURI on ERC721 contracts. This is required to show images on Aspect.

When OpenZeppelin support long strings TokenURIs for ERC721, we will defer the standard to OpenZeppelin and follow their standards.

Deploy TokenURI Compaitable ERC721 Cairo Contracts on Aspect

Deploy /cairo-contracts/openzeppelin/token/erc721/ERC721_Mintable_Burnable_LongTokenURI.cairo to StarkNet to have the NFTs available for trading on Aspect. Please see the Cairo documentation for more information on deploying contracts.

Need help? Contact us:


  • Discord: 0xmonkeyy#0981
  • Twitter: 0xmonkeyy

  • Discord: 0xSean#1534
  • Twitter: 0xs34n

OpenZeppelin Cairo Contracts

Tests and linter

A library for secure smart contract development written in Cairo for StarkNet, a decentralized ZK Rollup.

⚠️ WARNING! ⚠️

This is repo contains highly experimental code. Expect rapid iteration. Do not use in production.

Installation

First time?

Before installing Cairo on your machine, you need to install gmp:

sudo apt install -y libgmp3-dev # linux
brew install gmp # mac

If you have any troubles installing gmp on your Apple M1 computer, here’s a list of potential solutions.

Set up the project

Clone the repository

git clone [email protected]:OpenZeppelin/cairo-contracts.git

cd into it and create a Python virtual environment:

cd cairo-contracts
python3 -m venv env
source env/bin/activate

Install the Nile dev environment and then run install to get the Cairo language, a local network, and a testing framework.

pip install cairo-nile
nile install

Usage

Compile the contracts

nile compile

🤖 Compiling all Cairo contracts in the contracts directory
🔨 Compiling contracts/IAccount.cairo
🔨 Compiling contracts/Account.cairo
🔨 Compiling contracts/AddressRegistry.cairo
🔨 Compiling contracts/Initializable.cairo
🔨 Compiling contracts/Ownable.cairo
🔨 Compiling contracts/token/ERC721.cairo
🔨 Compiling contracts/token/ERC20.cairo
🔨 Compiling contracts/token/IERC20.cairo
✅ Done

Run tests

pytest

====================== test session starts ======================
platform linux -- Python 3.7.2, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/readme/cairo-contracts
plugins: asyncio-0.16.0, web3-5.24.0, typeguard-2.13.0
collected 19 items                                                                                               

tests/test_Account.py ....                                 [ 21%]
tests/test_AddressRegistry.py ..                           [ 31%]
tests/test_ERC20.py ..........                             [ 84%]
tests/test_Initializable.py .                              [ 89%]
tests/test_Ownable.py ..                                   [100%]

Learn

Contract documentation

Cairo

Nile

Security

This project is still in a very early and experimental phase. It has never been audited nor thoroughly reviewed for security vulnerabilities. Do not use in production.

Please report any security issues you find to [email protected].

License

OpenZeppelin Cairo Contracts is released under the MIT License.

cairo-contracts's People

Contributors

andrew-fleming avatar martriay avatar pscott avatar jareyes409 avatar 0xs34n avatar 0xanorak avatar frangio avatar roboteddy avatar juniset avatar rzmahmood avatar juanigallo avatar amxx avatar georgercarder avatar fracek avatar filiplaurentiu avatar calvwang9 avatar 0xchqrles avatar 0xmonkeyy 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.