sui_adapter_latest/static_programmable_transactions/typing/
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,
8        loading::ast as L,
9        metering::{self, translation_meter::TranslationMeter},
10    },
11};
12pub mod ast;
13pub mod invariant_checks;
14pub mod translate;
15pub mod verify;
16
17pub fn translate_and_verify<Mode: ExecutionMode>(
18    meter: &mut TranslationMeter<'_, '_>,
19    env: &env::Env<Mode>,
20    lt: L::Transaction,
21) -> Result<ast::Transaction, Mode::Error> {
22    let mut ast = translate::transaction::<Mode>(env, lt)?;
23    metering::typing::meter::<Mode::Error>(meter, &ast)?;
24    verify::transaction::<Mode>(env, &mut ast)?;
25    invariant_checks::transaction::<Mode>(env, &ast)?;
26    Ok(ast)
27}