- Fix function clashes when ABI types are not able to disambiguate multiple functions.
- Fix import handling to fully consider indirect imports.
- Interfaces are not longer exposed.
- A new
imports: boolean
config option allows generating exposed versions of imported contracts. Off by default. - Fix missing types when project uses aliased imports.
- Clean exposed files on
hardhat compile --force
.
- Fix error with types defined inside libraries.
- Fix "identifier not found" errors seen when the original source code uses explicit imports.
- Do not use fully qualified names for types in generated code unless necessary.
- Support custom
paths.root
in Hardhat config.
- Use a constant variable for the bytecode marker.
- Emit a payable constructor always.
- Emit a payable constructor if the contract requires it.
- Extend Hardhat's
clean
task to delete the directory of exposed contracts.
- Add optional support for OpenZeppelin Contracts-style initializers in upgradeable contracts.
- Fixed support for constructor arguments in inheritance list (
contract A is B(...)
).
- Added support for user defined value types.
- Changed events for return values:
- Renamed from
$<function>_Returned
toreturn$<function>
. - Renamed parameters from
arg0
and so on toret0
or the function's declared return value name if available.
- Renamed from
- Remove unnecessary dependency.
- Minor refactor to internal structures.
- Make output directory configurable with
outDir
.
- Remove exposed functions for private variables.
- Detect and avoid exposing structs that contain mappings.
- Partially fix missing imports from inherited functions.
- Fix getters for library variables.
- Fix visibility of getters for immutable variables.
- Mark constant internal variables as pure.
- Add bytecode marker to fix Etherscan verification interference.
- Make non-view library functions payable.
- Add a receive function to the produced contracts for ether handling.
- Breaking change: Make storage arrays internal as some storage types cannot be returned.
- Use mapping instead of array to avoid out-of-bound checks for storage objects.
- Ignore functions with functional parameters.
- Emit event with the return parameters when mocking of "internal payable" and "internal nonpayable" functions.
- Fix handling of private functions.
- Add
include
andexclude
config options.
- Fix clashes of overloaded function names with different storage pointer types.
- Expose internal functions with storage pointer arguments.
- Breaking change: Exposed contracts and functions now use a
$
prefix by default.
The previous prefix x
can be restored by configuring the plugin as explained in the README.
- Expose internal variables.
- Add all libary functions in exposed contract.
- Fix contracts that override a function through a public variable.
- Fix import paths on Windows.
- Fix import paths on Windows.
- Improve performance a little by not requesting bytecode or optimizations for first compilation
- Remove duplicate functions in exposed contract when overriding.
- Fix storage location for constructor arguments.
- Fix functions with enum and contract arguments.
- Fix missing dependency.
- Add support for libraries.
- Add support for abstract contracts and interfaces.
- Generate a constructor that invokes all uninitialized parents.
First release.