@didtools/cacao
Version:
Typescript library for Ceramic OCAP
31 lines (30 loc) • 964 B
JavaScript
import { SignatureType, SiwxMessage } from './siwx.js';
import * as uint8arrays from 'uint8arrays';
export class SiwTezosMessage extends SiwxMessage {
toMessage() {
return super.toMessage('Tezos');
}
signMessage() {
let message;
switch(this.type){
case SignatureType.PERSONAL_SIGNATURE:
{
message = encodePayload(this.toMessage());
break;
}
default:
{
message = encodePayload(this.toMessage());
break;
}
}
return message;
}
}
function encodePayload(message) {
const michelinePrefix = '05';
const stringPrefix = '01';
const len = ('0000000' + message.length.toString(16)).slice(-8);
const text = uint8arrays.toString(uint8arrays.fromString(message, 'utf-8'), 'hex');
return michelinePrefix + stringPrefix + len + text;
}