Functions map - accept_countersigning_preflight_request -> lock_chain - SessionInfo -> Timeout and agents to sign - PreflightRequest -> entry+session_info - PreflightResponse -> PreflightRequest+Signature ## Bob accepts ```mermaid sequenceDiagram participant Alice participant Bob Alice-->>Alice: session_times_from_millis(session_ms) -> session_info Alice-->>Alice: lock_chain(entry+session_info) -> entry+session_info+Signature activate Alice Alice->>Bob: request_countersign(entry+session_info+signature) Bob-->>Bob: lock_chain(entry+session_info) -> entry+session_info+signature activate Bob Bob-->>Bob: create_countersigned(entry+session_info+signatureAlice+signatureBob) deactivate Bob Bob-->>Alice: signatureBob Alice-->>Alice: create_countersigned(entry+session_info+signatureAlice+signatureBob) deactivate Alice ``` --- ## Bob rejects ```mermaid sequenceDiagram participant Alice participant Bob Alice-->>Alice: session_times_from_millis(session_ms) -> session_info Alice-->>Alice: lock_chain(entry+session_info) -> entry+session_info+Signature activate Alice Alice->>Bob: request_countersign(entry+session_info+signature) Bob-->>Alice: nope I'm mad at you Alice-->>Alice: Wait for session_ms Alice-->>Alice: Unlock* deactivate Alice ``` \* for now, there is no manual unlock, you have to wait for the session_ms. If timeout is reached, there is automatic rollback