}
txCh := make(chan *orm.CrossTransaction)
- go synchron.NewMainchainKeeper(db, &cfg.Mainchain).Run()
- go synchron.NewSidechainKeeper(db, &cfg.Sidechain).Run()
+ go synchron.NewMainchainKeeper(db, &cfg.Mainchain, txCh).Run()
+ go synchron.NewSidechainKeeper(db, &cfg.Sidechain, txCh).Run()
go federation.NewWarder(txCh).Run()
// keep the main func running in case of terminating goroutines
node *service.Node
chainName string
assetCache *database.AssetCache
+ txCh chan *orm.CrossTransaction
}
-func NewMainchainKeeper(db *gorm.DB, chainCfg *config.Chain) *mainchainKeeper {
+func NewMainchainKeeper(db *gorm.DB, chainCfg *config.Chain, txCh chan *orm.CrossTransaction) *mainchainKeeper {
return &mainchainKeeper{
cfg: chainCfg,
db: db,
node: service.NewNode(chainCfg.Upstream),
chainName: chainCfg.Name,
assetCache: database.NewAssetCache(),
+ txCh: txCh,
}
}
node *service.Node
chainName string
assetCache *database.AssetCache
+ txCh chan *orm.CrossTransaction
}
-func NewSidechainKeeper(db *gorm.DB, chainCfg *config.Chain) *sidechainKeeper {
+func NewSidechainKeeper(db *gorm.DB, chainCfg *config.Chain, txCh chan *orm.CrossTransaction) *sidechainKeeper {
return &sidechainKeeper{
cfg: chainCfg,
db: db,
node: service.NewNode(chainCfg.Upstream),
chainName: chainCfg.Name,
assetCache: database.NewAssetCache(),
+ txCh: txCh,
}
}