Skip to content

Releases: onflow/cadence

v0.24 (Secure Cadence)

Choose a tag to compare

@turbolent turbolent released this 07 Jun 22:59

What's Changed

The Secure Cadence milestone is focused on code-hardening and will enable the permissionless deployment of smart contracts on Mainnet. It is an important step in our path to Stable Cadence.

This required some breaking changes. You can read all about these changes and how to update your contracts in this forum post:
Breaking changes coming with Secure Cadence release

While the focus was on securing Cadence, this release is also packed with many new features and improvements!

💥 Breaking Changes

  • Zero-pad string representation of addresses by @turbolent in #1214
  • Allow importing type and capability values by @dsainati1 in #1202
  • Report an error when the parameter list is missing commas by @turbolent in #1073
  • Use common super-type for expression type inferring by @SupunS in #1027
  • load, copy and borrow cause a force cast by @dsainati1 in #1286
  • Taking a reference to an optional value now produces an optionally-typed reference by @dsainati1 in #1303
  • Disallow arithmetic, comparison and bitwise operations on number supertypes by @SupunS in #1360
  • Add CharacterValue type by @dsainati1 in #1392
  • Limit mutation of container-typed fields to the scope of the composite by @dsainati1 in #1267

⭐ Features

🛠 Improvements

🐞 Bug Fixes

Read more

Language Server v0.23.4

Choose a tag to compare

@devbugging devbugging released this 26 Apr 14:45
f615bea

🛠 Improvements

  • Add the Sentry crash reporting option if enabled by the client #1600 @sideninja

Language Server v0.23.0

Choose a tag to compare

@devbugging devbugging released this 13 Apr 20:31
4f54539

🐞 Bug Fixes

Diagnostics not working on imported programs changes
When importing a program was changed it didn't re-check it leading to outdated diagnostics provided to the client. This was fixed by always re-checking imported programs. #1572 @sideninja

v0.23.4

Choose a tag to compare

@turbolent turbolent released this 12 Apr 00:02

🐞 Bug Fixes

Full Changelog: v0.23.3...v0.23.4

v0.23.3

Choose a tag to compare

@turbolent turbolent released this 01 Apr 23:01

🐞 Bug Fixes

  • Fix overflow error in Cadence UInt to Go int conversion by @turbolent in #1550

Full Changelog: v0.23.2...v0.23.3

v0.23.2

Choose a tag to compare

@turbolent turbolent released this 11 Mar 19:43

🛠 Improvements

Full Changelog: v0.23.1...v0.23.2

v0.23.1

Choose a tag to compare

@turbolent turbolent released this 07 Mar 23:05

🛠 Improvements

Full Changelog: v0.23.0...v0.23.1

v0.23.0

Choose a tag to compare

@turbolent turbolent released this 03 Mar 04:37

💥 Breaking Changes

  • Remove PublicKey.isValid by @robert-e-davidson3 in #1273, #1454

    The PublicKey constructor now validates the public key data and aborts the program if it is invalid.
    The isValid field was removed.

⭐ Features

  • Add converter functions to produce path values from strings by @dsainati1 in #1437, #1211

    Paths can now be constructed at run-time. The following path constructors were added:

    fun PublicPath(identifier: string): PublicPath?
    fun PrivatePath(identifier: string): PrivatePath?
    fun StoragePath(identifier: string): StoragePath?

    Each of these functions take an identifier and produce a path of the appropriate domain.
    For example, to construct a public path from a string:

    let pathID = "foo"
    let path = PublicPath(identifier: pathID) // is /public/foo

    For more information, see https://docs.onflow.org/cadence/language/accounts/#path-functions

  • Add RLP decoding utility methods by @ramtinms in #1397, #1456

    Cadence now provides RLP decoding functions through the built-in contract RLP.
    It provides the following functions for decoding strings and lists:

    fun decodeString(_ input: [UInt8]): [UInt8]
    fun decodeList(_ input: [UInt8]): [[UInt8]]

    For more information, see https://docs.onflow.org/cadence/language/built-in-functions/#rlp

  • Add index to for loop by @dsainati1 in #1216, #1452

    For-loops may now declare an indexing variable:

    for index, element in array {
        // ...
    }
  • Add BLS-specific crypto functions by @dsainati1 in #1236, #1250, #1430

    PublicKey gained a new function to verify a proof-of-possession:

    fun verifyPoP(_ proof: [UInt8]): Bool

    Cadence now provides BLS-specific functions through the built-in contract BLS.
    It provides the following functions:

    fun aggregateSignatures(_ signatures: [[UInt8]]): [UInt8]?
    fun aggregatePublicKeys(_ publicKeys: [PublicKey]): PublicKey?

    For more information, see https://docs.onflow.org/cadence/language/crypto/#bls

  • Adding tracing by @ramtinms in #1179, #1448

🛠 Improvements

🐞 Bug Fixes

🙌 New Contributors

Thank you to our new contributor, @robert-e-davidson3!

Full Changelog: v0.21.3...v0.23.0

v0.21.3

Choose a tag to compare

@turbolent turbolent released this 01 Mar 20:31

🐞 Bug Fixes

Full Changelog: v0.21.2...v0.21.3

v0.21.2

Choose a tag to compare

@turbolent turbolent released this 16 Feb 19:23

🐞 Bug Fixes

Full Changelog: v0.21.1...v0.21.2