Releases: 0xSpaceShard/starknet-devnet-rs
v0.2.2
Skipped version notice
There were problems with publishing v0.2.1, so that version is skipped.
Usage related changes
-
Introduce a parameter for controlling l1-l2 restarting by @FabijanC in #609. Documented in https://0xspaceshard.github.io/starknet-devnet-rs/docs/dump-load-restart#restarting-and-l1-l2-messaging
-
Bugfix: return RPC error with code 51 when trying to redeclare contract by @marioiordanov in #636
-
Documentation improvements by @FabijanC and @ptisserand :
Development related changes
Release related PRs
- Release v0.2.1 with minor dependency maintenance by @FabijanC in #637
- Fix publishing to crates.io; Release 0.2.2 by @marioiordanov in #638
New Contributors
- @ptisserand made their first contribution in #622
Full Changelog: v0.2.0...v0.2.2
v0.2.0
Blockifier stable release
The plan was to make a stable release once Blockifier receives a stable release. But since that is not happening, here's a new Devnet release!
Breaking changes since v0.1.2
- Requiring Rust v1.76
- Changed dumping format, though on the API side nothing is changed
- CLI changes:
--gas-price-strk
->--gas-price-fri
--data-gas-price-strk
->--data-gas-price-fri
- JSON-RPC changes:
gas_price_strk
->gas_price_fri
data_gas_price_strk
->data_gas_price_fri
- Block abortion supports any kind of ID, so:
starting_block_hash
->starting_block_id
- In
--block-generation-on <PERIOD>
mode, the first block after the genesis block is no longer generated immediately, but after the first period.
All of the above listed breaking changes have already been covered in -rc
release notes (between 0.1.2 and 0.2.0). Those release notes also include non-breaking changes.
Changes since v0.2.0-rc.3
- Fix optional request body; fix payload size check by @FabijanC in #599
- Fix pending block timestamp by @FabijanC in #601
- Fix only-query behavior in simulation by @FabijanC in #600
- Fix L1-L2 message order by @FabijanC in #597
- Upgrade starknet-rs to 0.12.0 by @FabijanC in #604
- Address Dependabot security alerts by @FabijanC in #608
- Dump devnet_postmanLoad requests by @FabijanC in #606
- Release v0.2.0 by @FabijanC in #610
Full Changelog: v0.2.0-rc.3...v0.2.0
v0.2.0-rc.3
Changes since v0.2.0-rc.2
- Adapt to Starknet 0.13.2.1 (blockifier 0.8.0-rc.3); Release Devnet v0.2.0-rc.3 by @FabijanC in #596
- Devnet JSON-RPC specification available here by @marioiordanov in #581
- Forking bugfixes:
- Replaced classes by @marioiordanov in #588
- Download contract classes for predeployed ERC20 tokens when in forking mode by @marioiordanov in #590
- Documentation improvements:
- Dev changes:
Full Changelog: v0.2.0-rc.2...v0.2.0-rc.3
v0.2.0-rc.2
Changes since v0.2.0-rc.1
- Windows support proposal by @mikiw in #565
- Gas config endpoint by @mikiw in #551
- Renamed STRK to FRI by @marioiordanov in #570
- Refactor loading by @FabijanC in #571
- Upgraded USC and Cairo-related dependencies to latest versions by @integraledelebesgue in #576
- Refactoring of unwraps and expects by @marioiordanov in #573
- Fix Cargo.lock; verify in CI by @FabijanC in #578
- Restrictive mode by @marioiordanov in #558
- Improve docs (links, shield, examples) by @FabijanC in #579
- Simplify and fix dumping by @FabijanC in #572
- Comment Removal by @marioiordanov in #582
- Update to blockifier 0.8.0-rc.2, cairo-vm 1.0.1 by @FabijanC in #580
- v0.2.0-rc.2 by @marioiordanov in #583
New Contributors
- @integraledelebesgue made their first contribution in #576
Full Changelog: v0.2.0-rc.1...v0.2.0-rc.2
v0.2.0-rc.1
Changes since v0.2.0-rc.0
- Using blockifier 0.8.0-rc.1
- Minor documentation fixes
Merged PRs
- chore: fix some comments by @tongjicoder in #566
- Release v0.2.0-rc.1 by @FabijanC in #564
New Contributors
- @tongjicoder made their first contribution in #566
Full Changelog: v0.2.0-rc.0...v0.2.0-rc.1
v0.2.0-rc.0
Usage related changes
Breaking changes
- If installing Devnet from source or via
cargo install
, Rust version 1.76 is required. - When aborting, blocks can now be specified via any kind of block ID. The specifier is thus changed from
starting_block_hash
tostarting_block_id
. - In
--block-generation-on <PERIOD>
mode, the first block after the genesis block is no longer generated immediately, but after the first period.
New features
- Adapted to the pre-release version of Starknet 0.13.2.
- Improved chain ID handling:
- When forking, the chain ID is automatically set to the origin value.
- The chain ID CLI parameter now supports custom values:
--chain-id <STRING>
- Requests which don't require parameters in their JSON bodies now support omitting the body completely.
- Improved dumping UX:
- Even though dumping on HTTP request was already possible, it required starting Devnet with unintuitive flags. From now on, if you want to dump on-request only, specify
--dump-on request
. - If dumping path not provided, the dump is included in the response body. If using
curl
, you can now easily dump to STDOUT and redirect.
- Even though dumping on HTTP request was already possible, it required starting Devnet with unintuitive flags. From now on, if you want to dump on-request only, specify
Bugfixes
- Fixed loading of dumped Devnet on request.
- Checking casm hash validity on declaration transactions.
- Fixed L2 gas in V3 transactions.
- Supporting minting of large amounts (including scientific notation).
- Execution on the latest block is specifiable via any equivalent block ID, not just
"latest"
. - Fixed values of storage variables of predeployed ERC20 tokens.
- Origin-fork communication logging level changed from
INFO
toDEBUG
, not to mislead users.
Development related changes
- Using self-hosted runner in CI + custom caching
- Fix nightly version used in tests
Merged PRs
- Fix dump loading on request by @FabijanC in #527
- L2 gas fix tx v3 by @mikiw in #528
- Support minting with amount using scientific notation by @FabijanC in #536
- Fix naming: Replace stopImpersonating with stopImpersonate by @FabijanC in #539
- Change log level of origin-fork communication: info->debug by @FabijanC in #537
- Execution on the latest block should be specifiable by number by @mikiw in #538
- docs: feature list in README.md [skip ci] by @ivpavici in #545
- Improve dumping UX by @3alpha in #531
- Fix predeployed ERC20 storage by @FabijanC in #546
- Improve UX by allowing no params for JSON-RPC requests by @marioiordanov in #543
- Fix nightly version in CI by @marioiordanov in #548
- Check casm hash on declaration by @FabijanC in #547
- Abort blocks by ID by @3alpha in #541
- Move CI build and test step to self-hosted runner by @3alpha in #554
- Detect chain id when forking by @marioiordanov in #549
- Add documentation formatting check to CI by @FabijanC in #553
- Block interval improvment by @mikiw in #555
- Fix L1-L2 documentation mistakes by @kkawula in #556
- Add CI cache on self-hosted runner by @3alpha in #559
- Adapt to Starknet 0.13.2 (blockifier 0.8.0-rc.0) by @FabijanC in #557
- Prerelease v0.2.0-rc.0 by @FabijanC in #563
New Contributors
Full Changelog: v0.1.2...v0.2.0-rc.0
v0.1.2
Usage related changes
--state-archive-capacity full
using less memory- Used to be a quadratic growth with each new transaction; now significantly reduced
- Fix response of
getPredeployedAccounts
whenwith_balance
set totrue
:
{
...,
"balance": {
"wei": { "amount": "1", "unit": "WEI" },
"fri": { "amount": "1", "unit": "FRI" }
}
}
{
...,
"balance": {
"eth": { "amount": "1", "unit": "WEI" },
"strk": { "amount": "1", "unit": "FRI" }
}
}
Development related changes
- Update dependencies
- Fix https forking test
- Refactor class storage
Merged PRs
- Introduce global RPC class storage by @FabijanC in #499
- rename to eth and strk by @mikiw in #522
- Use https instead of http by @mikiw in #524
- Update cargo, pip, npm dependencies by @FabijanC in #516
- Release 0.1.2 by @FabijanC in #525
Full Changelog: v0.1.1...v0.1.2
v0.1.1
Usage related changes
- v0.1.0 skipped
- API unification. Devnet-specific functionality now available via JSON-RPC:
- E.g.
POST /mint
is nowPOST /rpc { "method": "devnet_mint", ... }
- Methods are documented on the documentation pages related to their respective use cases.
- The long term plan is to remove the old endpoints and keep only JSON-RPC support
- E.g.
- Block generation changes:
- Dropped:
--blocks-on-demand
- Introduced
--block-generation-on <transaction|demand|<SECONDS>>
- The last one is a new mode and introduces automatic block generation with a period of
<SECONDS>
. - Default:
transaction
- The last one is a new mode and introduces automatic block generation with a period of
- More info in docs
- Dropped:
- Return proper RPC errors from
starknet_getBlockTransactionCount
andstarknet_getEvents
- Bugfix in block abortion
- Update docs with
starknet-devnet-js
references
Development related changes
- Refactor of state commitment
Merged PRs
- Refactor of state committing by @FabijanC in #492
- Refactor Starknet test setup by @FabijanC in #494
- Block generation period by @mikiw in #491
- Remove calling commit_with_diff from generate_new_block_and_state by @mikiw in #503
- Unify rpc by @marioiordanov in #500
- Fix RPC error on starknet_getBlockTransactionCount by @tonypony220 in #497
- Update of abort blocks documentation by @mikiw in #513
- Predeployed accounts with balance by @mikiw in #514
- fix
starknet_getEvents
returning wildcard error on nonexistent block by @tonypony220 in #509 - Update docs; Mention starknet-devnet-js by @FabijanC in #515
- Fix infinite loop in block abortion by @FabijanC in #518
- Release 0.1.0 by @FabijanC in #519
- Release 0.1.1 by @FabijanC in #520
New Contributors
- @tonypony220 made their first contribution in #497
Full Changelog: v0.0.7...v0.1.1
v0.0.7
License to kill
🔫 This version gives you the license to kill...
...problems you may have faced with other testnets.
Usage related changes
- Pending block functionality fixed
- JSON-RPC
starknet_get*
methods again callable onpending
block/state.
- JSON-RPC
- CLI parameters specifiable via environment variables
- CTF feature on Devnet startup:
--disable-account-impersonation
Development related changes
- Improved account testing
- Improved documentation (forking, dumping, typos...)
Merged PRs
- Improve account class testing by @FabijanC in #476
- Mention forking in account class selection docs by @FabijanC in #477
- Test Argent account support by @FabijanC in #481
- Expand get_class testing by @FabijanC in #380
- Enable CLI parameter specification via env vars by @FabijanC in #483
- Pending block and state improvements by @mikiw in #480
- Fix typos in code comments by @taikoonwang in #486
- Support disabling account impersonation by @marioiordanov in #488
- Add Docker dumping docs by @FabijanC in #489
- Release v0.0.7 by @FabijanC in #490
New Contributors
- @taikoonwang made their first contribution in #486
Full Changelog: v0.0.6...v0.0.7
v0.0.6
Usage related changes
- Migrated to a separate website at https://0xspaceshard.github.io/starknet-devnet-rs
- Block manipulation improved:
- Enabled request and response body logging - docs
- Introduced account impersonation
- Gas specification improved; new params:
--gas-price-strk <STRK>
--data-gas-price-strk <STRK>
- Introduced
--lite-mode
- docs - Bugfix of forking when origin uses HTTPS
- Bugfix of predeployed account constructor execution
- Introduced endpoint
/config
for retrieving current Devnet configuration - docs - Improved Sierra compilation error handling
amount
property of response ofGET /account_balance
changed to string
Development related changes
- Prepared mac binary building for CircleCI executor deprecation
- Improved benchmarking
- Using codespell check
Merged PRs
- Fix predeployed account constructor simulation by @FabijanC in #431
- Change balance amount type to String by @FabijanC in #432
- Introduce config endpoint by @FabijanC in #433
- cairo lang errs by @lordshashank in #435
- feat: add codespell workflow for CI by @xiaolou86 in #443
- Improve code spell check by @FabijanC in #447
- Block on demand by @mikiw in #430
- Issue 387, Set gas price by @Hueber9500 in #448
- Introduce lite-mode by @lordshashank in #444
- Add generalized benchmarking script by @FabijanC in #459
- Improve testing and contributing by @FabijanC in #454
- feat: Add memory performance tests by @hhamud in #439
- Add memory component to Python benchmarking script by @FabijanC in #464
- Update of getBlockWithTxHashes and getStateUpdate by @mikiw in #461
- Update of get_block_with_txs and get_block_with_receipts for peding blocks by @mikiw in #466
- Update deps by @marioiordanov in #469
- Logging request and responses by @marioiordanov in #455
- Use M1 executor for mac binary builds by @FabijanC in #465
- Test forking of HTTPS origin by @FabijanC in #470
- Account impersonation by @marioiordanov in #436
- Improve docs and migrate to separate website by @FabijanC in #472
- Release v0.0.6 by @FabijanC in #473
New Contributors
- @lordshashank made their first contribution in #435
- @xiaolou86 made their first contribution in #443
- @Hueber9500 made their first contribution in #448
- @hhamud made their first contribution in #439
Full Changelog: v0.0.5...v0.0.6