Juvix imports
module arch.node.engines.signs_for_messages;
import prelude open;
import arch.node.types.identities open;
SignsFor Messages¶
Message interface¶
type SignsForMsg :=
  | SignsForRequest RequestSignsFor
  | SignsForReply ReplySignsFor
  | SubmitSignsForEvidenceRequest RequestSubmitSignsForEvidence
  | SubmitSignsForEvidenceReply ReplySubmitSignsForEvidence
  | QuerySignsForEvidenceRequest RequestQuerySignsForEvidence
  | QuerySignsForEvidenceReply ReplyQuerySignsForEvidence;
Message sequence diagrams¶
Submitting signs_for evidence¶
sequenceDiagram
    participant Client
    participant SignsForEngine
    Client->>SignsForEngine: RequestSubmitSignsForEvidence
    Note over SignsForEngine: Process and store evidence
    SignsForEngine->>Client: ReplySubmitSignsForEvidenceQuerying signs_for relationship¶
sequenceDiagram
    participant Client
    participant SignsForEngine
    Client->>SignsForEngine: RequestSignsFor (X signs for Y?)
    Note over SignsForEngine: Check stored evidence
    SignsForEngine->>Client: ReplySignsForRetrieving signs_for evidence¶
sequenceDiagram
    participant Client
    participant SignsForEngine
    Client->>SignsForEngine: RequestQuerySignsForEvidence (for X)
    Note over SignsForEngine: Retrieve relevant evidence
    SignsForEngine->>Client: ReplyQuerySignsForEvidenceMessage types¶
RequestSignsFor¶
type RequestSignsFor :=
  mkRequestSignsFor@{
    externalIdentityA : ExternalIdentity;
    externalIdentityB : ExternalIdentity;
  };
A RequestSignsFor queries whether externalIdentityA can sign on behalf of
externalIdentityB.
Arguments
- externalIdentityA:
- The identity attempting to sign.
- externalIdentityB:
- The identity on whose behalf the signature is made.
MsgSignsForReply ReplySignsFor¶
type ReplySignsFor :=
  mkReplySignsFor@{
    signsFor : Bool;
    err : Option String;
  };
A ReplySignsFor indicates whether the signs_for relationship exists.
Arguments
- signsFor:
- True if externalIdentityAcan sign forexternalIdentityB, False otherwise.
- err:
- An error message if the query failed.
RequestSubmitSignsForEvidence¶
type RequestSubmitSignsForEvidence :=
  mkRequestSubmitSignsForEvidence@{
    evidence : SignsForEvidence;
  };
A RequestSubmitSignsForEvidence submits evidence of a signs_for relationship.
Arguments
- evidence:
- The evidence supporting the signs_forrelationship.
ReplySubmitSignsForEvidence¶
type ReplySubmitSignsForEvidence :=
  mkReplySubmitSignsForEvidence@{
    err : Option String;
  };
A ReplySubmitSignsForEvidence acknowledges the submission of evidence.
Arguments
- err:
- An error message if the submission failed.
RequestQuerySignsForEvidence¶
type RequestQuerySignsForEvidence :=
  mkRequestQuerySignsForEvidence@{
    externalIdentity : ExternalIdentity;
  };
A RequestQuerySignsForEvidence queries all signs_for evidence related to an identity.
Arguments
- externalIdentity:
- The identity for which to retrieve evidence.
ReplyQuerySignsForEvidence¶
type ReplyQuerySignsForEvidence :=
  mkReplyQuerySignsForEvidence@{
    externalIdentity : ExternalIdentity;
    evidence : Set SignsForEvidence;
    err : Option String;
  };
A ReplyQuerySignsForEvidence provides the requested evidence.
Arguments
- externalIdentity:
- The identity for which to retrieve evidence.
- evidence:
- A set of SignsForEvidencerelated to the identity.
- err:
- An error message if the query failed.
SignsForMsg¶
type SignsForMsg :=
  | SignsForRequest RequestSignsFor
  | SignsForReply ReplySignsFor
  | SubmitSignsForEvidenceRequest RequestSubmitSignsForEvidence
  | SubmitSignsForEvidenceReply ReplySubmitSignsForEvidence
  | QuerySignsForEvidenceRequest RequestQuerySignsForEvidence
  | QuerySignsForEvidenceReply ReplyQuerySignsForEvidence;