package messages import ( "forge.redroom.link/yves/meowlib" "forge.redroom.link/yves/meowlib/client" "google.golang.org/protobuf/proto" ) // Step4InviteeFinalizesInitiator is called by the invitee when the step-3 answer // (serialized Invitation bytes) arrives. It unmarshals the initiator's ContactCard and // completes the invitee's peer entry with the initiator's real keys. func Step4InviteeFinalizesInitiator(invitationBytes []byte) (*client.Peer, error) { var inv meowlib.Invitation if err := proto.Unmarshal(invitationBytes, &inv); err != nil { return nil, err } var initiatorCC meowlib.ContactCard if err := proto.Unmarshal(inv.Payload, &initiatorCC); err != nil { return nil, err } if initiatorCC.InvitationId == "" { initiatorCC.InvitationId = inv.Uuid } if err := client.GetConfig().GetIdentity().InvitationStep4(&initiatorCC); err != nil { return nil, err } client.GetConfig().GetIdentity().Save() peer := client.GetConfig().GetIdentity().Peers.GetFromInvitationId(initiatorCC.InvitationId) return peer, nil }