diff --git a/src/@types/Provider.ts b/src/@types/Provider.ts new file mode 100644 index 00000000..f7bf37b2 --- /dev/null +++ b/src/@types/Provider.ts @@ -0,0 +1,16 @@ +export interface ProviderFees { + providerFeeAddress: string + providerFeeToken: string + providerFeeAmount: string + providerData: string + v: string + r: string + s: string +} + +export interface ProviderInitialize { + dataToken: string + nonce: string + computeAddress: string + providerFee: ProviderFees +} diff --git a/src/@types/index.ts b/src/@types/index.ts index 0762c3bb..510da0a5 100644 --- a/src/@types/index.ts +++ b/src/@types/index.ts @@ -5,3 +5,4 @@ export * from './DDO/Credentials' export * from './DDO/Metadata' export * from './FileMetadata' export * from './Compute' +export * from './Provider' diff --git a/src/provider/Provider.ts b/src/provider/Provider.ts index 7e5dc92a..69314350 100644 --- a/src/provider/Provider.ts +++ b/src/provider/Provider.ts @@ -5,7 +5,8 @@ import { FileMetadata, ComputeJob, ComputeOutput, - ComputeAlgorithm + ComputeAlgorithm, + ProviderInitialize } from '../@types/' import { noZeroX } from '../utils/ConversionTypeHelper' import { signText, signWithHash } from '../utils/SignatureUtils' @@ -131,7 +132,9 @@ export class Provider { if (!path) return null try { - const response = await postMethod(path, decodeURI(JSON.stringify(data))) + const response = await postMethod(path, decodeURI(JSON.stringify(data)), { + 'Content-Type': 'application/octet-stream' + }) return response } catch (e) { LoggerInstance.error(e) @@ -217,7 +220,7 @@ export class Provider { * @param {UserCustomParameters} userCustomParameters * @param {string} providerUri Identifier of the asset to be registered in ocean * @param {string} fetchMethod fetch client instance - * @return {Promise} urlDetails + * @return {Promise} ProviderInitialize data */ public async initialize( asset: Asset, @@ -227,7 +230,7 @@ export class Provider { providerUri: string, getMethod: any, userCustomParameters?: UserCustomParameters - ): Promise { + ): Promise { const providerEndpoints = await this.getEndpoints(providerUri) const serviceEndpoints = await this.getServiceEndpoints( providerUri, @@ -247,7 +250,7 @@ export class Provider { initializeUrl += '&userdata=' + encodeURI(JSON.stringify(userCustomParameters)) try { const response = await getMethod(initializeUrl) - return await response + return (await response.json()) as ProviderInitialize } catch (e) { LoggerInstance.error(e) throw new Error('Asset URL not found or not available.')