A Flask wrapper of Starknet state. Similar in purpose to Ganache.

Related tags

Flaskstarknet-devnet
Overview

Introduction

A Flask wrapper of Starknet state. Similar in purpose to Ganache.

Aims to mimic Starknet's Alpha testnet, but with simplified functionality.

Install

pip install starknet-devnet

Requirements

Works with Python versions <=3.9.7.

On Ubuntu/Debian, first run:

sudo apt install -y libgmp3-dev

On Mac, you can use brew:

brew install gmp

Disclaimer

  • This devnet should not be used as a replacement for Alpha testnet. After testing on devnet, be sure to test on testnet!
  • Hash calculation of transactions and blocks differs from the one used in Alpha testnet.
  • Specifying a block by its hash/number is not supported. All interaction is done with the latest block.
  • Read more in interaction.

Run

Installing the package adds the starknet-devnet command.

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 on your host machine:

docker run -it -p [HOST:]
   
    :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.

Interaction

  • Interact with this devnet as you would with the official Starknet Alpha testnet.
  • The exact underlying API is not exposed for the same reason Alpha testnet does not expose it.
  • The following Starknet CLI commands are supported:
    • call
    • deploy
    • get_block
    • get_code
    • get_storage_at
    • get_transaction
    • invoke
    • tx_status
  • The following Starknet CLI commands are not supported:
    • get_block - transactions are not organized into blocks
    • get_contract_addresses - L1-L2 interaction is currently not supported
    • get_transaction_receipt - soon to be supported

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.

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
Comments
  • Change default port

    Change default port

    Hey guys,

    great work! While integrating this with Argent X we notices port 5000 is often already in use and the devnet doesn't check that and starts anyways (but doesn't work) After a quick google search it seems like port 5000 is often used by the system on MacOS

    would it be possible to change the default port to something less used?

    Cheers, Janek

    opened by janek26 16
  • Implement `starknet_getEvents` RPC method

    Implement `starknet_getEvents` RPC method

    Was not handled by #220:

    https://github.com/Shard-Labs/starknet-devnet/pull/220#issuecomment-1220776804:

    this is quite a big method, which will mutate a bit in the future, but definetly is a candidate for an issue to be implemented in

    Type: feature Techno: python Context: coupled Difficulty: hard Duration: few days 
    opened by FabijanC 13
  • Return Value Strangenesses

    Return Value Strangenesses

    I am noticing some odd behaviors with return values as of recently where the length of return arguments is included. Here are the scenarios I have tried:

    @external
    func get_array{
            syscall_ptr : felt*, pedersen_ptr : HashBuiltin*,
            range_check_ptr}() -> (arr_len: felt, arr: felt*):
        const ARRAY_SIZE = 3
        let (ptr) = alloc()
        assert [ptr] = 1
        assert [ptr + 1] = 2
        assert [ptr + 2] = 3
        let (current_count) = array_get_counter.read()
        array_get_counter.write(current_count + 1)
        return (ARRAY_SIZE, ptr)
    end
    
    @view
    func view_array{
            syscall_ptr : felt*, pedersen_ptr : HashBuiltin*,
            range_check_ptr}() -> (arr_len: felt, arr: felt*):
        const ARRAY_SIZE = 3
        let (ptr) = alloc()
        assert [ptr] = 1
        assert [ptr + 1] = 2
        assert [ptr + 2] = 3
        return (ARRAY_SIZE, ptr)
    end
    

    | method | client | result | |:-----------:|:-----------:|:---------------:| | @external | normal | [3, 1, 2, 3] | @external | account | [4, 3, 1, 2, 3] | @view | normal | [3, 1, 2, 3] |

    opened by unparalleled-js 11
  • Mint endpoint failes

    Mint endpoint failes

    Describe the bug Mint api call returns a 500 error

    Not reproducible on alpha-goerli

    • [X] This issue is only present on Devnet and cannot be reproduced on alpha-goerli (check the box if true).

    To Reproduce Steps to reproduce the behavior:

    1. Try to Mint 1 Eth with Bravos wallet; or make POST /mint request to devnet with Postman

    Expected behavior Get some Eth minted to the account.

    Screenshots Screenshot 2022-07-18 at 11 52 04

    Error Message in devnet logs*

    [2022-07-18 11:43:21,765] ERROR in app: Exception on /mint [POST]
    Traceback (most recent call last):
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/flask/app.py", line 2073, in wsgi_app
        response = self.full_dispatch_request()
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/flask/app.py", line 1518, in full_dispatch_request
        rv = self.handle_user_exception(e)
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function
        return cors_after_request(app.make_response(f(*args, **kwargs)))
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request
        rv = self.dispatch_request()
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/flask/app.py", line 1502, in dispatch_request
        return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/asgiref/sync.py", line 213, in __call__
        return call_result.result()
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/concurrent/futures/_base.py", line 437, in result
        return self.__get_result()
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
        raise self._exception
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/asgiref/sync.py", line 279, in main_wrap
        result = await self.awaitable(*args, **kwargs)
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/starknet_devnet/blueprints/base.py", line 126, in mint
        tx_hash_int = await FeeToken.mint(address, amount, state.starknet_wrapper)
      File "/Users/claudio/.miniconda3/envs/starknet-dev-env/lib/python3.8/site-packages/starknet_devnet/fee_token.py", line 101, in mint
        assert cls.contract
    AssertionError
    

    Devnet version

    • I am using Devnet version: 0.2.5
    • [ ] This happens with a dockerized Devnet (check the box if true).
    • This does not appear on the following Devnet version:

    Machine specifications

    • OS: macOS Monterey 12.4.1
    • CPU: Apple M1 Max
    • Memory: 64GB
    Type: bug 
    opened by clacladev 10
  • Mint devnet eth??

    Mint devnet eth??

    Hello team. ArgentX updated with mandatory fee. So while running my own app against devnet, I now need some eth to pay for transactions.

    How can I mint some eth for my wallet? Thanks!

    Type: feature 
    opened by clacladev 10
  • Support for RPC API Specification v0.1.0

    Support for RPC API Specification v0.1.0

    Usage related changes

    (Closes #204) (Closes #178)

    All of the methods from the latest RPC API Specification v0.1.0 are implemented and tested with the following exceptions:

    • starknet_pendingTransactions
    • starknet_syncing
    • starknet_getEvents
    • starknet_getNonce

    version field in RPC transactions (invoke, deploy) is hardcoded to be hex(0x0) - in StarkNet 0.10.0 it will be an important part, distinguishing between different transaction types

    Checklist:

    • [x] No linter errors
    • [x] Performed a self-review of the code
    • [x] Rebased to the last commit of the target branch (or merged it into my branch)
    • [x] Documented the changes
    • [x] Linked the issues which this PR resolves
    • [x] Updated the tests
    • [x] All tests are passing
    opened by drknzz 9
  • `invoke`/`call` fail finding the contract to call and return different parsed contract addresses

    `invoke`/`call` fail finding the contract to call and return different parsed contract addresses

    Hey,

    When trying to invoke or call a function of my contract, I get errors when finding the contract referenced with --address:

    starknet call --address 0x0180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328 --abi contract_abi.json --function get_balance --gateway_url http://52.179.101.122:5000
    

    returns

    Got BadRequest
    Traceback (most recent call last):
      File "/Users/sebastiendan/cairo_venv/lib/python3.9/site-packages/services/external_api/base_client.py", line 116, in _send_request
        raise BadRequest(status_code=response.status, text=text)
    services.external_api.base_client.BadRequest: HTTP error ocurred. Status: 500. Text: {"code": "StarknetErrorCode.UNINITIALIZED_CONTRACT", "message": "Error at pc=0:13:\nGot an exception while executing a hint.\nCairo traceback (most recent call last):\nUnknown location (pc=0:467)\nUnknown location (pc=0:436)\n\nError in the called contract (0x180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328):\nContract with address 0x180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328 is not deployed."}
    Error: BadRequest: HTTP error ocurred. Status: 500. Text: {"code": "StarknetErrorCode.UNINITIALIZED_CONTRACT", "message": "Error at pc=0:13:\nGot an exception while executing a hint.\nCairo traceback (most recent call last):\nUnknown location (pc=0:467)\nUnknown location (pc=0:436)\n\nError in the called contract (0x180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328):\nContract with address 0x180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328 is not deployed."}
    

    => The 0x180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328 address displayed in the error message defers from the one referenced in the call (0x0180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328).


    starknet invoke --address 0x0180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328 --abi contract_abi.json --function increase_balance --inputs 1234 --gateway_url http://52.179.101.122:5000
    Invoke transaction was sent.
    Contract address: 0x0180187d947f45e66a0b049422b9bc9673a11b7a8320daad28bdf247e7d28328
    Transaction hash: 0x30261268712fc763f4b7bbefe24920853f98a20da32c340567a3b973e2ba4ee
    

    leads to

    starknet tx_status --hash 0x30261268712fc763f4b7bbefe24920853f98a20da32c340567a3b973e2ba4ee --feeder_gateway_url http://52.179.101.122:5000
    {
        "tx_failure_reason": {
            "code": "TRANSACTION_FAILED",
            "error_message": "No contract at the provided address (0x039159e62d9936e67b2adb434aeab1201965bd7c3342e48a0cc6345d2a86ba87).",
            "tx_id": "0x030261268712fc763f4b7bbefe24920853f98a20da32c340567a3b973e2ba4ee"
        },
        "tx_status": "REJECTED"
    }
    

    This time the address displayed in the error message is 0x039159e62d9936e67b2adb434aeab1201965bd7c3342e48a0cc6345d2a86ba87.

    opened by sebastiendan 9
  • Mainnet forking

    Mainnet forking

    As I mentioned in the community call last week, it would be amazing to have mainnet forking. The use case it's to test how our dapp interacts with existing dapps deployed to the network. I know that now it's not possible to implement this, so this is more of a question to know what is needed to make this happen?

    Type: feature 
    opened by fracek 9
  • Declare tx signature type is int instead of hex-encoded string

    Declare tx signature type is int instead of hex-encoded string

    Describe the bug A clear and concise description of what the bug is. When querying the declare tx with signature, the return type is integer and not hex-encoded string (like in invoke)

    Not reproducible on alpha-goerli

    • [x] This issue is only present on Devnet and cannot be reproduced on alpha-goerli (check the box if true).

    To Reproduce Steps to reproduce the behavior:

    1. Send a signed declare tx
    2. Wait for acceptance
    3. Fetch the tx and get the signature

    Expected behavior A clear and concise description of what you expected to happen.

    Devnet version

    • I am using Devnet version: 0.2.10
    • [ ] This happens with a dockerized Devnet (check the box if true).
    • This does not appear on the following Devnet version:

    Machine specifications

    • OS: MacOS
    • CPU: M1 Pro
    • Memory: 16GB
    Type: bug 
    opened by Arcticae 8
  • Persisting the state fails

    Persisting the state fails

    Hello team. I am trying to use the new state dumping feature but it fails (macOS, pyenv, python 3.9.10, venv).

    Apart from the fact that it would be nice to have the params for dumping and loading which don't error if the load path does not exists yet (so I can always copy and paste the same command and not having different results if it's the first or the nth time). So having something like this always working

    starknet-devnet \
      --dump-on transaction \
      --dump-path ~/.starknet_devnet \
      --load-path ~/.starknet_devnet
    

    But there is a more pressing issue on my machine. If I start the devnet then I send the transaction, when I stop the devnet and the dump has to be written, it throws errors.

    ❯ starknet-devnet \                                
      --dump-on exit \    
      --dump-path ~/.starknet_devnet.pkl          
     * Running on http://localhost:5000/ (Press CTRL+C to quit)
    127.0.0.1 - - [28/Feb/2022 14:37:47] "POST /gateway/add_transaction HTTP/1.1" 200 -
    ^CDumping Devnet to: /Users/claudio/.starknet_devnet.pkl
    Traceback (most recent call last):
      File "/Users/claudio/cairo_venv/bin/starknet-devnet", line 8, in <module>
        sys.exit(main())
      File "/Users/claudio/cairo_venv/lib/python3.9/site-packages/starknet_devnet/server.py", line 275, in main
        app.run(host=args.host, port=args.port)
      File "/Users/claudio/cairo_venv/lib/python3.9/site-packages/flask/app.py", line 920, in run
        run_simple(t.cast(str, host), port, self, **options)
      File "/Users/claudio/cairo_venv/lib/python3.9/site-packages/werkzeug/serving.py", line 1017, in run_simple
        inner()
      File "/Users/claudio/cairo_venv/lib/python3.9/site-packages/werkzeug/serving.py", line 970, in inner
        srv.serve_forever()
      File "/Users/claudio/cairo_venv/lib/python3.9/site-packages/werkzeug/serving.py", line 724, in serve_forever
        super().serve_forever(poll_interval=poll_interval)
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/socketserver.py", line 232, in serve_forever
        ready = selector.select(poll_interval)
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/selectors.py", line 416, in select
        fd_event_list = self._selector.poll(timeout)
      File "/Users/claudio/cairo_venv/lib/python3.9/site-packages/starknet_devnet/server.py", line 241, in dump_on_exit
        dumper.dump(dumper.dump_path)
      File "/Users/claudio/cairo_venv/lib/python3.9/site-packages/starknet_devnet/dump.py", line 34, in dump
        multiprocessing.Process(
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/multiprocessing/process.py", line 121, in start
        self._popen = self._Popen(self)
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/multiprocessing/context.py", line 224, in _Popen
        return _default_context.get_context().Process._Popen(process_obj)
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/multiprocessing/context.py", line 284, in _Popen
        return Popen(process_obj)
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/multiprocessing/popen_spawn_posix.py", line 32, in __init__
        super().__init__(process_obj)
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/multiprocessing/popen_fork.py", line 19, in __init__
        self._launch(process_obj)
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/multiprocessing/popen_spawn_posix.py", line 47, in _launch
        reduction.dump(process_obj, fp)
      File "/Users/claudio/.pyenv/versions/3.9.10/lib/python3.9/multiprocessing/reduction.py", line 60, in dump
        ForkingPickler(file, protocol).dump(obj)
    AttributeError: Can't pickle local object 'CarriedState.empty_for_testing.<locals>.<lambda>'
    

    If I start the devnet to dump at every transaction, then as soon as I send a transaction, I get a 500 error for the transaction, and I the dump fails.

    Could it be some dependency missing? Or any mismatched python version?

    opened by clacladev 8
  • Improvement : add endpoint to return fork status

    Improvement : add endpoint to return fork status

    It could be useful to be able to request to devnet the fork info. For example, with a such command : curl -X GET http://127.0.0.1:5050/fork-status -H "Content-Type:application/json" and have in return some infos :

    • forked or not.
    • source network of the fork (alpha-goerli, alpha-goerli2, alpha-mainnet, or URL).
    Type: feature good first issue Techno: python Context: coupled Difficulty: intermediate 
    opened by PhilippeR26 7
  • Pending blocks generation

    Pending blocks generation

    Usage related changes

    • Granular block generation added via --blocks-on-demand mode and create_block_on_demand endpoint. The genesis block will be added normally.

    Development related changes

    • generate method in DevnetBlocks class was changed to accept a list of transactions

    Checklist:

    • [x] Applied formatting - ./scripts/format.sh
    • [x] No linter errors - ./scripts/lint.sh
    • [x] Performed code self-review
    • [x] Rebased to the last commit of the target branch (or merged it into my branch)
    • [x] Documented the changes
    • [x] Linked the issues which this PR resolves
    • [x] Updated the tests
    • [x] All tests are passing
    opened by mikiw 4
  • Check if POST /mint is using transaction version 0

    Check if POST /mint is using transaction version 0

    Describe the bug (observed vs expected behavior)

    Check if POST /mint is using transaction version 0. From Giwook: "every time that I send POST, it gives me the same tx hash as a response (with a different amount of new_balance) and this can make devnet.starkscan.io not working (https://discord.com/channels/793094838509764618/1027139462242783232/1056806339248132096)"

    Not reproducible on alpha-goerli

    • [ ] This issue is only present on Devnet and cannot be reproduced on alpha-goerli (check the box if true).

    To Reproduce Steps to reproduce the behavior:

    Devnet version

    • I am using Devnet version:
    • [ ] This happens with a dockerized Devnet (check the box if true).
    • This does not appear on the following Devnet version:

    System specifications

    • OS:
    • CPU:
    • Memory:
    • Python version:
    opened by mikiw 0
  • StarkScan compatibility

    StarkScan compatibility

    Copying from Discord

    Starkscan has deployed https://devnet.starkscan.co/ to explorer the devnet [...] you can neither scan ETH ERC20 contract, nor scan the 10 pre-deployed accounts. It could be useful if they are recorded in the first block, at launch. Not checked, but also probably the deployer.

    Type: bug Techno: python Context: coupled Difficulty: intermediate Duration: few days OnlyDust 
    opened by FabijanC 0
  • Fix hex string validation

    Fix hex string validation

    I did some testing and looks like custom_int is the wrong validation approach since only hex strings (with or without the leading 0x) are accepted by the sequencer API (no decimal strings as with custom_int). I don't know why it currently is like this in Devnet, there must have been a good reason for doing it this way.

    A question is whether this resolving this should be considered a breaking change or a bug fix (for semver increment).

    Also, in many places we simply do int(value, 16) which results in an Internal Server Error if it encounters an invalid value.

    Not sure if it's a good idea, but we could replace all those occurrences with a new validate_hex_string which raises a StarknetDevnetException (and we already have a global handler for StarkException (parent of StarknetDevnetException) so it would be nicely handled).

    Type: bug Type: refactor Techno: python Context: coupled Difficulty: easy Duration: under a day 
    opened by FabijanC 0
  • Create GUI for devnet

    Create GUI for devnet

    This is a placeholder issue for building a GUI for the devnet, similar to the one Ganache has: image

    Probably we would create a separate repo (like ganache has separate CLI and GUI repos)!

    The tasks upon opening the new repo can be divided into subtasks:

    1. Develop the GUI interface, make it available in devnet
    2. Support the accounts list
    3. Support the transactions list
    4. Console

    One related issue that potentially should be fixed on devnet is #147

    Type: feature help wanted OnlyDust 
    opened by ivpavici 0
Releases(v0.4.3)
  • v0.4.3(Dec 23, 2022)

    Usage related changes

    • Introduce the option to run with the Rust implementation of Cairo VM (docs)

    • Mock L1-L2 communication without running an L1 instance:

      • POST /postman/send_message_to_l2 - docs
      • POST /postman/consume_message_from_l2 - docs

    Development related changes

    • New CI/CD workflow - test_py_min_rust

    Merged PRs

    • Add L1 to L2 message mock endpoint by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/365
    • Introduce Rust VM option by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/372

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.4.2...v0.4.3

    Source code(tar.gz)
    Source code(zip)
  • v0.4.2(Dec 6, 2022)

    Usage related changes

    • Adapt to cairo-lang/StarkNet 0.10.3
      • Keep support for deploy txs - will remove in the next breaking version
    • Update predeployed account version to OZ 0.5.1
    • Support specifying chain ID (defaults to TESTNET):
      • starknet-devnet --chain-id [MAINNET | TESTNET | TESTNET2]
    • Add endpoint for forking info:
      • GET /fork_status
      • Returns {"url": ..., "block": ...} if forking
      • Returns {} if not forking

    Development related changes

    • Automatically deploy docs
    • Add import sorter
    • JSON-RPC typing fix

    Merged PRs

    • Add import sorter by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/353
    • Add fork_status endpoint by @ptisserand in https://github.com/Shard-Labs/starknet-devnet/pull/354
    • Stop supplying contract_address RPC Deploy by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/355
    • Add automatic docs deployment by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/357
    • Support specifying chain ID by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/358
    • Update to cairo-lang 0.10.3 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/360
    • Update OZ account to 0.5.1 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/362

    New Contributors

    • @ptisserand made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/354

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.4.1...v0.4.2

    Source code(tar.gz)
    Source code(zip)
  • v0.4.1(Nov 24, 2022)

    Usage related changes

    • Adapt to StarkNet / cairo-lang 0.10.2:
      • Add /estimate_fee_bulk support
    • JSON-RPC: fix pending block behavior

    Merged PRs

    • Adapt to StarkNet 0.10.2 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/345
    • Fix RPC pending block behaviour by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/349

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.4.0...v0.4.1

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Nov 17, 2022)

    Usage related changes

    • Introduce forking (docs):
      • starknet-devnet --fork-network <NAME|URL> --fork-block <NUMBER>
      • The fork uses testnet ID for all networks (should be configurable in the future)
    • Internal contracts now at the same addresses as on mainnet/testnet:
      • UDC: 0x41a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf
      • Fee token contract: 0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7
      • Breaking change
    • Lite mode no longer uses sequential deployment tx hashing
      • Performed slower deployment than regular mode
      • Suggestion: reconsider if your use-case benefits from lite mode
    • Fix missing L2 to L1 messages
    • Fix state dumping on exit
    • JSON-RPC:
      • Support v0.2.1
      • Fee estimation for declare txs
      • getEvents: fix continuation token when no events

    Development changes

    • Output of testing is clearer - suppressed deprecation warnings
    • Bodies of some tests extracted for easier testing of forking

    Merged PRs

    • RPC estimate_fee for Declare transactions by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/327
    • Fix for missing l2 to l1 messages by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/330
    • Bugifx for continuation_token when there are no events by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/331
    • Fix for custom_int's in feeder gateway by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/335
    • Support RPC v0.2.1 by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/332
    • Fix udc address by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/336
    • Fix dumping on exit by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/337
    • Introduce forking by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/328

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.3.5...v0.4.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.5(Oct 27, 2022)

    Usage related changes

    • Predeploy universal deployer contract (UDC): docs
    • Update predeployed account default implementation (OZ 0.5.0)
    • Fix error format:
      • Use the same scheme as alpha network (status_code -> code)
      • Fix get_transaction_trace response for rejected txs
    • Correctly store accounts deployed with DeployAccount tx
    • L1_HANDLER txs stored correctly
    • RPC improvements:
      • Adapt to JSON-RPC v0.2.0
      • Adapt to tx v1
      • Allow block ID to be pending (same behavior as latest)

    Development related changes

    • Update hardhat to 2.12.1
    • Change dev depencencies specification in pyproject.toml

    Merged PRs

    • Fix error format by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/312
    • Store contract on deploy_account tx by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/314
    • Allow RPC calls using block hash or number of latest block by @cptartur in https://github.com/Shard-Labs/starknet-devnet/pull/313
    • Adapt to json RPC v0.2.0 by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/292
    • Fix CI image_build by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/316
    • chore: starknet typo [skip ci] by @ivpavici in https://github.com/Shard-Labs/starknet-devnet/pull/320
    • Adapt to OZ 0.5.0 account by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/321
    • Update get_events.py by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/322
    • Store L1L2 handle transactions by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/319
    • Predeploy UDC by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/324

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.3.4...v0.3.5

    Source code(tar.gz)
    Source code(zip)
  • v0.3.4(Oct 19, 2022)

    Usage related changes

    • Support for Starknet 0.10.1
    • Predeployed accounts can now use a custom implementation; specified via --account-class (docs)
    • Docs now available at https://shard-labs.github.io/starknet-devnet/
    • RPC updates:
      • Support for starknet_getEvents
      • Updated starknet_getNonce and starknet_addInvokeTransaction RPC methods

    Development related changes

    • Refactored starknet_wrapper.py to reuse common tx functionality
    • Remove DummyExecutionInfo
    • In tests, no longer deploying via Starknet CLI, now combining custom HTTP call and gateway classes

    Merged PRs

    • GitHub pages by @Hug0x0 in https://github.com/Shard-Labs/starknet-devnet/pull/300
    • Synced docs and removed from readme.md [skip ci] by @ivpavici in https://github.com/Shard-Labs/starknet-devnet/pull/302
    • Typo rectified by @remedcu in https://github.com/Shard-Labs/starknet-devnet/pull/305
    • getNonce and addInvokeTransaction TxV1 on RPC v0.1 by @gregoryguillou in https://github.com/Shard-Labs/starknet-devnet/pull/303
    • Starknet get events rpc by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/295
    • Support predeploying custom accounts by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/294
    • Adapt to cairo-lang 0.10.1 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/307

    New Contributors

    • @ivpavici made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/302
    • @remedcu made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/305

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.3.3...v0.3.4

    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(Oct 6, 2022)

    Usage related changes

    • Increase of performance
      • improved deploy (~150% gain)
      • change of deepcopy in ContractClass (~300% gain)
    • New flag --hide-predeployed-accounts added

    Merged PRs

    • Hide predeployed accounts details by @LucasLvy in https://github.com/Shard-Labs/starknet-devnet/pull/277
    • Speed up deepcopy by @Solpatium in https://github.com/Shard-Labs/starknet-devnet/pull/293
    • Feat/faster deploy by @Solpatium in https://github.com/Shard-Labs/starknet-devnet/pull/299

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.3.2...v0.3.3

    Source code(tar.gz)
    Source code(zip)
  • v0.3.2(Sep 29, 2022)

    Usage related changes

    • Lite mode fix for transaction hashes
    • Support estimate_message_fee
    • Fix positional args for addInvokeTransaction (JSON-RPC)

    Development related changes

    • Parametrize test_deploy
    • Improved version checking in CI

    Merged PRs

    • Fixes transaction hash calculation problem in lite-mode by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/274
    • Fix lite mode import by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/279
    • Parametrize test_deploy by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/276
    • Update CI; fix seed logging by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/281
    • GitHub pages by @Hug0x0 in https://github.com/Shard-Labs/starknet-devnet/pull/265
    • Fix positional args for addInvokeTransaction by @gregoryguillou in https://github.com/Shard-Labs/starknet-devnet/pull/283
    • Update README.md - version release by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/289
    • Update readme by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/291
    • Support estimate_message_fee by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/287

    New Contributors

    • @Hug0x0 made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/265
    • @gregoryguillou made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/283

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.3.1...v0.3.2

    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Sep 15, 2022)

    Usage related changes

    • The predeployed/prefunded accounts adapted to the new tx version 1:
      • Using OZ 0.4.0b with a minor modification to allow tx simulation
    • Logging from dockerized Devnet enabled by default
      • By using PYTHONUNBUFFERED=1 as the default, no need to provide it manually
    • Fixed account replication seed being displayed as None
    • Allowing fee estimation for tx versions 0 and 1
    • Fixed state root being empty
    • JSON-RPC fixes:
      • Fixed call return value
      • Allowing requests without params where possible
      • Improved error handling; error codes more in line with specification

    Development related changes

    • In tests, replace using Starknet CLI wallet/account with predeployed OZ
    • Refactor test/account.py and test/util.py
    • Restore skipped tests

    Merged PRs

    • Fix unappropriate rpc call return value by @war-in in https://github.com/Shard-Labs/starknet-devnet/pull/261
    • Rpc/constructor calldata by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/262
    • Correct gateway error message when contract not found by @war-in in https://github.com/Shard-Labs/starknet-devnet/pull/263
    • Fix seed being None by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/264
    • Allow fee estimation for version 0 and 1 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/268
    • Fix rpc default param and error handling by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/244
    • Fix state root being empty by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/270
    • PYTHONUNBUFFERED=1 as default behavior by @LucasLvy in https://github.com/Shard-Labs/starknet-devnet/pull/271
    • Use forked OpenZeppelin account 0.4.0b by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/272

    New Contributors

    • @war-in made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/261

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.3.0...v0.3.1

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Sep 7, 2022)

    Usage related changes

    • Partially adapted to Starknet / cairo-lang 0.10.0
      • Dropped support for Python 3.7
      • Tested with Starknet CLI account:
        • Predeployed OZ accounts not guaranteed to work
      • Block state root not calculated
      • Transactions with version 1 not guaranteed to work
      • API changes:
        • Supported: get_nonce and simulate_transaction
        • Not yet supported: estimate_message_fee
      • RPC method starknet_getStateUpdate not guaranteed to work
    • --lite-mode only affects block hash calculation (uses numbering instead of actual hash)
    • Removed result from invoke response.
    • Introduced modifying server timeout with --timeout parameter (can help with big contracts or slower machines)

    Development related changes

    • Skip incompatible tests
    • Add formatting with black (./scripts/format.sh)

    Merged PRs

    • Add formatting by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/237
    • Parametrize block number test by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/238
    • 248 lite mode by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/249
    • Unification of test_general_workflow test by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/255
    • Add timeout argument to Devnet by @Nathan-SL in https://github.com/Shard-Labs/starknet-devnet/pull/256
    • Adapt to cairo-lang 0.10.0 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/246

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.11...v0.3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.2.11(Aug 26, 2022)

    Usage related changes

    • Now supporting JSON-RPC API v0.1.0
      • except methods starknet_protocolVersion, starknet_getEvents and starknet_getNonce
    • Updated predeployed accounts implementation to OpenZeppelin v0.3.1 (previously was OpenZeppelin v0.2.1)
    • Now every commit to master is available as a Docker image:
      • shardlabs/starknet-devnet:<COMMIT_HASH>
      • last commit also available as shardlabs/starknet-devnet:next

    Development related changes

    • Refactored empty block creation
    • Docker image building done in parallel

    Merged PRs

    • Support for RPC API Specification v0.1.0 by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/220
    • Update account contract implementation to OpenZeppelin 0.3.1 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/229
    • Build docker images in parallel with testing, push later by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/230
    • Update of readme by @mikiw in https://github.com/Shard-Labs/starknet-devnet/pull/235
    • Refactor/1 empty block creation by @internnos in https://github.com/Shard-Labs/starknet-devnet/pull/233

    New Contributors

    • @mikiw made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/235
    • @internnos made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/233

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.10...v0.2.11

    Source code(tar.gz)
    Source code(zip)
  • v0.2.10(Aug 16, 2022)

    Usage related changes

    • Fixed dump/load and restart functionalities.
    • Now waiting for dump to finish (letting it run in parallel was causing potential read-write race conditions)
    • Improved CLI parameter handling

    Development related changes

    • Fix not running of all tests in CI/CD
    • Improved testing

    Merged PRs

    • Enable shopt globstar in CI/CD to run tests in subdirectories by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/217
    • Isolate devnet config, move parsing, dump synchronously by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/219
    • Improve restart tests by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/222
    • Improve non-negative action by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/224

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.9...v0.2.10

    Source code(tar.gz)
    Source code(zip)
  • v0.2.9(Aug 8, 2022)

    Usage related changes

    • Fixed handling of running requests exchanging big payloads, e.g. get_code
    • Fixed off-by-one offset in get_block_number syscall response

    Development related changes

    • Using gunicorn instead of meinheld (abandoned, lacking documentation)

    What's Changed

    • Replace meinheld with gunicorn by @Solpatium in https://github.com/Shard-Labs/starknet-devnet/pull/207
    • Fix block number off-by-one by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/214

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.8...v0.2.9

    Source code(tar.gz)
    Source code(zip)
  • v0.2.8(Aug 4, 2022)

    Usage related changes

    • Fixed fee estimation weights - should result in estimations more similar to those on alpha-goerli
    • Fixed block_hash property of get_transaction_status response to be hex string
    • Fixed get_transaction_trace for declare transactions
    • Block improvements:
      • Fixed response of get_block_number cairo syscall
      • Now shipping with a genesis block (block number 0)
      • Introduced an endpoint for generating an empty block: POST /create_block
    • Slightly improved performance

    Development related changes

    • Refactored Account and FeeToken
    • Added parallel testing script
    • Replaced unnecessary async with sync methods

    Merged PRs

    • Fix/get transaction status by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/201
    • Fix step weight by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/206
    • feat: test script [skip ci] by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/205
    • Fix: Fee token and Account improvements by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/203
    • genesis block, create block endpoint, performace optimizations, initial boot optimization, fix 188 by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/189
    • Fix block number in block info by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/212
    • Fix get_trace for declare transactions by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/209

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.7...v0.2.8

    Source code(tar.gz)
    Source code(zip)
  • v0.2.7(Aug 2, 2022)

    Usage related changes

    • Flushing stdout
    • Introduced endpoint for fetching fee token info (GET /fee_token)
    • Fixed balance checking and minting after loading dumped Devnet
    • RPC updates:
      • Fixed declare and deploy parameters (hexing ints)
      • Supported RPC write API (invoke, deploy, declare)

    Development related changes

    • Refactored FeeToken

    Merged PRs

    • Support JSON-RPC write API by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/186
    • Flush all prints in stdout by @Nathan-SL in https://github.com/Shard-Labs/starknet-devnet/pull/192
    • Add endpoint to get fee token address by @amanusk in https://github.com/Shard-Labs/starknet-devnet/pull/193
    • Fix rpc declare and deploy parameters by @cptartur in https://github.com/Shard-Labs/starknet-devnet/pull/197
    • Fix/load by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/202

    New Contributors

    • @amanusk made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/193

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.6...v0.2.7

    Source code(tar.gz)
    Source code(zip)
  • v0.2.6(Jul 20, 2022)

    Usage related changes

    • Adapted to cairo-lang and Starknet 0.9.1
    • Added path check on when dumping
    • Using OpenZeppelin 0.2.1 for predeployed accounts
    • Accounts predeployed with --seed now set not to change with new Devnet releases
    • Token contract:
      • Address set not to change with new Devnet releases
      • Token symbol changed to ETH
    • Supported non-decimal float as amount of minting (like 1e21 or 1000.0)
    • Added support for geth --dev being used as the L1 of L1<>L2 Postman communication
    • Introduced the /api endpoint which returns a map of all URL endpoints provided by Devnet
    • Introduced Docker image tag shardlabs/starknet-devnet:<VERSION>-seed0 which predeploys accounts with --seed 0

    Development related changes

    • Refactored tests to reduce file size
    • Predeploy 0 accounts in tests
    • Support local parallel testing (poetry run pytest -n auto --dist loadscope test/)

    Merged PRs

    • Zero pre deployed account as default in tests by @Nathan-SL in https://github.com/Shard-Labs/starknet-devnet/pull/157
    • ⚡️ Implement xdist for parallel testing by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/165
    • support non-decimal float ex. scientific 1000e18 by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/171
    • /api endpoint to get existing endpoints by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/166
    • Make fee token address fixed and symbol ETH, recompiled contract by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/176
    • Refactor JSON-RPC tests by @drknzz in https://github.com/Shard-Labs/starknet-devnet/pull/177
    • Fix linting by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/179
    • Fix geth --dev support in postman by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/180
    • Add dump path check by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/182
    • Predeploy OpenZeppelin account v0.2.1 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/187
    • Build and push docker image with --seed 0 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/184
    • Adapt to starknet/cairo-lang 0.9.1 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/181

    New Contributors

    • @drknzz made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/177

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.5...v0.2.6

    Source code(tar.gz)
    Source code(zip)
  • v0.2.5(Jul 5, 2022)

    Usage related changes

    • Introduced an endpoint for fetching predeployed account information: docs
    • Introduced local faucet for adding funds (minting tokens) to accounts: docs
    • Partial update to JSON RPC API v0.15.0

    Development related changes

    • Fixed test splitting
    • Introduced debug mode script
    • Improved GitHub PR and bug report templates.

    Merged PRs

    • Feature/predeployed accounts endpoint by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/138
    • OpenZeppelin HASH changed fix on compute_class_hash by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/139
    • 💚 ⚡️ Fix circleci test split by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/140
    • Partially update rpc endpoint to version 0.15.0 by @cptartur in https://github.com/Shard-Labs/starknet-devnet/pull/142
    • Feature/erc20 mintable local faucet by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/143
    • Feature/fee token name by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/148
    • Mint improve by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/149

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.4...v0.2.5

    Source code(tar.gz)
    Source code(zip)
  • v0.2.4(Jun 22, 2022)

    Usage related changes

    • Fixed deployment done with the deploy syscall.
    • Added an endpoint for loading dumped Devnet instances: /load.
    • Updated the OpenZeppelin implementation used by predeployed accounts.
    • Added support for JSON-RPC calls: docs.
    • Redeploying the same contract with the same salt is reintroduced (it was removed, but shouldn't have been as this is a feature of alpha-goerli).
    • The crypto-cpp-py dependency was updated to have wheels for more macos versions.

    Development related changes

    • Improved dev docs.
    • Added a script for running in debug mode.
    • Improved background running of Devnet in tests (replaced fixed-time sleeping with sleep-checking in a loop).

    Merged PRs

    • Fix deploy through syscall by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/126
    • Feat/rpc support by @cptartur in https://github.com/Shard-Labs/starknet-devnet/pull/101
    • Add more macos wheels for crypto-cpp by @THenry14 in https://github.com/Shard-Labs/starknet-devnet/pull/132
    • Add RPC docs by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/131
    • Allow redeploying with same salt by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/133
    • feature: added /load endpoint to the REST API by @RedFox20 in https://github.com/Shard-Labs/starknet-devnet/pull/134
    • create script for easy run live code reload, update readme by @tabaktoni in https://github.com/Shard-Labs/starknet-devnet/pull/136
    • Improve background running of Devnet in tests by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/135
    • Update oz account by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/137

    New Contributors

    • @cptartur made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/101
    • @RedFox20 made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/134
    • @tabaktoni made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/136

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.3...v0.2.4

    Source code(tar.gz)
    Source code(zip)
  • v0.2.3(Jun 9, 2022)

    Usage related changes

    • Supported starknet/cairo-lang v0.9.0 features:
      • declare - Contract class declaration
      • get_class_hash_at
      • get_class_by_hash
    • Now predeploying a set of prefunded accounts:
    • Transactions with max_fee set to 0 are still allowed.
    • Using C++ implementation of pedersen hash for better performance.
    • Fixed events property of transaction receipts (was missing when used through accounts).

    Development related changes

    • Using cloudpickle instead of dill for serialization (dill started throwing this error: https://github.com/uqfoundation/dill/issues/332).
    • Improved developer docs.

    Merged PRs

    • Patch pedersen hash with cpp native implementation by @THenry14 in https://github.com/Shard-Labs/starknet-devnet/pull/110
    • Fix state update by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/112
    • Update crypto-cpp-pym to newest version by @THenry14 in https://github.com/Shard-Labs/starknet-devnet/pull/113
    • Predeploy token fee and account contracts by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/115
    • Add m1 mac crypto-cpp-py wheels to lock file by @THenry14 in https://github.com/Shard-Labs/starknet-devnet/pull/116
    • Fix events by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/118
    • Adapt to cairo-lang 0.9.0 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/120
    • Add 0.9.0 endpoints by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/121
    • Add class declaration by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/124
    • Release v0.2.3 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/125

    New Contributors

    • @THenry14 made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/110

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.2...v0.2.3

    Source code(tar.gz)
    Source code(zip)
  • v0.2.2(May 26, 2022)

    Usage related changes

    • Introduce timestamp management endpoints (for setting time and increasing time offset: read more)
    • Fix timestamp support in lite-mode
    • Include max_fee in get_transaction response
    • Include failure reason in tx_status and get_transaction response.

    Development related changes

    • Use call_raw for making calls (introduced with cairo-lang 0.8.2)
    • Improve typing by relying on starknet's types
    • Improve testing (test with min and max python version)

    Merged PRs

    • Call raw by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/99
    • Timestamp management by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/96
    • Transaction max fee by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/102
    • Fix failure reason in transaction and tx_status by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/103
    • Use types by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/104
    • Fix --lite-mode-block-hash behavior by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/105
    • Fix type of address param in contracts methods by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/107
    • Bump Python max version by @ca11ab1e in https://github.com/Shard-Labs/starknet-devnet/pull/108
    • Update dependencies by @ca11ab1e in https://github.com/Shard-Labs/starknet-devnet/pull/109

    New Contributors

    • @ca11ab1e made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/108

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.1...v0.2.2

    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(May 11, 2022)

    Usage related changes

    • Adapted to cairo-lang 0.8.2:
      • Pending block support will be added in future versions.
    • Introduced speed-up troubleshooting

    Merged PRs

    • Add speed-up troubleshooting [skip ci] by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/97
    • Cairo 0.8.2 by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/98

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.2.0...v0.2.1

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(May 5, 2022)

    Usage related changes

    • Changed default host and port to 127.0.0.1:5050
      • This is a BREAKING change
      • Rationale: issues with docker and mac integration
    • Reduced deployment time
    • Introduced ARM Docker images:
      • Append -arm to image tag to use the ARM counterpart (e.g. shardlabs/starknet-devnet:0.2.0-arm)

    Development related changes

    • Fixed test splitting
    • Reduced deployment time by skipping address precalculation.

    What's Changed

    • Build docker image for arm by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/90
    • Fix test splitting by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/91
    • Skip address precalculation on successful deployment by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/92
    • Change default host to 127.0.0.1 and port to 5050 by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/76

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.23...v0.2.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.23(Apr 21, 2022)

    Usage related changes

    • Enable fee estimation through plugin (without requiring providing special parameters, like transactionVersion).
    • Add actual_fee to get_transaction_receipt response.

    Developer related changes

    • Use call_internal_tx for fee estimation
    • Fix account tests

    PRs merged

    • Actual fee by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/89
    • Fix estimate fee by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/88

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.22...v0.1.23

    Source code(tar.gz)
    Source code(zip)
  • v0.1.22(Apr 20, 2022)

    User related changes

    • Fixed interaction of Starknet CLI and hardhat plugin when they are using the --wallet functionality.
    • Fixed syscall get_block_timestamp

    Developer related changes

    • Used code from cairo-lang that handles contract function calling - temporary solution.
    • Improved testing (timestamps, tx_version).
    • Added CircleCI step which checks devnet versioning consisntency across the project.
    • Changed the way error messages are handled (jsonify).

    PRs merged

    • JSON Error response by @Nathan-SL in https://github.com/Shard-Labs/starknet-devnet/pull/81
    • Contract call by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/84
    • Fix block timestamp by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/85
    • Add versioning consistency check by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/87
    • Test tx version by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/86

    New Contributors

    • @Nathan-SL made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/81

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.21...v0.1.22

    Source code(tar.gz)
    Source code(zip)
  • v0.1.21(Apr 13, 2022)

    Usage related changes

    Dev related changes

    • Update dependencies (Use ~ instead of ^)
    • Introduce PR template

    Merged PRs

    • Introduce PR template by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/77
    • Fix restart by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/75
    • Update README.md by @ayushm2003 in https://github.com/Shard-Labs/starknet-devnet/pull/82
    • Fix Postman by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/74
    • Enable using default_entrypoint by switching to invoke_raw by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/78
    • Release 0.1.21 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/83

    New Contributors

    • @ayushm2003 made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/82

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.20...v0.1.21

    Source code(tar.gz)
    Source code(zip)
  • v0.1.20(Apr 11, 2022)

    Usage related changes

    • Support cairo-lang 0.8.1.
    • Performance related optimizations:
      • Use a faster server container.
      • Introduce --lite-mode (skips block and tx hash calculation).

    Development related changes

    • Refactor to use blueprints and global state.
    • Make devnet development not dependent on starknet-hardhat-plugin.
    • Parallelize CI/CD pipeline.

    Merged PRs

    • Devnet optimizations by @dribeiro-ShardLabs in https://github.com/Shard-Labs/starknet-devnet/pull/61
    • Restart by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/64
    • Ci improvements by @dribeiro-ShardLabs in https://github.com/Shard-Labs/starknet-devnet/pull/65
    • Catch KeyboardInterrupt + log on startup by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/66
    • Changed postman to use cairo-lang packages by @dribeiro-ShardLabs in https://github.com/Shard-Labs/starknet-devnet/pull/67
    • Detach plugin by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/69
    • Cairo lang 0.8.1 by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/70
    • Fix poetry lock by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/71
    • Test account fees by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/73

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.19...v0.1.20

    Source code(tar.gz)
    Source code(zip)
  • v0.1.19(Mar 24, 2022)

    Usage changes

    • Reduce Docker image size (635 MB -> 232 MB)
    • Support cairo-lang 0.8.0:
      • Add estimate_fee endpoint (currently not able to charge accounts with actual fees).
      • Add get_transaction_trace endpoint.

    Dev changes

    • Optimized Dockerfile.
    • Rely on pyenv for Python versioning.
    • Use newer CircleCI VM.

    Merged PRs

    • Improve Docker container size by @LucasLvy in https://github.com/Shard-Labs/starknet-devnet/pull/53
    • Cairo lang 0.8.0 by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/56
    • Update CircleCI virtual machine by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/57
    • Use Python 3.8 through pyenv by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/59
    • Get transaction trace by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/58
    • Fix Dockerfile by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/63
    • Estimate fee by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/62

    New Contributors

    • @LucasLvy made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/53

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.18...v0.1.19

    Source code(tar.gz)
    Source code(zip)
  • v0.1.18(Mar 9, 2022)

    Usage changes

    • Support state dumping/loading on macOS.
    • Support starknet get_state_update (command that was introduced with cairo-lang 0.7.1).

    Dev specific changes

    • Improve testing.

    PRs merged

    • Use fork for starting parallel processes by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/48
    • Get state update by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/49
    • Fix storage updates by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/50

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.17...v0.1.18

    Source code(tar.gz)
    Source code(zip)
  • v0.1.17(Feb 28, 2022)

    Usage changes

    • Enable Devnet saving and loading to save setup time: docs.
    • Support starknet get_full_contract (get_state_update still pending).
    • Improve L1-L2 communication

    Dev specific changes

    • Improved testing
    • Linter config

    PRs merged

    • Enable state dumping and loading by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/40
    • Get full contract by @badurinantun in https://github.com/Shard-Labs/starknet-devnet/pull/39
    • L1 L2 improvements by @dribeiro-ShardLabs in https://github.com/Shard-Labs/starknet-devnet/pull/41
    • Changed hexing of flush response values by @dribeiro-ShardLabs in https://github.com/Shard-Labs/starknet-devnet/pull/42
    • Fix flush output by @dribeiro-ShardLabs in https://github.com/Shard-Labs/starknet-devnet/pull/43
    • Transf payload to hex by @dribeiro-ShardLabs in https://github.com/Shard-Labs/starknet-devnet/pull/44

    New Contributors

    • @badurinantun made their first contribution in https://github.com/Shard-Labs/starknet-devnet/pull/39

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.16...v0.1.17

    Source code(tar.gz)
    Source code(zip)
  • v0.1.16(Feb 18, 2022)

    Usage

    • Support cairo-lang version 0.7.1.
    • Endpoints for new parts of the API (get_full_contract and get_state_update) not yet introduced

    Dev

    • Made necessary internal adaptations due to breaking changes in cairo-lang 0.7.1
    • test_cli.py expanded.

    Merged PRs

    • Update cairo-lang to v0.7.1 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/37
    • Adapt to breaking changes from cairo-lang 0.7.1 by @FabijanC in https://github.com/Shard-Labs/starknet-devnet/pull/38

    Full Changelog: https://github.com/Shard-Labs/starknet-devnet/compare/v0.1.15...v0.1.16

    Source code(tar.gz)
    Source code(zip)
Owner
Shard Labs
Solving real-world problems using blockchain technology
Shard Labs
A Microsub server built with Python Flask and SQLite.

Microsub Server This repository contains the code that powers my personal Microsub server. Microsub is an IndieWeb specification currently in developm

jamesg 8 Oct 26, 2022
A flask extension using pyexcel to read, manipulate and write data in different excel formats: csv, ods, xls, xlsx and xlsm.

Flask-Excel - Let you focus on data, instead of file formats Support the project If your company has embedded pyexcel and its components into a revenu

247 Dec 27, 2022
flask-reactize is a boostrap to serve any React JS application via a Python back-end, using Flask as web framework.

flask-reactize Purpose Developing a ReactJS application requires to use nodejs as back end server. What if you want to consume external APIs: how are

Julien Chomarat 4 Jan 11, 2022
Curso Desenvolvimento avançado Python com Flask e REST API

Curso Desenvolvimento avançado Python com Flask e REST API Curso da Digital Innovation One Professor: Rafael Galleani Conteudo do curso Introdução ao

Elizeu Barbosa Abreu 1 Nov 14, 2021
A service made with Flask and Python to help you find the weather of your favorite cities.

Weather-App A service made with Flask and Python to help you find the weather of your favorite cities. Features Backend using Flask and Jinja Weather

Cauã Rinaldi 1 Nov 17, 2022
OpenTracing instrumentation for the Flask microframework

Flask-OpenTracing This package enables distributed tracing in Flask applications via The OpenTracing Project. Once a production system contends with r

3rd-Party OpenTracing API Contributions 133 Dec 19, 2022
A simple application builder. Made with python.

Python Flask Server Template Check the Github Repository for updates Flask is an application builder. It is very common in Python but can also be used

1 Jan 09, 2022
A simple web application built using python flask. It can be used to scan SMEVai accounts for broken pages.

smescan A simple web application built using python flask. It can be used to scan SMEVai accounts for broken pages. Development Process Step 0: Clone

Abu Hurayra 1 Jan 30, 2022
Regex Converter for Flask URL Routes

Flask-Reggie Enable Regex Routes within Flask Installation pip install flask-reggie Configuration To enable regex routes within your application from

Rhys Elsmore 48 Mar 07, 2022
An Instagram Clone using Flask, Python, Redux, Thunk, React

An Instagram Clone using Flask, Python, Redux, Thunk, React

1 Dec 09, 2021
A Flask wrapper of Starknet state. Similar in purpose to Ganache.

Introduction A Flask wrapper of Starknet state. Similar in purpose to Ganache. Aims to mimic Starknet's Alpha testnet, but with simplified functionali

Shard Labs 159 Jan 04, 2023
A fairly common feature in web applications to have links that open a popover when hovered

Add Popovers to Links in Flask App It is a fairly common feature in web applications to have links that open a popover when hovered. Twitter does this

Gitau Harrison 1 Jan 22, 2022
Burp-UI is a web-ui for burp backup written in python with Flask and jQuery/Bootstrap

Burp-UI Contents Introduction Screenshots Demo What's that? Who are you? Documentation FAQ Community Notes See also Licenses Thanks Introduction Scree

Benjamin 84 Dec 20, 2022
Flask Sitemapper is a small Python 3 package that generates XML sitemaps for Flask applications.

Flask Sitemapper Flask Sitemapper is a small Python 3 package that generates XML sitemaps for Flask applications. This allows you to create a nice and

6 Jan 06, 2023
Example Flask application illustrating some of my common practices

Overholt Overholt is an example Flask application illustrating some of my common practices Development Environment At the bare minimum you'll need the

Matt Wright 1.6k Dec 15, 2022
REST API with mongoDB and Flask.

Flask REST API with mongoDB py 3.10 First, to install all dependencies: python -m pip install -r requirements.txt Second, into the ./src/ folder, cop

Luis Quiñones Requelme 3 Mar 05, 2022
Flask 文档中文翻译

Flask 中文文档 这里是 Flask 文档中文翻译项目,欢迎参与! 在开始翻译之前,请务必阅读下面的 Contributing Guide 了解贡献流程,然后阅读这个 Issue 了解翻译要求,在这个 Discussion 投票选出你认为合适的翻译词汇,在这个 Discussion 投票选出你喜

Grey Li 93 Nov 28, 2022
Flask Web DRY full-stack framework by Problem Fighter

In the name of God, the Most Gracious, the Most Merciful. PF-Flask-Web Documentation Install and update using pip: pip install -U PF-Flask-Web Please

Problem Fighter 2 Jan 20, 2022
Parallel TTS web demo based on Flask + Vue (Vuetify).

Parallel TTS web demo based on Flask + Vue (Vuetify).

Atomicoo 34 Dec 16, 2022
Intranet de la Rez Flask web app

IntraRez Application Flask de l'Intranet de la Rez. Exigences Python : Probablement = 3.10 à terme, pour l'instant = 3.8 suffit ; Autres packages Li

3 Jul 03, 2022