@tristeroresearch/mach-sdk
Version:
A TypeScript SDK for integrating with Mach's API.
27 lines (26 loc) • 1.2 kB
JavaScript
/**
* Helper function to process a transaction receipt
* @description This helper function processes a transaction receipt to extract and decode order-related information from event logs.
*/
import { decodeEventLog } from 'viem';
import { abi } from '../index.js';
export const processReceipt = (receipt, encodedEventTopics, sellChain) => {
const orderPlacedLogs = receipt.logs.filter((log) => log.topics[0] === encodedEventTopics);
const decodedLogs = orderPlacedLogs.map((log) => {
const { args } = decodeEventLog({
abi: abi.orderBook,
data: log.data,
topics: log.topics,
});
return {
srcToken: args['src_token'] || args?.direction?.srcAsset,
dstToken: args['dst_token'] || args?.direction?.dstAsset,
lzCid: args['lz_cid']?.toString() || args?.direction?.dstLzc?.toString(),
orderIndex: args['order_index']?.toString() || args['orderIndex']?.toString(),
fee: args['fee']?.toString() || args?.funding?.bondFee?.toString(),
transactionHash: log.transactionHash,
sellChain: sellChain.toLowerCase(),
};
});
return decodedLogs;
};