import { findAttribute } from '@cosmjs/stargate/build/logs';
import { TxResponse } from '@cosmjs/tendermint-rpc';
type PacketAttrs = {
seq: number;
srcChannel: string;
srcPort: string;
destChannel: string;
destPort: string;
};
function parseIbcAttrs(tx: TxResponse): PacketAttrs {
// sample ibc tx: https://www.mintscan.io/osmosis/txs/680A76DE87A40401574CDE66941775B832B20DAB8062CFF66DCDAF668E20BADA
const seq = findAttribute(
JSON.parse(tx.result.log!),
'send_packet',
'packet_sequence'
);
const srcChannel = findAttribute(
JSON.parse(tx.result.log!),
'send_packet',
'packet_src_channel'
);
const srcPort = findAttribute(
JSON.parse(tx.result.log!),
'send_packet',
'packet_src_port'
);
const destChannel = findAttribute(
JSON.parse(tx.result.log!),
'send_packet',
'packet_dst_channel'
);
const destPort = findAttribute(
JSON.parse(tx.result.log!),
'send_packet',
'packet_dst_port'
);
return {
seq: parseInt(seq.value, 10),
srcChannel: srcChannel.value,
srcPort: srcPort.value,
destChannel: destChannel.value,
destPort: destPort.value,
};
}
export default parseIbcAttrs;