sui_adapter_latest/static_programmable_transactions/linkage/
mod.rs1pub mod analysis;
5pub mod config;
6pub mod resolution;
7pub mod resolved_linkage;
8pub mod single_linkage;
9
10use crate::{
11 data_store::PackageStore,
12 execution_mode::ExecutionMode,
13 static_programmable_transactions::{
14 linkage::analysis::LinkageAnalyzer, loading::ast as loading,
15 },
16};
17use sui_protocol_config::ProtocolConfig;
18
19pub fn refine_linkage<Mode: ExecutionMode>(
22 mut txn: loading::Transaction,
23 linkage_analysis: &LinkageAnalyzer,
24 package_store: &dyn PackageStore,
25 protocol_config: &ProtocolConfig,
26) -> Result<loading::Transaction, Mode::Error> {
27 if !protocol_config.enable_unified_linkage() {
28 return Ok(txn);
29 }
30
31 single_linkage::refine_to_single_linkage::<Mode::Error>(
32 &mut txn,
33 linkage_analysis,
34 package_store,
35 )?;
36
37 Ok(txn)
38}