Welcome to the Linux Foundation Forum!

Unexpected results after executing getHistory to read history of asssets

javierpc
javierpc Posts: 2
edited January 2023 in LFD272 Class Forum

According to the getHistory sample code to retrieve the history of assets should get a result like this (only the values list):

"values" [{
          "tx_id": "a632beac6289795e31f1507054c9f0936b125aa74ebcbd10446379dbd77bc69f",
          "value": "new_value",
          "isDelete": false    
    }, {
          "tx_id": "9be4d02a9c0b1df3d9e3b8f7042f5a52d333fdb6a5825716e4ce9d14680e2d0a",
          "value": "",
          "isDelete": true
    }, {
          "tx_id": "c8c4c5bc049c0839aa097a0476d5444c3800ea9489667c5c55e8a8cd7f942aa3",
          "value": "updated_value",
          "isDelete": false
    }, {
          "tx_id": "4654547499ae3b1110c0371e073d077aad67322fc866a40dd3a4148053135b7b",
          "value": "initial_value",
          "isDelete": false
    }]

but I receive only this:

{
  "objectType": "history",
  "key": "key",
  "values" [
    {
       "value": "new_value"
    }, 
    {
      "value": ""
    }, 
    {
      "value": "updated_value"
    }, 
    {
      "value": "initial_value"
    }
  ]
}

The code adds txId and isDelete properties along with value, so I don't know why only value is returned:

for await (const res of iteratorPromise) {
   history.push({
       txId: res.txId,
       value: res.value.toString(),
       isDelete: res.isDelete
   });
}

Comments

  • Bobbijn
    Bobbijn Posts: 190

    @javierpc, Hello; let's see if we can determine the issue. Please provides more information about the specific lab exercise you are working on and the step where you are experiencing the issue to understand the problem better and provide more targeted assistance. Here is an additional resource for you:
    https://hyperledger-fabric.readthedocs.io/en/latest/readwrite.html?highlight=s txId isDelete

    Another option is to join the discussion on discord here is a link:
    https://discord.com/invite/hyperledger

    Best, Bobbi

  • javierpc
    javierpc Posts: 2
    edited January 2023

    Hi Bobbi, thanks for your answer. The problem appears in chapter 7, Collecting the History of Assets.

    I've found the cause of the problem; the code refers to properties in the KeyModification structure: txId, value and isDelete, but according to the documentation the actual names are tx_id, value and is_delete.

    After fixing the names and publish the new version of the chaincode, i get the expected result:

    {
      "objectType": "history",
      "key": "key",
      "values": [
        {
          "tx_id": "42e368afd50c25f947ee3c2f22c6d0f25f4fb119c42022c432771ee2a9cdc124",
          "value": "new_value",
          "is_delete": false
        },
        {
          "tx_id": "93db883ca99cccd33846ea0c85865b7ec5f4836722427c1579beeba34b8b7b1d",
          "value": "",
          "is_delete": true
        },
        {
          "tx_id": "2c13e652206175902175ff99e20ae633e7ffe9d799576159fe5d098c622cee3c",
          "value": "updated_value",
          "is_delete": false
        },
        {
          "tx_id": "df6fb85e937cb57139cae33b5c353f4e0cd7a2ac923b582cd3874b46dae704d9",
          "value": "initial_value",
          "is_delete": false
        }
      ]
    }
    

    Thanks.

  • Bobbijn
    Bobbijn Posts: 190

    Great Job!!

Categories

Upcoming Training