Skip to content

Commit

Permalink
demo: print Uint8Arrays as hex in redirect responses
Browse files Browse the repository at this point in the history
  • Loading branch information
danimoh committed Feb 16, 2025
1 parent 093db02 commit 7d513b3
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions demos/Demo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,10 @@ class Demo {
console.log('Hub result', result);
console.log('State', state);

document.querySelector('#result')!.textContent = JSON.stringify(result);
document.querySelector('#result')!.textContent = JSON.stringify(
result,
(key, value) => value instanceof Uint8Array || value instanceof ArrayBuffer ? toHex(value) : value,
);
if (requestType === RequestType.CONNECT_ACCOUNT) {
setConnectResult(result as ConnectedAccount);
}
Expand Down Expand Up @@ -729,20 +732,19 @@ class Demo {
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Account connected: ' + result.account.label;
await setConnectResult(result);
setConnectResult(result);
} catch (e) {
console.error(e);
document.querySelector('#result')!.textContent = `Error: ${e.message || e}`;
}
});

async function setConnectResult(result: ConnectedAccount) {
const Nimiq = await window.loadAlbatross();
function setConnectResult(result: ConnectedAccount) {
(document.querySelector('#connected-publickey') as HTMLInputElement).value =
Nimiq.BufferUtils.toHex(result.signatures[0].signerPublicKey);
toHex(result.signatures[0].signerPublicKey);
(document.querySelector('#connected-encryption-key') as HTMLInputElement).value = JSON.stringify(
result.encryptionKey,
(key, value) => key === 'keyData' ? Nimiq.BufferUtils.toHex(value) : value,
(key, value) => key === 'keyData' ? toHex(value) : value,
);
}

Expand Down Expand Up @@ -839,7 +841,7 @@ class Demo {
encryptionKey.key.algorithm,
encryptionKey.key,
secret.serialize(),
)))).map((encryptedSecret) => BufferUtils.toHex(new Uint8Array(encryptedSecret))),
)))).map((encryptedSecret) => toHex(encryptedSecret)),
keyParams: encryptionKey.keyParams,
}
: myCommitmentPairs.map(({ secret }) => secret.toHex());
Expand Down Expand Up @@ -877,8 +879,7 @@ class Demo {
const result = await demo.client.signMultisigTransaction(request, demo._defaultBehavior);
if (demo.isRedirectResult(result)) return;
console.log('Result', result);
document.querySelector('#result')!.textContent = 'Transaction signed: '
+ BufferUtils.toHex(result.signature);
document.querySelector('#result')!.textContent = 'Transaction signed: ' + toHex(result.signature);
} catch (e) {
console.error(e);
document.querySelector('#result')!.textContent = `Error: ${e.message || e}`;
Expand Down Expand Up @@ -1216,3 +1217,16 @@ class Demo {
} // class Demo

Demo.run();

function toHex(buffer: Uint8Array | ArrayBuffer) {
const hexAlphabet = '0123456789abcdef';
const uint8Array = buffer instanceof ArrayBuffer ? new Uint8Array(buffer) : buffer;
let hex = '';
for (let i = 0; i < uint8Array.length; i++) {
const code = uint8Array[i];
hex += hexAlphabet[code >>> 4];
hex += hexAlphabet[code & 0x0F];
}
return hex;
}

0 comments on commit 7d513b3

Please sign in to comment.