1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

Updating guide and formatting

This commit is contained in:
Jamie Hewitt 2022-12-21 15:04:30 +00:00
parent 3919bf7b2d
commit 726e34c8fc
3 changed files with 60 additions and 60 deletions

View File

@ -677,6 +677,49 @@ Let's check we received the download URL ok
``` ```
### 8.1 Add key-value pair to data NFT
Data NFTs can store arbitrary key-value pairs on-chain. This opens up their usage for a broad variety of applications, such as comments & ratings, attestations, and privately sharing data (when the value is encrypted).
Let's see how!
Here are the steps:
1. Setup (same as above)
2. Publish data NFT (same as above)
3. Add key-value pair to data NFT (use the `setData` method)
4. Retrieve value from data NFT (use the `getData` method)
Let's start by using the `setData` method to update the nft key value store with some data
```Typescript
const nft = new Nft(web3)
const data = 'SomeData'
try {
await nft.setData(freNftAddress, publisherAccount, '1', data)
} catch (e) {
console.error(e)
assert.fail('Download failed')
}
```
Under the hood, this uses [ERC725](https://erc725alliance.org/), which augments ERC721 with a well-defined way to set and get key-value pairs.
### 8.2 Add key-value pair to data NFT
```Typescript
const nft = new Nft(web3)
try {
Use the `getData` method to get the data stored in the nft key value store
const data = await nft.getData(freNftAddress, '1')
console.log('Data: ', data)
} catch (e) {
console.error(e)
assert.fail('Download failed')
}
```
That's it! Note the simplicity. All data was stored and retrieved from on-chain. We don't need Ocean Provider or Ocean Aquarius for these use cases (though the latter can help for fast querying & retrieval).
## Editing this file ## Editing this file
Please note that CodeExamples.md is an autogenerated file, you should not edit it directly. Please note that CodeExamples.md is an autogenerated file, you should not edit it directly.

View File

@ -1,57 +0,0 @@
<!--
Copyright 2022 Ocean Protocol Foundation
SPDX-License-Identifier: Apache-2.0
-->
# Quickstart: Key-value database
Data NFTs can store arbitrary key-value pairs on-chain. This opens up their usage for a broad variety of applications, such as comments & ratings, attestations, and privately sharing data (when the value is encrypted).
Let's see how!
Here are the steps:
1. Setup
2. Publish data NFT
3. Add key-value pair to data NFT
4. Retrieve value from data NFT
## 1. Setup
Ensure that you've already (a) [installed Ocean](install.md), and (b) [set up locally](setup-local.md) or [remotely](setup-remote.md).
## 2. Publish data NFT
```javascript
// from ocean_lib.models.arguments import DataNFTArguments
// data_nft = ocean.data_nft_factory.create(DataNFTArguments('NFT1', 'NFT1'), alice)
```
## 3. Add key-value pair to data NFT
```javascript
// # Key-value pair
// key = "fav_color"
// value = b"blue"
// # prep key for setter
// from web3.main import Web3
// key_hash = Web3.keccak(text=key) # Contract/ERC725 requires keccak256 hash
// # set
// data_nft.setNewData(key_hash, value, {"from": alice})
```
## 4. Retrieve value from data NFT
```javascript
// value2_hex = data_nft.getData(key_hash)
// value2 = value2_hex.decode('ascii')
// print(f"Found that {key} = {value2}")
```
That's it! Note the simplicity. All data was stored and retrieved from on-chain. We don't need Ocean Provider or Ocean Aquarius for these use cases (though the latter can help for fast querying & retrieval).
We can also encrypt the data. Other quickstarts explore this.
Under the hood, it uses [ERC725](https://erc725alliance.org/), which augments ERC721 with a well-defined way to set and get key-value pairs.

View File

@ -678,20 +678,33 @@ describe('Marketplace flow tests', async () => {
/// ``` /// ```
it('8.1 Add key-value pair to data NFT', async () => { it('8.1 Add key-value pair to data NFT', async () => {
/// Data NFTs can store arbitrary key-value pairs on-chain. This opens up their usage for a broad variety of applications, such as comments & ratings, attestations, and privately sharing data (when the value is encrypted).
/// Let's see how!
/// Here are the steps:
/// 1. Setup (same as above)
/// 2. Publish data NFT (same as above)
/// 3. Add key-value pair to data NFT (use the `setData` method)
/// 4. Retrieve value from data NFT (use the `getData` method)
/// Let's start by using the `setData` method to update the nft key value store with some data
/// ```Typescript /// ```Typescript
const nft = new Nft(web3) const nft = new Nft(web3)
const data = 'SomeData' const data = 'SomeData'
try { try {
/// Use the `setData` method to update the nft key value store with some data
await nft.setData(freNftAddress, publisherAccount, '1', data) await nft.setData(freNftAddress, publisherAccount, '1', data)
} catch (e) { } catch (e) {
console.error(e) console.error(e)
assert.fail('Download failed') assert.fail('Download failed')
} }
/// ``` /// ```
/// Under the hood, this uses [ERC725](https://erc725alliance.org/), which augments ERC721 with a well-defined way to set and get key-value pairs.
}) /// }) ///
it('8.2 Add key-value pair to data NFT', async () => { it('8.2 get the key-value pair data from the NFT', async () => {
/// ```Typescript /// ```Typescript
const nft = new Nft(web3) const nft = new Nft(web3)
try { try {
@ -703,8 +716,9 @@ describe('Marketplace flow tests', async () => {
assert.fail('Download failed') assert.fail('Download failed')
} }
/// ``` /// ```
/// That's it! Note the simplicity. All data was stored and retrieved from on-chain. We don't need Ocean Provider or Ocean Aquarius for these use cases (though the latter can help for fast querying & retrieval).
}) /// }) ///
/// ```
}) /// }) ///
/// ## Editing this file /// ## Editing this file