@ledgerhq/coin-internet_computer
Version:
Ledger Internet Computer integration
33 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.signMessage = void 0;
const logs_1 = require("@ledgerhq/logs");
const utils_1 = require("./common-logic/utils");
function bufferToArrayBuffer(buffer) {
const sig = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
return Buffer.from(sig);
}
const signMessage = (signerContext) => async (deviceId, account, { message }) => {
(0, logs_1.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, (0, utils_1.getBufferFromString)(message));
return { r };
});
if (!r.signatureRS) {
throw Error("Signing failed");
}
return {
rsv: {
r: "",
s: "",
v: 0,
},
signature: bufferToArrayBuffer(r.signatureRS).toString("hex"),
};
};
exports.signMessage = signMessage;
//# sourceMappingURL=hw-signMessage.js.map