// 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;
}