diff --git a/src/ddo/DDO.ts b/src/ddo/DDO.ts index 04dfc516b..cdace66f7 100644 --- a/src/ddo/DDO.ts +++ b/src/ddo/DDO.ts @@ -117,35 +117,10 @@ export class DDO { } /** - * Generates proof using personal sing. + * Generates and adds a simple hash proof on publicKey * @param {Ocean} ocean Ocean instance. * @param {string} publicKey Public key to be used on personal sign. - * @param {string} password Password if it's required. - * @return {Promise} Proof object. - */ - public async generateProof( - ocean: Ocean, - publicKey: string, - password?: string - ): Promise { - const checksum = this.getChecksum() - - const signature = await ocean.utils.signature.signText(checksum, publicKey, password) - - return { - created: new Date().toISOString().replace(/\.[0-9]{3}/, ''), - creator: publicKey, - type: 'DDOIntegritySignature', - signatureValue: signature - } - } - - /** - * Generates and adds a proof using personal sing on the DDO. - * @param {Ocean} ocean Ocean instance. - * @param {string} publicKey Public key to be used on personal sign. - * @param {string} password Password if it's required. - * @return {Promise} Proof object. + * @return {Promise} */ public async addProof( ocean: Ocean, @@ -155,6 +130,14 @@ export class DDO { if (this.proof) { throw new Error('Proof already exists') } - this.proof = await this.generateProof(ocean, publicKey, password) + this.proof = { + created: new Date().toISOString().replace(/\.[0-9]{3}/, ''), + creator: publicKey, + type: 'AddressHash', + signatureValue: Web3Provider.getWeb3() + .utils.sha3(publicKey) + // TODO: security/detect-unsafe-regex + .replace(/^0x([a-f0-9]{64})(:!.+)?$/i, '0x$1') + } } } diff --git a/src/ocean/Assets.ts b/src/ocean/Assets.ts index f0f41e5e9..85536e770 100644 --- a/src/ocean/Assets.ts +++ b/src/ocean/Assets.ts @@ -18,8 +18,6 @@ export enum CreateProgressStep { DataTokenCreated, EncryptingFiles, FilesEncrypted, - GeneratingProof, - ProofGenerated, StoringDdo, DdoStored } @@ -188,11 +186,7 @@ export class Assets extends Instantiable { index: indexCount++ })) as Service[] }) - this.logger.log('Generating proof') - observer.next(CreateProgressStep.GeneratingProof) - await ddo.addProof(this.ocean, publisher.getId(), publisher.getPassword()) - this.logger.log('Proof generated') - observer.next(CreateProgressStep.ProofGenerated) + await ddo.addProof(this.ocean, publisher.getId()) this.logger.log('Storing DDO') observer.next(CreateProgressStep.StoringDdo) // const storedDdo = await this.ocean.metadatacache.storeDDO(ddo)