midnight-ledger 8.0.2

Provides the transaction format and semantics for Midnight.
Documentation
// This file is part of midnight-ledger.
// Copyright (C) 2025 Midnight Foundation
// SPDX-License-Identifier: Apache-2.0
// Licensed under the Apache License, Version 2.0 (the "License");
// You may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

export {get, set}

import CompactStandardLibrary;

ledger authority: Bytes<32>;
ledger value: Opaque<"string">;

witness secretKey(): Bytes<32>;

circuit set(v: Opaque<"string">): [] {
  assert(isAuthority(), "must be authority");
  value = disclose(v);
}

circuit get(): Opaque<"string"> {
  return value;
}

circuit isAuthority(): Boolean {
  return persistentCommit<Bytes<9>>("mdn:ex:ci", secretKey()) == authority;
}