v0.3.1 Göttingen
Added
- Write environment configuration into Substrate metadata. xermicus
- Tornado cash as an exemplary integration test for Substrate chain extensions. xermicus
is_contract
runtime API is available as a builtin for Substrate. xermicus- The
wasm-opt
optimizer now optimizes the Wasm bytecode on the Substrate target. xermicus - Call flags are now available for Substrate. xermicus
- Read compiler configurations from toml file. salaheldinsoliman
- Accounts declared with
@payer(my_account)
can be accessed with the
syntaxtx.accounts.my_account
. LucasSte delegatecall()
builtin has been added for Substrate. xermicusget_contents_of_file_no
for Solang parser. BenTheKushset_code_hash()
builtin has been aded for Substrate. xermicus
Fixed
- Diagnostics do not include large numbers anymore. seanyoung
- Correctly parse and resolve
require(i < 2**255)
. seanyoung - Virtual function are available for call. xermicus
- Allow
.wrap()
and.unwrap()
user defined type methods in constants. xermicus @inheritdoc
now works with bases of bases. seanyoung- Allow destructures to assign to storage variables. seanyoung
- Do not allow push and pop in fixed length arrays. LucasSte
- Improve unused variable elimination to remove unused arrays. LucasSte
- Salt argument should be of type
bytes32
. seanyoung - Allow return vallues to be ignored in try-catch statements. seanyoung
- Optimize modifiers' CFGs. xermicus
- Fix an error whereby building large contracts would cause an LLVM error. LucasSte
- A constructor for a Solana contract cannot run twice on the same data account. seanyoung
- Split the
call
anddeploy
dispatches on Substrate. xermicus
Changed
- Minimum Supported Rust Version (MSRV) is Rust
1.68
. @payer
annotation declares an account in a constructor. LucasSte- Do not allow
.call()
functions in functions declared as view. seanyoung - Storage accessor function matches solc, and returns struct members if the sole return value is a single struct seanyoung
- breaking Constructor annotations above a constructor can either declare an account or receive a literal parameter. LucasSte
contract MyContract { @payer(acc) // Declares account acc @space(2+3) // Only literals or constant expressions allowed @seed(myseed) // NOT ALLOWED constructor(bytes myseed) {} }
- Annotations placed before constructor arguments refer to the latter. LucasSte
contract MyContract { @payer(acc) // Declares account acc @space(2+3) // Only literals or constant expressions allowed constructor(@seed bytes myseed) {} // When an annotations refers to a parameter, the former must appear right before the latter. }