Releases: Ackee-Blockchain/wake
Releases · Ackee-Blockchain/wake
v3.4.1
v3.4.0
Features:
- implemented LSP hover with helper text for Yul instructions
- implemented LSP parser allowing new LSP features:
- document links now work even with compilation errors
- auto-completion for file imports
- quick-fixes for some compiler warnings and errors
- references count in LSP code lens are now clickable
- implemented helper
on_revert
decorator for deployment & testing scripts - implemented API to import
Address
from private key, mnemonic or alias - added support for Solidity 0.8.20
Changes:
- added
--transaction-block-keep
to default Anvil args to avoid high memory consumption - modified
pytypes
generator to better handle cyclic imports in original Solidity files
Fixes:
- fixed access list/tx type set in BSC transactions - thanks to @aurel-fr
- fixed LSP references to variable declarations
- fixed LSP/compiler crashes caused by source unit aliases created in import directives
v3.3.0
Features:
- added support for Avax C-chain
- added
client_version
prop toChain
- added list of supported chains to the documentation
Changes:
- now using
2 * base fee of pending block
instead of1.25 * base fee of pending block
in deployment - 10% margin is added to the gas limit reported by
eth_createAccessList
Fixes:
- fixed issue when deleted files not detected in the LSP server
- fixed compiler watch mode - newly created files that should be ignored are still compiled
- compiler-errored files are now not included in build artifacts
- fixed compiler watch mode crash when files renamed
- fixed compilation/LSP server crash when
IdentifierPathPart
refers toSourceUnit
- fixed gas estimates on Polygon occasionally fail
- fixed unfinalized data cannot be queried on Avax
- fixed Bad Request HTTP error thrown by some clients
- fixed detection of the Hermez client
- fixed nonce too low occasionally in deployment
v3.2.0
Features:
- improved performance when running multiple tests in a single command by re-using already running development chain instances
- added support for the Bor client (Polygon)
- implemented
--no-ask
and--silent
CLI args forwoke run
- added support for the Nitro client (Arbitrum)
- added support for Binance Smart Chain
- added support for the Hermez client (Polygon zkEVM)
- added more chain explorer URLs to the index
- migrated from
pdbr
toipdb
- implemented
tx.raw_return_value
property
Fixes:
- fixed blockchain explorer API URLs (Goerli Etherscan, ...)
Account.balance
now can be assigned using string literals with units- fixed unnecessary invocations of
debug_traceTransaction
when fetching events - fixed infinite loop of generating pytypes due to the
watchdog
dependency update (pinned version of thewatchdog
dependency as a temporal solution) - fixed test functions not detected in
woke fuzz
when decorated Address(0)
is not recognized as a precompiled contract in call traces anymore- fixed development chains kept running in some cases
- fixed fuzzer subprocesses kept running in some cases
- fixed handling of unpickleable exceptions in fuzzer
- fixed massive memory consumption in long-running tests caused by implicitly storing all txs info
v3.1.0
Features:
- implemented coverage analysis for
woke test
andwoke fuzz
(can be viewed using the Tools for Solidity VS Code extension) - generated
pytypes
containSource file
links to original Solidity sources - already deployed contracts can be recognized in call traces in forking mode with corresponding blockchain explorer API keys set
- precompiled contracts are recognized in call traces
- console logs are now supported with Ganache, Geth, and Hardhat
woke accounts list
prints accounts in the sorted order (by their alias names)woke run
executes scripts in the sorted order- better error message when no fuzz flows are available to run
Fixes:
- fixed
AttributeError
exception when detecting flows and invariants inFuzzTest
eth_createAccessList
is not used in deployment by default if not available- access list from
eth_createAccessList
is only used in deployment by default if cheaper - fixed call traces with contracts that cannot be recognized from the creation code
- fixed call traces with function calls with badly ABI-encoded data
v3.0.0: Deployment
Breaking changes:
- transaction calls (
request_type="tx"
, default for non-pure non-view functions) now always return a transaction object, this behavior cannot be changed- this does not apply to the
.deploy()
method that still returns a contract instance and a transaction object can be requested usingreturn_tx=True
- this does not apply to the
- the latest available transaction type is now used instead of type 0 (legacy) transactions
ContractType.deployment_code()
was renamed toContractType.get_creation_code()
New features:
- implemented
woke.deployment
module that automatically sets transaction fees, gas limit and prompts users to confirm transactions and interactively shows sent transactions - added support for Geth
chain.connect
context manager now acceptsgas_price
andblock_base_fee_per_gas
kwargs- implemented
chain.set_min_gas_price()
- added support for type 1 (EIP-2930) and type 2 (EIP-1559) transactions
- added
effective_gas_price
property toTransactionAbc
- added support for access lists
- access lists can be passed as kwargs to transaction calls or generated using the
access_list
request type
- access lists can be passed as kwargs to transaction calls or generated using the
call
requests now acceptblock
kwarg to set execution context of the call.deploy()
methods now support request types- implemented
woke accounts
CLI commands - implemented
Account.new()
to create a new account with a random private key - implemented support for importing accounts from private keys, mnemonics and aliases
- implemented raw message signing, structured message signing and message hash signing
- implemented
__bytes__
onAddress
- functions accepting Wei argument now also accept string literals with units (e.g.
10 gwei
) - added
tx
field toTransactionRevertedError
to access a transaction object of the transaction that caused the revert
Fixes:
estimate
request now by default usespending
block execution context instead oflatest
- fixed
@overload
declarations in pytypes type
field is not longer set in type 0 transactionstx.block
andtx.tx_index
are now always fetched from a transaction receipt- fixed
Address
comparison and hashing
v2.2.0
- Added experimental support for Python 3.11
eth-ape
,eth-brownie
andweb3
pytest plugins are no longer activated withwoke test
- Created Compilation and Migrating from Ape & Brownie documentation pages
- Increased minimal version of
rich
to 13.3.2- Fixes issue: dataclasses (events and errors) without fields printed as an empty string
v2.1.0
- added support for Solidity 0.8.19
- implemented
chain.set_next_block_base_fee_per_gas
pytypes
now includepure
andview
functions of librariesAddress
is not EIP-55 checksummed anymore for performance reasons- added new LSP command for generating imports graph
- introduced new kwargs when launching a new dev chain -
accounts
,chain_id
,fork
andhardfork
Account
labels are now applied in call traces- changed highlight range of some detectors in LSP server
- added
Shell completions
section to docsInstallation
page - various bug fixes and user experience improvements
v2.0.0: Testing framework
- Introduced Woke testing framework, see more info in the documentation
- Added
examples
directory with testing framework examples - Introduced enhanced compiler module with binary artifacts
- Changed default paths for storing the global config file and compiler binaries, files from old paths are automatically migrated
- Fixed Solidity import paths resolution with remappings
- Added new detectors:
- Empty Byte Array Copy compiler bug detector
- missing
return
detector msg.value
used in non-payable function detector- proxy and implementation contract selector clashes detector
- unsafe use of
tx.origin
detector - unused contracts detector
- Started using Poetry
- Fixes and stability improvements