From cd9fa373adb64108cfcbc708094d9b40eb55a3a0 Mon Sep 17 00:00:00 2001 From: Ajith S Date: Wed, 19 Jun 2024 15:02:07 +0530 Subject: [PATCH] GetHistoryForKey added to the chaincode-typescript --- .../chaincode-typescript/src/assetTransfer.ts | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/asset-transfer-basic/chaincode-typescript/src/assetTransfer.ts b/asset-transfer-basic/chaincode-typescript/src/assetTransfer.ts index d3ed927a..562f6a6a 100644 --- a/asset-transfer-basic/chaincode-typescript/src/assetTransfer.ts +++ b/asset-transfer-basic/chaincode-typescript/src/assetTransfer.ts @@ -170,4 +170,33 @@ export class AssetTransferContract extends Contract { return JSON.stringify(allResults); } + // GetHistoryForKey returns all assets history in the world state. + @Transaction(false) + @Returns("string") + public async GetHistoryForKey(ctx: Context, id: string): Promise { + const results: string[] = []; + try { + const historyIterator = await ctx.stub.getHistoryForKey(id); + let result = await historyIterator.next(); + if (result.done) { + const errorMessage = `Asset ${id} does not exist`; + console.log(errorMessage); + throw new Error(errorMessage); + } + + while (!result.done) { + const iteratorValue = Buffer.from( + result.value.value.toString() + ).toString("utf8"); + results.push(iteratorValue); + console.log(iteratorValue); + result = await historyIterator.next(); + } + + await historyIterator.close(); + } catch (error) { + console.log(error); + } + return JSON.stringify(results); + } }