Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The language server is much improved, and many fixes all over. ### Added - Go to definition is now implemented in the language server. [chioni16](https://github.com/chioni16) - The parser has been updated to be compatible with Ethereum Solidity v0.8.21. [seanyoung](https://github.com/seanyoung) - **Polkadot** Support for runtimes built with on `polkadot-v1.0.0` ### Fixed - **breaking** Resolving import paths now matches solc more closely, and only resolves relative paths when specified as `./foo` or `../foo`. [seanyoung](https://github.com/seanyoung) - **Solana** The `lamports` and `data` fields of `tx.accounts` can be modified again. [LucasSte](https://github.com/LucasSte) - **Solana** The `address.transfer()` and `address.send()` functions no longer change any balances in the error case if there was an overflow (e.g. not enough balance). [LucasSte](https://github.com/LucasSte) - **Solana** When collecting the required accounts, ensure that the writer and signer bits are set correctly if the same account is used multiple times. [LucasSte](https://github.com/LucasSte) - It is not longer necessary to save a Solidity file, in order for the language server to pick up changes to the file. [chioni16](https://github.com/chioni16) - The negate operator `-` now checks for overflow at runtime, and other math overflow fixes. [seanyoung](https://github.com/seanyoung) - Fixed a bug where accessing the function selector of virtual functions might cause a compiler panic. [xermicus](https://github.com/xermicus) - Fixed a bug where the strength reduce optimization pass removed overflow checks on optimized multiplications. [xermicus](https://github.com/xermicus) - Fixed a bug where external function variables were not marked as `read` when they were called by the semantic analyzer, which could lead to the external function call being eliminated spuriously. [xermicus](https://github.com/xermicus) - Fixed a bug in `try-catch` where a failed transfer trapped the contract instead of handling it in a catch all block. [xermicus](https://github.com/xermicus) ### Changed - The Substrate target has been renamed to Polkadot. [xermicus](https://github.com/xermicus) - **Polkadot** `assert()` and `require()` is now implemented as a transction revert, rather than a trap. The error data is returned, and encoded the same as on Ethereum. Error data is now passed to the calling contract, all the way up the call stack. [xermicus](https://github.com/xermicus) - **Polkadot** constructor can be non-payable. [xermicus](https://github.com/xermicus) - Storage variables are now always written to, regardless whether the contract does read them or not. Prior behavior was to not write to storage variables if they are not read, which can remove wanted side effects, because unused storage variables may be used in future versions of the contract. [xermicus](https://github.com/xermicus) - **Solana** seeds can now be of type `address` or `bytesN`, in addition to `bytes`. [seanyoung](https://github.com/seanyoung) Signed-off-by: Sean Young <[email protected]>
- Loading branch information