sui_adapter_latest/static_programmable_transactions/typing/verify/
mod.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0

use sui_types::error::ExecutionError;

use crate::{
    execution_mode::ExecutionMode,
    static_programmable_transactions::{env, typing::ast as T},
};

pub mod drop_safety;
pub mod input_arguments;
pub mod memory_safety;
pub mod move_functions;

pub fn transaction<Mode: ExecutionMode>(
    env: &env::Env,
    ast: &mut T::Transaction,
) -> Result<(), ExecutionError> {
    input_arguments::verify::<Mode>(env, &*ast)?;
    move_functions::verify::<Mode>(env, &*ast)?;
    memory_safety::verify(env, &*ast)?;
    drop_safety::refine_and_verify(env, ast)?;
    Ok(())
}