module arch.node.engines.commitment_config;

import prelude open;
import arch.node.engines.commitment_messages open;
import arch.system.identity.identity open using {Signer; mkSigner};
import arch.node.types.engine open;
import arch.node.types.messages open;
import arch.node.types.identities open;

type CommitmentCfg :=
  mkCommitmentCfg@{
    signer : Signer Backend Signable Commitment;
    backend : Backend;
  };

module commitment_config_example;
  
  commitmentCfg : EngineCfg CommitmentCfg :=
    mkEngineCfg@{
      node := Curve25519PubKey "0xabcd1234";
      name := "commitment";
      cfg :=
        mkCommitmentCfg@{
          signer :=
            mkSigner@{
              sign := \{_ x := Ed25519Signature "0xabcd1234"};
            };
          backend := BackendLocalMemory;
        };
    };
end;