Skip to content

Releases: onflow/cadence

v0.14.2

18 Mar 23:05
Compare
Choose a tag to compare

⭐ Features

  • Replace parser demo with AST explorer (#693) @turbolent
  • Report a hint when a dynamic cast is statically known to always succeed (#688) @turbolent

πŸ›  Improvements

  • Revert the addition of the unsupported signing and hash algorithms (#705) @turbolent

🐞 Bug Fixes

  • Fix cadence-parser NPM package, update versions (#694) @turbolent
  • Properly handle recursive types when checking validity of event parameter types (#709) @turbolent
  • Make all path sub-types externally returnable (#707) @turbolent

πŸ“– Documentation

  • Fix the syntax of the signature algorithm enum in docs (#701) @SupunS

v0.13.8

18 Mar 23:04
Compare
Choose a tag to compare

🐞 Bug Fixes

  • Properly handle recursive types when checking validity of event parameter types (#708) @turbolent

v0.14.1

16 Mar 19:06
Compare
Choose a tag to compare

πŸ›  Improvements

🐞 Bug Fixes

v0.14.0

15 Mar 17:41
Compare
Choose a tag to compare

This release introduced a new high-level Account Key API and improves the interpreter performance.
The current low-level Account Key API is now deprecated and will be removed in a future release. Please switch to the new one.

The following example transaction demonstrates the functionality:

transaction {
	prepare(signer: AuthAccount) {
		let newPublicKey = PublicKey(
			publicKey: "010203".decodeHex(),
			signatureAlgorithm: SignatureAlgorithm.ECDSA_P256
		)

		// Add a key
		let addedKey = signer.keys.add(
			publicKey: newPublicKey,
			hashAlgorithm: HashAlgorithm.SHA3_256,
			weight: 100.0
		)


		// Retrieve a key
		let sameKey = signer.keys.get(keyIndex: addedKey.keyIndex)


		// Revoke a key
		signer.keys.revoke(keyIndex: addedKey.keyIndex)
	}
}

⭐ Features

πŸ’₯ Breaking Changes

The Crypto contract has changed in a backwards-incompatible way, so the types and values it declared could be used in the new Account Key API:

  • The struct Crypto.PublicKey was replaced by the new built-in global struct PublicKey.
    There is no need anymore to import the Crypto contract to work with public keys.

  • The struct Crypto.SignatureAlgorithm was replaced with the new built-in global enum SignatureAlgorithm.
    There is no need anymore to import the Crypto contract to work with signature algorithms.

  • The struct Crypto.HashAlgorithm was replaced with the new built-in global enum HashAlgorithm.
    There is no need anymore to import the Crypto contract to work with hash algorithms.

  • The signature algorithm value Crypto.ECDSA_Secp256k1 was replaced with the new built-in enum case SignatureAlgorithm.ECDSA_Secp256k1

  • The signature algorithm value Crypto.ECDSA_P256 was replaced with the new built-in enum case SignatureAlgorithm.ECDSA_P256

  • The hash algorithm Crypto.SHA3_256 was replaced with the new built-in enum case HashAlgorithm.SHA3_256

  • The hash algorithm Crypto.SHA2_256 was replaced with the new built-in enum case HashAlgorithm.SHA2_256

πŸ›  Improvements

  • Add support for importing enum values (#672) @SupunS
  • Optimize interpreter: Make invocation location ranges lazy (#685) @turbolent
  • Optimize interpreter activations (#673) @turbolent
  • Optimize integer conversion (#677) @turbolent
  • Optimize interpreter: Evaluate statements and declarations directly, remove trampolines (#684) @turbolent
  • Optimize interpreter: Move statement evaluation code (#683) @turbolent
  • Optimize interpreter: Move evaluation of expressions and statements to separate files (#682) @turbolent
  • Optimize interpreter: Evaluate expressions directly without trampolines (#681) @turbolent
  • Optimize interpreter: Refactor function invocations to return a value instead of a trampoline (#680) @turbolent
  • Optimize interpreter: Evaluate binary expressions directly (#679) @turbolent

🐞 Bug Fixes

πŸ“– Documentation

  • Add documentation for the new account key API (#635) @SupunS

v0.13.6

09 Mar 21:52
Compare
Choose a tag to compare

🐞 Bug Fixes

  • Revert "Cache qualified identifier and type ID for composite types and interface types" (#670) @turbolent

v0.13.5

05 Mar 19:38
Compare
Choose a tag to compare

πŸ›  Improvements

  • Add computed fields to the composite value (#664) @SupunS
  • Improve naming: Rename nominal type to simple type (#659) @turbolent
  • Cache qualified identifier and type ID for composite types and interface types (#658) @turbolent

🐞 Bug Fixes

  • Fix handling of capability values without borrow type (#666) @turbolent
  • Improve type equality check in the contract update validation (#654) @SupunS

v0.13.4

04 Mar 18:37
Compare
Choose a tag to compare

⭐ Features

🐞 Bug Fixes

  • Fix updating contracts with reference typed fields (#649) @SupunS

πŸ“– Documentation

v0.13.3

03 Mar 17:41
Compare
Choose a tag to compare

πŸ›  Improvements

v0.13.2

03 Mar 16:59
Compare
Choose a tag to compare

πŸ›  Improvements

  • Make contract update validation optional and disable it by default (#646) @turbolent
  • Delay contract code and value updates to the end of execution (#636) @turbolent
  • Optimize encoding of positive bigints (#637) @turbolent
  • Optimize deferred dictionary keys (#638) @turbolent
  • Refactor String, AuthAccount.Contracts, and DeployedContract type to singleton (#625) @turbolent
  • Refactor AuthAccount, PublicAccount, and Block type to singleton (#624) @turbolent
  • Only record member accesses when origins and occurrences are enabled (#627) @turbolent
  • Cache members for array and dictionary types (#626) @turbolent

🐞 Bug Fixes

πŸ“– Documentation

  • Fix code examples and improve documentation in language reference (#634) @jeroenlm

v0.13.1

25 Feb 00:22
Compare
Choose a tag to compare

πŸ›  Improvements

  • Remove prepare and decode callbacks (#622) @turbolent
  • Update language server to Cadence v0.13.0 and Go SDK v0.15.0 (#623) @turbolent
  • Refactor Any type, AnyResource type, and AnyStruct type to singleton (#618) @turbolent
  • Refactor Type, Bool, and Character type to singletons (#617) @turbolent

🐞 Bug Fixes