pub fn transaction(
    env: &Env<'_, '_, '_, '_>,
    pt: ProgrammableTransaction,
) -> Result<Transaction, ExecutionError>