Releases: Ackee-Blockchain/wake
Releases · Ackee-Blockchain/wake
v4.13.1
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
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
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
Features & improvements:
- added support for Solidity 0.8.27 [core]
- implemented
wake compile
andwake 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
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 andIdentifier
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 🍶
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 towake 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
andbytes32
instead ofbytes
) [testing & deployment framework]
v4.10.1
Fixes:
- fixed language server unicode decoding crash when trying to read from non-existent files [language server]
- fixed Yul definitions of
shl
,shr
andsar
instructions inlsp-yul-definitions
printer [language server] - fixed handling of language server subprocess crashes [language server]
v4.10.0
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
andonly
config options for printers [core]
Changes:
- improved
random_int
documentation & incorrect value checking [testing framework] - changed
__str__
and__repr__
ofAccount
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 latestrich-click
[cli]
v4.9.0
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 touint256
[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 🇨🇭
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 fromkeccak256
andread_storage_variable
- fixed
get_variable_declarations_from_expression
recursion bug