Skip to content

Commit 8d7f827

Browse files
committed
feat(projection): ignore burn transactions when projecting cip25 metadata
cardano-foundation/CIPs#527
1 parent 9709fc7 commit 8d7f827

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

packages/projection/src/operators/Mappers/withNftMetadata.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ const getNftMetadataFromCip67 = ({ cip67 }: WithCIP67, logger: Logger) =>
3030
);
3131

3232
const getNftMetadataFromCip25 = ({ mint }: WithMint, logger: Logger) =>
33-
mint.map(({ assetId, txMetadata, policyId, assetName }): ProjectedNftMetadata | null => {
33+
mint.map(({ assetId, txMetadata, policyId, assetName, quantity }): ProjectedNftMetadata | null => {
34+
if (quantity < 1n) return null;
3435
const nftMetadata = Asset.NftMetadata.fromMetadatum({ name: assetName, policyId }, txMetadata, logger);
3536

3637
if (!nftMetadata) return null;

packages/projection/test/operators/Mappers/withNftMetadata.test.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ const datumNftmetadata = {
5353
describe('withNftMetadata', () => {
5454
const assetId1 = Cardano.AssetId('7d878696b149b529807aa01b8e20785e0a0d470c32c13f53f08a55e344455630303032');
5555
const assetId2 = Cardano.AssetId('7d878696b149b529807aa01b8e20785e0a0d470c32c13f53f08a55e344455638393230');
56+
const assetId3 = Cardano.AssetId('7d878696b149b529807aa01b8e20785e0a0d470c32c13f53f08a55e344455638393233');
5657
const otherProperties1 = new Map([
5758
['Background', 'Ocean'],
5859
['Body', 'Pale'],
@@ -97,6 +98,14 @@ describe('withNftMetadata', () => {
9798
['name', 'DEV 0002']
9899
])
99100
],
101+
[
102+
Buffer.from(Cardano.AssetId.getAssetName(assetId3), 'hex').toString('utf8'),
103+
new Map([
104+
['image', 'ipfs://QmWmB37VZ9uc2cVe2fG31Xqjxw5VbUu4DMLkGt9LW6z7Up'],
105+
['mediaType', 'image/jpeg'],
106+
['name', 'Burned']
107+
])
108+
],
100109
[
101110
'DEV8920',
102111
new Map([
@@ -121,7 +130,8 @@ describe('withNftMetadata', () => {
121130
body: {
122131
mint: new Map([
123132
[assetId1, 1n],
124-
[assetId2, 1n]
133+
[assetId2, 1n],
134+
[assetId3, -1n]
125135
])
126136
}
127137
}

0 commit comments

Comments
 (0)