module arch.node.engines.commitment_environment;

import prelude open;
import arch.node.engines.commitment_messages open;
import arch.node.types.crypto open;
import arch.node.types.engine_environment open;
import arch.node.types.identities open;
import arch.node.types.messages open;
import arch.node.types.anoma_message as Anoma open;

syntax alias CommitmentMailboxState := Unit;
syntax alias CommitmentLocalState := Unit;
syntax alias CommitmentTimerHandle := Unit;

CommitmentEnv : Type :=
  EngineEnv
    CommitmentLocalState
    CommitmentMailboxState
    CommitmentTimerHandle
    Anoma.Msg;

module commitment_environment_example;
  
  axiom dummyExternalIdentity : ExternalIdentity;

  axiom dummyIDBackend : Backend;

  axiom dummySigningKey : SigningKey;
  
  commitmentEnv : CommitmentEnv :=
    mkEngineEnv@{
      localState := unit;
      mailboxCluster := Map.empty;
      acquaintances := Set.empty;
      timers := [];
    };
end;