Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Ocean.js-PlayGround/2.2.updateMetadata.js /
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
59 lines (47 sloc)
1.57 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const { | |
| Nft, | |
| ProviderInstance, | |
| getHash, | |
| Aquarius | |
| } = require('@oceanprotocol/lib'); | |
| const { SHA256 } = require('crypto-js'); | |
| const Web3 = require('web3'); | |
| const { web3Provider, oceanConfig } = require('./config'); | |
| const web3 = new Web3(web3Provider); | |
| const aquarius = new Aquarius(oceanConfig.metadataCacheUri); | |
| const nft = new Nft(web3); | |
| const providerUrl = oceanConfig.providerUri; | |
| const did = "did:op:a419f07306d71f3357f8df74807d5d12bddd6bcd738eb0b461470c64859d6f0f"; | |
| const setMetadata = async (did) => { | |
| const accounts = await web3.eth.getAccounts(); | |
| const publisherAccount = accounts[0]; | |
| const ddo = await aquarius.resolve(did); | |
| // update the ddo here | |
| ddo.metadata.name = "Sample dataset v2"; | |
| ddo.metadata.description = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam"; | |
| ddo.metadata.tags = ["new tag1", "new tag2"]; | |
| providerResponse = await ProviderInstance.encrypt(ddo, providerUrl); | |
| const encryptedResponse = await providerResponse; | |
| const metadataHash = getHash(JSON.stringify(ddo)); | |
| await nft.setMetadata( | |
| ddo.nftAddress, | |
| publisherAccount, | |
| 0, | |
| providerUrl, | |
| '', | |
| '0x2', | |
| encryptedResponse, | |
| `0x${metadataHash}` | |
| ); | |
| await aquarius.waitForAqua(ddo.id); | |
| console.log(`Resolved asset did [${ddo.id}]from aquarius.`); | |
| console.log(`Updated name: [${ddo.metadata.name}].`); | |
| console.log(`Updated description: [${ddo.metadata.description}].`); | |
| console.log(`Updated tags: [${ddo.metadata.tags}].`); | |
| }; | |
| setMetadata(did).then(() => { | |
| process.exit(); | |
| }).catch((err) => { | |
| console.error(err); | |
| process.exit(1); | |
| }); |