deploy
Deploy a new contract instance to the blockchain.
Runs the constructor in QuickJS, proves the deploy tx, balances, and submits. Returns the contract address — use it to create a MidnightContract for calls.
Return
DeployResult with the contract address and timings
Parameters
onProgress
Optional callback for UI progress updates