Skip to content

Releases: Ackee-Blockchain/wake

v4.13.1

04 Nov 18:29
Compare
Choose a tag to compare

Fixes:

  • fixed non-deterministic pytypes generation for source files under multiple different source unit names [testing & deployment framework]
  • fixed pytypes generation for source units with dots in their names [testing & deployment framework]
  • fixed tx not assigned on error that could not be resolved [testing & deployment framework]
  • fixed latest supported tx type not properly detected with Anvil caused by breaking change in Anvil [testing framework]
  • fixed base fee parsing with Anvil caused by breaking change in Anvil [testing framework]

v4.13.0

14 Oct 13:09
Compare
Choose a tag to compare

Features & improvements:

  • added support for Solidity 0.8.28 [core]
  • Github is now used as a secondary source of solc binaries [core]
  • added support for compilation metadata settings [core]
  • optimized compilation with solc >= 0.8.28 on CLI [core]

Fixes:

  • fixed language server crash on editing files removed on disk but still opened in IDE [language server]
  • fixed compilation of Etherscan contracts [testing framework]

v4.12.1

07 Oct 19:57
Compare
Choose a tag to compare

Fixes & improvements:

  • fixed removal of errored files from compilation build [core]
  • fixed AST node indexing of multiple structurally different ASTs [core]
  • fixed crashes on non-utf8 files present in workspace on compilation [core]
  • increased timeouts for solc binary installation [core]
  • fixed LSP features not available for files without workspace [language server]
  • improved error logging of LSP subprocesses [language server]
  • Anvil is now also being searched in standard ~/.foundry/bin directory [testing framework]

v4.12.0

02 Oct 18:37
Compare
Choose a tag to compare

Features & improvements:

  • added support for Solidity 0.8.27 [core]
  • implemented wake compile and wake detect JSON export [core]
  • introduced support for subprojects compilation [core]
  • added initial support for LSP 3.18 specification [language server]
  • injected wake_random_seed variable into debugger instances [testing framework]
  • transaction revert and EVM halt errors are now properly distinguished with Anvil [testing framework]

Fixes:

  • fixed wake detect detection code snippets trailing blank lines [core]
  • fixed Deploy & Interact compilation of contracts without provided bytecode [language server]
  • KeyboardInterrupt is now handled correctly in multiprocess testing [testing framework]
  • breakpoint is now supported in multiprocess testing [testing framework]

v4.11.1

26 Aug 19:51
Compare
Choose a tag to compare

Changes:

  • Wake now does not scan for Solidity files in hidden directories both in CLI and LSP [core]

Fixes:

  • fixed exception when accessing Assignment.assigned_variables for array access with base enclosed in parentheses [core]
  • fixed indexing of Solidity AST compiled with both >=0.8 and <0.8 versions with AST node represented by IdentifierPath in >=0.8 and Identifier in <0.8 [core]
  • fixed memory not always available in call traces in LSP contract deployment & interaction [language server]
  • fixed FileNotFoundError when scanning for Solidity files in LSP [language server]

v4.11.0 🍶

13 Aug 19:44
Compare
Choose a tag to compare

Features & improvements:

  • improved merging of compilation units in context of min. supported version and target version set in config [core]
  • CLI does not raise exception on compilation of files with Solidity version lower than min. supported version [core]
  • Wake IR now uses weak references to avoid cyclic references preventing garbage collection [core]
  • improved error messages when Rosetta is not enabled on macOS [core]
  • added optional --incremental CLI option to wake up commands [core]
  • introduced API for deployment & interaction with Solidity contracts through LSP [language server]
  • language server now watches for external changes to Solidity files (e.g. through git branch switch) and recompiles automatically [language server]
  • improved language server RAM usage [language server]
  • improved language server responsiveness, especially when recompiling [language server]
  • improved multiprocessing test status messages [testing framework]

Fixes:

  • added certifi dependency on macOS - should resolve SSL certificates error when downloading solc [core]
  • fixed imported source unit removed from build artifacts while importing source unit kept [core]
  • fixed variable name location parsing when variable has empty name [core]
  • fixed sending compilation build to detectors/printers subprocess causing crashes due to build size & cyclic references [language server]
  • fixed multiple memory leaks in LSP [language server]
  • fixed LSP mcopy definition - thanks to @madlabman [language server]
  • fixed language server crashes due to unexpected code action kinds [language server]
  • fixed race conditions when creating language server context and initialising server [language server]
  • fixed LSP watchdog URI format causing crashes in Neovim [language server]
  • fixed multiple other LSP compilation bugs [language server]
  • fixed max. supported tx type detection with DRPC node [deployment framework]
  • fixed .selector types in pytypes (bytes4 and bytes32 instead of bytes) [testing & deployment framework]

v4.10.1

11 Jun 20:05
Compare
Choose a tag to compare

Fixes:

  • fixed language server unicode decoding crash when trying to read from non-existent files [language server]
  • fixed Yul definitions of shl, shr and sar instructions in lsp-yul-definitions printer [language server]
  • fixed handling of language server subprocess crashes [language server]

v4.10.0

11 Jun 13:43
Compare
Choose a tag to compare

Features & improvements:

  • implemented abi encoding & decoding of errors [testing framework]
  • included standard Solidity interfaces, Create3 deployer and ERC-1967 factory into bundled-in contracts [testing framework]
  • detectors & printers now run in subprocesses in LSP [language server]
  • implemented LSP workspace symbols feature [language server]
  • added support for Solidity 0.8.26 [core]
  • implemented exclude and only config options for printers [core]

Changes:

  • improved random_int documentation & incorrect value checking [testing framework]
  • changed __str__ and __repr__ of Account for easier debugging [testing framework]
  • code lens LSP features re-implemented as LSP printers + created docs [language server]
  • dropped support for Python 3.7 [core]
  • upgraded pydantic to 2.x [core]

Fixes:

  • fixed pickling error when encoding dataclasses using new abi encoder [testing framework]
  • fixed file descriptors leak in LSP [language server]
  • fixed misbehavior of LSP configuration key removal [language server]
  • fixed LSP connection crash due to incorrect content length with unicode characters [language server]
  • fixed rare compilation pipeline crash with multiple solc versions [core]
  • fixed wake detect & wake print commands with latest rich-click [cli]

v4.9.0

25 Apr 15:45
Compare
Choose a tag to compare

Features & improvements:

  • new deploy method for contract deployment from creation code [testing framework]
  • introduced alias chain = default_chain [testing framework]
  • chain.txs can now be indexed with numbers [testing framework]
  • chain.chain_id is now cast to uint256 [testing framework]

Fixes:

  • fixed process count setting for collecting coverage [testing framework]
  • fixed pytypes generator overloading + inheritance issue [testing framework]
  • fixed LSP race conditions on files updated outside of IDE (VS Code) [language server]
  • fixed add_hover_from_offsets LSP printers API function [language server]
  • fixed is_reachable is control flow graph [static analysis]
  • fixed recursion in expression_is_only_owner function [static analysis]
  • fixed regex parsing from source code containing comments [core]

v4.8.0 🇨🇭

05 Apr 10:35
Compare
Choose a tag to compare

Features & improvements:

  • implemented callback commands for LSP printers
    • go to locations, peek locations, open URI, copy to clipboard
  • Wake console.log is now tread as library (in respect to detectors)
  • Wake console.log is now auto-completed in Solidity imports through LSP
  • random seeds used in testing are now printed in pytest summary
  • documented possible test reproducibility issues and their solutions

Fixes:

  • fixed empty array encoding in new abi coder
  • Python warning messages are suppressed in shell completions
  • fixed LSP config loading race conditions
  • newly excluded Solidity files in LSP are now treated as deleted (fixes LSP crashes)
  • primitive types (e.g. bytes32) are now returned from keccak256 and read_storage_variable
  • fixed get_variable_declarations_from_expression recursion bug