@fairmint/canton-node-sdk
Version:
Canton Node SDK
33 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findCreatedEventByTemplateId = findCreatedEventByTemplateId;
function isCreatedTreeEventWrapper(event) {
if (!event || typeof event !== 'object')
return false;
const e = event;
return Boolean(e.CreatedTreeEvent) && typeof e.CreatedTreeEvent === 'object' && 'value' in e.CreatedTreeEvent;
}
function findCreatedEventByTemplateId(response, expectedTemplateId) {
const transactionTree = response.transactionTree;
const eventsById = transactionTree?.eventsById ?? transactionTree?.transaction?.eventsById ?? {};
// Extract the part after the first ':' from the expected template ID
const expectedTemplateIdSuffix = expectedTemplateId.includes(':')
? expectedTemplateId.substring(expectedTemplateId.indexOf(':') + 1)
: expectedTemplateId;
for (const event of Object.values(eventsById)) {
if (isCreatedTreeEventWrapper(event)) {
const created = event.CreatedTreeEvent.value;
if (created.templateId) {
// Extract the part after the first ':' from the actual template ID
const actualTemplateIdSuffix = created.templateId.includes(':')
? created.templateId.substring(created.templateId.indexOf(':') + 1)
: created.templateId;
if (actualTemplateIdSuffix === expectedTemplateIdSuffix) {
return event;
}
}
}
}
return undefined;
}
//# sourceMappingURL=findCreatedEvent.js.map