pub fn transaction<Mode: ExecutionMode>(
meter: &mut TranslationMeter<'_, '_>,
env: &Env<'_, '_, '_, '_>,
tx_context: &TxContext,
withdrawal_compatibility_inputs: Option<Vec<bool>>,
gas_coin: Option<ObjectID>,
pt: ProgrammableTransaction,
) -> Result<Transaction, ExecutionError>