This design evolved from Design #1 along with feedback from Parity at the XCM workshop.

Summary

Polkadot→Ethereum

Given source parachain $S$, with native token $S^{'}$ and the initial xcm $x_0$ to be executed on $S$.

Step 1: User agent constructs initial XCM

The user agent constructs an initial XCM message $x_0$ that will be executed on S.

The fee amounts in this message should be high enough to enable dry-running, after which they will be lowered.

Step 2: User agent estimates fees