diff --git a/package-lock.json b/package-lock.json index 93f7392..bf76e5a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jackallabs/banshee", - "version": "0.2.0", + "version": "0.3.0-alpha.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jackallabs/banshee", - "version": "0.2.0", + "version": "0.3.0-alpha.1", "license": "MIT", "dependencies": { "@cosmjs/amino": "^0.32.3", diff --git a/package.json b/package.json index 21630f3..de8e96b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@jackallabs/banshee", - "version": "0.2.0", + "version": "0.3.0-alpha.1", "description": "Modern problems require modern solutions", "keywords": [], "exports": { diff --git a/src/classes/websocketCore.ts b/src/classes/websocketCore.ts index 9e98c75..ab5fd8b 100644 --- a/src/classes/websocketCore.ts +++ b/src/classes/websocketCore.ts @@ -1,7 +1,7 @@ import type { TPossibleTxEvents } from '@/types' import { - IIbcEngageBundle, - IWebsocketCore, + IIbcEngageBundle, IIbcFeedBundle, + IWebsocketCore } from '@/interfaces' import { Responses } from '@cosmjs/tendermint-rpc/build/tendermint34/adaptor' @@ -48,7 +48,7 @@ export class WebsocketCore implements IWebsocketCore { method: 'subscribe', id: Date.now().toString(), params: { - query: (conn.query) ? `tm.event = 'Tx' AND '${conn.query}'` : `tm.event = 'Tx'`, + query: (conn.query) ? `tm.event = 'Tx' AND ${conn.query}` : `tm.event = 'Tx'`, }, } client.onopen = () => { @@ -60,8 +60,12 @@ export class WebsocketCore implements IWebsocketCore { if (!data.result.data) { return } - const postProcess = Responses.decodeTxEvent(data.result) - conn.feed.push(postProcess as T) + const ready = Responses.decodeTxEvent(data.result) as T + const postProcess: IIbcFeedBundle = { + resp: ready, + parsed: conn.parser(ready) + } + conn.feed.push(postProcess) } catch (err) { console.error(err) } diff --git a/src/interfaces/IIbcBundle.ts b/src/interfaces/IIbcBundle.ts index 990d59d..bac91b5 100644 --- a/src/interfaces/IIbcBundle.ts +++ b/src/interfaces/IIbcBundle.ts @@ -1,15 +1,21 @@ -import type { TCurrentTxEvent, TPossibleTxEvents } from '@/types' +import type { TPossibleTxEvents } from '@/types' /** * @interface IIbcEngageBundle * @property {string} chainId * @property {string} endpoint * @property {string} [query] - * @property {TCurrentTxEvent[]} feed + * @property {IIbcFeedBundle[]} feed */ export interface IIbcEngageBundle { chainId: string endpoint: string + parser: (source: T) => any query?: string - feed: TCurrentTxEvent[] + feed: IIbcFeedBundle[] +} + +export interface IIbcFeedBundle { + resp: T, + parsed: any }