Add Dex pallet (#407)

* Move pallet-asset-conversion

* update licensing

* initial integration

* Integrate Currency & Assets types

* integrate liquidity tokens

* fmt

* integrate dex pallet tests

* fmt

* compilation error fixes

* integrate dex benchmarks

* fmt

* cargo clippy

* replace all occurrences of "asset" with "coin"

* add the actual add liq/swap logic to in-instructions

* add client side & tests

* fix deny

* Lint and changes

- Renames InInstruction::AddLiquidity to InInstruction::SwapAndAddLiquidity
- Makes create_pool an internal function
- Makes dex-pallet exclusively create pools against a native coin
- Removes various fees
- Adds new crates to GH workflow

* Fix rebase artifacts

* Correct other rebase artifact

* Correct CI specification for liquidity-tokens

* Correct primitives' test to the standardized pallet account scheme

---------

Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
This commit is contained in:
akildemir
2023-11-05 20:02:34 +03:00
committed by GitHub
parent facb5817c4
commit 899a9604e1
38 changed files with 5327 additions and 27 deletions

View File

@@ -42,6 +42,8 @@ pub const COINS: [Coin; 5] = [Coin::Serai, Coin::Bitcoin, Coin::Ether, Coin::Dai
Copy,
PartialEq,
Eq,
PartialOrd,
Ord,
Hash,
Debug,
Serialize,
@@ -61,6 +63,10 @@ pub enum Coin {
}
impl Coin {
pub fn native() -> Coin {
Coin::Serai
}
pub fn network(&self) -> NetworkId {
match self {
Coin::Serai => NetworkId::Serai,
@@ -101,6 +107,10 @@ impl Coin {
Coin::Monero => 12,
}
}
pub fn is_native(&self) -> bool {
matches!(self, Coin::Serai)
}
}
// Max of 8 coins per network