aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/dev-utils/CHANGELOG.json9
-rw-r--r--packages/dev-utils/src/web3_factory.ts7
2 files changed, 14 insertions, 2 deletions
diff --git a/packages/dev-utils/CHANGELOG.json b/packages/dev-utils/CHANGELOG.json
index ce6cfede5..cbeb2e74f 100644
--- a/packages/dev-utils/CHANGELOG.json
+++ b/packages/dev-utils/CHANGELOG.json
@@ -1,5 +1,14 @@
[
{
+ "version": "2.1.0",
+ "changes": [
+ {
+ "note": "Allow using the Web3Factory in-process Ganache provider with existing DB snapshot",
+ "pr": 1602
+ }
+ ]
+ },
+ {
"version": "2.0.2",
"changes": [
{
diff --git a/packages/dev-utils/src/web3_factory.ts b/packages/dev-utils/src/web3_factory.ts
index 5f8981a46..3fa3c19f7 100644
--- a/packages/dev-utils/src/web3_factory.ts
+++ b/packages/dev-utils/src/web3_factory.ts
@@ -47,8 +47,11 @@ export const web3Factory = {
_.isUndefined(config.shouldThrowErrorsOnGanacheRPCResponse) ||
config.shouldThrowErrorsOnGanacheRPCResponse;
if (!_.isUndefined(config.ganacheDatabasePath)) {
- // Saving the snapshot to a local db. Ganache requires this directory to exist
- fs.mkdirSync(config.ganacheDatabasePath);
+ const doesDatabaseAlreadyExist = fs.existsSync(config.ganacheDatabasePath);
+ if (!doesDatabaseAlreadyExist) {
+ // Working with local DB snapshot. Ganache requires this directory to exist
+ fs.mkdirSync(config.ganacheDatabasePath);
+ }
}
provider.addProvider(
new GanacheSubprovider({