From 2a3b8c4bd3962f7f082e7a5b3502d4a8d1694de0 Mon Sep 17 00:00:00 2001 From: AdriGeorge Date: Thu, 24 Oct 2024 14:24:57 +0300 Subject: [PATCH] chore: wip --- src/utils/DDO/DDO_V4.ts | 33 -------------------------- src/utils/DDO/DdoFactory.ts | 34 +++++++++++++++++++++++---- src/utils/DDO/VerifiableCredential.ts | 30 ----------------------- src/utils/DDOType.ts | 5 ---- src/utils/DdoHelpers.ts | 5 ++++ 5 files changed, 35 insertions(+), 72 deletions(-) delete mode 100644 src/utils/DDO/DDO_V4.ts delete mode 100644 src/utils/DDO/VerifiableCredential.ts delete mode 100644 src/utils/DDOType.ts diff --git a/src/utils/DDO/DDO_V4.ts b/src/utils/DDO/DDO_V4.ts deleted file mode 100644 index e2dd3b78..00000000 --- a/src/utils/DDO/DDO_V4.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Asset, Metadata, Service } from '../../@types' -import { BaseDDOType } from '../../@types/DDO/versions/BaseDDO' - -export class DDO_V4 implements BaseDDOType { - '@context': string[] - id: string - version: string - nftAddress: string - chainId: number - metadata: Metadata - services: Service[] - - constructor(data: any) { - this['@context'] = data['@context'] - this.id = data.id - this.version = data.version - this.nftAddress = data.nftAddress - this.chainId = data.chainId - this.metadata = data.metadata - this.services = data.services - } - - /** - * Get param to order an asset based on the specified pricing schema and configuration. - * @param {Asset} asset - The asset to be ordered. - * @param {number} [serviceIndex=0] - Index of the service within the asset. - */ - getOrderAssetParams(asset: Asset, serviceIndex: number = 0) { - const did = asset.id - const serviceId = asset.services[serviceIndex].id - return { did, serviceId } - } -} diff --git a/src/utils/DDO/DdoFactory.ts b/src/utils/DDO/DdoFactory.ts index 246b3554..60ced69e 100644 --- a/src/utils/DDO/DdoFactory.ts +++ b/src/utils/DDO/DdoFactory.ts @@ -1,5 +1,31 @@ -import { DDO_V4 } from './DDO_V4' -import { VerifiableCredential } from './VerifiableCredential' +import { Asset } from '../../@types' +import { VerifiableCredentialType } from '../../@types/DDO/versions/VerifiableCredential' + +export class DDO_V4 { + /** + * Get param to order an asset based on the specified pricing schema and configuration. + * @param {Asset} asset - The asset to be ordered. + * @param {number} [serviceIndex=0] - Index of the service within the asset. + */ + getOrderAssetParams(asset: Asset, serviceIndex: number = 0) { + const did = asset.id + const serviceId = asset.services[serviceIndex].id + return { did, serviceId } + } +} + +export class VerifiableCredential { + /** + * Get param to order an asset based on the specified pricing schema and configuration. + * @param {Asset} asset - The asset to be ordered. + * @param {number} [serviceIndex=0] - Index of the service within the asset. + */ + getOrderAssetParams(asset: VerifiableCredentialType, serviceIndex: number = 0) { + const did = asset.credentialSubject.id + const serviceId = asset.credentialSubject.services[serviceIndex].id + return { did, serviceId } + } +} type AssetType = DDO_V4 | VerifiableCredential @@ -11,10 +37,10 @@ export class DDOFactory { case '4.3.0': case '4.5.0': case '4.7.0': - return new DDO_V4(data) + return new DDO_V4() case '5.0.0': - return new VerifiableCredential(data) + return new VerifiableCredential() default: throw new Error(`Unsupported DDO version: ${version}`) diff --git a/src/utils/DDO/VerifiableCredential.ts b/src/utils/DDO/VerifiableCredential.ts deleted file mode 100644 index 5096d497..00000000 --- a/src/utils/DDO/VerifiableCredential.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { CredentialSubject } from '../../@types/DDO/CredentialSubject' -import { BaseDDOType } from '../../@types/DDO/versions/BaseDDO' -import { VerifiableCredentialType } from '../../@types/DDO/versions/VerifiableCredential' - -export class VerifiableCredential implements BaseDDOType { - '@context': string[] - id?: string - version: string - credentialSubject: CredentialSubject - issuer: string - - constructor(data: any) { - this['@context'] = data['@context'] - this.id = data.id - this.version = data.version - this.credentialSubject = data.credentialSubject - this.issuer = data.issuer - } - - /** - * Get param to order an asset based on the specified pricing schema and configuration. - * @param {Asset} asset - The asset to be ordered. - * @param {number} [serviceIndex=0] - Index of the service within the asset. - */ - getOrderAssetParams(asset: VerifiableCredentialType, serviceIndex: number = 0) { - const did = asset.credentialSubject.id - const serviceId = asset.credentialSubject.services[serviceIndex].id - return { did, serviceId } - } -} diff --git a/src/utils/DDOType.ts b/src/utils/DDOType.ts deleted file mode 100644 index b1779567..00000000 --- a/src/utils/DDOType.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { DDOFactory } from './DDO/DdoFactory' - -export async function getDDOType(assetData: any) { - return DDOFactory.createDDO(assetData) -} diff --git a/src/utils/DdoHelpers.ts b/src/utils/DdoHelpers.ts index 29f3102d..0ea272e8 100644 --- a/src/utils/DdoHelpers.ts +++ b/src/utils/DdoHelpers.ts @@ -1,5 +1,6 @@ import sha256 from 'crypto-js/sha256' import { ethers } from 'ethers' +import { DDOFactory } from './DDO/DdoFactory' /** * Generates a valid DID @@ -21,3 +22,7 @@ export function generateDid(nftAddress: string, chainId: number): string { export function getHash(data: any): string { return sha256(data).toString() } + +export async function getDDOType(assetData: any) { + return DDOFactory.createDDO(assetData) +}