From 54f0b647d54e4898402b25b0fd6a85bc01c0abd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eike=20Ha=C3=9F?= Date: Thu, 12 Nov 2020 17:53:27 +0100 Subject: [PATCH] feat: added compression to qr data --- cli.ts | 10 ++++++++-- package.json | 1 + ui/components/modal/Presentation.svelte | 12 ++++++------ ui/views/Scan.svelte | 5 +++++ yarn.lock | 2 +- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/cli.ts b/cli.ts index 584abd3..6542a06 100644 --- a/cli.ts +++ b/cli.ts @@ -8,6 +8,8 @@ const QRCode = require('qrcode-svg'); const fs = require('fs'); +var pako = require('pako'); + const WORKDIR = '.cli'; const IDENTITYFILE = `${WORKDIR}/identity.json`; @@ -97,9 +99,13 @@ getIdentity().then((identity) => { console.info('using identity', identity); createCredential(identity, schemaName as SchemaNames, JSON.parse(fs.readFileSync(dataPath, 'utf8'))).then((credential) => { console.info('credential created'); + const strigifiedCredential = JSON.stringify(credential); - const qrData = strigifiedCredential; - console.info(qrData); + const compressedCredential = pako.deflate(strigifiedCredential, { to: 'string' }); + const qrData = JSON.stringify({ cp: compressedCredential }); + + console.log(qrData); + const qrcode = new QRCode({ content: qrData, padding: 40, diff --git a/package.json b/package.json index 5d47457..30f978b 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "capacitor-secure-storage-plugin": "0.3.1", "hammerjs": "^2.0.8", "iota-identity-wasm-test": "0.0.13", + "pako": "^1.0.11", "qr-scanner": "^1.2.0", "qrcode-svg": "^1.1.0", "randomstring": "^1.1.5", diff --git a/ui/components/modal/Presentation.svelte b/ui/components/modal/Presentation.svelte index fb4ab33..f01fe6d 100644 --- a/ui/components/modal/Presentation.svelte +++ b/ui/components/modal/Presentation.svelte @@ -2,6 +2,8 @@ import QRCode from 'qrcode-svg'; import { onMount } from 'svelte'; + import pako from 'pako'; + import { detectSwipeGesture } from '~/lib/helpers'; import { qrCode, modalStatus, storedCredentials } from '~/lib/store'; @@ -12,8 +14,6 @@ detectSwipeGesture('wrapper', 'swipedown', () => goBack()); }); - console.log($modalStatus.props); - const credential = $storedCredentials.find((credential) => credential.id === $modalStatus.props.id); const schema = credential.credentialDocument.type[1]; const challenge = Date.now(); @@ -21,12 +21,12 @@ console.log(credential, schema, challenge); retrieveIdentity('did').then((identity) => { - createVerifiablePresentation(identity, [credential.credentialDocument], challenge, true).then( + createVerifiablePresentation(identity, [ credential.credentialDocument ], challenge, true).then( (verifiablePresentations) => { const strigifiedPresentation = JSON.stringify(verifiablePresentations); - const qrData = strigifiedPresentation; + const compressedPresentation = pako.deflate(strigifiedPresentation, { to: 'string' }); + const qrData = JSON.stringify({ cp: compressedPresentation }); const deviceHeight = document.documentElement.clientHeight; - console.log(qrData); qrCode.set( new QRCode({ content: qrData, @@ -34,7 +34,7 @@ //join: true, height: deviceHeight * 0.3, width: deviceHeight * 0.3, - ecl: 'L', + ecl: 'L' }).svg() ); } diff --git a/ui/views/Scan.svelte b/ui/views/Scan.svelte index ce90223..88a6516 100644 --- a/ui/views/Scan.svelte +++ b/ui/views/Scan.svelte @@ -1,4 +1,6 @@