Skip to content

v0.3.1 Göttingen

Compare
Choose a tag to compare
@github-actions github-actions released this 30 Jun 17:46
· 181 commits to main since this release
002954d

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
    syntax tx.accounts.my_account. LucasSte
  • delegatecall() builtin has been added for Substrate. xermicus
  • get_contents_of_file_no for Solang parser. BenTheKush
  • set_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 and deploy 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.
    }