X*Y >= KPair of any two ERC20 coins: (improvement over v1 where only ERC20/ETH pair is supported) + Router contractFlash Swaps: (atomic transaction, bundle everything within 1 transaction):30bps transaction cost (potentially 5bps fee)Price Oracle: use price at beginning/end of a block / TWAPReference: https://uniswap.org/whitepaper.pdf https://github.com/Uniswap/v2-periphery/blob/master/contracts/examples/ExampleFlashSwap.sol