diff --git a/go.mod b/go.mod index e44dc1a..09f9b75 100644 --- a/go.mod +++ b/go.mod @@ -13,4 +13,4 @@ require ( replace golang.org/x/crypto => github.com/tendermint/crypto v0.0.0-20180820045704-3764759f34a5 -replace github.com/tendermint/tendermint => github.com/dgamingfoundation/tendermint v0.27.4-0.20191113121517-26e7e4991bbf +replace github.com/tendermint/tendermint => ../tendermint diff --git a/lib/basic/basic.go b/lib/basic/basic.go index df7958c..fa97f3b 100644 --- a/lib/basic/basic.go +++ b/lib/basic/basic.go @@ -95,7 +95,7 @@ func (m *DKGBasic) HandleOffChainShare( // try on-chain till success for { - if m.runOnChainDKG(validators, logger) { + if m.RunOnChainDKG(validators, logger) { break } } @@ -109,7 +109,7 @@ func (m *DKGBasic) HandleOffChainShare( return false } -func (m *DKGBasic) runOnChainDKG(validators *types.ValidatorSet, logger log.Logger) bool { +func (m *DKGBasic) RunOnChainDKG(validators *types.ValidatorSet, logger log.Logger) bool { err := m.onChain.StartRound( validators, m.offChain.GetPrivValidator(), @@ -143,7 +143,19 @@ func (m *DKGBasic) SetVerifier(verifier dkg.Verifier) { m.offChain.SetVerifier(verifier) } +func (m *DKGBasic) SetOnChain(isOnChain bool) { + m.isOnChain = isOnChain +} + func (m *DKGBasic) Verifier() dkg.Verifier { + if m.isOnChain { + verifier, err := m.onChain.GetVerifier() + if err != nil { + return m.offChain.Verifier() + } + + return verifier + } return m.offChain.Verifier() }