All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
experimentalAddHardhatNetworkMessageTraceHook
hook. This means that tracing a Hardhat network will have to be done like other networks.
- Workspace can be reset even if sync is disabled
- Better dependencies management
- Dependencies
- Upgrade packages
- Tentative dependencies fix
workspace
parameter in theethernal.push
function to override global config for this call
- Bug that was uploading too much data for AST upload, speeding up the process
- Verbose mode. Display full error object + config on plugin start
- Error message returned by server is now displayed
- Better error handling
- Update API endpoint
- Transaction tracing. More reliable now.
- [Breaking Change] AST is now uploaded to Postgres, not Firebase RTDB anymore
- [(Semi) Breaking Change] Block skipping is now manual, using the skipFirstBlock parameter
- Authentication with api token, get your token at https://app.tryethernal.com/settings?tab=account
- Workspace setup was buggy, especially if the user didn't create a workspace before launching the node.
- Improved stability. The plugin won't crash (and won't make the node crash) when an API call fails.
- Started to remove Firebase calls in favor of the new backend
- Support for server side syncing with
serverSync
option
- First block on mainnet forks is now skipped, preventing from syncing unwanted transactions & contracts
- All options are now going through an
ethernal
object on Hardhat config. See README for details
- Local keychain is no longer used, only way to login are using env variables or config object.
- Keytar & configstore have been removed
- Bug with global flag on
ethernal.push
disableEthernal
flag on Hardhat config object. When set to true, Nothing will be synced,ethernal.push
won't do anything either.
- Start syncing transactions when the block has been synced. If block syncing fails, tx won't be synced.
- AST upload is now disabled by default. To enable it
hre.ethernalUploadAst
needs to be set to true in hardhat.config.js.
- Dependencies
- Reorganized dependencies to fix conflicts with hardhat-deploy
- Set
hre.ethernalResetOnStart = 'workspaceName'
in your Hardhat config file to automatically reset this workspace when the node starts. - Function
hre.ethernal.resetWorkspace(workspaceName)
to manually reset a workspace
- package.json config
- Conflict with typechain
- Custom flagging to control tracing/syncing
- A lot of boilerplate code & files
- Plugin was crashing if the traceHandler was called before the plugin was completely initialized
- If dependencies fail to upload (often due to file size) when pushing artifacts, it won't make the whole thing fail. Contract abi/name will still be pushed. Only storage reading won't be available
- Return method result in transaction tracing.
- Bug that prevented calling the push functions multiple times in the same Ethernal instance.
- Conflict with ethersjs library in ethersjs package & hardhat-deploy.
- Fails gracefully when the plugin is called and no workspace has been created yet. Thanks @ShaunLWM for the PR!
- Allows logging in using ETHERNAL_EMAIL & ETHERNAL_PASSWORD env variables instead of configstore and keytar
- Send dependencies one by one, to avoid Firebase payload limitation
- Changelog parsing when releasing new version
- Default Firebase variables
- Build system: when a new version is merged on master, a Github Action is going to build the plugin, create a release, and publish to NPM
- Firebase config can now be set through environment variables. This makes it easier to connect to a custom Firebase backend (better ux for self hosted deployments).