NolanSwap

Goal: learn as much as I can about the math and architecture behind a constant product amm while looking at as little code as possible, then implement one in solidity based on my understanding.

Goal: useable uniswap v2 style amm, complete with simple interface.

Goal: Write tests as I go.

note: im not trying to gas optimize at this time, focusing on the core concepts, math, and readability

features: ERC20 to ERC20 pools pool factory multi hop trades price oracles max slippage set