Releases: onflow/cadence
v0.14.2
β 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
v0.13.8
v0.14.1
π Improvements
- Add unknown constants for signature algorithm and hash algorithm (#699) @turbolent
- Optimize checker activations (#674) @turbolent
- Return nil when revoking a non-existing key (#697) @SupunS
π Bug Fixes
- Fix nested error pretty printing (#695) @turbolent
v0.14.0
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
- Introduce a new high-level Account Key API (#633) @SupunS
- Allow the Language Server to be debugged (#663) @turbolent
π₯ 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 structPublicKey
.
There is no need anymore to import theCrypto
contract to work with public keys. -
The struct
Crypto.SignatureAlgorithm
was replaced with the new built-in global enumSignatureAlgorithm
.
There is no need anymore to import theCrypto
contract to work with signature algorithms. -
The struct
Crypto.HashAlgorithm
was replaced with the new built-in global enumHashAlgorithm
.
There is no need anymore to import theCrypto
contract to work with hash algorithms. -
The signature algorithm value
Crypto.ECDSA_Secp256k1
was replaced with the new built-in enum caseSignatureAlgorithm.ECDSA_Secp256k1
-
The signature algorithm value
Crypto.ECDSA_P256
was replaced with the new built-in enum caseSignatureAlgorithm.ECDSA_P256
-
The hash algorithm
Crypto.SHA3_256
was replaced with the new built-in enum caseHashAlgorithm.SHA3_256
-
The hash algorithm
Crypto.SHA2_256
was replaced with the new built-in enum caseHashAlgorithm.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
- Add support for exporting enums (#669) @SupunS
- Ensure code is long enough when extracting excerpt (#690) @turbolent
π Documentation
v0.13.6
v0.13.5
π 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
β Features
- Add parser for pragma signers (#656) @MaxStalker
π Bug Fixes
π Documentation
- Move remaining Cadence docs to Cadence repo. (#653) @10thfloor
v0.13.3
v0.13.2
π 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
, andDeployedContract
type to singleton (#625) @turbolent - Refactor
AuthAccount
,PublicAccount
, andBlock
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
v0.13.1
π 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
- Fix AuthAccount nested types (#619) @turbolent