Skip to main content

ape-starknet: An ape plugin for the StarkNet networks

Project description

Ape StarkNet

Plugins for the StarkNet Ethereum L2 networks.

Dependencies

  • python3 version 3.7 or greater, python3-dev

Installation

via pip

You can install the latest release via pip:

pip install ape-starknet

via setuptools

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

git clone https://github.com/ApeWorX/ape-starknet.git
cd ape-starknet
python3 setup.py install

Quick Usage

Account Management

Deploy a new account:

ape starknet accounts create <ALIAS> --network starknet:testnet

You can deploy the same account to multiple networks.

ape starknet accounts create <ALIAS> --network starknet:mainnet

See your accounts and all of their deployment addresses:

ape starknet accounts list

shows:

Alias                      - <ALIAS>
Public key                 - 0x123444444d716666dd88882bE2e99991555DE1c7
Contract address (testnet) - 0x6b7111AA4111e5B2229c3332B66696888164440A773333143333B383333a183
Contract address (mainnet) - 0x7873113A4111e5B2229c3332B66696388163440A373333143333B3833332122

Import an existing account:

ape starknet accounts import <ALIAS> --address 0x6b7111AA4111e5B2229c3332B66696888164440A773333143333B383333a183 --network starknet:testnet

You can also import an account by key-file, including a key-file you exported from your Argent-X browser wallet:

ape starknet accounts import <ALIAS> --keyfile path/to/keyfile.json

You can also delete accounts:

ape starknet accounts delete <ALIAS> --network starknet:testnet

NOTE: You don't have to specify the network if your account is only deployed to a single network.

Mainnet Alpha Whitelist Deployment Token

Currently, to deploy to Alpha-Mainnet, your contract needs to be whitelisted. You can provide your WL token in a variety of ways.

Via Python code:

my_contract = project.MyContract.deploy(token="MY_TOKEN")

Via an Environment Variable:

export ALPHA_MAINNET_WL_DEPLOY_TOKEN="MY_TOKEN"

Or, via the --token flag when deploying an account:

ape starknet accounts create MY_ACCOUNT --token MY_TOKEN

Contracts

First, deploy your contract:

from ape import project

contract = project.MyContract.deploy()

The deploy method returns a contract instance from which you can call methods on:

receipt = contract.my_mutable_method(123)
value = contract.my_view_method()

Include a sender to delegate the transaction to an account contract:

from ape import accounts

account = accounts.load("my_account")
receipt = contract.my_mutable_method(123, sender=account)

NOTE: Currently, to pass in arrays as arguments, you have to also include the array size beforehand:

receipt = contract.store_my_list(3, [1, 2, 3])

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-starknet-0.2.0a1.tar.gz (40.0 kB view details)

Uploaded Source

Built Distribution

ape_starknet-0.2.0a1-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

Details for the file ape-starknet-0.2.0a1.tar.gz.

File metadata

  • Download URL: ape-starknet-0.2.0a1.tar.gz
  • Upload date:
  • Size: 40.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/35.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for ape-starknet-0.2.0a1.tar.gz
Algorithm Hash digest
SHA256 9638a3ca5b0d6d4052fb8000ec1774ba72f5b5720bc2feccabf35b276f2b0bd9
MD5 4ed63176c510266239eaf4220064b2bf
BLAKE2b-256 33c857350449f8fa03c93154f0b74a613d9f6d00ffd015ef3e2d37bc017d6c06

See more details on using hashes here.

File details

Details for the file ape_starknet-0.2.0a1-py3-none-any.whl.

File metadata

  • Download URL: ape_starknet-0.2.0a1-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/35.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.64.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.12

File hashes

Hashes for ape_starknet-0.2.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 aa3e34a62adf917eef0348fce9418bb7d82c0925489c79b44b3cb447d671798e
MD5 0844d60d7d33a06bf05f0e2ef737ccf0
BLAKE2b-256 9b5e748fb3bbb07efdc151082321e99e7362336b03e10a0b726283628726bf8a

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