diff --git a/airgapped/dkg.go b/airgapped/dkg.go index 9fe36ab..9dcd1a3 100644 --- a/airgapped/dkg.go +++ b/airgapped/dkg.go @@ -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 } diff --git a/client/client.go b/client/client.go index 98f3814..2faeb02 100644 --- a/client/client.go +++ b/client/client.go @@ -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)