UNPKG

@ledgerhq/coin-internet_computer

Version:
30 lines 1.1 kB
import { log } from "@ledgerhq/logs"; import { getBufferFromString } from "./common-logic/utils"; import { ICP_SEND_TXN_TYPE } from "./consts"; function bufferToArrayBuffer(buffer) { const sig = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength); return Buffer.from(sig); } export const signMessage = (signerContext) => async (deviceId, account, { message }) => { log("debug", "start signMessage process"); if (!message) throw new Error("Message cannot be empty"); if (typeof message !== "string") throw new Error("Message must be a string"); const { r } = await signerContext(deviceId, async (signer) => { const r = await signer.sign(account.freshAddressPath, getBufferFromString(message), ICP_SEND_TXN_TYPE); return { r }; }); if (!r.signatureRS) { throw Error("Signing failed"); } return { rsv: { r: "", s: "", v: 0, }, signature: bufferToArrayBuffer(r.signatureRS).toString("hex"), }; }; //# sourceMappingURL=hw-signMessage.js.map