diff --git a/src/app/api/notary/OfficeFolderAnchorsController.ts b/src/app/api/notary/OfficeFolderAnchorsController.ts index cb16501b..f43c28d8 100644 --- a/src/app/api/notary/OfficeFolderAnchorsController.ts +++ b/src/app/api/notary/OfficeFolderAnchorsController.ts @@ -87,7 +87,7 @@ export default class OfficeFoldersController extends ApiController { } const sortedHashes = [...folderHashes].sort(); - const anchoringProof = await this.secureService.download(sortedHashes); + const anchoringProof = await this.secureService.download(sortedHashes, officeFolder.name); const addFileToZip = (zip: Zip) => (uid: string): Promise => (async () => { diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 8d43a5b0..db055ef3 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -6,6 +6,7 @@ export interface AnchoringProofData { rootHash: string; anchoringTime: string; txLink: string; + office_name: string; } @Service() @@ -14,57 +15,111 @@ export default class AnchoringProofService extends BaseService { super(); } - private static svgTemplateDocument: string = ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [[ANCHORING_TIME]] - Certificat de dépôt international - Hash : - [[ROOT_HASH]] - - Déposant(s) - Auteur : - Not.IT - Partenaire technique : - Smart-Chain - - Explorateur blockchain - [[TX_LINK]] - - + // private static svgTemplateDocument: string = ` + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // [[ANCHORING_TIME]] + // Certificat de dépôt international + // Hash : + // [[ROOT_HASH]] + // + // Déposant(s) + // Auteur : + // Not.IT + // Partenaire technique : + // Smart-Chain + // + // Explorateur blockchain + // [[TX_LINK]] + // + // + // `; + + private static svgTemplateDocumentBis: string = ` + + + + + + + Certificat de dépôt international + [[ANCHORING_TIME]] + Nom de l'office + [[OFFICE_NAME]] + + Déposant(s) + LEcoffre.io + + Hash + [[ROOT_HASH]] + + Explorateur blockchain + [[TX_LINK]] + + + À quoi ça sert ? + Un certificat d'ancrage sur la blockchain permet d'établir de manière irréfutable l'enregistrement de données spécifiques à une date et une heure déterminées. Il constitue une preuve immuable et juridiquement opposable de l'existence et de l'intégrité des informations à un moment donné. En cas de litige, ce certificat peut être utilisé pour démontrer de manière incontestable que les données n'ont pas été altérées depuis leur enregistrement, offrant ainsi une preuve solide devant les tribunaux. + + Qu'est-ce qu'un explorateur blockchain ? + Un explorateur blockchain est un outil numérique permettant d'accéder et de consulter les transactions et les données enregistrées sur la blockchain. Il assure une transparence totale, permettant à toute partie prenante de vérifier les opérations et les enregistrements effectués sur la chaîne de blocs. + + Qu'est-ce qu'un hash ? + Un hash est une empreinte cryptographique unique générée par un algorithme à partir de données spécifiques. Il agit comme une signature numérique permettant de vérifier l'intégrité des données : toute modification, même infime, des données d'origine entraîne la production d'un hash distinct, garantissant ainsi l'authenticité et l'intégrité des informations. + + + + + + + + + + + + + + + + + + + + + + `; /** @@ -81,7 +136,7 @@ export default class AnchoringProofService extends BaseService { var htmlContent = ` - ${AnchoringProofService.svgTemplateDocument} + ${AnchoringProofService.svgTemplateDocumentBis} `; @@ -89,6 +144,7 @@ export default class AnchoringProofService extends BaseService { htmlContent = htmlContent .replace("[[ROOT_HASH]]", data.rootHash) .replace("[[ANCHORING_TIME]]", data.anchoringTime) + .replace("[[OFFICE_NAME]]", data.office_name) .replace(/\[\[TX_LINK\]\]/g, data.txLink); await page.setContent(htmlContent); diff --git a/src/services/common/SecureService/SecureService.ts b/src/services/common/SecureService/SecureService.ts index 37dd961b..b69d1d90 100644 --- a/src/services/common/SecureService/SecureService.ts +++ b/src/services/common/SecureService/SecureService.ts @@ -63,7 +63,7 @@ export default class SecureService extends BaseService { * @description : Download the anchoring proof document * @throws {Error} If transaction is not verified on chain */ - public async download(hash_sources: string[]) { + public async download(hash_sources: string[], office_name: string) { const anchor = await this.verify(hash_sources); if (anchor.transactions.length === 0) { @@ -71,6 +71,8 @@ export default class SecureService extends BaseService { } const transaction = anchor.transactions[0]; + console.log(transaction); + if (transaction.status !== EAnchoringStatus.VERIFIED_ON_CHAIN) { throw new Error(`Transaction not verified on chain: ${transaction.status}`); @@ -83,6 +85,7 @@ export default class SecureService extends BaseService { timeZone: "Europe/Paris", timeZoneName: "short", }), + office_name: office_name, }); } }