Skip to content

cartesi/rollups-contracts

Repository files navigation

Smart Contracts for Cartesi Rollups

This repository contains the on-chain part of Cartesi Rollups.

If you are interested in taking a look at the off-chain part, please, head over to cartesi/rollups-node.

🧩 Dependencies

💡 Basic setup

This repository contains git submodules. In order to properly initialize them, please, run the following command.

git submodule update --init --recursive

This repository uses pnpm to manage JavaScript dependencies. In order to install them, please, run the following command.

pnpm i

🚀 Local deployment

If you want to run a Hardhat node and deploy the contracts, please run the following command.

pnpm start

If, instead, you wish to deploy the contracts to an already running node (e.g. Anvil), you can do so by running the following command.

pnpm deploy:development

If the node is not listening to http://localhost:8545/, please set the RPC_URL environment variable accordingly.

🧪 Tests

If you want to run the tests, please run the following command.

pnpm test

📚 Documentation

🚀 Smart contract documentation is kept up-to-date and deployed here.

ℹ️ You may also want to check the official Cartesi Rollups documentation website.

🔎 For an in-depth view of the on-chain architecture, we invite you to take a look at the CONTRACTS.md file.

🎨 Experimenting

To get a taste of how to use Cartesi to develop your DApp, check the following resources: See Cartesi Rollups in action with the Simple Echo Examples in C++, JavaScript, Lua, Rust and Python. To have a glimpse of how to develop your DApp locally using your favorite IDE and tools check our Host Environment in the Rollups Examples repository.

💬 Talk with us

If you're interested in developing with Cartesi, working with the team, or hanging out in our community, don't forget to join us on Discord and follow along.

Want to stay up to date? Make sure to join our announcements channel on Telegram or follow our Twitter.

🤝 Contributing

Thank you for your interest in Cartesi! Head over to our Contributing Guidelines for instructions on how to sign our Contributors Agreement and get started with Cartesi!

Please note we have a Code of Conduct, please follow it in all your interactions with the project.

📜 License

Note: This component currently has dependencies that are licensed under the GNU GPL, version 3, and so you should treat this component as a whole as being under the GPL version 3. But all Cartesi-written code in this component is licensed under the Apache License, version 2, or a compatible permissive license, and can be used independently under the Apache v2 license. After this component is rewritten, the entire component will be released under the Apache v2 license. The arbitration d-lib repository and all contributions are licensed under GPL 3. Please review our COPYING file.