Since you used the terms "approved my proposal ... milestones", I guess this might be a freelancing site job?
In which case a written contract is most likely non-existent. As you basiclybasically bid for a job written by an anonymous potential client, then hope to get selected from a pool of random bids, then you get to work with this anonymous client which can set any terms he wants since he can always choose another provider from the pool of random bids.
So, this is a bit like a lottery where you don't know the person, or how they will react to your drafts, or how they decide to make payments or not. This isThat's a risk you always take when working on freelancing websites. The only hope there, as with anything, is to earn repeat clients which already know what to expect from you.
At this point i, I guess you can only take the action allowed by the freelancing website: probably try to politely somehow resolve this with the client directly, or try to mediate the issue via their support system, or ultimately just let it go and learn from this.