The US and Iran have agreed to a deal in principle to finally reopen the Strait of Hormuz and give up its uranium supply, according to a senior official.