diff --git a/CryptoExchange.Net/Objects/AssetAlias.cs b/CryptoExchange.Net/Objects/AssetAlias.cs
index 5829d09..5ef6bc7 100644
--- a/CryptoExchange.Net/Objects/AssetAlias.cs
+++ b/CryptoExchange.Net/Objects/AssetAlias.cs
@@ -9,6 +9,10 @@ namespace CryptoExchange.Net.Objects
///
public class AssetAlias
{
+ ///
+ /// Alias type
+ ///
+ public AliasType Type { get; set; }
///
/// The name of the asset on the exchange
///
@@ -21,10 +25,26 @@ namespace CryptoExchange.Net.Objects
///
/// ctor
///
- public AssetAlias(string exchangeName, string commonName)
+ public AssetAlias(string exchangeName, string commonName, AliasType type = AliasType.BothWays)
{
ExchangeAssetName = exchangeName;
CommonAssetName = commonName;
+ Type = type;
}
}
+
+ ///
+ /// Alias type
+ ///
+ public enum AliasType
+ {
+ ///
+ /// Translate both from and to exchange
+ ///
+ BothWays,
+ ///
+ /// Only translate when converting to exchange
+ ///
+ OnlyToExchange
+ }
}
diff --git a/CryptoExchange.Net/Objects/AssetAliasConfiguration.cs b/CryptoExchange.Net/Objects/AssetAliasConfiguration.cs
index ab5622f..763b6ec 100644
--- a/CryptoExchange.Net/Objects/AssetAliasConfiguration.cs
+++ b/CryptoExchange.Net/Objects/AssetAliasConfiguration.cs
@@ -23,12 +23,22 @@ namespace CryptoExchange.Net.Objects
///
/// Map the common name to an exchange name for an asset. If there is no alias the input name is returned
///
- public string CommonToExchangeName(string commonName) => !AutoConvertEnabled ? commonName : Aliases.SingleOrDefault(x => x.CommonAssetName == commonName)?.ExchangeAssetName ?? commonName;
+ public string CommonToExchangeName(string commonName) => !AutoConvertEnabled ? commonName : Aliases.FirstOrDefault(x => x.CommonAssetName == commonName)?.ExchangeAssetName ?? commonName;
///
/// Map the exchange name to a common name for an asset. If there is no alias the input name is returned
///
- public string ExchangeToCommonName(string exchangeName) => !AutoConvertEnabled ? exchangeName : Aliases.SingleOrDefault(x => x.ExchangeAssetName == exchangeName)?.CommonAssetName ?? exchangeName;
+ public string ExchangeToCommonName(string exchangeName)
+ {
+ if (!AutoConvertEnabled)
+ return exchangeName;
+
+ var alias = Aliases.FirstOrDefault(x => x.ExchangeAssetName == exchangeName);
+ if (alias == null || alias.Type == AliasType.OnlyToExchange)
+ return exchangeName;
+
+ return alias.CommonAssetName;
+ }
}
}