Download Latest Version v0.3.4_ London source code.tar.gz (1.4 MB)
Email in envelope

Get an email when there's a new version of Solang

Home / v0.3.1
Name Modified Size InfoDownloads / Week
Parent folder
solang-linux-arm64 2023-06-30 80.9 MB
solang.exe 2023-06-30 47.7 MB
solang-mac 2023-06-30 178.2 MB
solang-mac-intel 2023-06-30 92.7 MB
solang-mac-arm 2023-06-30 85.5 MB
solang-linux-x86-64 2023-06-30 79.9 MB
README.md 2023-06-30 3.7 kB
v0.3.1 Gottingen source code.tar.gz 2023-06-30 1.1 MB
v0.3.1 Gottingen source code.zip 2023-06-30 1.7 MB
Totals: 9 Items   567.8 MB 0

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. }
Source: README.md, updated 2023-06-30