EssenSwap is a limit orderbook-based exchange built on the Essential blockchain.
In EssenSwap, the bids and asks are submitted as constraints, as required by Essential's declarative virtual machine. Every time there is a positive spread, an external solver bot is created that matches bids and asks and submits a solution to propose a new state of the system, viz., the updated balances of the bidders and askers.
EssenSwap consists of three components: front-end, solver bot, and blockend. First, we deploy smart contracts for standard fungible token contracts currently available on Essential. Then, we deploy a unique smart contract for every bid and ask order, with predicates that impose constraints on the swap price of a trade. After that, we build a rust-based script that performs on-behalf of a solver by sorting, and then matching bids and asks orders. The final solution is then submitted to the Essential blockchain through their API. Once the rust script receives a confirmation receipt, it updates the front-end display.