This release improves the Solana developer experience, since now required
accounts can be specified using annotations. For Polkadot, compatibility with
Ethereum Solidity has been increased further, it is now possible to write
EIP-1967 compatible proxy contracts.
There are many fixes all over the code base.
Added
- Solana the required accounts for instructions can now be specified
using function annotations. LucasStecontract Foo { @account(oneAccount) @signer(mySigner) @mutableAccount(otherAccount) @mutableSigner(otherSigner) function bar() external returns (uint64) {} }
- The language server can now format Solidity source code using the
forge-fmt
crate. chioni16 - The langauge server can now do go references, go to implementation, and go to type
definition. chioni16 - Polkadot
Panic
errors can now be caught in try-catch statements
xermicus - Polkadot custom errors are now supported
xermicus - Polkadot now supporting the
address.code
builtin
xermicus
Fixed
- Solana the data field of AccountInfo can now be modified.
LucasSte - The vscode extension now uses the solang binary in the path, if
available. seanyoung - Fixed a bug in the ABI encoding of dynamic arrays.
xermicus - Fixed a bug where loading from a storage struct member was not
considered a storage read. xermicus seanyoung - Fixed a compiler crash caused by chained assignments like
return a = b
. xermicus - Variables declared in the return parameters no longer ignore the
storage
location. xermicus
Changed
- BREAKING: Solana the contract Solidity type can no longer be used. This type
used to represent a single address, but this does not make sense asthere are many
accounts associated with a contract call. LucasSte