diff --git a/src/features/assets/data/asset-metadata.ts b/src/features/assets/data/asset-metadata.ts index 00194990..289a102d 100644 --- a/src/features/assets/data/asset-metadata.ts +++ b/src/features/assets/data/asset-metadata.ts @@ -45,7 +45,7 @@ const createAssetMetadataResult = async ( // Get ARC-3 or ARC-19 metadata if applicable const [isArc3, isArc19] = assetResult.params.url - ? ([isArc3Url(assetResult.params.url), isArc19Url(assetResult.params.url)] as const) + ? ([isArc3Url(assetResult.params.url, assetResult.params.name), isArc19Url(assetResult.params.url)] as const) : [false, false] if (assetResult.params.url && (isArc3 || isArc19)) { diff --git a/src/features/assets/mappers/asset.ts b/src/features/assets/mappers/asset.ts index 854a556d..817994d6 100644 --- a/src/features/assets/mappers/asset.ts +++ b/src/features/assets/mappers/asset.ts @@ -114,7 +114,7 @@ const asStandardsUsed = (assetResult: AssetResult, metadataResult: AssetMetadata const standardsUsed = new Set() const [isArc3, isArc19] = assetResult.params.url - ? ([isArc3Url(assetResult.params.url), isArc19Url(assetResult.params.url)] as const) + ? ([isArc3Url(assetResult.params.url, assetResult.params.name), isArc19Url(assetResult.params.url)] as const) : [false, false] if (isArc3) { standardsUsed.add(AssetStandard.ARC3) diff --git a/src/features/assets/utils/arc3.ts b/src/features/assets/utils/arc3.ts index 036cbb78..f9d0dfa8 100644 --- a/src/features/assets/utils/arc3.ts +++ b/src/features/assets/utils/arc3.ts @@ -1,8 +1,13 @@ import { AssetId } from '../data/types' -// When the URL contains #arc3 or @arc3, it follows ARC-3 -export const isArc3Url = (assetUrl: string) => assetUrl.includes('#arc3') || assetUrl.includes('@arc3') +// Check if the asset details follow ARC-3 +export const isArc3Url = (assetUrl: string, assetName: string | undefined) => + assetUrl.endsWith('#arc3') || (assetName && (assetName === 'arc3' || assetName.endsWith('@arc3'))) export const getArc3Url = (assetId: AssetId, url: string): string => { - return url.replace('{id}', assetId.toString()) + let result = url.replace('{id}', assetId.toString()) + if (result.endsWith('#arc3')) { + result = result.slice(0, -5) + } + return result }