Skip to content

Commit b5c9f26

Browse files
committed
fix(cardano-services-client): map nft metadata version to the one specified in metadata
1 parent 1dc0169 commit b5c9f26

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

packages/cardano-services-client/src/AssetInfoProvider/BlockfrostAssetProvider.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export class BlockfrostAssetProvider extends BlockfrostProvider implements Asset
4949
: undefined,
5050
name,
5151
otherProperties: this.mapNftMetadataOtherProperties(asset.onchain_metadata),
52-
version: '1.0'
52+
version: this.mapNftMetadataVersion(asset.onchain_metadata)
5353
};
5454
} catch (error) {
5555
this.logger.warn('Failed to parse nft metadata', asset, error);
@@ -84,6 +84,10 @@ export class BlockfrostAssetProvider extends BlockfrostProvider implements Asset
8484
return '';
8585
}
8686

87+
private mapNftMetadataVersion(metadata: Responses['asset']['onchain_metadata']) {
88+
return typeof metadata?.version === 'string' ? metadata.version : '1.0';
89+
}
90+
8791
private mapNftMetadataOtherProperties(
8892
metadata: Responses['asset']['onchain_metadata']
8993
): Map<string, Cardano.Metadatum> | undefined {

packages/cardano-services-client/test/AssetInfoProvider/BlockfrostAssetProvider.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,5 +191,27 @@ describe('BlockfrostAssetProvider', () => {
191191

192192
expect(response.nftMetadata!.files![0].src).toBe('http://some.png');
193193
});
194+
195+
test('version', async () => {
196+
mockResponses(request, [
197+
[
198+
`assets/${mockedAssetId}`,
199+
{
200+
...mockedAssetResponse,
201+
onchain_metadata: {
202+
...mockedAssetResponse.onchain_metadata,
203+
version: '2.0'
204+
}
205+
}
206+
]
207+
]);
208+
209+
const response = await provider.getAsset({
210+
assetId: mockedAssetId,
211+
extraData: { nftMetadata: true }
212+
});
213+
214+
expect(response.nftMetadata!.version).toBe('2.0');
215+
});
194216
});
195217
});

0 commit comments

Comments
 (0)