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';