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

Adding additional comments in the code

This commit is contained in:
Jamie Hewitt 2022-05-05 16:47:38 +03:00
parent 0e4df185b1
commit 75e0afa4d9
3 changed files with 135 additions and 42 deletions

View File

@ -120,7 +120,7 @@ import { Addresses, deployContracts } from '../TestContractHandler'
describe('Marketplace flow tests describe('Marketplace flow tests
--> -->
Variables and constants needed for the test: Now we define the variables which we will need later
```Typescript ```Typescript
let config: Config let config: Config
@ -140,7 +140,10 @@ Variables and constants needed for the test:
let dispenserNftAddress: string let dispenserNftAddress: string
let dispenserDatatokenAddress: string let dispenserDatatokenAddress: string
let dispenserAddress: string let dispenserAddress: string
```
We also define some constants that we will use:
```Typescript
const POOL_NFT_NAME = 'Datatoken 1' const POOL_NFT_NAME = 'Datatoken 1'
const POOL_NFT_SYMBOL = 'DT1' const POOL_NFT_SYMBOL = 'DT1'
const FRE_NFT_NAME = 'Datatoken 2' const FRE_NFT_NAME = 'Datatoken 2'
@ -199,7 +202,7 @@ We load the configuration:
console.log(`Aquarius URL: ${config.metadataCacheUri}`) console.log(`Aquarius URL: ${config.metadataCacheUri}`)
console.log(`Provider URL: ${providerUrl}`) console.log(`Provider URL: ${providerUrl}`)
})
``` ```
### Initialize accounts ### Initialize accounts
@ -212,13 +215,13 @@ We load the configuration:
console.log(`Publisher account address: ${publisherAccount}`) console.log(`Publisher account address: ${publisherAccount}`)
console.log(`Consumer account address: ${consumerAccount}`) console.log(`Consumer account address: ${consumerAccount}`)
console.log(`Staker account address: ${stakerAccount}`) console.log(`Staker account address: ${stakerAccount}`)
})
``` ```
### Deploy contracts ### Next, lets deploy the contracts
```Typescript ```Typescript
contracts = await deployContracts(web3, publisherAccount) contracts = await deployContracts(web3, publisherAccount)
})
``` ```
### We send some OCEAN to consumer and staker accounts ### We send some OCEAN to consumer and staker accounts
@ -235,7 +238,7 @@ We load the configuration:
await oceanContract.methods await oceanContract.methods
.transfer(stakerAccount, web3.utils.toWei('100')) .transfer(stakerAccount, web3.utils.toWei('100'))
.send({ from: publisherAccount }) .send({ from: publisherAccount })
})
``` ```
## 4. Publish Data NFT and a Datatoken with a liquidity pool ## 4. Publish Data NFT and a Datatoken with a liquidity pool
@ -303,24 +306,29 @@ For pool creation, the OCEAN token is used as the base token. The base token can
console.log(`Pool NFT address: ${poolNftAddress}`) console.log(`Pool NFT address: ${poolNftAddress}`)
console.log(`Pool Datatoken address: ${poolDatatokenAddress}`) console.log(`Pool Datatoken address: ${poolDatatokenAddress}`)
console.log(`Pool address: ${poolAddress}`) console.log(`Pool address: ${poolAddress}`)
})
``` ```
### Set metadata in the pool NFT ### Set metadata in the pool NFT
```Typescript ```Typescript
const nft = new Nft(web3) const nft = new Nft(web3)
```
// update ddo and set the right did Now we update the ddo and set the right did
```Typescript
DDO.chainId = await web3.eth.getChainId() DDO.chainId = await web3.eth.getChainId()
DDO.id = DDO.id =
'did:op:' + 'did:op:' +
SHA256(web3.utils.toChecksumAddress(poolNftAddress) + DDO.chainId.toString(10)) SHA256(web3.utils.toChecksumAddress(poolNftAddress) + DDO.chainId.toString(10))
DDO.nftAddress = poolNftAddress DDO.nftAddress = poolNftAddress
// encrypt file(s) using provider ```
Next we encrypt the file or files using Ocean Provider. The provider is an off chain proxy built specifically for this task
```Typescript
const encryptedFiles = await ProviderInstance.encrypt(ASSET_URL, providerUrl) const encryptedFiles = await ProviderInstance.encrypt(ASSET_URL, providerUrl)
DDO.services[0].files = await encryptedFiles DDO.services[0].files = await encryptedFiles
DDO.services[0].datatokenAddress = poolDatatokenAddress DDO.services[0].datatokenAddress = poolDatatokenAddress
```
Now let's console log the result to check everything is working
```Typescript
console.log(`DID: ${DDO.id}`) console.log(`DID: ${DDO.id}`)
const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl) const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl)
@ -336,7 +344,7 @@ For pool creation, the OCEAN token is used as the base token. The base token can
encryptedDDO, encryptedDDO,
'0x' + metadataHash '0x' + metadataHash
) )
})
``` ```
### User should add liquidity to the pool, receiving LP tokens ### User should add liquidity to the pool, receiving LP tokens
@ -346,7 +354,7 @@ For pool creation, the OCEAN token is used as the base token. The base token can
await approve(web3, stakerAccount, contracts.oceanAddress, poolAddress, '5', true) await approve(web3, stakerAccount, contracts.oceanAddress, poolAddress, '5', true)
await pool.joinswapExternAmountIn(stakerAccount, poolAddress, '5', '0.1') await pool.joinswapExternAmountIn(stakerAccount, poolAddress, '5', '0.1')
})
``` ```
### Marketplace displays pool asset for sale ### Marketplace displays pool asset for sale
@ -359,8 +367,11 @@ For pool creation, the OCEAN token is used as the base token. The base token can
'1', '1',
'0.01' '0.01'
) )
```
Now let's console log the result to check everything is working
```Typescript
console.log(`Price of 1 ${POOL_NFT_SYMBOL} is ${prices.tokenAmount} OCEAN`) console.log(`Price of 1 ${POOL_NFT_SYMBOL} is ${prices.tokenAmount} OCEAN`)
})
``` ```
### Consumer buys a pool data asset, and downloads it ### Consumer buys a pool data asset, and downloads it
@ -368,14 +379,23 @@ For pool creation, the OCEAN token is used as the base token. The base token can
const datatoken = new Datatoken(web3) const datatoken = new Datatoken(web3)
const consumerETHBalance = await web3.eth.getBalance(consumerAccount) const consumerETHBalance = await web3.eth.getBalance(consumerAccount)
```
Now let's console log the result to check everything is working
```Typescript
console.log(`Consumer ETH balance: ${consumerETHBalance}`) console.log(`Consumer ETH balance: ${consumerETHBalance}`)
let consumerOCEANBalance = await balance( let consumerOCEANBalance = await balance(
web3, web3,
contracts.oceanAddress, contracts.oceanAddress,
consumerAccount consumerAccount
) )
```
Now let's console log consumerOCEANBalance to check everything is working
```Typescript
console.log(`Consumer OCEAN balance before swap: ${consumerOCEANBalance}`) console.log(`Consumer OCEAN balance before swap: ${consumerOCEANBalance}`)
let consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount) let consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount)
```
Now let's console log POOL_NFT_SYMBOL and consumerDTBalance to check everything is working
```Typescript
console.log(`Consumer ${POOL_NFT_SYMBOL} balance before swap: ${consumerDTBalance}`) console.log(`Consumer ${POOL_NFT_SYMBOL} balance before swap: ${consumerDTBalance}`)
await approve(web3, consumerAccount, contracts.oceanAddress, poolAddress, '100') await approve(web3, consumerAccount, contracts.oceanAddress, poolAddress, '100')
@ -399,8 +419,14 @@ For pool creation, the OCEAN token is used as the base token. The base token can
) )
consumerOCEANBalance = await balance(web3, contracts.oceanAddress, consumerAccount) consumerOCEANBalance = await balance(web3, contracts.oceanAddress, consumerAccount)
```
Now let's console log the Consumer OCEAN balance after swap to check everything is working
```Typescript
console.log(`Consumer OCEAN balance after swap: ${consumerOCEANBalance}`) console.log(`Consumer OCEAN balance after swap: ${consumerOCEANBalance}`)
consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount) consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount)
```
Next let's console log the POOL_NFT_SYMBOL and consumerDTBalance
```Typescript
console.log(`Consumer ${POOL_NFT_SYMBOL} balance after swap: ${consumerDTBalance}`) console.log(`Consumer ${POOL_NFT_SYMBOL} balance after swap: ${consumerDTBalance}`)
const resolvedDDO = await aquarius.waitForAqua(DDO.id) const resolvedDDO = await aquarius.waitForAqua(DDO.id)
@ -444,11 +470,18 @@ For pool creation, the OCEAN token is used as the base token. The base token can
web3 web3
) )
```
Now let's console log the Download URL to check everything is working
```Typescript
console.log(`Download URL: ${downloadURL}`) console.log(`Download URL: ${downloadURL}`)
consumerOCEANBalance = await balance(web3, contracts.oceanAddress, consumerAccount) consumerOCEANBalance = await balance(web3, contracts.oceanAddress, consumerAccount)
console.log(`Consumer OCEAN balance after order: ${consumerOCEANBalance}`) console.log(`Consumer OCEAN balance after order: ${consumerOCEANBalance}`)
consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount) consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount)
```
Now let's console log the Consumer balance after order to check everything is working
```Typescript
console.log(`Consumer ${POOL_NFT_SYMBOL} balance after order: ${consumerDTBalance}`) console.log(`Consumer ${POOL_NFT_SYMBOL} balance after order: ${consumerDTBalance}`)
try { try {
@ -457,7 +490,7 @@ For pool creation, the OCEAN token is used as the base token. The base token can
} catch (e) { } catch (e) {
assert.fail('Download failed') assert.fail('Download failed')
} }
})
``` ```
## 5. Publish Data NFT and a Datatoken with a fixed rate exchange ## 5. Publish Data NFT and a Datatoken with a fixed rate exchange
@ -510,11 +543,14 @@ For pool creation, the OCEAN token is used as the base token. The base token can
freAddress = tx.events.NewFixedRate.returnValues.exchangeContract freAddress = tx.events.NewFixedRate.returnValues.exchangeContract
freId = tx.events.NewFixedRate.returnValues.exchangeId freId = tx.events.NewFixedRate.returnValues.exchangeId
```
Now let's console log each of those values to check everything is working
```Typescript
console.log(`Fixed rate exchange NFT address: ${freNftAddress}`) console.log(`Fixed rate exchange NFT address: ${freNftAddress}`)
console.log(`Fixed rate exchange Datatoken address: ${freDatatokenAddress}`) console.log(`Fixed rate exchange Datatoken address: ${freDatatokenAddress}`)
console.log(`Fixed rate exchange address: ${freAddress}`) console.log(`Fixed rate exchange address: ${freAddress}`)
console.log(`Fixed rate exchange Id: ${freId}`) console.log(`Fixed rate exchange Id: ${freId}`)
})
``` ```
### Set metadata in the fixed rate exchange NFT ### Set metadata in the fixed rate exchange NFT
@ -532,6 +568,9 @@ For pool creation, the OCEAN token is used as the base token. The base token can
DDO.services[0].files = await encryptedFiles DDO.services[0].files = await encryptedFiles
DDO.services[0].datatokenAddress = freDatatokenAddress DDO.services[0].datatokenAddress = freDatatokenAddress
```
Now let's console log the DID to check everything is working
```Typescript
console.log(`DID: ${DDO.id}`) console.log(`DID: ${DDO.id}`)
const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl) const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl)
@ -556,8 +595,11 @@ For pool creation, the OCEAN token is used as the base token. The base token can
const oceanAmount = await ( const oceanAmount = await (
await fixedRate.calcBaseInGivenOutDT(freId, '1') await fixedRate.calcBaseInGivenOutDT(freId, '1')
).baseTokenAmount ).baseTokenAmount
```
Now that the market has fetched those values it can display the asset on the front end. In our case we will just console log the results:
```Typescript
console.log(`Price of 1 ${FRE_NFT_SYMBOL} is ${oceanAmount} OCEAN`) console.log(`Price of 1 ${FRE_NFT_SYMBOL} is ${oceanAmount} OCEAN`)
})
``` ```
### Consumer buys a fixed rate asset data asset, and downloads it ### Consumer buys a fixed rate asset data asset, and downloads it
@ -568,6 +610,10 @@ For pool creation, the OCEAN token is used as the base token. The base token can
await datatoken.mint(freDatatokenAddress, publisherAccount, DATATOKEN_AMOUNT) await datatoken.mint(freDatatokenAddress, publisherAccount, DATATOKEN_AMOUNT)
const consumerETHBalance = await web3.eth.getBalance(consumerAccount) const consumerETHBalance = await web3.eth.getBalance(consumerAccount)
```
Let's do a quick check of the consumer ETH balance before the swap
```Typescript
console.log(`Consumer ETH balance: ${consumerETHBalance}`) console.log(`Consumer ETH balance: ${consumerETHBalance}`)
let consumerOCEANBalance = await balance( let consumerOCEANBalance = await balance(
web3, web3,
@ -649,7 +695,7 @@ For pool creation, the OCEAN token is used as the base token. The base token can
} catch (e) { } catch (e) {
assert.fail('Download failed') assert.fail('Download failed')
} }
})
``` ```
## 6. Publish Data NFT and a Datatoken with a dispenser ## 6. Publish Data NFT and a Datatoken with a dispenser
@ -732,7 +778,7 @@ For pool creation, the OCEAN token is used as the base token. The base token can
encryptedDDO, encryptedDDO,
'0x' + metadataHash '0x' + metadataHash
) )
})
``` ```
### Consumer gets a dispenser data asset, and downloads it ### Consumer gets a dispenser data asset, and downloads it
@ -813,6 +859,6 @@ For pool creation, the OCEAN token is used as the base token. The base token can
} catch (e) { } catch (e) {
assert.fail('Download failed') assert.fail('Download failed')
} }
})
``` ```
})

View File

@ -8,6 +8,7 @@ sed -i "s/import { assert } from 'chai'//" CodeExamples.md
# Replace comments # Replace comments
sed -i 's/}) \/\/\/ //' CodeExamples.md sed -i 's/}) \/\/\/ //' CodeExamples.md
sed -i 's/}) \/\/\///' CodeExamples.md
sed -i 's/ \/\/\/ //' CodeExamples.md sed -i 's/ \/\/\/ //' CodeExamples.md
sed -i 's/ \/\/\/ //' CodeExamples.md sed -i 's/ \/\/\/ //' CodeExamples.md
sed -i 's/\/\/\/ //' CodeExamples.md sed -i 's/\/\/\/ //' CodeExamples.md

View File

@ -120,7 +120,7 @@ import { Addresses, deployContracts } from '../TestContractHandler'
describe('Marketplace flow tests', async () => { describe('Marketplace flow tests', async () => {
/// --> /// -->
/// Variables and constants needed for the test: /// Now we define the variables which we will need later
/// ```Typescript /// ```Typescript
let config: Config let config: Config
@ -140,7 +140,10 @@ describe('Marketplace flow tests', async () => {
let dispenserNftAddress: string let dispenserNftAddress: string
let dispenserDatatokenAddress: string let dispenserDatatokenAddress: string
let dispenserAddress: string let dispenserAddress: string
/// ```
/// We also define some constants that we will use:
/// ```Typescript
const POOL_NFT_NAME = 'Datatoken 1' const POOL_NFT_NAME = 'Datatoken 1'
const POOL_NFT_SYMBOL = 'DT1' const POOL_NFT_SYMBOL = 'DT1'
const FRE_NFT_NAME = 'Datatoken 2' const FRE_NFT_NAME = 'Datatoken 2'
@ -199,7 +202,7 @@ describe('Marketplace flow tests', async () => {
console.log(`Aquarius URL: ${config.metadataCacheUri}`) console.log(`Aquarius URL: ${config.metadataCacheUri}`)
console.log(`Provider URL: ${providerUrl}`) console.log(`Provider URL: ${providerUrl}`)
}) }) ///
/// ``` /// ```
it('Initialize accounts', async () => { it('Initialize accounts', async () => {
@ -212,13 +215,13 @@ describe('Marketplace flow tests', async () => {
console.log(`Publisher account address: ${publisherAccount}`) console.log(`Publisher account address: ${publisherAccount}`)
console.log(`Consumer account address: ${consumerAccount}`) console.log(`Consumer account address: ${consumerAccount}`)
console.log(`Staker account address: ${stakerAccount}`) console.log(`Staker account address: ${stakerAccount}`)
}) }) ///
/// ``` /// ```
it('Deploy contracts', async () => { it('Next, lets deploy the contracts', async () => {
/// ```Typescript /// ```Typescript
contracts = await deployContracts(web3, publisherAccount) contracts = await deployContracts(web3, publisherAccount)
}) }) ///
/// ``` /// ```
it('We send some OCEAN to consumer and staker accounts', async () => { it('We send some OCEAN to consumer and staker accounts', async () => {
@ -235,7 +238,7 @@ describe('Marketplace flow tests', async () => {
await oceanContract.methods await oceanContract.methods
.transfer(stakerAccount, web3.utils.toWei('100')) .transfer(stakerAccount, web3.utils.toWei('100'))
.send({ from: publisherAccount }) .send({ from: publisherAccount })
}) }) ///
/// ``` /// ```
/// ## 4. Publish Data NFT and a Datatoken with a liquidity pool /// ## 4. Publish Data NFT and a Datatoken with a liquidity pool
@ -303,24 +306,29 @@ describe('Marketplace flow tests', async () => {
console.log(`Pool NFT address: ${poolNftAddress}`) console.log(`Pool NFT address: ${poolNftAddress}`)
console.log(`Pool Datatoken address: ${poolDatatokenAddress}`) console.log(`Pool Datatoken address: ${poolDatatokenAddress}`)
console.log(`Pool address: ${poolAddress}`) console.log(`Pool address: ${poolAddress}`)
}) }) ///
/// ``` /// ```
it('Set metadata in the pool NFT', async () => { it('Set metadata in the pool NFT', async () => {
/// ```Typescript /// ```Typescript
const nft = new Nft(web3) const nft = new Nft(web3)
/// ```
// update ddo and set the right did /// Now we update the ddo and set the right did
/// ```Typescript
DDO.chainId = await web3.eth.getChainId() DDO.chainId = await web3.eth.getChainId()
DDO.id = DDO.id =
'did:op:' + 'did:op:' +
SHA256(web3.utils.toChecksumAddress(poolNftAddress) + DDO.chainId.toString(10)) SHA256(web3.utils.toChecksumAddress(poolNftAddress) + DDO.chainId.toString(10))
DDO.nftAddress = poolNftAddress DDO.nftAddress = poolNftAddress
// encrypt file(s) using provider /// ```
/// Next we encrypt the file or files using Ocean Provider. The provider is an off chain proxy built specifically for this task
/// ```Typescript
const encryptedFiles = await ProviderInstance.encrypt(ASSET_URL, providerUrl) const encryptedFiles = await ProviderInstance.encrypt(ASSET_URL, providerUrl)
DDO.services[0].files = await encryptedFiles DDO.services[0].files = await encryptedFiles
DDO.services[0].datatokenAddress = poolDatatokenAddress DDO.services[0].datatokenAddress = poolDatatokenAddress
/// ```
/// Now let's console log the result to check everything is working
/// ```Typescript
console.log(`DID: ${DDO.id}`) console.log(`DID: ${DDO.id}`)
const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl) const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl)
@ -336,7 +344,7 @@ describe('Marketplace flow tests', async () => {
encryptedDDO, encryptedDDO,
'0x' + metadataHash '0x' + metadataHash
) )
}) }) ///
/// ``` /// ```
it('User should add liquidity to the pool, receiving LP tokens', async () => { it('User should add liquidity to the pool, receiving LP tokens', async () => {
@ -346,7 +354,7 @@ describe('Marketplace flow tests', async () => {
await approve(web3, stakerAccount, contracts.oceanAddress, poolAddress, '5', true) await approve(web3, stakerAccount, contracts.oceanAddress, poolAddress, '5', true)
await pool.joinswapExternAmountIn(stakerAccount, poolAddress, '5', '0.1') await pool.joinswapExternAmountIn(stakerAccount, poolAddress, '5', '0.1')
}) }) ///
/// ``` /// ```
it('Marketplace displays pool asset for sale', async () => { it('Marketplace displays pool asset for sale', async () => {
@ -359,8 +367,11 @@ describe('Marketplace flow tests', async () => {
'1', '1',
'0.01' '0.01'
) )
/// ```
/// Now let's console log the result to check everything is working
/// ```Typescript
console.log(`Price of 1 ${POOL_NFT_SYMBOL} is ${prices.tokenAmount} OCEAN`) console.log(`Price of 1 ${POOL_NFT_SYMBOL} is ${prices.tokenAmount} OCEAN`)
}) }) ///
/// ``` /// ```
it('Consumer buys a pool data asset, and downloads it', async () => { it('Consumer buys a pool data asset, and downloads it', async () => {
@ -368,14 +379,23 @@ describe('Marketplace flow tests', async () => {
const datatoken = new Datatoken(web3) const datatoken = new Datatoken(web3)
const consumerETHBalance = await web3.eth.getBalance(consumerAccount) const consumerETHBalance = await web3.eth.getBalance(consumerAccount)
/// ```
/// Now let's console log the result to check everything is working
/// ```Typescript
console.log(`Consumer ETH balance: ${consumerETHBalance}`) console.log(`Consumer ETH balance: ${consumerETHBalance}`)
let consumerOCEANBalance = await balance( let consumerOCEANBalance = await balance(
web3, web3,
contracts.oceanAddress, contracts.oceanAddress,
consumerAccount consumerAccount
) )
/// ```
/// Now let's console log consumerOCEANBalance to check everything is working
/// ```Typescript
console.log(`Consumer OCEAN balance before swap: ${consumerOCEANBalance}`) console.log(`Consumer OCEAN balance before swap: ${consumerOCEANBalance}`)
let consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount) let consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount)
/// ```
/// Now let's console log POOL_NFT_SYMBOL and consumerDTBalance to check everything is working
/// ```Typescript
console.log(`Consumer ${POOL_NFT_SYMBOL} balance before swap: ${consumerDTBalance}`) console.log(`Consumer ${POOL_NFT_SYMBOL} balance before swap: ${consumerDTBalance}`)
await approve(web3, consumerAccount, contracts.oceanAddress, poolAddress, '100') await approve(web3, consumerAccount, contracts.oceanAddress, poolAddress, '100')
@ -399,8 +419,14 @@ describe('Marketplace flow tests', async () => {
) )
consumerOCEANBalance = await balance(web3, contracts.oceanAddress, consumerAccount) consumerOCEANBalance = await balance(web3, contracts.oceanAddress, consumerAccount)
/// ```
/// Now let's console log the Consumer OCEAN balance after swap to check everything is working
/// ```Typescript
console.log(`Consumer OCEAN balance after swap: ${consumerOCEANBalance}`) console.log(`Consumer OCEAN balance after swap: ${consumerOCEANBalance}`)
consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount) consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount)
/// ```
/// Next let's console log the POOL_NFT_SYMBOL and consumerDTBalance
/// ```Typescript
console.log(`Consumer ${POOL_NFT_SYMBOL} balance after swap: ${consumerDTBalance}`) console.log(`Consumer ${POOL_NFT_SYMBOL} balance after swap: ${consumerDTBalance}`)
const resolvedDDO = await aquarius.waitForAqua(DDO.id) const resolvedDDO = await aquarius.waitForAqua(DDO.id)
@ -444,11 +470,18 @@ describe('Marketplace flow tests', async () => {
web3 web3
) )
/// ```
/// Now let's console log the Download URL to check everything is working
/// ```Typescript
console.log(`Download URL: ${downloadURL}`) console.log(`Download URL: ${downloadURL}`)
consumerOCEANBalance = await balance(web3, contracts.oceanAddress, consumerAccount) consumerOCEANBalance = await balance(web3, contracts.oceanAddress, consumerAccount)
console.log(`Consumer OCEAN balance after order: ${consumerOCEANBalance}`) console.log(`Consumer OCEAN balance after order: ${consumerOCEANBalance}`)
consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount) consumerDTBalance = await balance(web3, poolDatatokenAddress, consumerAccount)
/// ```
/// Now let's console log the Consumer balance after order to check everything is working
/// ```Typescript
console.log(`Consumer ${POOL_NFT_SYMBOL} balance after order: ${consumerDTBalance}`) console.log(`Consumer ${POOL_NFT_SYMBOL} balance after order: ${consumerDTBalance}`)
try { try {
@ -457,7 +490,7 @@ describe('Marketplace flow tests', async () => {
} catch (e) { } catch (e) {
assert.fail('Download failed') assert.fail('Download failed')
} }
}) }) ///
/// ``` /// ```
/// ## 5. Publish Data NFT and a Datatoken with a fixed rate exchange /// ## 5. Publish Data NFT and a Datatoken with a fixed rate exchange
@ -510,11 +543,14 @@ describe('Marketplace flow tests', async () => {
freAddress = tx.events.NewFixedRate.returnValues.exchangeContract freAddress = tx.events.NewFixedRate.returnValues.exchangeContract
freId = tx.events.NewFixedRate.returnValues.exchangeId freId = tx.events.NewFixedRate.returnValues.exchangeId
/// ```
/// Now let's console log each of those values to check everything is working
/// ```Typescript
console.log(`Fixed rate exchange NFT address: ${freNftAddress}`) console.log(`Fixed rate exchange NFT address: ${freNftAddress}`)
console.log(`Fixed rate exchange Datatoken address: ${freDatatokenAddress}`) console.log(`Fixed rate exchange Datatoken address: ${freDatatokenAddress}`)
console.log(`Fixed rate exchange address: ${freAddress}`) console.log(`Fixed rate exchange address: ${freAddress}`)
console.log(`Fixed rate exchange Id: ${freId}`) console.log(`Fixed rate exchange Id: ${freId}`)
}) }) ///
/// ``` /// ```
it('Set metadata in the fixed rate exchange NFT', async () => { it('Set metadata in the fixed rate exchange NFT', async () => {
@ -532,6 +568,9 @@ describe('Marketplace flow tests', async () => {
DDO.services[0].files = await encryptedFiles DDO.services[0].files = await encryptedFiles
DDO.services[0].datatokenAddress = freDatatokenAddress DDO.services[0].datatokenAddress = freDatatokenAddress
/// ```
/// Now let's console log the DID to check everything is working
/// ```Typescript
console.log(`DID: ${DDO.id}`) console.log(`DID: ${DDO.id}`)
const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl) const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl)
@ -556,8 +595,11 @@ describe('Marketplace flow tests', async () => {
const oceanAmount = await ( const oceanAmount = await (
await fixedRate.calcBaseInGivenOutDT(freId, '1') await fixedRate.calcBaseInGivenOutDT(freId, '1')
).baseTokenAmount ).baseTokenAmount
/// ```
/// Now that the market has fetched those values it can display the asset on the front end. In our case we will just console log the results:
/// ```Typescript
console.log(`Price of 1 ${FRE_NFT_SYMBOL} is ${oceanAmount} OCEAN`) console.log(`Price of 1 ${FRE_NFT_SYMBOL} is ${oceanAmount} OCEAN`)
}) }) ///
/// ``` /// ```
it('Consumer buys a fixed rate asset data asset, and downloads it', async () => { it('Consumer buys a fixed rate asset data asset, and downloads it', async () => {
@ -568,6 +610,10 @@ describe('Marketplace flow tests', async () => {
await datatoken.mint(freDatatokenAddress, publisherAccount, DATATOKEN_AMOUNT) await datatoken.mint(freDatatokenAddress, publisherAccount, DATATOKEN_AMOUNT)
const consumerETHBalance = await web3.eth.getBalance(consumerAccount) const consumerETHBalance = await web3.eth.getBalance(consumerAccount)
/// ```
/// Let's do a quick check of the consumer ETH balance before the swap
/// ```Typescript
console.log(`Consumer ETH balance: ${consumerETHBalance}`) console.log(`Consumer ETH balance: ${consumerETHBalance}`)
let consumerOCEANBalance = await balance( let consumerOCEANBalance = await balance(
web3, web3,
@ -649,7 +695,7 @@ describe('Marketplace flow tests', async () => {
} catch (e) { } catch (e) {
assert.fail('Download failed') assert.fail('Download failed')
} }
}) }) ///
/// ``` /// ```
/// ## 6. Publish Data NFT and a Datatoken with a dispenser /// ## 6. Publish Data NFT and a Datatoken with a dispenser
@ -732,7 +778,7 @@ describe('Marketplace flow tests', async () => {
encryptedDDO, encryptedDDO,
'0x' + metadataHash '0x' + metadataHash
) )
}) }) ///
/// ``` /// ```
it('Consumer gets a dispenser data asset, and downloads it', async () => { it('Consumer gets a dispenser data asset, and downloads it', async () => {
@ -813,6 +859,6 @@ describe('Marketplace flow tests', async () => {
} catch (e) { } catch (e) {
assert.fail('Download failed') assert.fail('Download failed')
} }
}) }) ///
/// ``` /// ```
}) }) ///