Skip to main content

A local testnet for Starknet

Project description

Introduction

A Flask wrapper of Starknet dummy network. Similar in purpose to Ganache.

Install

pip install starknet-devnet

On Ubuntu/Debian, first run:

sudo apt install -y libgmp3-dev

On Mac, you can use brew:

brew install gmp

Run

usage: starknet-devnet [-h] [-v] [--host HOST] [--port PORT]

Run a local instance of Starknet devnet

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Print the version
  --host HOST           Specify the address to listen at; defaults to localhost (use the address the program outputs on start)
  --port PORT, -p PORT  Specify the port to listen at; defaults to 5000

Run - Docker

This devnet is available as a Docker container (shardlabs/starknet-devnet):

docker pull shardlabs/starknet-devnet

The server inside the container listens to the port 5000, which you need to publish to a desired <PORT>:

docker run -it -p [HOST:]<PORT>:5000 shardlabs/starknet-devnet

E.g. if you want to use your host machine's 127.0.0.1:5000, you need to run:

docker run -it -p 127.0.0.1:5000:5000 shardlabs/starknet-devnet

You may ignore any address-related output logged on container startup (e.g. Running on all addresses or Running on http://172.17.0.2:5000). What you will use is what you specified with the -p argument.

If you don't specify the HOST part, the server will indeed be available on all of your host machine's addresses (localhost, local network IP, etc.), which may present a security issue if you don't want anyone from the local network to access your devnet.

Important notes

  • Types in call/invoke:
    • You will NOT be able to pass or receive values of type other than felt and felt*.

Interaction

Interact with this devnet as you would with the official Starknet alpha network.

Hardhat integration

Development - Prerequisite

If you're a developer willing to contribute, be sure to have installed Poetry.

Development - Run

poetry run starknet-devnet

Development - Test

When running tests locally, do it from the project root. Be sure to create an .env file, modeled after .env.example.

Setup an example project by running:

./scripts/setup-example.sh

To see if the devnet can interact with starknet CLI commands, run:

./scripts/test-cli.sh

To see if the devnet can interact with the plugin, run:

./scripts/test-plugin.sh

Development - Build

poetry build

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

starknet_devnet-0.1.2.tar.gz (5.2 kB view hashes)

Uploaded Source

Built Distribution

starknet_devnet-0.1.2-py3-none-any.whl (5.6 kB view hashes)

Uploaded Python 3

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