Methods for preventing front-running in decentralized exchanges