diff --git a/README.md b/README.md index 4f73bd0d3b..d786e8d71e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # Welcome to ethereumj -[![Slack Status](http://harmony-slack-ether-camp.herokuapp.com/badge.svg)](http://ether.camp) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ethereum/ethereumj?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status](https://travis-ci.org/ethereum/ethereumj.svg?branch=master)](https://travis-ci.org/ethereum/ethereumj) [![Coverage Status](https://coveralls.io/repos/ethereum/ethereumj/badge.png?branch=master)](https://coveralls.io/r/ethereum/ethereumj?branch=master) @@ -19,7 +18,7 @@ We keep EthereumJ as thin as possible. For [JSON-RPC](https://github.com/ethereu org.ethereum ethereumj-core - 1.6.3-RELEASE + 1.8.0-RELEASE ``` @@ -31,7 +30,7 @@ We keep EthereumJ as thin as possible. For [JSON-RPC](https://github.com/ethereu jcenter() maven { url "https://dl.bintray.com/ethereum/maven/" } } - compile "org.ethereum:ethereumj-core:1.6.+" + compile "org.ethereum:ethereumj-core:1.8.+" ``` As a starting point for your own project take a look at https://github.com/ether-camp/ethereumj.starter diff --git a/ethereumj-core/src/main/java/org/ethereum/sync/FastSyncManager.java b/ethereumj-core/src/main/java/org/ethereum/sync/FastSyncManager.java index e2224a6549..c26bd53847 100644 --- a/ethereumj-core/src/main/java/org/ethereum/sync/FastSyncManager.java +++ b/ethereumj-core/src/main/java/org/ethereum/sync/FastSyncManager.java @@ -725,7 +725,7 @@ public void main() { syncSecure(); - listener.onSyncDone(EthereumListener.SyncState.SECURE); + fireSyncDone(SECURE); case COMPLETE: if (origSyncStage == COMPLETE) { logger.info("FastSync: SECURE sync was completed prior to this run, proceeding with next stage..."); @@ -735,7 +735,7 @@ public void main() { syncBlocksReceipts(); - listener.onSyncDone(EthereumListener.SyncState.COMPLETE); + fireSyncDone(COMPLETE); } logger.info("FastSync: Full sync done."); } catch (InterruptedException ex) { @@ -751,6 +751,14 @@ public void main() { } } + private void fireSyncDone(EthereumListener.SyncState state) { + // prevent early state notification when sync is not yet done + syncManager.setSyncDoneType(state); + if (syncManager.isSyncDone()) { + listener.onSyncDone(state); + } + } + public boolean isFastSyncInProgress() { return fastSyncInProgress; } diff --git a/ethereumj-core/src/main/java/org/ethereum/sync/SyncManager.java b/ethereumj-core/src/main/java/org/ethereum/sync/SyncManager.java index b3afcc3f31..0366ac6b7d 100644 --- a/ethereumj-core/src/main/java/org/ethereum/sync/SyncManager.java +++ b/ethereumj-core/src/main/java/org/ethereum/sync/SyncManager.java @@ -190,6 +190,10 @@ void initRegularSync(EthereumListener.SyncState syncDoneType) { } } + void setSyncDoneType(EthereumListener.SyncState syncDoneType) { + this.syncDoneType = syncDoneType; + } + public SyncStatus getSyncStatus() { if (config.isFastSyncEnabled()) { SyncStatus syncStatus = fastSyncManager.getSyncState();