@@ -162,7 +162,8 @@ const findCounterpartChainName = (
162162const tryDenomToIbcAsset = async (
163163 denom : string ,
164164 ibcAddressToDenomTrace : ( address : string ) => Promise < DenomTrace | undefined > ,
165- chainName : string
165+ chainName : string ,
166+ namadaChainName : string
166167) : Promise < Asset | undefined > => {
167168 const denomTrace = await ibcAddressToDenomTrace ( denom ) ;
168169 if ( typeof denomTrace === "undefined" ) {
@@ -171,10 +172,14 @@ const tryDenomToIbcAsset = async (
171172
172173 const { path, baseDenom } = denomTrace ;
173174
174- const assetOnRegistry = tryDenomToRegistryAsset (
175- baseDenom ,
176- registry . assets . map ( ( assetListEl ) => assetListEl . assets ) . flat ( )
177- ) ;
175+ // We only check assets for the selected chain i.e. osmosis and current namada chain,
176+ // this prevents displaying housefire produced nam on mainnet namada
177+ const assets = assetLookup ( chainName ) || [ ] ;
178+ const namadaAssets = assetLookup ( namadaChainName ) || [ ] ;
179+ const assetOnRegistry = tryDenomToRegistryAsset ( baseDenom , [
180+ ...assets ,
181+ ...namadaAssets ,
182+ ] ) ;
178183
179184 if ( assetOnRegistry ) {
180185 return assetOnRegistry ;
@@ -220,6 +225,7 @@ const findOriginalAsset = async (
220225 coin : Coin ,
221226 assets : Asset [ ] ,
222227 ibcAddressToDenomTrace : ( address : string ) => Promise < DenomTrace | undefined > ,
228+ namadaChainName : string ,
223229 chainName ?: string
224230) : Promise < AddressWithAssetAndAmount > => {
225231 const { minDenomAmount, denom } = coin ;
@@ -230,7 +236,12 @@ const findOriginalAsset = async (
230236 }
231237
232238 if ( ! asset && chainName ) {
233- asset = await tryDenomToIbcAsset ( denom , ibcAddressToDenomTrace , chainName ) ;
239+ asset = await tryDenomToIbcAsset (
240+ denom ,
241+ ibcAddressToDenomTrace ,
242+ chainName ,
243+ namadaChainName
244+ ) ;
234245 }
235246
236247 if ( ! asset ) {
@@ -257,9 +268,12 @@ export const findChainById = (chainId: string): Chain | undefined => {
257268export const mapCoinsToAssets = async (
258269 coins : Coin [ ] ,
259270 chainId : string ,
271+ namadaChainId : string ,
260272 ibcAddressToDenomTrace : ( address : string ) => Promise < DenomTrace | undefined >
261273) : Promise < AddressWithAssetAndAmountMap > => {
262274 const chainName = findChainById ( chainId ) ?. chain_name ;
275+ // Namada chain name should be always available
276+ const namadaChainName = findChainById ( namadaChainId ) ?. chain_name as string ;
263277 const assets = mapUndefined ( assetLookup , chainName ) ;
264278 const results = await Promise . allSettled (
265279 coins . map (
@@ -268,6 +282,7 @@ export const mapCoinsToAssets = async (
268282 coin ,
269283 assets || [ ] ,
270284 ibcAddressToDenomTrace ,
285+ namadaChainName ,
271286 chainName
272287 )
273288 )
0 commit comments