fix handleStateAwaitParticipantsConfirmations

This commit is contained in:
programmer10110 2020-08-20 19:50:18 +03:00
parent 83b86b132b
commit 915f5b6ef9
2 changed files with 21 additions and 4 deletions

View File

@ -6,6 +6,7 @@ import (
client "github.com/depools/dc4bc/client/types"
"github.com/depools/dc4bc/dkg"
"github.com/depools/dc4bc/fsm/state_machines/dkg_proposal_fsm"
"github.com/depools/dc4bc/fsm/state_machines/signature_proposal_fsm"
"github.com/depools/dc4bc/fsm/types/requests"
"github.com/depools/dc4bc/fsm/types/responses"
"go.dedis.ch/kyber/v3"
@ -14,7 +15,6 @@ import (
"log"
)
// It seems that this handler is not needed, but i'll remove it after client testing
func (am *AirgappedMachine) handleStateAwaitParticipantsConfirmations(o *client.Operation) error {
var (
payload responses.SignatureProposalParticipantInvitationsResponse
@ -38,6 +38,17 @@ func (am *AirgappedMachine) handleStateAwaitParticipantsConfirmations(o *client.
am.dkgInstances[o.DKGIdentifier] = dkgInstance
req := requests.SignatureProposalParticipantRequest{
ParticipantId: dkgInstance.ParticipantID,
CreatedAt: o.CreatedAt,
}
reqBz, err := json.Marshal(req)
if err != nil {
return fmt.Errorf("failed to generate fsm request: %w", err)
}
o.Result = reqBz
o.Event = signature_proposal_fsm.EventConfirmSignatureProposal
return nil
}

View File

@ -94,7 +94,10 @@ func (c *Client) Poll() error {
for _, message := range messages {
if err := c.ProcessMessage(message); err != nil {
log.Println("Failed to process message:", err)
log.Println("Failed to process message:", c.userName, err)
fmt.Println("Not processed", c.userName, message.Event)
} else {
fmt.Println("Processed", c.userName, message.Event)
}
}
@ -133,6 +136,8 @@ func (c *Client) ProcessMessage(message storage.Message) error {
if err != nil {
return fmt.Errorf("failed to getFSMInstance: %w", err)
}
state, _ := fsmInstance.State()
fmt.Printf("Do msg %s for username %s with init state: %s\n", message.Event, c.userName, state)
if fsm.Event(message.Event) != signature_proposal_fsm.EventInitProposal {
if err := c.verifyMessage(fsmInstance, message); err != nil {
@ -150,6 +155,9 @@ func (c *Client) ProcessMessage(message storage.Message) error {
return fmt.Errorf("failed to Do operation in FSM: %w", err)
}
state, _ = fsmInstance.State()
fmt.Printf("Done msg %s for username %s with state after Do: %s\n", message.Event, c.userName, state)
var operation *types.Operation
switch resp.State {
// if the new state is waiting for RPC to airgapped machine
@ -168,7 +176,6 @@ func (c *Client) ProcessMessage(message storage.Message) error {
Payload: bz,
DKGIdentifier: message.DkgRoundID,
}
fmt.Println("DKG - ", message.DkgRoundID)
default:
log.Printf("State %s does not require an operation", resp.State)
}
@ -286,7 +293,6 @@ func (c *Client) getFSMInstance(dkgRoundID string) (*state_machines.FSMInstance,
if err != nil {
return nil, fmt.Errorf("failed to create FSM instance: %w", err)
}
bz, err := fsmInstance.Dump()
if err != nil {
return nil, fmt.Errorf("failed to Dump FSM instance: %w", err)