Mezcal
Cutting edge on-chain dark pool
Install / Use
/learn @nemi-fi/MezcalREADME
<img align="right" width="150" height="150" top="100" src="https://i.ibb.co/4ZFHPTNc/411361781-c80982e6-103e-45b0-8bd1-b6c38c5debe5-Large.jpg">
Mezcal
Mezcal (Nahuatl: mexcalli - agave booze) - on-chain dark pool implementation using Noir and Taceo coNoir. Hides EVERYTHING about orders and traders(tokens, amounts and addresses of traders are completely hidden). Trades settled on an EVM chain using a very simplified version of Aztec Protocol. The tradeoff is O(N^2) order matching engine.
The code is highly experimental. The core code is located in packages/contracts.
Install coSnarks
cargo install --git https://github.com/TaceoLabs/co-snarks co-noir --rev 1b2db005ee550c028af824b3ec4e811d6e8a3705
TODO
contracts and circuits
- [x] split contract into a generic rollup and ERC20 specific
- [x] extract PoolGeneric storage into a struct
- [x] join Erc20Note
- [ ] split Erc20Note
- [ ] negative tests
- [x] use bignumber for amounts
- [ ] support ETH
- [ ] fees
- [ ] prove against a historical note hash tree root
- [x] PublicInputsBuilder
- [ ] deploy as proxy
- [ ] test contracts with larger token amounts
- [ ] TODO(security): parse inputs to circuits instead of assuming they are correct. Same applies to types returned from
unconstrainedfunctions. https://github.com/noir-lang/noir/issues/7181 https://github.com/noir-lang/noir/issues/4218
