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 2ace339975
Tokens pallet (#243)
* Use Monero-compatible additional TX keys

This still sends a fingerprinting flare up if you send to a subaddress which
needs to be fixed. Despite that, Monero no should no longer fail to scan TXs
from monero-serai regarding additional keys.

Previously it failed becuase we supplied one key as THE key, and n-1 as
additional. Monero expects n for additional.

This does correctly select when to use THE key versus when to use the additional
key when sending. That removes the ability for recipients to fingerprint
monero-serai by receiving to a standard address yet needing to use an additional
key.

* Add tokens_primitives

Moves OutInstruction from in-instructions.

Turns Destination into OutInstruction.

* Correct in-instructions DispatchClass

* Add initial tokens pallet

* Don't allow pallet addresses to equal identity

* Add support for InInstruction::transfer

Requires a cargo update due to modifications made to serai-dex/substrate.

Successfully mints a token to a SeraiAddress.

* Bind InInstructions to an amount

* Add a call filter to the runtime

Prevents worrying about calls to the assets pallet/generally tightens things
up.

* Restore Destination

It was meged into OutInstruction, yet it didn't make sense for OutInstruction
to contain a SeraiAddress.

Also deletes the excessively dated Scenarios doc.

* Split PublicKey/SeraiAddress

Lets us define a custom Display/ToString for SeraiAddress.

Also resolves an oddity where PublicKey would be encoded as String, not
[u8; 32].

* Test burning tokens/retrieving OutInstructions

Modularizes processor_coinUpdates into a shared testing utility.

* Misc lint

* Don't use PolkadotExtrinsicParams
2023-01-28 01:47:13 -05:00
.github Initial In Instructions pallet and Serai client lib (#233) 2023-01-20 11:00:18 -05:00
coins Add more tests (#240) 2023-01-24 15:22:07 -05:00
common/zalloc Update licenses 2023-01-11 23:05:31 -05:00
crypto Revert "Implement a FROST algorithm for Schnorrkel" 2023-01-13 18:57:07 -05:00
deploy delete compromised key from dockerfile (#231) 2023-01-16 10:51:50 -05:00
docs Tokens pallet (#243) 2023-01-28 01:47:13 -05:00
processor Initial In Instructions pallet and Serai client lib (#233) 2023-01-20 11:00:18 -05:00
substrate Tokens pallet (#243) 2023-01-28 01:47:13 -05:00
.gitattributes Cluster Orchestration with Docker Compose (#114) 2022-09-12 15:01:14 -05: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 Tokens pallet (#243) 2023-01-28 01:47:13 -05:00
Cargo.toml Tokens pallet (#243) 2023-01-28 01:47:13 -05:00
CONTRIBUTING.md Clarify identation policy 2022-10-11 00:40:50 -05:00
deny.toml Tokens pallet (#243) 2023-01-28 01:47:13 -05:00
LICENSE Update licenses 2023-01-11 23:05:31 -05:00
README.md Reorder coins in README by market cap 2023-01-04 06:17:00 -05: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

  • 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.

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

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