diff --git a/src/metadatacache/MetadataCache.ts b/src/metadatacache/MetadataCache.ts index c2d5df0d..20e2c654 100644 --- a/src/metadatacache/MetadataCache.ts +++ b/src/metadatacache/MetadataCache.ts @@ -146,12 +146,12 @@ export class MetadataCache { * @return {Promise} Hex encoded encrypted DDO. */ public async encryptDDO(ddo: any): Promise { - const fullUrl = `${this.url}/api/v1/aquarius/assets/ddo/encrypt` + const fullUrl = `${this.url}/api/v1/aquarius/assets/ddo/encryptashex ` const result = await this.fetch .postWithOctet(fullUrl, ddo) .then((response: Response) => { if (response.ok) { - return response.blob() + return response.text() } this.logger.error('encryptDDO failed:', response.status, response.statusText, ddo) return null diff --git a/src/metadatacache/OnChainMetaData.ts b/src/metadatacache/OnChainMetaData.ts index 4895f2e3..4bfaba36 100644 --- a/src/metadatacache/OnChainMetaData.ts +++ b/src/metadatacache/OnChainMetaData.ts @@ -75,7 +75,10 @@ export class OnChainMetadata { encrypt: boolean = false ): Promise { const rawData = await this.prepareRawData(ddo, encrypt) - return this.publishRaw(didZeroX(did), rawData.flags, rawData.data, consumerAccount) + if (!rawData) { + throw new Error(`Could not prepare raw data for publish`) + } else + return this.publishRaw(didZeroX(did), rawData.flags, rawData.data, consumerAccount) } /** @@ -92,7 +95,10 @@ export class OnChainMetadata { encrypt: boolean = false ): Promise { const rawData = await this.prepareRawData(ddo, encrypt) - return this.updateRaw(didZeroX(did), rawData.flags, rawData.data, consumerAccount) + if (!rawData) { + throw new Error(`Could not prepare raw data for udate`) + } else + return this.updateRaw(didZeroX(did), rawData.flags, rawData.data, consumerAccount) } /** @@ -109,17 +115,7 @@ export class OnChainMetadata { flags = flags | 1 data = this.getHex(data) } else { - const blob = await this.metadataCache.encryptDDO(data) - try { - const rawBuffer = (await new Response(blob).arrayBuffer()) as any - data = - '0x' + - Array.prototype.map - .call(new Uint8Array(rawBuffer), (x) => ('00' + x.toString(16)).slice(-2)) - .join('') - } catch (e) { - console.error(e) - } + data = await this.metadataCache.encryptDDO(data) if (!data) return null flags = flags | 2 }