Starknet Devnet

New version of starknet-devnet (v0.2.5) has been released:

  • 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
20 Likes

New version of starknet-devnet (v0.2.6) has been released:

  • Adapted to cairo-lang and Starknet 0.9.1
  • Added path check on 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 (e.g. 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
21 Likes

New version of starknet-devnet (v0.2.7) has been released:

  • 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)
20 Likes

New version of starknet-devnet (v0.2.8) has been released:

  • 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 (replaced unnecessary async with sync methods)
22 Likes

New version of starknet-devnet (v0.2.9) has been released:

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

New version of starknet-devnet (v0.2.10) has been released:

  • 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
18 Likes

New version of starknet-devnet (v0.2.11) has been released:

  • 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
20 Likes

New version of starknet-devnet (v0.3.0) has been released:

  • 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)
18 Likes

New version of starknet-devnet (v0.3.1) has been released:

  • 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
20 Likes

New version of starknet-devnet (v0.3.2) has been released:

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

New version of starknet-devnet (v0.3.3) has been released:

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

NEW VERSION of starknet-devnet (v0.3.4) has been released:

  • Support for Starknet 0.10.1
  • Predeployed accounts can now use a custom implementation; specified via --account-class (docs)
  • Docs now available at Hello from StarkNet Devnet | StarkNet Devnet
  • RPC updates:
    • Support for starknet_getEvents
    • Updated starknet_getNonce and starknet_addInvokeTransaction RPC methods
18 Likes

NEW VERSION of starknet-devnet (v0.3.5) has been released:

  • 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)
14 Likes

wow it is so good my friend

15 Likes

What unique contribution(s) STARKNET is bringing to crypto community that’s necessitated it’s existence?

15 Likes

New breaking version of starknet-devnet (v0.4.0) has been released:

  • 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
18 Likes

Regarding the forking mechanism.
I’d be interested in understanding more how it works.
When providing the official URL such as:
https://alpha4.starknet.io
It does not pull the entire StarkNet state but rather every time I perform a call/transaction a “static call” will be made to the provided endpoint.
So if I run my unit tests, I’ll be spamming the living s*it out of the sequencer endpoint, no?
So to ensure that everything runs as quick as possible I would want to query my local pathfinder node instead of one of the official endpoints, right?

17 Likes

New version of starknet-devnet (v0.4.1) has been released:

  • Use StarkNet / cairo-lang 0.10.2:
    • Add /estimate_fee_bulk support
  • JSON-RPC: fix pending block behavior
14 Likes

@FeedTheFed What do you say about @TotalPizza’s concern?

16 Likes

…I mean thinking about it a bit more, spamming is not necessarily the issue. That’s something starkware has to deal with anyway. The issue for devs is probably more that using forking with goerli takes too long.
Also I should probably make use of the feature more thoroughly before commenting more on it :sweat_smile:

19 Likes