From 00eab778bf82f38ec6455ae3532816964bcb3b9d Mon Sep 17 00:00:00 2001
From: Luca Moser <moser.luca@gmail.com>
Date: Fri, 12 Jun 2020 14:46:14 +0200
Subject: [PATCH] read in snapshot file if snapshot path is defined

---
 dapps/valuetransfers/dapp.go | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/dapps/valuetransfers/dapp.go b/dapps/valuetransfers/dapp.go
index 3ecc38c5..658601ad 100644
--- a/dapps/valuetransfers/dapp.go
+++ b/dapps/valuetransfers/dapp.go
@@ -1,9 +1,11 @@
 package valuetransfers
 
 import (
+	"os"
 	"sync"
 	"time"
 
+	"github.com/iotaledger/goshimmer/plugins/config"
 	flag "github.com/spf13/pflag"
 
 	"github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/consensus"
@@ -35,7 +37,7 @@ const (
 )
 
 func init() {
-	flag.String(CfgValueLayerSnapshotFile, "./snapshot.json", "the path to the snapshot file")
+	flag.String(CfgValueLayerSnapshotFile, "", "the path to the snapshot file")
 }
 
 var (
@@ -67,6 +69,22 @@ func configure(_ *node.Plugin) {
 
 	// configure Tangle
 	Tangle = tangle.New(database.Store())
+
+	// read snapshot file
+	snapshotFilePath := config.Node.GetString(CfgValueLayerSnapshotFile)
+	if len(snapshotFilePath) != 0 {
+		snapshot := tangle.Snapshot{}
+		f, err := os.Open(snapshotFilePath)
+		if err != nil {
+			log.Panic("can not open snapshot file:", err)
+		}
+		if _, err := snapshot.ReadFrom(f); err != nil {
+			log.Panic("could not read snapshot file:", err)
+		}
+		Tangle.LoadSnapshot(snapshot)
+		log.Info("read snapshot from %s", snapshotFilePath)
+	}
+
 	Tangle.Events.Error.Attach(events.NewClosure(func(err error) {
 		log.Error(err)
 	}))
-- 
GitLab