}
// TODO: refactor
- go synchron.NewMainchainKeeper(db, &cfg.Mainchain, cfg.Warders, cfg.Quorum).Run()
- go synchron.NewSidechainKeeper(db, &cfg.Sidechain).Run()
- go federation.NewWarder(cfg, db).Run()
+ go synchron.NewMainchainKeeper(db, cfg).Run()
+ go synchron.NewSidechainKeeper(db, cfg).Run()
+ go federation.NewWarder(db, cfg).Run()
// keep the main func running in case of terminating goroutines
var wg sync.WaitGroup
fedProg []byte
}
-func NewMainchainKeeper(db *gorm.DB, chainCfg *config.Chain, warders []config.Warder, quorum int) *mainchainKeeper {
+func NewMainchainKeeper(db *gorm.DB, cfg *config.Config) *mainchainKeeper {
return &mainchainKeeper{
- cfg: chainCfg,
+ cfg: &cfg.Mainchain,
db: db,
- node: service.NewNode(chainCfg.Upstream),
- chainName: chainCfg.Name,
+ node: service.NewNode(cfg.Mainchain.Upstream),
+ chainName: cfg.Mainchain.Name,
assetCache: database.NewAssetCache(),
- fedProg: federation.ParseFedProg(warders, quorum),
+ fedProg: federation.ParseFedProg(cfg.Warders, cfg.Quorum),
}
}
assetCache *database.AssetCache
}
-func NewSidechainKeeper(db *gorm.DB, chainCfg *config.Chain) *sidechainKeeper {
+func NewSidechainKeeper(db *gorm.DB, cfg *config.Config) *sidechainKeeper {
return &sidechainKeeper{
- cfg: chainCfg,
+ cfg: &cfg.Sidechain,
db: db,
- node: service.NewNode(chainCfg.Upstream),
- chainName: chainCfg.Name,
+ node: service.NewNode(cfg.Sidechain.Upstream),
+ chainName: cfg.Sidechain.Name,
assetCache: database.NewAssetCache(),
}
}
remotes []*service.Warder
}
-func NewWarder(cfg *config.Config, db *gorm.DB) *warder {
+func NewWarder(db *gorm.DB, cfg *config.Config) *warder {
local, remotes := parseWarders(cfg)
return &warder{
position: local.Position,