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

Merge 98c71cb1c216d9ed80fc562987c53292caf2efd7 into 4de136114010af3e8ce23386acaa2c41512c912e

This commit is contained in:
Jamie Hewitt 2022-12-08 13:24:07 +03:00 committed by GitHub
commit 801aff6080
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 18 deletions

View File

@ -123,6 +123,7 @@ export class Provider {
*/
public async encrypt(
data: any,
chainId: number,
providerUri: string,
signal?: AbortSignal
): Promise<string> {
@ -131,9 +132,10 @@ export class Provider {
providerUri,
providerEndpoints
)
const path = this.getEndpointURL(serviceEndpoints, 'encrypt')
? this.getEndpointURL(serviceEndpoints, 'encrypt').urlPath
: null
const path =
(this.getEndpointURL(serviceEndpoints, 'encrypt')
? this.getEndpointURL(serviceEndpoints, 'encrypt').urlPath
: null) + `?chainId=${chainId}`
if (!path) return null
try {
const response = await fetch(path, {

View File

@ -350,7 +350,11 @@ describe('Marketplace flow tests', async () => {
/// ```Typescript
ASSET_URL.datatokenAddress = freDatatokenAddress
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].datatokenAddress = freDatatokenAddress
@ -359,7 +363,7 @@ describe('Marketplace flow tests', async () => {
/// ```Typescript
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 metadataHash = getHash(JSON.stringify(DDO))
await nft.setMetadata(
@ -567,13 +571,17 @@ describe('Marketplace flow tests', async () => {
/// ```Typescript
ASSET_URL.datatokenAddress = dispenserDatatokenAddress
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].datatokenAddress = dispenserDatatokenAddress
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 metadataHash = getHash(JSON.stringify(DDO))
await nft.setMetadata(

View File

@ -276,7 +276,7 @@ async function createAsset(
// create the files encrypted string
assetUrl.datatokenAddress = datatokenAddressAsset
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].datatokenAddress = datatokenAddressAsset
ddo.services[0].serviceEndpoint = providerUrl
@ -284,7 +284,7 @@ async function createAsset(
ddo.nftAddress = web3.utils.toChecksumAddress(nftAddress)
ddo.id =
'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 validateResult = await aquarius.validate(ddo)
assert(validateResult.valid, 'Could not validate metadata')

View File

@ -146,14 +146,14 @@ describe('Publish tests', async () => {
const datatokenAddress = bundleNFT.events.TokenCreated.returnValues[0]
assetUrl.datatokenAddress = datatokenAddress
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.services[0].files = await encryptedFiles
fixedPriceDdo.services[0].datatokenAddress = datatokenAddress
fixedPriceDdo.nftAddress = nftAddress
const chain = await web3.eth.getChainId()
fixedPriceDdo.chainId = chain
fixedPriceDdo.id =
'did:op:' + SHA256(web3.utils.toChecksumAddress(nftAddress) + chain.toString(10))
@ -161,7 +161,7 @@ describe('Publish tests', async () => {
const isAssetValid: ValidateMetadata = await aquarius.validate(fixedPriceDdo)
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 metadataHash = getHash(JSON.stringify(fixedPriceDdo))
// this is publishing with an explicit empty metadataProofs
@ -221,13 +221,14 @@ describe('Publish tests', async () => {
const datatokenAddress = bundleNFT.events.TokenCreated.returnValues[0]
assetUrl.datatokenAddress = datatokenAddress
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.services[0].files = await encryptedFiles
dispenserDdo.services[0].datatokenAddress = datatokenAddress
dispenserDdo.nftAddress = nftAddress
const chain = await web3.eth.getChainId()
dispenserDdo.chainId = chain
dispenserDdo.id =
'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)
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 metadataHash = getHash(JSON.stringify(dispenserDdo))
// this is publishing with any explicit metadataProofs

View File

@ -148,16 +148,17 @@ describe('Simple Publish & consume test', async () => {
// create the files encrypted string
assetUrl.datatokenAddress = datatokenAddress
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].datatokenAddress = datatokenAddress
// update ddo and set the right did
ddo.nftAddress = nftAddress
const chain = await web3.eth.getChainId()
ddo.id =
'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 metadataHash = getHash(JSON.stringify(ddo))
await nft.setMetadata(