Skip to content

Releases: starkware-libs/cairo-lang

v0.5.1

31 Oct 15:32
Compare
Choose a tag to compare
v0.5.1 Pre-release
Pre-release

Small bug fixes.

v0.5.0

28 Oct 06:12
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

StarkNet

  • Contract constructors
  • Identify transactions by their hash (replacing transaction id)
  • storage_ptr was merged into syscall_ptr (you should now use syscall_ptr to access storage)
  • Separate signature information from the transaction calldata
  • Change the way contract addresses are computed
  • Support arrays in return values of external functions
  • Local testing infrastructure:
    • Support passing structs
    • Allow specifying caller address
    • Support L1<->L2 messages
    • Expose the transaction's required resources
  • Technical modifications:
    • Data availability format includes constructor arguments
    • The format of the contract definition hash has changed
    • Add L1 events when L1<->L2 messages are consumed

Cairo

  • Improve compilation time
  • Add a syntax for short strings (strings that fits into a single felt)
  • Remove the python literal syntax (%[ ... %]) to allow safer compilation

v0.4.2

03 Oct 13:36
Compare
Choose a tag to compare
v0.4.2 Pre-release
Pre-release
  • Support returning structs in @external functions.
  • Bug fixes.

v0.4.1

22 Sep 08:40
Compare
Choose a tag to compare
v0.4.1 Pre-release
Pre-release

StarkNet

  • External functions
    • Support tuples and structs in arguments
  • Unit test infrastructure
    • Better interface
    • Support for python3.8
    • Support specifying the Cairo path

v0.4.0

01 Sep 06:34
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

StarkNet (Alpha 2)

  • Moved from Ropsten to Goerli
  • Contract interaction - contracts can invoke external functions of other L2 contracts
    • L2 contract interface
    • Get caller address system call
  • Bitwise builtin is now supported in StarkNet
  • Testing framework for StarkNet contract unit tests
  • Patricia tree

Note: The StarkEx2.0 Cairo code was removed from the repo in this version. You may read it from a previous commit.

v0.3.1

15 Aug 18:44
Compare
Choose a tag to compare
v0.3.1 Pre-release
Pre-release

StarkNet

  • CLI can now invoke transactions with arrays (thanks, @kobigurk)
  • New uint256 arithmetic functions.
  • Bug fix: finialize_default_dict can now be used in StarkNet

SHARP

  • Bitwise builtin can be used in SHARP (soon in StarkNet)
  • SHARP testnet was moved from Ropsten to Goerli

v0.3.0

19 Jul 06:21
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

StarkNet

  • A new release - Alpha 1:
    • L1 <-> L2 interaction using messages
    • On-chain data for storage changes
  • Storage variables can be a tuple of felts
  • Calldata arguments may be dynamically-sized arrays.
  • Starknet CLI
    • New commands: get_transaction and get_contract_addresses
    • New --contract argument for tx_status to get location information for errors
  • range_check is now required for storage vars
  • StarkNet OS source code (only Cairo. Hints are not functional yet)

Cairo language

  • Uninitialized tempvars
  • Hint expressions (for example, tempvar x = nondet %{ y %})
  • Power operator (for example, 2**3. Only for constants)
  • Hex numbers (for example, 0x1234)
  • Multiple hints per instruction
  • cairo-reconstruct-traceback command

v0.2.0

14 Jun 06:22
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

StarkNet:

  • StarkNet contract compiler and StarkNet CLI (command line interface)
  • @external, @view and @storage_var decorators

Cairo language:

  • Remove-unused-functions optimization
  • Dot operator (e.g., (x + 1).y) and the subscript operator (x[3]).
  • Tuples ((2, 3, 4))
  • Struct data-constructors (let t = T(x=1, y=2))
  • Compare structs (assert a = b, where a and b are of type T)

Cairo architecture:

  • Safe call (the Cairo CPU ensures that each call instruction returns).

v0.1.0

31 Mar 10:34
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

Language:

  • Implicit arguments
  • No offsets in struct definition
  • return (...) is replaced with return foo()
  • Additional type checks

Compiler and runner:

  • Call & return push optimization
  • Memory holes are allowed (continuity restriction is removed)

Standard library:

  • New dict functions: dict_read(), dict_write()
  • New default_dict functions
  • Dict keys are no longer restricted to 128 bit integers

v0.0.3

04 Mar 14:26
Compare
Choose a tag to compare
v0.0.3 Pre-release
Pre-release
  • Command-line utility for SHARP
  • AMM demo