aboutsummaryrefslogtreecommitdiffstats
path: root/interfaces.go
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-09-06 17:39:14 +0800
committerPéter Szilágyi <peterke@gmail.com>2016-09-06 18:41:43 +0800
commit2924fdfcf7ab67a66a4ed3fb95cb9140be0cc809 (patch)
tree8ff6bb9a21870f6b26d2887ad82949a923d0d4df /interfaces.go
parenteac390f28955d66f9152102058e0d85d972bc033 (diff)
downloaddexon-2924fdfcf7ab67a66a4ed3fb95cb9140be0cc809.tar.gz
dexon-2924fdfcf7ab67a66a4ed3fb95cb9140be0cc809.tar.zst
dexon-2924fdfcf7ab67a66a4ed3fb95cb9140be0cc809.zip
ethereum, ethclient: add SyncProgress API endpoint
Diffstat (limited to 'interfaces.go')
-rw-r--r--interfaces.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/interfaces.go b/interfaces.go
index 921d02616..aab0e2029 100644
--- a/interfaces.go
+++ b/interfaces.go
@@ -67,6 +67,22 @@ type ChainStateReader interface {
NonceAt(ctx context.Context, account common.Address, blockNumber *big.Int) (uint64, error)
}
+// SyncProgress gives progress indications when the node is synchronising with
+// the Ethereum network.
+type SyncProgress struct {
+ StartingBlock uint64 // Block number where sync began
+ CurrentBlock uint64 // Current block number where sync is at
+ HighestBlock uint64 // Highest alleged block number in the chain
+ PulledStates uint64 // Number of state trie entries already downloaded
+ KnownStates uint64 // Total number os state trie entries known about
+}
+
+// ChainSyncReader wraps access to the node's current sync status. If there's no
+// sync currently running, it returns nil.
+type ChainSyncReader interface {
+ SyncProgress(ctx context.Context) (*SyncProgress, error)
+}
+
// A ChainHeadEventer returns notifications whenever the canonical head block is updated.
type ChainHeadEventer interface {
SubscribeNewHead(ctx context.Context, ch chan<- *types.Header) (Subscription, error)