Limit orders are a feature that allows to you buy a token at the desired ratio without having to constantly monitor the price. This is possible due to a complicated system crossing between smart contracts & traditional backend.
When you submit a limit order you basically say:
I want to pay X amount of token A and get at least Y amount of token B.
After that, the algorithm periodically checks if it is possible to fulfil the condition. If it is possible, the order gets filled. Filling the order means performing the swap, just like you do when you execute market trades.
You will never get less than you specified (unless the token burns itself on transactions). But you can get more, which is always a good thing :)
Our implementation was modified & adjusted with security in mind.
Your token A is not leaving your balance until actual order fill performed. This is done so that your funds are not a target for smart contract-related exploits and it is designed to be impossible to harm your funds in any way.
1 FTM fee is taken per single order creation. This is required to sustain the stable process of filling orders. Remember, we are executing an order for you — it requires gas fees and sometimes gets done in several transactions. All excessive fees go to the ZOO-FTM liquidity pool.
One thing worth to mention: if you create a limit order to buy a token by paying in FTM, your FTM is wrapped to WFTM. If you cancel the order, be sure to also unwrap WFTM to FTM (this process will be enhanced on UI with the next patch) if you want to keep your funds in FTM. To unwrap, just choose Market swap from WFTM to FTM :)