@@ -162,7 +162,8 @@ const findCounterpartChainName = (
162
162
const tryDenomToIbcAsset = async (
163
163
denom : string ,
164
164
ibcAddressToDenomTrace : ( address : string ) => Promise < DenomTrace | undefined > ,
165
- chainName : string
165
+ chainName : string ,
166
+ namadaChainName : string
166
167
) : Promise < Asset | undefined > => {
167
168
const denomTrace = await ibcAddressToDenomTrace ( denom ) ;
168
169
if ( typeof denomTrace === "undefined" ) {
@@ -171,10 +172,14 @@ const tryDenomToIbcAsset = async (
171
172
172
173
const { path, baseDenom } = denomTrace ;
173
174
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
+ ] ) ;
178
183
179
184
if ( assetOnRegistry ) {
180
185
return assetOnRegistry ;
@@ -220,6 +225,7 @@ const findOriginalAsset = async (
220
225
coin : Coin ,
221
226
assets : Asset [ ] ,
222
227
ibcAddressToDenomTrace : ( address : string ) => Promise < DenomTrace | undefined > ,
228
+ namadaChainName : string ,
223
229
chainName ?: string
224
230
) : Promise < AddressWithAssetAndAmount > => {
225
231
const { minDenomAmount, denom } = coin ;
@@ -230,7 +236,12 @@ const findOriginalAsset = async (
230
236
}
231
237
232
238
if ( ! asset && chainName ) {
233
- asset = await tryDenomToIbcAsset ( denom , ibcAddressToDenomTrace , chainName ) ;
239
+ asset = await tryDenomToIbcAsset (
240
+ denom ,
241
+ ibcAddressToDenomTrace ,
242
+ chainName ,
243
+ namadaChainName
244
+ ) ;
234
245
}
235
246
236
247
if ( ! asset ) {
@@ -257,9 +268,12 @@ export const findChainById = (chainId: string): Chain | undefined => {
257
268
export const mapCoinsToAssets = async (
258
269
coins : Coin [ ] ,
259
270
chainId : string ,
271
+ namadaChainId : string ,
260
272
ibcAddressToDenomTrace : ( address : string ) => Promise < DenomTrace | undefined >
261
273
) : Promise < AddressWithAssetAndAmountMap > => {
262
274
const chainName = findChainById ( chainId ) ?. chain_name ;
275
+ // Namada chain name should be always available
276
+ const namadaChainName = findChainById ( namadaChainId ) ?. chain_name as string ;
263
277
const assets = mapUndefined ( assetLookup , chainName ) ;
264
278
const results = await Promise . allSettled (
265
279
coins . map (
@@ -268,6 +282,7 @@ export const mapCoinsToAssets = async (
268
282
coin ,
269
283
assets || [ ] ,
270
284
ibcAddressToDenomTrace ,
285
+ namadaChainName ,
271
286
chainName
272
287
)
273
288
)
0 commit comments