Skip to main content

sui_adapter_latest/static_programmable_transactions/typing/invariant_checks/
mod.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4use crate::{
5    execution_mode::ExecutionMode,
6    static_programmable_transactions::{
7        env, linkage::resolved_linkage::ExecutableLinkage, typing::ast as T,
8    },
9};
10pub mod defining_ids_in_types;
11pub mod linkage_consistency;
12pub mod memory_safety;
13pub mod type_check;
14
15pub fn transaction<Mode: ExecutionMode>(
16    env: &env::Env<Mode>,
17    tt: &T::Transaction,
18    unified_linkage: Option<&ExecutableLinkage>,
19) -> Result<(), Mode::Error> {
20    defining_ids_in_types::verify(env, tt)?;
21    type_check::verify::<Mode>(env, tt)?;
22    memory_safety::verify(env, tt)?;
23    linkage_consistency::verify(env, tt, unified_linkage)?;
24    // Add in other invariants checks here as needed/desired.
25    Ok(())
26}