StarkNet:
-
Improvements in transaction cost estimations. Note that this may cause transactions that would have been accepted in the past to be rejected, and it may affect how many transactions are included in each block
-
Add nonce to L1->L2 messages (note that this affects the hash of the corresponding transactions)
-
Small optimizations in on-chain data
-
Contracts:
%builtins
directive is no longer required in StarkNet contracts- Support passing and returning arrays of structs in external functions
- Support events (https://starknet.io/docs/hello_starknet/events.html)
- Support delegate calls (https://starknet.io/docs/hello_starknet/calling_contracts.html#delegate-calls)
- Support default entry point (https://starknet.io/docs/hello_starknet/default_entrypoint.html)
- New system calls:
delegate_l1_handler
get_block_number
- Returns the sequential block number of the block containing the transaction (https://starknet.io/docs/hello_starknet/more_features.html#block-number-and-timestamp)get_block_timestamp
- Returns the timestamp at the beginning of the block's creation. Note that currently this value is not validated by the StarkNet OS (https://starknet.io/docs/hello_starknet/more_features.html#block-number-and-timestamp)emit_event
- Support
@raw_input
and@raw_output
that disables the automatic calldata/return-value processing (https://starknet.io/docs/hello_starknet/default_entrypoint.html#default-entry-point)
-
StarkNet CLI:
- Support account contracts (https://starknet.io/docs/hello_starknet/account_setup.html)
- Deploy Open Zeppelin's account contract
- Automatically sign transactions
- Support passing negative inputs to contracts
- Support querying the pending block
- Support reconstructing trace when a contract calls another contract (https://starknet.io/docs/hello_starknet/user_auth.html#retrieving-the-revert-reason)
- Support account contracts (https://starknet.io/docs/hello_starknet/account_setup.html)
-
Testing framework:
- Support negative inputs (up to -PRIME/2)
- Add events to the execution info
postman
- Testing framework for L1<->L2 interaction
Cairo:
- Added
sqrt
(square root) functions forfelt
anduint256
to the math common library - Support attaching indicative error message to failures (https://cairo-lang.org/docs/how_cairo_works/scope_attributes.html)
- Named arguments in struct constructors are now verified by the compiler (they were ignored before)