From 66b973a4708e1b96c53c3785c65654a63b0d43bb Mon Sep 17 00:00:00 2001 From: Bhavi Dhingra Date: Tue, 4 Nov 2025 10:43:16 +0530 Subject: [PATCH] feat: deserialize signed CIP-8 message hex TICKET: COIN-6327 --- .../deserialize-signed-cip-8-message-hex.ts | 36 +++++++++++++++++++ .../src/lib/messages/cip8/index.ts | 1 + 2 files changed, 37 insertions(+) create mode 100644 examples/ts/ada/deserialize-signed-cip-8-message-hex.ts diff --git a/examples/ts/ada/deserialize-signed-cip-8-message-hex.ts b/examples/ts/ada/deserialize-signed-cip-8-message-hex.ts new file mode 100644 index 0000000000..5828d1d0bd --- /dev/null +++ b/examples/ts/ada/deserialize-signed-cip-8-message-hex.ts @@ -0,0 +1,36 @@ +/** + * Deserialize a signed CIP-8 message from an MPC wallet at BitGo. + * + * Copyright 2025, BitGo, Inc. All Rights Reserved. + */ +import { BaseCoin } from "@bitgo/statics"; +import { MessageBuilderFactory, bufferToCoseObjectsOutput } from "@bitgo/sdk-coin-ada"; + +async function deserializeSignedCip8MessageHex(): Promise { + const signedMsgHex = ''; + + const coinConfig = { name: 'ada' } as BaseCoin; + const factory = new MessageBuilderFactory(coinConfig); + const builder = factory.fromBroadcastString(signedMsgHex); + const message = await builder.build(); + + const payload = message.getPayload(); + console.log(`Message: ${payload}`); + + const address = message.getSigners()[0]; + console.log(`Signer address: ${address}`); + + const signature = message.getSignatures()[0].signature; + const publicKeyHex = message.getSignatures()[0].publicKey.pub; + console.log(`Public key hex: ${publicKeyHex}`); + + const coseObjectsOutput = await bufferToCoseObjectsOutput(signature); + + const coseKey = coseObjectsOutput.manualCoseKeyHex; + console.log(`Cose key: ${coseKey}`); + + const coseSign1 = coseObjectsOutput.manualCoseSign1Hex; + console.log(`Cose sign1: ${coseSign1}`); +} + +deserializeSignedCip8MessageHex().catch(console.error); diff --git a/modules/sdk-coin-ada/src/lib/messages/cip8/index.ts b/modules/sdk-coin-ada/src/lib/messages/cip8/index.ts index 97284b7bcb..e69aa287ae 100644 --- a/modules/sdk-coin-ada/src/lib/messages/cip8/index.ts +++ b/modules/sdk-coin-ada/src/lib/messages/cip8/index.ts @@ -1,2 +1,3 @@ export * from './cip8Message'; export * from './cip8MessageBuilder'; +export * from './utils';