@@ -29,7 +29,9 @@ pub use frame_support::{
2929 traits:: { Everything , Get , Nothing } ,
3030 weights:: Weight ,
3131} ;
32- use module_asset_registry:: { BuyWeightRateOfErc20 , BuyWeightRateOfForeignAsset , BuyWeightRateOfStableAsset } ;
32+ use module_asset_registry:: {
33+ BuyWeightRateOfErc20 , BuyWeightRateOfForeignAsset , BuyWeightRateOfLiquidCrowdloan , BuyWeightRateOfStableAsset ,
34+ } ;
3335use module_support:: HomaSubAccountXcm ;
3436use module_transaction_payment:: BuyWeightRateOfTransactionFeePool ;
3537use orml_traits:: { location:: AbsoluteReserveProvider , parameter_type_with_key, MultiCurrency } ;
@@ -147,6 +149,7 @@ pub type Trader = (
147149 FixedRateOfAsset < BaseRate , ToTreasury , BuyWeightRateOfForeignAsset < Runtime > > ,
148150 FixedRateOfAsset < BaseRate , ToTreasury , BuyWeightRateOfErc20 < Runtime > > ,
149151 FixedRateOfAsset < BaseRate , ToTreasury , BuyWeightRateOfStableAsset < Runtime > > ,
152+ FixedRateOfAsset < BaseRate , ToTreasury , BuyWeightRateOfLiquidCrowdloan < Runtime > > ,
150153 FixedRateOfFungible < DotPerSecond , ToTreasury > ,
151154 FixedRateOfFungible < AusdPerSecond , ToTreasury > ,
152155 FixedRateOfFungible < TapPerSecond , ToTreasury > ,
@@ -244,7 +247,7 @@ pub struct CurrencyIdConvert;
244247impl Convert < CurrencyId , Option < MultiLocation > > for CurrencyIdConvert {
245248 fn convert ( id : CurrencyId ) -> Option < MultiLocation > {
246249 use primitives:: TokenSymbol :: * ;
247- use CurrencyId :: { Erc20 , ForeignAsset , StableAssetPoolToken , Token } ;
250+ use CurrencyId :: { Erc20 , ForeignAsset , LiquidCrowdloan , StableAssetPoolToken , Token } ;
248251 match id {
249252 Token ( DOT ) => Some ( MultiLocation :: parent ( ) ) ,
250253 Token ( ACA ) | Token ( AUSD ) | Token ( LDOT ) | Token ( TAP ) => {
@@ -253,6 +256,7 @@ impl Convert<CurrencyId, Option<MultiLocation>> for CurrencyIdConvert {
253256 Erc20 ( address) if !is_system_contract ( address) => {
254257 Some ( native_currency_location ( ParachainInfo :: get ( ) . into ( ) , id. encode ( ) ) )
255258 }
259+ LiquidCrowdloan ( _lease) => Some ( native_currency_location ( ParachainInfo :: get ( ) . into ( ) , id. encode ( ) ) ) ,
256260 StableAssetPoolToken ( _pool_id) => Some ( native_currency_location ( ParachainInfo :: get ( ) . into ( ) , id. encode ( ) ) ) ,
257261 ForeignAsset ( foreign_asset_id) => AssetIdMaps :: < Runtime > :: get_multi_location ( foreign_asset_id) ,
258262 _ => None ,
@@ -262,7 +266,7 @@ impl Convert<CurrencyId, Option<MultiLocation>> for CurrencyIdConvert {
262266impl Convert < MultiLocation , Option < CurrencyId > > for CurrencyIdConvert {
263267 fn convert ( location : MultiLocation ) -> Option < CurrencyId > {
264268 use primitives:: TokenSymbol :: * ;
265- use CurrencyId :: { Erc20 , StableAssetPoolToken , Token } ;
269+ use CurrencyId :: { Erc20 , LiquidCrowdloan , StableAssetPoolToken , Token } ;
266270
267271 if location == MultiLocation :: parent ( ) {
268272 return Some ( Token ( DOT ) ) ;
@@ -285,6 +289,7 @@ impl Convert<MultiLocation, Option<CurrencyId>> for CurrencyIdConvert {
285289 match currency_id {
286290 Token ( ACA ) | Token ( AUSD ) | Token ( LDOT ) | Token ( TAP ) => Some ( currency_id) ,
287291 Erc20 ( address) if !is_system_contract ( address) => Some ( currency_id) ,
292+ LiquidCrowdloan ( _lease) => Some ( currency_id) ,
288293 StableAssetPoolToken ( _pool_id) => Some ( currency_id) ,
289294 _ => None ,
290295 }
@@ -306,6 +311,7 @@ impl Convert<MultiLocation, Option<CurrencyId>> for CurrencyIdConvert {
306311 match currency_id {
307312 Token ( ACA ) | Token ( AUSD ) | Token ( LDOT ) | Token ( TAP ) => Some ( currency_id) ,
308313 Erc20 ( address) if !is_system_contract ( address) => Some ( currency_id) ,
314+ LiquidCrowdloan ( _lease) => Some ( currency_id) ,
309315 StableAssetPoolToken ( _pool_id) => Some ( currency_id) ,
310316 _ => None ,
311317 }
0 commit comments