UNPKG

radix-utils

Version:

Utility functions for Radix DLT blockchain development

38 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractValuesFromTxEvent = exports.getEventKeyValuesFromTransaction = exports.getEventFromTransaction = void 0; const getEventFromTransaction = async (gatewayApi, txId, eventName) => { const txDetails = await gatewayApi.transaction.innerClient.transactionCommittedDetails({ transactionCommittedDetailsRequest: { intent_hash: txId, opt_ins: { detailed_events: true }, }, }); const allEvents = txDetails.transaction.receipt?.detailed_events; if (!allEvents) { throw new Error('No events found in transaction receipt'); } const event = allEvents.find((e) => e.identifier.event === eventName); if (!event) { throw new Error(`Event '${eventName}' not found in transaction receipt`); } return event; }; exports.getEventFromTransaction = getEventFromTransaction; const getEventKeyValuesFromTransaction = async (gatewayApi, txId, eventName) => { const event = await (0, exports.getEventFromTransaction)(gatewayApi, txId, eventName); return (0, exports.extractValuesFromTxEvent)(event); }; exports.getEventKeyValuesFromTransaction = getEventKeyValuesFromTransaction; const extractValuesFromTxEvent = (event) => { const programmatic_json = event.payload.programmatic_json; const keyValues = {}; if (programmatic_json.fields) { programmatic_json.fields.forEach((field) => { keyValues[field.field_name] = field.value; }); } return keyValues; }; exports.extractValuesFromTxEvent = extractValuesFromTxEvent; //# sourceMappingURL=transaction.js.map