mirror of
https://github.com/oceanprotocol/ocean.js.git
synced 2024-11-26 20:39:05 +01:00
Multichain Provider (#1698)
* added chainId param to encrypt method * updated tests & examples
This commit is contained in:
parent
849c575d08
commit
5a29fefd3b
23
CHANGELOG.md
23
CHANGELOG.md
@ -4,9 +4,32 @@ All notable changes to this project will be documented in this file. Dates are d
|
|||||||
|
|
||||||
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
||||||
|
|
||||||
|
#### [v2.7.0-next.2](https://github.com/oceanprotocol/ocean.js/compare/v2.7.0-next.1...v2.7.0-next.2)
|
||||||
|
|
||||||
|
- fix isValid provider method [`010306c`](https://github.com/oceanprotocol/ocean.js/commit/010306c92e003021b08df0b8b8ad6743ae6b240c)
|
||||||
|
|
||||||
|
#### [v2.7.0-next.1](https://github.com/oceanprotocol/ocean.js/compare/v2.7.0-next.0...v2.7.0-next.1)
|
||||||
|
|
||||||
|
> 22 February 2023
|
||||||
|
|
||||||
|
- Release 2.7.0-next.0 [`500062b`](https://github.com/oceanprotocol/ocean.js/commit/500062beb575b21ab7210a675bdf5174d11842c8)
|
||||||
|
- Updating CodeExamples.md [`6cc891a`](https://github.com/oceanprotocol/ocean.js/commit/6cc891a5da9e4042e3eee243b651e8a7188d1786)
|
||||||
|
- Release 2.7.0-next.1 [`ba27412`](https://github.com/oceanprotocol/ocean.js/commit/ba2741296167de4c112560f2807b1a45e86eba94)
|
||||||
|
|
||||||
|
#### [v2.7.0-next.0](https://github.com/oceanprotocol/ocean.js/compare/v2.6.3...v2.7.0-next.0)
|
||||||
|
|
||||||
|
> 21 February 2023
|
||||||
|
|
||||||
|
- add needed multichain provider changes [`95551ee`](https://github.com/oceanprotocol/ocean.js/commit/95551eeb669395357149dd923ecec304955add14)
|
||||||
|
- Release 2.7.0-next.0 [`95886a1`](https://github.com/oceanprotocol/ocean.js/commit/95886a184faadd4a13e857e285e016ef4c20966f)
|
||||||
|
- fix code example [`c4a00e4`](https://github.com/oceanprotocol/ocean.js/commit/c4a00e45848ace6a4fe3d4fa1a2aeac518aa44ce)
|
||||||
|
|
||||||
#### [v2.6.3](https://github.com/oceanprotocol/ocean.js/compare/v2.6.2...v2.6.3)
|
#### [v2.6.3](https://github.com/oceanprotocol/ocean.js/compare/v2.6.2...v2.6.3)
|
||||||
|
|
||||||
|
> 13 February 2023
|
||||||
|
|
||||||
- add macOS readme message [`#1697`](https://github.com/oceanprotocol/ocean.js/pull/1697)
|
- add macOS readme message [`#1697`](https://github.com/oceanprotocol/ocean.js/pull/1697)
|
||||||
|
- Release 2.6.3 [`53f0c53`](https://github.com/oceanprotocol/ocean.js/commit/53f0c536a9bc683676a513edb61faf2dfd9c0262)
|
||||||
|
|
||||||
#### [v2.6.2](https://github.com/oceanprotocol/ocean.js/compare/v2.6.1...v2.6.2)
|
#### [v2.6.2](https://github.com/oceanprotocol/ocean.js/compare/v2.6.1...v2.6.2)
|
||||||
|
|
||||||
|
@ -350,7 +350,11 @@ Next, let's encrypt the file(s) using provider
|
|||||||
```Typescript
|
```Typescript
|
||||||
ASSET_URL.datatokenAddress = freDatatokenAddress
|
ASSET_URL.datatokenAddress = freDatatokenAddress
|
||||||
ASSET_URL.nftAddress = freNftAddress
|
ASSET_URL.nftAddress = freNftAddress
|
||||||
const encryptedFiles = await ProviderInstance.encrypt(ASSET_URL, providerUrl)
|
const encryptedFiles = await ProviderInstance.encrypt(
|
||||||
|
ASSET_URL,
|
||||||
|
DDO.chainId,
|
||||||
|
providerUrl
|
||||||
|
)
|
||||||
DDO.services[0].files = await encryptedFiles
|
DDO.services[0].files = await encryptedFiles
|
||||||
DDO.services[0].datatokenAddress = freDatatokenAddress
|
DDO.services[0].datatokenAddress = freDatatokenAddress
|
||||||
|
|
||||||
@ -359,7 +363,7 @@ Now let's console log the DID to check everything is working
|
|||||||
```Typescript
|
```Typescript
|
||||||
console.log(`DID: ${DDO.id}`)
|
console.log(`DID: ${DDO.id}`)
|
||||||
|
|
||||||
const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl)
|
const providerResponse = await ProviderInstance.encrypt(DDO, DDO.chainId, providerUrl)
|
||||||
const encryptedDDO = await providerResponse
|
const encryptedDDO = await providerResponse
|
||||||
const metadataHash = getHash(JSON.stringify(DDO))
|
const metadataHash = getHash(JSON.stringify(DDO))
|
||||||
await nft.setMetadata(
|
await nft.setMetadata(
|
||||||
@ -567,13 +571,17 @@ Now we need to encrypt file(s) using provider
|
|||||||
```Typescript
|
```Typescript
|
||||||
ASSET_URL.datatokenAddress = dispenserDatatokenAddress
|
ASSET_URL.datatokenAddress = dispenserDatatokenAddress
|
||||||
ASSET_URL.nftAddress = dispenserNftAddress
|
ASSET_URL.nftAddress = dispenserNftAddress
|
||||||
const encryptedFiles = await ProviderInstance.encrypt(ASSET_URL, providerUrl)
|
const encryptedFiles = await ProviderInstance.encrypt(
|
||||||
|
ASSET_URL,
|
||||||
|
DDO.chainId,
|
||||||
|
providerUrl
|
||||||
|
)
|
||||||
DDO.services[0].files = await encryptedFiles
|
DDO.services[0].files = await encryptedFiles
|
||||||
DDO.services[0].datatokenAddress = dispenserDatatokenAddress
|
DDO.services[0].datatokenAddress = dispenserDatatokenAddress
|
||||||
|
|
||||||
console.log(`DID: ${DDO.id}`)
|
console.log(`DID: ${DDO.id}`)
|
||||||
|
|
||||||
const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl)
|
const providerResponse = await ProviderInstance.encrypt(DDO, DDO.chainId, providerUrl)
|
||||||
const encryptedDDO = await providerResponse
|
const encryptedDDO = await providerResponse
|
||||||
const metadataHash = getHash(JSON.stringify(DDO))
|
const metadataHash = getHash(JSON.stringify(DDO))
|
||||||
await nft.setMetadata(
|
await nft.setMetadata(
|
||||||
|
@ -329,7 +329,7 @@ async function createAsset(
|
|||||||
// Next we encrypt the file or files using Ocean Provider. The provider is an off chain proxy built specifically for this task
|
// Next we encrypt the file or files using Ocean Provider. The provider is an off chain proxy built specifically for this task
|
||||||
assetUrl.datatokenAddress = datatokenAddressAsset
|
assetUrl.datatokenAddress = datatokenAddressAsset
|
||||||
assetUrl.nftAddress = ddo.nftAddress
|
assetUrl.nftAddress = ddo.nftAddress
|
||||||
let providerResponse = await ProviderInstance.encrypt(assetUrl, providerUrl)
|
let providerResponse = await ProviderInstance.encrypt(assetUrl, chain, providerUrl)
|
||||||
ddo.services[0].files = await providerResponse
|
ddo.services[0].files = await providerResponse
|
||||||
ddo.services[0].datatokenAddress = datatokenAddressAsset
|
ddo.services[0].datatokenAddress = datatokenAddressAsset
|
||||||
ddo.services[0].serviceEndpoint = providerUrl
|
ddo.services[0].serviceEndpoint = providerUrl
|
||||||
@ -338,7 +338,7 @@ async function createAsset(
|
|||||||
ddo.nftAddress = web3.utils.toChecksumAddress(nftAddress)
|
ddo.nftAddress = web3.utils.toChecksumAddress(nftAddress)
|
||||||
ddo.id =
|
ddo.id =
|
||||||
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
||||||
providerResponse = await ProviderInstance.encrypt(ddo, providerUrl)
|
providerResponse = await ProviderInstance.encrypt(ddo, chain, providerUrl)
|
||||||
const encryptedResponse = await providerResponse
|
const encryptedResponse = await providerResponse
|
||||||
const validateResult = await aquarius.validate(ddo)
|
const validateResult = await aquarius.validate(ddo)
|
||||||
|
|
||||||
@ -583,7 +583,9 @@ Now, let's check that we successfully published a algorithm (create NFT + Datato
|
|||||||
### 10.1 Start a compute job using a free C2D environment
|
### 10.1 Start a compute job using a free C2D environment
|
||||||
let's check the free compute environment
|
let's check the free compute environment
|
||||||
```Typescript
|
```Typescript
|
||||||
const computeEnv = computeEnvs.find((ce) => ce.priceMin === 0)
|
const computeEnv = computeEnvs[resolvedDatasetDdo.chainId].find(
|
||||||
|
(ce) => ce.priceMin === 0
|
||||||
|
)
|
||||||
console.log('Free compute environment = ', computeEnv)
|
console.log('Free compute environment = ', computeEnv)
|
||||||
```
|
```
|
||||||
<!--
|
<!--
|
||||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@oceanprotocol/lib",
|
"name": "@oceanprotocol/lib",
|
||||||
"version": "2.6.3",
|
"version": "2.7.0-next.2",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@oceanprotocol/lib",
|
"name": "@oceanprotocol/lib",
|
||||||
"version": "2.6.3",
|
"version": "2.7.0-next.2",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@oceanprotocol/contracts": "^1.1.8",
|
"@oceanprotocol/contracts": "^1.1.8",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@oceanprotocol/lib",
|
"name": "@oceanprotocol/lib",
|
||||||
"source": "./src/index.ts",
|
"source": "./src/index.ts",
|
||||||
"version": "2.6.3",
|
"version": "2.7.0-next.2",
|
||||||
"description": "JavaScript client library for Ocean Protocol",
|
"description": "JavaScript client library for Ocean Protocol",
|
||||||
"main": "./dist/lib.js",
|
"main": "./dist/lib.js",
|
||||||
"umd:main": "dist/lib.umd.js",
|
"umd:main": "dist/lib.umd.js",
|
||||||
|
@ -8,7 +8,7 @@ const configHelperNetworksBase: Config = {
|
|||||||
network: 'unknown',
|
network: 'unknown',
|
||||||
metadataCacheUri: 'https://v4.aquarius.oceanprotocol.com',
|
metadataCacheUri: 'https://v4.aquarius.oceanprotocol.com',
|
||||||
nodeUri: 'http://127.0.0.1:8545',
|
nodeUri: 'http://127.0.0.1:8545',
|
||||||
providerUri: 'http://127.0.0.1:8030',
|
providerUri: 'https://v4.provider.oceanprotocol.com',
|
||||||
subgraphUri: null,
|
subgraphUri: null,
|
||||||
explorerUri: null,
|
explorerUri: null,
|
||||||
oceanTokenAddress: null,
|
oceanTokenAddress: null,
|
||||||
@ -40,7 +40,6 @@ export const configHelperNetworks: Config[] = [
|
|||||||
chainId: 5,
|
chainId: 5,
|
||||||
network: 'goerli',
|
network: 'goerli',
|
||||||
nodeUri: 'https://goerli.infura.io/v3',
|
nodeUri: 'https://goerli.infura.io/v3',
|
||||||
providerUri: 'https://v4.provider.goerli.oceanprotocol.com',
|
|
||||||
subgraphUri: 'https://v4.subgraph.goerli.oceanprotocol.com',
|
subgraphUri: 'https://v4.subgraph.goerli.oceanprotocol.com',
|
||||||
explorerUri: 'https://goerli.etherscan.io',
|
explorerUri: 'https://goerli.etherscan.io',
|
||||||
gasFeeMultiplier: 1.1
|
gasFeeMultiplier: 1.1
|
||||||
@ -50,7 +49,6 @@ export const configHelperNetworks: Config[] = [
|
|||||||
chainId: 1,
|
chainId: 1,
|
||||||
network: 'mainnet',
|
network: 'mainnet',
|
||||||
nodeUri: 'https://mainnet.infura.io/v3',
|
nodeUri: 'https://mainnet.infura.io/v3',
|
||||||
providerUri: 'https://v4.provider.mainnet.oceanprotocol.com',
|
|
||||||
subgraphUri: 'https://v4.subgraph.mainnet.oceanprotocol.com',
|
subgraphUri: 'https://v4.subgraph.mainnet.oceanprotocol.com',
|
||||||
explorerUri: 'https://etherscan.io',
|
explorerUri: 'https://etherscan.io',
|
||||||
startBlock: 11105459,
|
startBlock: 11105459,
|
||||||
@ -64,7 +62,6 @@ export const configHelperNetworks: Config[] = [
|
|||||||
chainId: 137,
|
chainId: 137,
|
||||||
network: 'polygon',
|
network: 'polygon',
|
||||||
nodeUri: 'https://polygon-mainnet.infura.io/v3',
|
nodeUri: 'https://polygon-mainnet.infura.io/v3',
|
||||||
providerUri: 'https://v4.provider.polygon.oceanprotocol.com',
|
|
||||||
subgraphUri: 'https://v4.subgraph.polygon.oceanprotocol.com',
|
subgraphUri: 'https://v4.subgraph.polygon.oceanprotocol.com',
|
||||||
explorerUri: 'https://polygonscan.com',
|
explorerUri: 'https://polygonscan.com',
|
||||||
oceanTokenSymbol: 'mOCEAN',
|
oceanTokenSymbol: 'mOCEAN',
|
||||||
@ -84,7 +81,6 @@ export const configHelperNetworks: Config[] = [
|
|||||||
chainId: 80001,
|
chainId: 80001,
|
||||||
network: 'mumbai',
|
network: 'mumbai',
|
||||||
nodeUri: 'https://polygon-mumbai.infura.io/v3',
|
nodeUri: 'https://polygon-mumbai.infura.io/v3',
|
||||||
providerUri: 'https://v4.provider.mumbai.oceanprotocol.com',
|
|
||||||
subgraphUri: 'https://v4.subgraph.mumbai.oceanprotocol.com',
|
subgraphUri: 'https://v4.subgraph.mumbai.oceanprotocol.com',
|
||||||
explorerUri: 'https://mumbai.polygonscan.com',
|
explorerUri: 'https://mumbai.polygonscan.com',
|
||||||
gasFeeMultiplier: 1.1
|
gasFeeMultiplier: 1.1
|
||||||
@ -94,7 +90,6 @@ export const configHelperNetworks: Config[] = [
|
|||||||
chainId: 56,
|
chainId: 56,
|
||||||
network: 'bsc',
|
network: 'bsc',
|
||||||
nodeUri: 'https://bsc-dataseed.binance.org',
|
nodeUri: 'https://bsc-dataseed.binance.org',
|
||||||
providerUri: 'https://v4.provider.bsc.oceanprotocol.com',
|
|
||||||
subgraphUri: 'https://v4.subgraph.bsc.oceanprotocol.com',
|
subgraphUri: 'https://v4.subgraph.bsc.oceanprotocol.com',
|
||||||
explorerUri: 'https://bscscan.com/',
|
explorerUri: 'https://bscscan.com/',
|
||||||
gasFeeMultiplier: 1.05
|
gasFeeMultiplier: 1.05
|
||||||
@ -104,7 +99,6 @@ export const configHelperNetworks: Config[] = [
|
|||||||
chainId: 246,
|
chainId: 246,
|
||||||
network: 'energyweb',
|
network: 'energyweb',
|
||||||
nodeUri: 'https://rpc.energyweb.org',
|
nodeUri: 'https://rpc.energyweb.org',
|
||||||
providerUri: 'https://v4.provider.energyweb.oceanprotocol.com',
|
|
||||||
subgraphUri: 'https://v4.subgraph.energyweb.oceanprotocol.com',
|
subgraphUri: 'https://v4.subgraph.energyweb.oceanprotocol.com',
|
||||||
explorerUri: 'https://explorer.energyweb.org',
|
explorerUri: 'https://explorer.energyweb.org',
|
||||||
gasFeeMultiplier: 1.05
|
gasFeeMultiplier: 1.05
|
||||||
@ -114,7 +108,6 @@ export const configHelperNetworks: Config[] = [
|
|||||||
chainId: 1285,
|
chainId: 1285,
|
||||||
network: 'moonriver',
|
network: 'moonriver',
|
||||||
nodeUri: 'https://moonriver.api.onfinality.io/public',
|
nodeUri: 'https://moonriver.api.onfinality.io/public',
|
||||||
providerUri: 'https://v4.provider.moonriver.oceanprotocol.com',
|
|
||||||
subgraphUri: 'https://v4.subgraph.moonriver.oceanprotocol.com',
|
subgraphUri: 'https://v4.subgraph.moonriver.oceanprotocol.com',
|
||||||
explorerUri: 'https://moonriver.moonscan.io/',
|
explorerUri: 'https://moonriver.moonscan.io/',
|
||||||
gasFeeMultiplier: 1.05
|
gasFeeMultiplier: 1.05
|
||||||
|
@ -117,12 +117,14 @@ export class Provider {
|
|||||||
|
|
||||||
/** Encrypt data using the Provider's own symmetric key
|
/** Encrypt data using the Provider's own symmetric key
|
||||||
* @param {string} data data in json format that needs to be sent , it can either be a DDO or a File array
|
* @param {string} data data in json format that needs to be sent , it can either be a DDO or a File array
|
||||||
|
* @param {number} chainId network's id so provider can choose the corresponding web3 object
|
||||||
* @param {string} providerUri provider uri address
|
* @param {string} providerUri provider uri address
|
||||||
* @param {AbortSignal} signal abort signal
|
* @param {AbortSignal} signal abort signal
|
||||||
* @return {Promise<string>} urlDetails
|
* @return {Promise<string>} urlDetails
|
||||||
*/
|
*/
|
||||||
public async encrypt(
|
public async encrypt(
|
||||||
data: any,
|
data: any,
|
||||||
|
chainId: number,
|
||||||
providerUri: string,
|
providerUri: string,
|
||||||
signal?: AbortSignal
|
signal?: AbortSignal
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
@ -131,9 +133,10 @@ export class Provider {
|
|||||||
providerUri,
|
providerUri,
|
||||||
providerEndpoints
|
providerEndpoints
|
||||||
)
|
)
|
||||||
const path = this.getEndpointURL(serviceEndpoints, 'encrypt')
|
const path =
|
||||||
|
(this.getEndpointURL(serviceEndpoints, 'encrypt')
|
||||||
? this.getEndpointURL(serviceEndpoints, 'encrypt').urlPath
|
? this.getEndpointURL(serviceEndpoints, 'encrypt').urlPath
|
||||||
: null
|
: null) + `?chainId=${chainId}`
|
||||||
if (!path) return null
|
if (!path) return null
|
||||||
try {
|
try {
|
||||||
const response = await fetch(path, {
|
const response = await fetch(path, {
|
||||||
@ -747,7 +750,7 @@ export class Provider {
|
|||||||
})
|
})
|
||||||
if (response?.ok) {
|
if (response?.ok) {
|
||||||
const params = await response.json()
|
const params = await response.json()
|
||||||
if (params && params.providerAddress) return true
|
if (params && (params.providerAddress || params.providerAddresses)) return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -350,7 +350,11 @@ describe('Marketplace flow tests', async () => {
|
|||||||
/// ```Typescript
|
/// ```Typescript
|
||||||
ASSET_URL.datatokenAddress = freDatatokenAddress
|
ASSET_URL.datatokenAddress = freDatatokenAddress
|
||||||
ASSET_URL.nftAddress = freNftAddress
|
ASSET_URL.nftAddress = freNftAddress
|
||||||
const encryptedFiles = await ProviderInstance.encrypt(ASSET_URL, providerUrl)
|
const encryptedFiles = await ProviderInstance.encrypt(
|
||||||
|
ASSET_URL,
|
||||||
|
DDO.chainId,
|
||||||
|
providerUrl
|
||||||
|
)
|
||||||
DDO.services[0].files = await encryptedFiles
|
DDO.services[0].files = await encryptedFiles
|
||||||
DDO.services[0].datatokenAddress = freDatatokenAddress
|
DDO.services[0].datatokenAddress = freDatatokenAddress
|
||||||
|
|
||||||
@ -359,7 +363,7 @@ describe('Marketplace flow tests', async () => {
|
|||||||
/// ```Typescript
|
/// ```Typescript
|
||||||
console.log(`DID: ${DDO.id}`)
|
console.log(`DID: ${DDO.id}`)
|
||||||
|
|
||||||
const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl)
|
const providerResponse = await ProviderInstance.encrypt(DDO, DDO.chainId, providerUrl)
|
||||||
const encryptedDDO = await providerResponse
|
const encryptedDDO = await providerResponse
|
||||||
const metadataHash = getHash(JSON.stringify(DDO))
|
const metadataHash = getHash(JSON.stringify(DDO))
|
||||||
await nft.setMetadata(
|
await nft.setMetadata(
|
||||||
@ -567,13 +571,17 @@ describe('Marketplace flow tests', async () => {
|
|||||||
/// ```Typescript
|
/// ```Typescript
|
||||||
ASSET_URL.datatokenAddress = dispenserDatatokenAddress
|
ASSET_URL.datatokenAddress = dispenserDatatokenAddress
|
||||||
ASSET_URL.nftAddress = dispenserNftAddress
|
ASSET_URL.nftAddress = dispenserNftAddress
|
||||||
const encryptedFiles = await ProviderInstance.encrypt(ASSET_URL, providerUrl)
|
const encryptedFiles = await ProviderInstance.encrypt(
|
||||||
|
ASSET_URL,
|
||||||
|
DDO.chainId,
|
||||||
|
providerUrl
|
||||||
|
)
|
||||||
DDO.services[0].files = await encryptedFiles
|
DDO.services[0].files = await encryptedFiles
|
||||||
DDO.services[0].datatokenAddress = dispenserDatatokenAddress
|
DDO.services[0].datatokenAddress = dispenserDatatokenAddress
|
||||||
|
|
||||||
console.log(`DID: ${DDO.id}`)
|
console.log(`DID: ${DDO.id}`)
|
||||||
|
|
||||||
const providerResponse = await ProviderInstance.encrypt(DDO, providerUrl)
|
const providerResponse = await ProviderInstance.encrypt(DDO, DDO.chainId, providerUrl)
|
||||||
const encryptedDDO = await providerResponse
|
const encryptedDDO = await providerResponse
|
||||||
const metadataHash = getHash(JSON.stringify(DDO))
|
const metadataHash = getHash(JSON.stringify(DDO))
|
||||||
await nft.setMetadata(
|
await nft.setMetadata(
|
||||||
|
@ -329,7 +329,7 @@ async function createAsset(
|
|||||||
// Next we encrypt the file or files using Ocean Provider. The provider is an off chain proxy built specifically for this task
|
// Next we encrypt the file or files using Ocean Provider. The provider is an off chain proxy built specifically for this task
|
||||||
assetUrl.datatokenAddress = datatokenAddressAsset
|
assetUrl.datatokenAddress = datatokenAddressAsset
|
||||||
assetUrl.nftAddress = ddo.nftAddress
|
assetUrl.nftAddress = ddo.nftAddress
|
||||||
let providerResponse = await ProviderInstance.encrypt(assetUrl, providerUrl)
|
let providerResponse = await ProviderInstance.encrypt(assetUrl, chain, providerUrl)
|
||||||
ddo.services[0].files = await providerResponse
|
ddo.services[0].files = await providerResponse
|
||||||
ddo.services[0].datatokenAddress = datatokenAddressAsset
|
ddo.services[0].datatokenAddress = datatokenAddressAsset
|
||||||
ddo.services[0].serviceEndpoint = providerUrl
|
ddo.services[0].serviceEndpoint = providerUrl
|
||||||
@ -338,7 +338,7 @@ async function createAsset(
|
|||||||
ddo.nftAddress = web3.utils.toChecksumAddress(nftAddress)
|
ddo.nftAddress = web3.utils.toChecksumAddress(nftAddress)
|
||||||
ddo.id =
|
ddo.id =
|
||||||
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
||||||
providerResponse = await ProviderInstance.encrypt(ddo, providerUrl)
|
providerResponse = await ProviderInstance.encrypt(ddo, chain, providerUrl)
|
||||||
const encryptedResponse = await providerResponse
|
const encryptedResponse = await providerResponse
|
||||||
const validateResult = await aquarius.validate(ddo)
|
const validateResult = await aquarius.validate(ddo)
|
||||||
|
|
||||||
@ -583,7 +583,9 @@ describe('Compute-to-data example tests', async () => {
|
|||||||
it('10.1 Start a compute job using a free C2D environment', async () => {
|
it('10.1 Start a compute job using a free C2D environment', async () => {
|
||||||
/// let's check the free compute environment
|
/// let's check the free compute environment
|
||||||
/// ```Typescript
|
/// ```Typescript
|
||||||
const computeEnv = computeEnvs.find((ce) => ce.priceMin === 0)
|
const computeEnv = computeEnvs[resolvedDatasetDdo.chainId].find(
|
||||||
|
(ce) => ce.priceMin === 0
|
||||||
|
)
|
||||||
console.log('Free compute environment = ', computeEnv)
|
console.log('Free compute environment = ', computeEnv)
|
||||||
/// ```
|
/// ```
|
||||||
/// <!--
|
/// <!--
|
||||||
|
@ -276,7 +276,7 @@ async function createAsset(
|
|||||||
// create the files encrypted string
|
// create the files encrypted string
|
||||||
assetUrl.datatokenAddress = datatokenAddressAsset
|
assetUrl.datatokenAddress = datatokenAddressAsset
|
||||||
assetUrl.nftAddress = ddo.nftAddress
|
assetUrl.nftAddress = ddo.nftAddress
|
||||||
let providerResponse = await ProviderInstance.encrypt(assetUrl, providerUrl)
|
let providerResponse = await ProviderInstance.encrypt(assetUrl, chain, providerUrl)
|
||||||
ddo.services[0].files = await providerResponse
|
ddo.services[0].files = await providerResponse
|
||||||
ddo.services[0].datatokenAddress = datatokenAddressAsset
|
ddo.services[0].datatokenAddress = datatokenAddressAsset
|
||||||
ddo.services[0].serviceEndpoint = providerUrl
|
ddo.services[0].serviceEndpoint = providerUrl
|
||||||
@ -284,7 +284,7 @@ async function createAsset(
|
|||||||
ddo.nftAddress = web3.utils.toChecksumAddress(nftAddress)
|
ddo.nftAddress = web3.utils.toChecksumAddress(nftAddress)
|
||||||
ddo.id =
|
ddo.id =
|
||||||
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
||||||
providerResponse = await ProviderInstance.encrypt(ddo, providerUrl)
|
providerResponse = await ProviderInstance.encrypt(ddo, chain, providerUrl)
|
||||||
const encryptedResponse = await providerResponse
|
const encryptedResponse = await providerResponse
|
||||||
const validateResult = await aquarius.validate(ddo)
|
const validateResult = await aquarius.validate(ddo)
|
||||||
assert(validateResult.valid, 'Could not validate metadata')
|
assert(validateResult.valid, 'Could not validate metadata')
|
||||||
@ -486,7 +486,9 @@ describe('Simple compute tests', async () => {
|
|||||||
computeValidUntil = Math.floor(mytime.getTime() / 1000)
|
computeValidUntil = Math.floor(mytime.getTime() / 1000)
|
||||||
|
|
||||||
// we choose the free env
|
// we choose the free env
|
||||||
const computeEnv = computeEnvs.find((ce) => ce.priceMin === 0)
|
const computeEnv = computeEnvs[resolvedDdoWith5mTimeout.chainId].find(
|
||||||
|
(ce) => ce.priceMin === 0
|
||||||
|
)
|
||||||
assert(computeEnv, 'Cannot find the free compute env')
|
assert(computeEnv, 'Cannot find the free compute env')
|
||||||
|
|
||||||
const assets: ComputeAsset[] = [
|
const assets: ComputeAsset[] = [
|
||||||
@ -562,7 +564,9 @@ describe('Simple compute tests', async () => {
|
|||||||
// move to start orders with initial txid's and provider fees
|
// move to start orders with initial txid's and provider fees
|
||||||
it('should restart a computeJob without paying anything, because order is valid and providerFees are still valid', async () => {
|
it('should restart a computeJob without paying anything, because order is valid and providerFees are still valid', async () => {
|
||||||
// we choose the free env
|
// we choose the free env
|
||||||
const computeEnv = computeEnvs.find((ce) => ce.priceMin === 0)
|
const computeEnv = computeEnvs[resolvedDdoWith5mTimeout.chainId].find(
|
||||||
|
(ce) => ce.priceMin === 0
|
||||||
|
)
|
||||||
assert(computeEnv, 'Cannot find the free compute env')
|
assert(computeEnv, 'Cannot find the free compute env')
|
||||||
|
|
||||||
const assets: ComputeAsset[] = [
|
const assets: ComputeAsset[] = [
|
||||||
@ -623,7 +627,9 @@ describe('Simple compute tests', async () => {
|
|||||||
|
|
||||||
it('should start a computeJob on a paid environment', async () => {
|
it('should start a computeJob on a paid environment', async () => {
|
||||||
// we choose the paid env
|
// we choose the paid env
|
||||||
const computeEnv = computeEnvs.find((ce) => ce.priceMin !== 0)
|
const computeEnv = computeEnvs[resolvedDdoWith5mTimeout.chainId].find(
|
||||||
|
(ce) => ce.priceMin !== 0
|
||||||
|
)
|
||||||
assert(computeEnv, 'Cannot find the paid compute env')
|
assert(computeEnv, 'Cannot find the paid compute env')
|
||||||
|
|
||||||
const assets: ComputeAsset[] = [
|
const assets: ComputeAsset[] = [
|
||||||
@ -695,7 +701,9 @@ describe('Simple compute tests', async () => {
|
|||||||
|
|
||||||
it('should restart a computeJob on paid environment, without paying anything, because order is valid and providerFees are still valid', async () => {
|
it('should restart a computeJob on paid environment, without paying anything, because order is valid and providerFees are still valid', async () => {
|
||||||
// we choose the paid env
|
// we choose the paid env
|
||||||
const computeEnv = computeEnvs.find((ce) => ce.priceMin !== 0)
|
const computeEnv = computeEnvs[resolvedDdoWith5mTimeout.chainId].find(
|
||||||
|
(ce) => ce.priceMin !== 0
|
||||||
|
)
|
||||||
assert(computeEnv, 'Cannot find the free compute env')
|
assert(computeEnv, 'Cannot find the free compute env')
|
||||||
|
|
||||||
const assets: ComputeAsset[] = [
|
const assets: ComputeAsset[] = [
|
||||||
@ -764,7 +772,9 @@ describe('Simple compute tests', async () => {
|
|||||||
|
|
||||||
it('should start a computeJob using the free environment, by paying only providerFee (reuseOrder)', async () => {
|
it('should start a computeJob using the free environment, by paying only providerFee (reuseOrder)', async () => {
|
||||||
// we choose the free env
|
// we choose the free env
|
||||||
const computeEnv = computeEnvs.find((ce) => ce.priceMin === 0)
|
const computeEnv = computeEnvs[resolvedDdoWith5mTimeout.chainId].find(
|
||||||
|
(ce) => ce.priceMin === 0
|
||||||
|
)
|
||||||
assert(computeEnv, 'Cannot find the free compute env')
|
assert(computeEnv, 'Cannot find the free compute env')
|
||||||
|
|
||||||
const assets: ComputeAsset[] = [
|
const assets: ComputeAsset[] = [
|
||||||
@ -844,7 +854,9 @@ describe('Simple compute tests', async () => {
|
|||||||
|
|
||||||
it('should start a computeJob using the paid environment, by paying only providerFee (reuseOrder)', async () => {
|
it('should start a computeJob using the paid environment, by paying only providerFee (reuseOrder)', async () => {
|
||||||
// we choose the paid env
|
// we choose the paid env
|
||||||
const computeEnv = computeEnvs.find((ce) => ce.priceMin !== 0)
|
const computeEnv = computeEnvs[resolvedDdoWith5mTimeout.chainId].find(
|
||||||
|
(ce) => ce.priceMin !== 0
|
||||||
|
)
|
||||||
assert(computeEnv, 'Cannot find the free compute env')
|
assert(computeEnv, 'Cannot find the free compute env')
|
||||||
|
|
||||||
const assets: ComputeAsset[] = [
|
const assets: ComputeAsset[] = [
|
||||||
|
@ -146,14 +146,15 @@ describe('Publish tests', async () => {
|
|||||||
const datatokenAddress = bundleNFT.events.TokenCreated.returnValues[0]
|
const datatokenAddress = bundleNFT.events.TokenCreated.returnValues[0]
|
||||||
assetUrl.datatokenAddress = datatokenAddress
|
assetUrl.datatokenAddress = datatokenAddress
|
||||||
assetUrl.nftAddress = nftAddress
|
assetUrl.nftAddress = nftAddress
|
||||||
const encryptedFiles = await ProviderInstance.encrypt(assetUrl, providerUrl)
|
|
||||||
|
const chain = await web3.eth.getChainId()
|
||||||
|
const encryptedFiles = await ProviderInstance.encrypt(assetUrl, chain, providerUrl)
|
||||||
|
|
||||||
fixedPriceDdo.metadata.name = 'test-dataset-fixedPrice'
|
fixedPriceDdo.metadata.name = 'test-dataset-fixedPrice'
|
||||||
fixedPriceDdo.services[0].files = await encryptedFiles
|
fixedPriceDdo.services[0].files = await encryptedFiles
|
||||||
fixedPriceDdo.services[0].datatokenAddress = datatokenAddress
|
fixedPriceDdo.services[0].datatokenAddress = datatokenAddress
|
||||||
|
|
||||||
fixedPriceDdo.nftAddress = nftAddress
|
fixedPriceDdo.nftAddress = nftAddress
|
||||||
const chain = await web3.eth.getChainId()
|
|
||||||
fixedPriceDdo.chainId = chain
|
fixedPriceDdo.chainId = chain
|
||||||
fixedPriceDdo.id =
|
fixedPriceDdo.id =
|
||||||
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
||||||
@ -161,7 +162,7 @@ describe('Publish tests', async () => {
|
|||||||
const isAssetValid: ValidateMetadata = await aquarius.validate(fixedPriceDdo)
|
const isAssetValid: ValidateMetadata = await aquarius.validate(fixedPriceDdo)
|
||||||
assert(isAssetValid.valid === true, 'Published asset is not valid')
|
assert(isAssetValid.valid === true, 'Published asset is not valid')
|
||||||
|
|
||||||
const encryptedDdo = await ProviderInstance.encrypt(fixedPriceDdo, providerUrl)
|
const encryptedDdo = await ProviderInstance.encrypt(fixedPriceDdo, chain, providerUrl)
|
||||||
const encryptedResponse = await encryptedDdo
|
const encryptedResponse = await encryptedDdo
|
||||||
const metadataHash = getHash(JSON.stringify(fixedPriceDdo))
|
const metadataHash = getHash(JSON.stringify(fixedPriceDdo))
|
||||||
// this is publishing with an explicit empty metadataProofs
|
// this is publishing with an explicit empty metadataProofs
|
||||||
@ -221,13 +222,13 @@ describe('Publish tests', async () => {
|
|||||||
const datatokenAddress = bundleNFT.events.TokenCreated.returnValues[0]
|
const datatokenAddress = bundleNFT.events.TokenCreated.returnValues[0]
|
||||||
assetUrl.datatokenAddress = datatokenAddress
|
assetUrl.datatokenAddress = datatokenAddress
|
||||||
assetUrl.nftAddress = nftAddress
|
assetUrl.nftAddress = nftAddress
|
||||||
const encryptedFiles = await ProviderInstance.encrypt(assetUrl, providerUrl)
|
const chain = await web3.eth.getChainId()
|
||||||
|
const encryptedFiles = await ProviderInstance.encrypt(assetUrl, chain, providerUrl)
|
||||||
dispenserDdo.metadata.name = 'test-dataset-dispenser'
|
dispenserDdo.metadata.name = 'test-dataset-dispenser'
|
||||||
dispenserDdo.services[0].files = await encryptedFiles
|
dispenserDdo.services[0].files = await encryptedFiles
|
||||||
dispenserDdo.services[0].datatokenAddress = datatokenAddress
|
dispenserDdo.services[0].datatokenAddress = datatokenAddress
|
||||||
|
|
||||||
dispenserDdo.nftAddress = nftAddress
|
dispenserDdo.nftAddress = nftAddress
|
||||||
const chain = await web3.eth.getChainId()
|
|
||||||
dispenserDdo.chainId = chain
|
dispenserDdo.chainId = chain
|
||||||
dispenserDdo.id =
|
dispenserDdo.id =
|
||||||
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
||||||
@ -235,7 +236,7 @@ describe('Publish tests', async () => {
|
|||||||
const isAssetValid: ValidateMetadata = await aquarius.validate(dispenserDdo)
|
const isAssetValid: ValidateMetadata = await aquarius.validate(dispenserDdo)
|
||||||
assert(isAssetValid.valid === true, 'Published asset is not valid')
|
assert(isAssetValid.valid === true, 'Published asset is not valid')
|
||||||
|
|
||||||
const encryptedDdo = await ProviderInstance.encrypt(dispenserDdo, providerUrl)
|
const encryptedDdo = await ProviderInstance.encrypt(dispenserDdo, chain, providerUrl)
|
||||||
const encryptedResponse = await encryptedDdo
|
const encryptedResponse = await encryptedDdo
|
||||||
const metadataHash = getHash(JSON.stringify(dispenserDdo))
|
const metadataHash = getHash(JSON.stringify(dispenserDdo))
|
||||||
// this is publishing with any explicit metadataProofs
|
// this is publishing with any explicit metadataProofs
|
||||||
|
@ -148,16 +148,16 @@ describe('Simple Publish & consume test', async () => {
|
|||||||
// create the files encrypted string
|
// create the files encrypted string
|
||||||
assetUrl.datatokenAddress = datatokenAddress
|
assetUrl.datatokenAddress = datatokenAddress
|
||||||
assetUrl.nftAddress = nftAddress
|
assetUrl.nftAddress = nftAddress
|
||||||
let providerResponse = await ProviderInstance.encrypt(assetUrl, providerUrl)
|
const chain = await web3.eth.getChainId()
|
||||||
|
let providerResponse = await ProviderInstance.encrypt(assetUrl, chain, providerUrl)
|
||||||
ddo.services[0].files = await providerResponse
|
ddo.services[0].files = await providerResponse
|
||||||
ddo.services[0].datatokenAddress = datatokenAddress
|
ddo.services[0].datatokenAddress = datatokenAddress
|
||||||
// update ddo and set the right did
|
// update ddo and set the right did
|
||||||
ddo.nftAddress = nftAddress
|
ddo.nftAddress = nftAddress
|
||||||
const chain = await web3.eth.getChainId()
|
|
||||||
ddo.id =
|
ddo.id =
|
||||||
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
|
||||||
|
|
||||||
providerResponse = await ProviderInstance.encrypt(ddo, providerUrl)
|
providerResponse = await ProviderInstance.encrypt(ddo, chain, providerUrl)
|
||||||
const encryptedResponse = await providerResponse
|
const encryptedResponse = await providerResponse
|
||||||
const metadataHash = getHash(JSON.stringify(ddo))
|
const metadataHash = getHash(JSON.stringify(ddo))
|
||||||
await nft.setMetadata(
|
await nft.setMetadata(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user