UNPKG

@yubing744/rooch-sdk

Version:
68 lines (67 loc) 1.47 kB
class FuncFilter { constructor(func) { this.func = func; } init() { } destroy() { } async doFilter(request, chain) { return await this.func(request, chain); } } class FilteredProvider { constructor(target, filters) { this.target = target; this.filters = filters; for (const filter of this.filters) { filter.init(); } } getRpcApiVersion() { return this.target.getRpcApiVersion(); } getChainId() { return this.target.getChainId(); } executeViewFunction(params) { return this.target.executeViewFunction(params); } getStates(accessPath) { return this.target.getStates(accessPath); } listStates(params) { return this.target.listStates(params); } sendRawTransaction(playload) { let index = 0; const chain = { doFilter: async (req) => { if (index < this.filters.length) { const filter = this.filters[index++]; return await filter.doFilter(req, chain); } else { return await this.target.sendRawTransaction(req); } } }; return new Promise(async (resolve, reject) => { try { let response = await chain.doFilter(playload); resolve(response); } catch (error) { reject(error); } }); } destroy() { for (const filter of this.filters) { filter.destroy(); } } } export { FilteredProvider, FuncFilter }; //# sourceMappingURL=filtered-client.js.map