Trump cancels Iran strike on deal hopes, oil drops 4%