diff --git a/substrate/abi/src/genesis_liquidity.rs b/substrate/abi/src/genesis_liquidity.rs
index 7837c2b1..2b0c208c 100644
--- a/substrate/abi/src/genesis_liquidity.rs
+++ b/substrate/abi/src/genesis_liquidity.rs
@@ -1,12 +1,13 @@
+pub use serai_genesis_liquidity_primitives as primitives;
+
use serai_primitives::*;
-use serai_genesis_liquidity_primitives::*;
+use primitives::*;
#[derive(Clone, PartialEq, Eq, Debug, scale::Encode, scale::Decode, scale_info::TypeInfo)]
-#[cfg_attr(feature = "borsh", derive(borsh::BorshSerialize, borsh::BorshDeserialize))]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum Call {
remove_coin_liquidity { balance: Balance },
- set_initial_price { prices: Prices },
+ set_initial_price { prices: Prices, signature: Signature },
}
#[derive(Clone, PartialEq, Eq, Debug, scale::Encode, scale::Decode, scale_info::TypeInfo)]
diff --git a/substrate/abi/src/liquidity_tokens.rs b/substrate/abi/src/liquidity_tokens.rs
new file mode 100644
index 00000000..6bdc651b
--- /dev/null
+++ b/substrate/abi/src/liquidity_tokens.rs
@@ -0,0 +1,18 @@
+use serai_primitives::{Balance, SeraiAddress};
+
+#[derive(Clone, PartialEq, Eq, Debug, scale::Encode, scale::Decode, scale_info::TypeInfo)]
+#[cfg_attr(feature = "borsh", derive(borsh::BorshSerialize, borsh::BorshDeserialize))]
+#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
+pub enum Call {
+ burn { balance: Balance },
+ transfer { to: SeraiAddress, balance: Balance },
+}
+
+#[derive(Clone, PartialEq, Eq, Debug, scale::Encode, scale::Decode, scale_info::TypeInfo)]
+#[cfg_attr(feature = "borsh", derive(borsh::BorshSerialize, borsh::BorshDeserialize))]
+#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
+pub enum Event {
+ Mint { to: SeraiAddress, balance: Balance },
+ Burn { from: SeraiAddress, balance: Balance },
+ Transfer { from: SeraiAddress, to: SeraiAddress, balance: Balance },
+}
diff --git a/substrate/client/src/serai/dex.rs b/substrate/client/src/serai/dex.rs
index 00108dfe..18341125 100644
--- a/substrate/client/src/serai/dex.rs
+++ b/substrate/client/src/serai/dex.rs
@@ -1,7 +1,9 @@
use sp_core::bounded_vec::BoundedVec;
use serai_abi::primitives::{SeraiAddress, Amount, Coin};
-use crate::{SeraiError, TemporalSerai};
+use scale::{decode_from_bytes, Encode};
+
+use crate::{SeraiError, hex_decode, TemporalSerai};
pub type DexEvent = serai_abi::dex::Event;
@@ -57,4 +59,21 @@ impl<'a> SeraiDex<'a> {
send_to: address,
})
}
+
+ pub async fn get_reserves(
+ &self,
+ coin1: Coin,
+ coin2: Coin,
+ ) -> Result