module arch.system.types.resource;

import prelude open;
import arch.system.types.nullifierkey open;
import arch.system.state.resource_machine.prelude open;

type Resource :=
  mkResource@{
    logicRef : LogicHash;
    labelRef : LabelHash;
    valueRef : ValueHash;
    quantity : Nat;
    isEphemeral : Bool;
    nonce : Nonce;
    nullifierKey : NullifierKey;
    randSeed : Nat;
  };

deriving instance
ResourceEq : Eq Resource;

deriving instance
ResourceOrd : Ord Resource;