Serai is a new DEX, built from the ground up, initially planning on listing Bitcoin, Ethereum, DAI, and Monero, offering a liquidity-pool-based trading experience. Funds are stored in an economically secured threshold-multisig wallet.
Find a file
Luke Parker b54548b13a
Only deserialize RctSignatures where's there at least one input
This is only enforced by the Monero protocol due to a single check the mixRing
isn't empty in get_pre_mlsag_hash. The value in ensuring there's a least one
input is to ensure the safety of our rct_type functions, which determines the
RctType based off structural analysis (specifically, input data if
MlsagBorromean).

rct_type was technically safe without this. A 0-input transaction would be
mis-classified as RctFull/MlsagAggregate, which would then make the
RctSignatures invalid for being RctFull (requiring exactly one input) yet not
having inputs, meaning an invalid RctSignatures would be mis-classified yet
still invalid.

This just removes the risk of mis-classification in the first place, tightening
the library's safety.
2023-07-09 00:44:23 -04:00
.github Correct how Monero integration tests are run 2023-07-05 19:11:52 -04:00
audits/Cypher Stack crypto March 2023 Correct audit file upload 2023-03-20 17:35:45 -04:00
coins Only deserialize RctSignatures where's there at least one input 2023-07-09 00:44:23 -04:00
common Meaningful changes from aggressive-clippy 2023-07-08 11:29:07 -04:00
coordinator Use serai- prefixes on Serai-specific packages 2023-07-03 08:50:23 -04:00
crypto Meaningful changes from aggressive-clippy 2023-07-08 11:29:07 -04:00
deploy Correct Serai Dockerfile 2023-05-08 02:08:31 -04:00
docs Document the processor/tributary/coordinator/serai flow 2023-04-25 15:05:58 -04:00
message-queue Add a message queue 2023-07-01 08:53:46 -04:00
processor Monero: support for legacy transactions (#308) 2023-07-04 17:18:05 -04:00
substrate Use serai- prefixes on Serai-specific packages 2023-07-03 08:50:23 -04:00
tests/no-std no-std support for monero-serai (#311) 2023-06-29 04:14:29 -04:00
.gitattributes Correct audit file upload 2023-03-20 17:35:45 -04:00
.gitignore fix for #166 & cleanup (#184) 2022-12-07 10:08:04 -05:00
.rustfmt.toml Apply an initial set of rustfmt rules 2022-07-16 15:16:30 -05:00
AGPL-3.0 Add an initial Substrate instantiation 2022-07-15 00:05:00 -04:00
Cargo.lock cargo update 2023-07-04 13:20:59 -04:00
Cargo.toml Move location of serai-client in Cargo.toml 2023-07-04 13:21:52 -04:00
CONTRIBUTING.md Clarify identation policy 2022-10-11 00:40:50 -05:00
deny.toml Use serai- prefixes on Serai-specific packages 2023-07-03 08:50:23 -04:00
LICENSE Update licenses 2023-01-11 23:05:31 -05:00
README.md Documentation and cargo update 2023-04-13 21:06:11 -04:00

Serai

Serai is a new DEX, built from the ground up, initially planning on listing Bitcoin, Ethereum, DAI, and Monero, offering a liquidity-pool-based trading experience. Funds are stored in an economically secured threshold-multisig wallet.

Getting Started

Layout

  • audits: Audits for various parts of Serai.

  • docs: Documentation on the Serai protocol.

  • common: Crates containing utilities common to a variety of areas under Serai, none neatly fitting under another category.

  • crypto: A series of composable cryptographic libraries built around the ff/group APIs achieving a variety of tasks. These range from generic infrastructure, to our IETF-compliant FROST implementation, to a DLEq proof as needed for Bitcoin-Monero atomic swaps.

  • coins: Various coin libraries intended for usage in Serai yet also by the wider community. This means they will always support the functionality Serai needs, yet won't disadvantage other use cases when possible.

  • processor: A generic chain processor to process data for Serai and process events from Serai, executing transactions as expected and needed.

  • coordinator: A service to manage processors and communicate over a P2P network with other validators.

  • substrate: Substrate crates used to instantiate the Serai network.

  • deploy: Scripts to deploy a Serai node/test environment.