Skip to content

Releases: seanyoung/solang

v0.2.3 Geneva

06 Apr 16:18
Compare
Choose a tag to compare
### Added
- The Solana units `sol` and `lamports` are now supported, e.g. `10 sol` and `100 lamports`.
  [seanyoung](https://github.com/seanyoung)
- User defined operators are now supported. This is a feature in Ethereum Solidity v0.8.19.
  [seanyoung](https://github.com/seanyoung)
- **Solana**: if a contract uses the `SystemAccount`, `ClockAccount`, or other standard builtin
  accounts, then this is automatically added to the IDL. [LucasSte](https://github.com/LucasSte)
- **Substrate**: The content of the debug buffer is formatted in a human readable way. This vastly improves it's readability, allowing to spot API runtime return codes, runtime errors and debug prints much easier. [salaheldinsoliman](https://github.com/salaheldinsoliman)

### Fixed
- Solana: contracts with a seed for the constructor do not require a signer in the Anchor IDL
  [seanyoung](https://github.com/seanyoung)
- Fix panic when lexing ".9" at the beginning of a file. [seanyoung](https://github.com/seanyoung)
- Forbid ABI encoding and decoding of recursive types. [xermicus](https://github.com/xermicus)
- Treat enums as 8bit uint in constant hashing. [xermicus](https://github.com/xermicus)
- Fix compilation failure with -g for the substrate target. [salaheldinsoliman](https://github.com/salaheldinsoliman)
- Fixed incorrect ABI encoding for user defined types. [xermicus](https://github.com/xermicus)  [seanyoung](https://github.com/seanyoung)
- Fixed incorrect ABI encoding for struct with fields of type `bytesN` [xermicus](https://github.com/xermicus)
- Fixed incorrect handling of recursive struct fields. [xermicus](https://github.com/xermicus)
- Fixed a bug in our Common Subexpression Elimination optimization pass [LucasSte](https://github.com/LucasSte)
### Changed
- Math overflow is now always enabled, unless the math happens with an `unchecked { .. }` block.
  The `--math-overflow` command line option has been removed. [seanyoung](https://github.com/seanyoung)
- **Substrate**: the SCALE encoder and decoder now uses a much better implementation written in our
  CFG intermediate format. [xermicus](https://github.com/xermicus)
- **Substrate**: When instantiating a new contract without providing a salt, the salt we be derived from the output of the new `instantiation_nonce` runtime API. [xermicus](https://github.com/xermicus)
- Minimal Supported Rust Version is `1.65.0`
- No longer silently overwrite contract artifacts, if the same contract is defined more than once in different locations [seanyoung](https://github.com/seanyoung)

Signed-off-by: Sean Young <sean@mess.org>

v0.2.2 Alexandria

20 Feb 15:58
Compare
Choose a tag to compare
### Added
- Solidity mappings can now have named key and named value types. [seanyoung](https://github.com/seanyoung)

### Changed
- Solang now uses LLVM 15. [LucasSte](https://github.com/LucasSte)
- Solidity on Solana now required the Anchor framework for the client code, and the `@solana/solidity.js`
  Typescript library is no longer compatible with Solidity.
- When casting hex literal numbers into the `bytesN` type, the hex literal may use leading zeros to match the size
with the according `bytesN`, which aligns solang with `solc`. [xermicus](https://github.com/xermicus)

### Fixed
- Many bugs have been fixed by [seanyoung](https://github.com/seanyoung), [LucasSte](https://github.com/LucasSte)
  and [xermicus](https://github.com/xermicus)
- Typos throughout the code have been fixed. [omahs](https://github.com/omahs)

Signed-off-by: Sean Young <sean@mess.org>

v0.1.12: Submodules are now required to run tests

09 Jun 09:17
Compare
Choose a tag to compare
Signed-off-by: Sean Young <sean@mess.org>