Trump cancels Iran strike, claims deal on 21% oil route