radix-utils
Version:
Utility functions for Radix DLT blockchain development
38 lines • 1.67 kB
JavaScript
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
;