@@ -18,7 +18,7 @@ import (
18
18
"github.com/ark-network/ark/pkg/client-sdk/client"
19
19
"github.com/ark-network/ark/pkg/client-sdk/explorer"
20
20
"github.com/ark-network/ark/pkg/client-sdk/internal/utils"
21
- "github.com/ark-network/ark/pkg/client-sdk/internal/utils/ redemption"
21
+ "github.com/ark-network/ark/pkg/client-sdk/redemption"
22
22
"github.com/ark-network/ark/pkg/client-sdk/store"
23
23
"github.com/ark-network/ark/pkg/client-sdk/wallet"
24
24
"github.com/btcsuite/btcd/btcec/v2/schnorr"
@@ -975,6 +975,15 @@ func (a *covenantlessArkClient) handleRoundStream(
975
975
976
976
var signerSession bitcointree.SignerSession
977
977
978
+ const (
979
+ start = iota
980
+ roundSigningStarted
981
+ roundSigningNoncesGenerated
982
+ roundFinalization
983
+ )
984
+
985
+ step := start
986
+
978
987
for {
979
988
select {
980
989
case <- ctx .Done ():
@@ -991,24 +1000,35 @@ func (a *covenantlessArkClient) handleRoundStream(
991
1000
return "" , fmt .Errorf ("round failed: %s" , event .(client.RoundFailedEvent ).Reason )
992
1001
case client.RoundSigningStartedEvent :
993
1002
pingStop ()
1003
+ if step != start {
1004
+ continue
1005
+ }
994
1006
log .Info ("a round signing started" )
995
1007
signerSession , err = a .handleRoundSigningStarted (
996
1008
ctx , roundEphemeralKey , event .(client.RoundSigningStartedEvent ),
997
1009
)
998
1010
if err != nil {
999
1011
return "" , err
1000
1012
}
1013
+ step ++
1001
1014
continue
1002
1015
case client.RoundSigningNoncesGeneratedEvent :
1016
+ if step != roundSigningStarted {
1017
+ continue
1018
+ }
1003
1019
pingStop ()
1004
1020
log .Info ("round combined nonces generated" )
1005
1021
if err := a .handleRoundSigningNoncesGenerated (
1006
1022
ctx , event .(client.RoundSigningNoncesGeneratedEvent ), roundEphemeralKey , signerSession ,
1007
1023
); err != nil {
1008
1024
return "" , err
1009
1025
}
1026
+ step ++
1010
1027
continue
1011
1028
case client.RoundFinalizationEvent :
1029
+ if step != roundSigningNoncesGenerated {
1030
+ continue
1031
+ }
1012
1032
pingStop ()
1013
1033
log .Info ("a round finalization started" )
1014
1034
@@ -1031,6 +1051,8 @@ func (a *covenantlessArkClient) handleRoundStream(
1031
1051
1032
1052
log .Info ("done." )
1033
1053
log .Info ("waiting for round finalization..." )
1054
+ step ++
1055
+ continue
1034
1056
}
1035
1057
}
1036
1058
}
0 commit comments