Releases: aeternity/aesophia
Releases · aeternity/aesophia
v8.0.1
v8.0.0
Added
- Bitwise operations for integers:
band,bor,bxor,bnot,<<and>>. Int.mulmod- combined builtin operation for multiplication and modulus.Crypto.poseidon- a ZK/SNARK-friendly hash function (over the BLS12-381 scalar field).Address.to_bytes- convert an address to its binary representation (for hashing, etc.).- Raw data pointers added to AENS. In short we have introduced a new namespace
AENSv2; they contain types similar to the oldAENS;AENS.nameand
AENS.pointee, where the latter now has a constructorDataPt(bytes()). All
AENS actions have been moved toAENSv2, andAENSv2.lookupand
AENSv2.updateconsume and produce the new types. The oldAENSnamespace
only contains the old datatypes, that can be used to interface existing
contracts. Standard libraryAENSCompatis added to convert between old and
new pointers. - Introduce arbitrary sized binary arrays (type
bytes()); addingBytes.split_any,
Bytes.to_fixed_size,Bytes.to_any_size,Bytes.size,String.to_bytes,
andInt.to_bytes; and adjustBytes.concatto allow both fixed and arbitrary
sized byte arrays. Chain.network_id- a function to get hold of the Chain's network id.- Allowing
Bytes.to_any_sizein calldata creation, to enable creation of arguments
with arbitray size. - Signature literals
sg_...- they have typesignature(which is an alias forbytes(64)).
Changed
Crypto.verify_sigis changed to havemsg : bytes(). I.e. the
signed data can be of any length (used to be limited tobytes(32)/hash).- System aliases are handled explicitly when converting to a Sophia value, this is only
observable forsignaturewhere a value of typesignatureis now represented as a
(new) signature literal. - Allow self-qualification, i.e. referencing
X.foowhen in namespaceX. - Support for OTP-27 - no changes in behavior.
Removed
Bitwise.aesstandard library is removed - the builtin operations are superior.
Full Changelog: v7.4.1...v8.0.0
v8.0.0-rc1
Added
- Bitwise operations for integers:
band,bor,bxor,bnot,<<and>>. Int.mulmod- combined builtin operation for multiplication and modulus.Crypto.poseidon- a ZK/SNARK-friendly hash function (over the BLS12-381 scalar field).Address.to_bytes- convert an address to its binary representation (for hashing, etc.).- Raw data pointers added to AENS. In short we have introduced a new namespace
AENSv2; they contain types similar to the oldAENS;AENS.nameand
AENS.pointee, where the latter now has a constructorDataPt(bytes()). All
AENS actions have been moved toAENSv2, andAENSv2.lookupand
AENSv2.updateconsume and produce the new types. The oldAENSnamespace
only contains the old datatypes, that can be used to interface existing
contracts. Standard libraryAENSCompatis added to convert between old and
new pointers. - Introduce arbitrary sized binary arrays (type
bytes()); addingBytes.split_any,
Bytes.to_fixed_size,Bytes.to_any_size,Bytes.size,String.to_bytes,
andInt.to_bytes; and adjustBytes.concatto allow both fixed and arbitrary
sized byte arrays. Chain.network_id- a function to get hold of the Chain's network id.- Allowing
Bytes.to_any_sizein calldata creation, to enable creation of arguments
with arbitray size.
Changed
Crypto.verify_sigis changed to havemsg : bytes(). I.e. the
signed data can be of any length (used to be limited tobytes(32)/hash).
Removed
Bitwise.aesstandard library is removed - the builtin operations are superior.
Full Changelog: v7.4.1...v8.0.0-rc1
v7.4.1
Changed
- Improve how includes with relative paths are resolved during parsing/compilation. Relative include paths are now always relative to the file containing the
includestatement.
Fixed
- Disable unused type warnings for types used inside of records.
Full Changelog: v7.4.0...v7.4.1
v7.4.0
v7.3.0
v7.2.1
v7.2.0
[7.2.0]
Added
- Toplevel compile-time constants
namespace N = let nc = 1 contract C = let cc = 2 - API functions for encoding/decoding Sophia values to/from FATE.
Removed
- Remove the mapping from variables to FATE registers from the compilation output.
Fixed
- Warning about unused include when there is no include.
v7.1.0
[7.1.0]
Added
- Options to enable/disable certain optimizations.
- The ability to call a different instance of the current contract
contract Main = entrypoint spend(x : int) : int = x entrypoint f(c : Main) : int = c.spend(10) - Return a mapping from variables to FATE registers in the compilation output.
- Hole expression.
Changed
- Type definitions serialised to ACI as
typedefsfield instead oftype_defsto increase compatibility. - Check contracts and entrypoints modifiers when implementing interfaces.
- Contracts can no longer be used as namespaces.
- Do not show unused stateful warning for functions that call other contracts with a non-zero value argument.
Fixed
- Typechecker crashes if Chain.create or Chain.clone are used without arguments.