@gleif-it/did-webs-ts
Version:
did-webs typescript library
23 lines (22 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getKeyState = void 0;
// Returns the latest key state for a given identifier from the sorted key event stream
const getKeyState = (identifier, events) => {
const sortedEvents = events.get(identifier);
if (!sortedEvents || sortedEvents.length === 0) {
throw new Error(`No events found for identifier: ${identifier}`);
}
// To find latest key state, filter events to only include inception or rotation events
const validEvents = sortedEvents.filter((event) => event.t === 'icp' || event.t === 'rot');
if (validEvents.length === 0) {
throw new Error(`No inception or rotation events found for identifier: ${identifier}`);
}
// Since sortedEvents are in descending order, the first valid event is the current key state
const latestEvent = validEvents[0];
return {
identifier,
keyState: { kt: latestEvent.kt, k: latestEvent.k },
};
};
exports.getKeyState = getKeyState;