Skip to content

Releases: xJonathanLEI/starkli

v0.2.9

02 May 03:55
0535f44
Compare
Choose a tag to compare

This release adds support for v3 transactions, allowing transaction fees to be paid in STRK instead of ETH. For maintaining backward compatibility, the default fee token is still ETH at the moment. To pay fees in STRK instead, add --fee-token STRK, or just --strk. Example:

starkli invoke eth transfer 0x1234 u256:100 --strk

For more details on transaction fees, see the updated Transaction fees page from the Starkli Book.

Support for newer OpenZeppelin account classes has also been added.

Features

  • 1325770: support oz v0.12.0 account
  • 3624201: v3 transaction support
  • aafbc0d: oz 0.11.0 account class
  • 99d5652: oz 0.8.1.0, 0.9.0 and 0.10.0 account class hashes (#82)
  • 3ef7b56: remove goerli networks
  • ae0d626: use compiler 2.6.x for mainnet

Fixed

  • 53ffb43: tilde in account path causing file not found error

Misc

  • 9e36e46: document STRK tx fee payment

Full Changelog: v0.2.8...v0.2.9

v0.2.8

19 Mar 22:25
f59724e
Compare
Choose a tag to compare

A quick patch release that makes transaction submission error details available.

Following the recent increase in class declaration fees, many users have started facing the cryptic ValidationFailure error, which is in fact due to their accounts not having sufficient ETH balance to cover the transaction cost. The failure reason is rather straightforward, but Starkli wasn't correctly displaying the error details, leaving users confused (until they use --log-traffic to inspect the raw traffic).

This release fixes that by printing error details on transaction submission. Instead of:

Error: ValidationFailure

usrs should now expect something similar to (depending on node implementation):

Error: ValidationFailure: perform_validations call failed; failure reason: TransactionFailureReason(code='native_blockifier.PyTransactionPreValidationError', error_message='TransactionFeeError(MaxFeeExceedsBalance { max_fee: Fee(100000000000000000000), balance_low: StarkFelt("0x0000000000000000000000000000000000000000000000007daaaaeb34db38c7"), balance_high: StarkFelt("0x0000000000000000000000000000000000000000000000000000000000000000") })').

Fixed

  • 9b313db: tx submission error details not displayed

Full Changelog: v0.2.7...v0.2.8

v0.2.7

10 Mar 05:54
1fe0590
Compare
Choose a tag to compare

This release adds support for Sierra 1.5.0 (Cairo 2.6.0+).

Goerli and Sepolia testnets have been upgraded to Starknet v0.13.1, bringing support for Sierra 1.5.0, which comes with a new CASM hash algorithm. Attempting to declare new Sierra classes with old clients would fail, even when manually specifying a CASM file via --casm-file (it would work if the user somehow figures out the correct hash and uses --casm-hash though). This new release solves this by automatically applying the new algorithm for Sierra 1.5.0+ classes.

Features

  • 4ffb768: add support for Sierra 1.5.0
  • b313230: change default compiler version to 2.5.4

Misc

  • e9a28f1: add dockerfile
  • 789203f: provider requirement for account deploy

Full Changelog: v0.2.6...v0.2.7

v0.2.6

24 Feb 03:50
fa78acc
Compare
Choose a tag to compare

This release adds support for new account contracts used by Argent X and Braavos. The Braavos account contract has changed from Cairo 0 to Cairo 1.

A new built-in address book entry of strk has also been added. Users can now invoke commands to transfer STRK tokens like so:

starkli invoke strk transfer ......

Features

  • a301242: support new Braavos contract class hash
  • 0a8da9c: add strk to default address book
  • 98a9009: support new Argent contract class hash

Full Changelog: v0.2.5...v0.2.6

v0.2.5

08 Feb 02:42
3e41c01
Compare
Choose a tag to compare

This release brings a few quality of life improvements:

  • Added 2 new commands: status and block-traces.
  • Starkli now uses Cairo v2.4.0 by default on all networks.
  • The call command now also (just like invoke etc.) prints contract error details when it fails.
  • A warning would now be printed when users attempt to use Starkli with a node that offers an incompatible JSON-RPC version.

Notably, the JSON-RPC version warning is currently only printed for methods that are known to be incompatible, so Starkli only warns you when it knows for sure it will fail. In fact, to avoid excessive network requests, Starkli wouldn't even send the starknet_specVersion request for methods that it knows are compatible.

Features

  • 348bc75: add status command
  • 3642be9: print warning on methods with breaking changes between specs
  • b81109e: use compiler v2.4.0 by default for all networks
  • ca1739c: add block-traces comand
  • ccac7ca: print error details on call

Misc

Full Changelog: v0.2.4...v0.2.5

v0.2.4

16 Jan 09:57
7919143
Compare
Choose a tag to compare

This release fixes a bug regarding free RPC vendors, where Starkli would always use blast even when configured (or randomly chosen) to use nethermind.

A new spec-version command is introduced for quickly checking what JSON-RPC version an RPC endpoint offers.

Additionally, support for OpenZeppelin account contract v0.8.0 has been added. New accounts initialized with starkli account oz init will use this new version.

Features

  • 7e71689: new built-in account list for katana v0.5.0
  • a863e68: spec-version command
  • e41bb99: support oz account v0.8.0

Fixed

  • 00cddfb: wrong URL used for nethermind free provider

Full Changelog: v0.2.3...v0.2.4

v0.2.3

11 Jan 02:23
5880a23
Compare
Choose a tag to compare

This release fixes an issue when an error occurs during fee estimation, where Starkli only displays the error type, without providing detailed error information. This makes debugging difficult without resorting to --log-traffic.

Before v0.2.3, an error might look like this:

Error: TransactionExecutionError

With v0.2.3, the same error would look like this instead:

Error: TransactionExecutionError (tx index 0): Error in the called contract (0x03ee96fce6ff0fa1779dc5e53e1f43ad0b7ea2b8772c3b4c46fd8a964a958ca0):
Error at pc=0:4273:
Got an exception while executing a hint: Custom Hint Error: Execution failed. Failure reason: 0x753235365f737562204f766572666c6f77 ('u256_sub Overflow').
Cairo traceback (most recent call last):
Unknown location (pc=0:67)
Unknown location (pc=0:1997)
Unknown location (pc=0:2727)
Unknown location (pc=0:3582)

Features

Full Changelog: v0.2.2...v0.2.3

v0.2.2

05 Jan 23:36
32e9b0f
Compare
Choose a tag to compare

This is a small release that only makes the new Braavos class hash (0x0553efc3f74409b08e7bc638c32cadbf1d7d9b19b2fdbff649c7ffe186741ecf) available for account fetching. The old class hash is still used for account initialization, as the new hash is currently only used for sepolia, and not on goerli or mainnet.

Features

  • d2c3342: add new Braavos class hash

Full Changelog: v0.2.1...v0.2.2

v0.2.1

29 Dec 00:02
7975da1
Compare
Choose a tag to compare

This release introduces two major features:

Together, these two features allow us to replicate the zero-setup experience Starkli used to offer when the sequencer gateway provider was still around. To use the free vendors, simply use the --network option with the STARKNET_RPC environment variable unset, exactly like how you would use the sequencer gateway before:

starkli block-number --network mainnet

When this is done for the first time, Starkli chooses a free RPC vendor randomly, and persists the choice into the default profile.

Features

  • 5f5da16: allow chain ID duplications in profiles
  • 27402da: initial profile and free RPC vendors support

Fixed

  • 77da8e7: eth address not defined in sepolia and sepolia-integration

Misc

  • 04998f6: add Profiles page to book
  • 3a3b42f: update Providers page to reflect latest changes
  • 8c5cd79: bump starknet version

Full Changelog: v0.2.0...v0.2.1

v0.2.0

21 Dec 04:20
49b25f9
Compare
Choose a tag to compare

This release introduces a breaking change of moving away from JSON-RPC v0.4.0 to v0.6.0. This is needed to properly support Starknet v0.13.0, as both JSON-RPC v0.4.1 and v0.5.0 fail to properly represent v3 transactions introduced in the new version.

Note

At the moment, each Starkli version only works with one JSON-RPC spec version. You're advised to use JSON-RPC v0.6.0 at this point, but if you have to use JSON-RPC v0.4.0, you'll need to downgrade Starkli to an older version.

A new built-in compiler version v2.4.0 has been added and is now used by default for networks running v0.13.0. Additionally, the network goerli-2 has been removed, and two new networks sepolia and sepolia-integration have been added.

A new --parse flag has been added to the class-at and class-by-hash commands to attempt to recover the original contract class artifacts from JSON-RPC provider responses. This is to solve the issue of not being able to re-declare classes due to the discrepancy in structures of a raw contract artifact from compiler output, and that of JSON-RPC. Using the new flag results in output that's formatted the same as raw compiler output.

Note

An alternative to supporting contract artifact recovery is to support declaring from raw JSON-RPC responses. However, the former is considered superior, as this recovered artifact can also be used outside of Starkli.

However, contract artifacts may not be recoverable under all cases, specifically when the ABI isn't valid JSON. These edge cases call for the latter approach (i.e. declaring directly from JSON-RPC response), which will be implemented in a future version.

Features

  • e196118: add sepolia-integration network
  • 89bab93: switch to jsonrpc v0.6.0
  • 7ddb0fd: add sepolia network
  • 426ef54: use compiler v2.4.0 for goerli and integration
  • d44ed7e: add 2.4.0 compiler version (#51)
  • 08b9571: parse fetched classes into original artifacts
  • e35c105: remove goerli-2 network

Misc

Full Changelog: v0.1.20...v0.2.0