@paraswap/dex-lib 4.1.2-fluid → 4.1.2-pubsub-fluid

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -267,8 +267,7 @@ class GenericRFQ extends paraswap_limit_orders_1.ParaSwapLimitOrders {
267
267
  return this.rateFetcher.isBlackListed(userAddress);
268
268
  }
269
269
  async setBlacklist(userAddress) {
270
- await this.dexHelper.cache.hset(this.rateFetcher.blackListCacheKey, userAddress.toLowerCase(), 'true');
271
- return true;
270
+ return this.rateFetcher.setBlacklist(userAddress);
272
271
  }
273
272
  releaseResources() {
274
273
  if (this.rateFetcher) {
@@ -1 +1 @@
1
- {"version":3,"file":"generic-rfq.js","sourceRoot":"","sources":["../../../src/dex/generic-rfq/generic-rfq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic-rfq.js","sourceRoot":"","sources":["../../../src/dex/generic-rfq/generic-rfq.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAWrC,+CAAoD;AAEpD,0FAAqF;AACrF,mEAAwE;AAExE,gEAAsE;AACtE,iDAA6C;AAC7C,mCAMiB;AACjB,yCAKwB;AACxB,6DAAwD;AACxD,gDAAkD;AAClD,4CAAkE;AAClE,uCAA0D;AAE7C,QAAA,aAAa,GAAG,GAAG,CAAC;AACpB,QAAA,aAAa,GAAG,MAAM,CAAC;AAE7B,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,GAAW,EAAE,EAAE,CACvD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,qBAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;AADnE,QAAA,SAAS,aAC0D;AAEhF,MAAa,UAAW,SAAQ,2CAAmB;IAgBrC;IAEA;IACF;IAlBD,iBAAiB,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAc;IAE1B,MAAM,CAAC,kBAAkB,GAA2C,EAAE,CAAC;IAE9E,MAAM,CAAC,yBAAyB,CAAC,MAAc;QAC7C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAC/C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC3B,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC;IAED,YACY,OAAgB,EAC1B,MAAc,EACJ,SAAqB,EACvB,MAAiB;QAEzB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QALxB,YAAO,GAAP,OAAO,CAAS;QAEhB,cAAS,GAAT,SAAS,CAAY;QACvB,WAAM,GAAN,MAAM,CAAW;QAGzB,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO;IACT,CAAC;IAED,aAAa,CAAC,QAAiB,EAAE,SAAkB;QACjD,iIAAiI;QACjI,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;aACrC,OAAO,CAAC,SAAS,CAAC;aAClB,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;aACpC,OAAO,CAAC,QAAQ,CAAC;aACjB,OAAO,CAAC,WAAW,EAAE,CAAC;QAEzB,MAAM,WAAW,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAElE,OAAO,cAAc;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,mBAAmB,CACjB,OAAoB,EACpB,aAAwB,EACxB,gBAA2C;QAE3C,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,kBAAkB,GAAG,0BAAI,CAAC;QAC9B,IAAI,mBAAmB,GAAG,0BAAI,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,KAAK,CAAY,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0BAAI,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC,CAAC,GAAG,0BAAI,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,IAAI,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACrD,IAAI,gBAAgB,GAAG,mBAAmB,CAAC;gBAC3C,OAAO,cAAc,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;oBAChD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;oBACzD,IAAI,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;wBAE9C,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBAC5C,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAErD,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACrD,mBAAmB,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC3D,cAAc,EAAE,CAAC;oBACnB,CAAC;yBAAM,CAAC;wBACN,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CACtC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAClC,CAAC;wBACF,aAAa,GAAG,0BAAI,CAAC;wBACrB,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC3B,OAAO,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,+EAA+E;oBAC/E,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAe,EACf,SAAgB,EAChB,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5D,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACpD,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1D,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAC3C,SAAS,CAAC,OAAO,EACjB,UAAU,CAAC,OAAO,CACnB,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAChD,SAAS,EACT,UAAU,EACV,IAAI,CACL,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GACd,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QACpE,MAAM,WAAW,GACf,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;QAEpE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACnC,IAAI,sBAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,IAAA,qCAAe,EAAC,UAAU,CAAC,CAAC,CACnE,CAAC;QAEF,MAAM,UAAU,GAAG,0BAAI,CAAC;QAExB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAC1C,CAAC,UAAU,CAAC,EACZ,IAAA,qCAAe,EAAC,WAAW,CAAC,EAC5B,KAAK,CACN,CAAC;QAEF,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CACtC,YAAY,EACZ,IAAA,qCAAe,EAAC,WAAW,CAAC,EAC5B,KAAK,CACN,CAAC;QACF,OAAO;YACL;gBACE,OAAO,EAAE,MAAM,CAAC,4BAAiB,CAAC;gBAClC,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,OAAO;gBACf,IAAI;gBACJ,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI;iBACjB;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,OAAO,CAAC,uBAAgB,CAAC,6BAA6B,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB,CACd,QAAiB,EACjB,SAAkB,EAClB,UAA0B,EAC1B,QAAwB,EACxB,YAA4B,EAC5B,IAA6B,EAC7B,IAAc,EACd,MAAc,EACd,IAAY,EACZ,aAAqB,EACrB,WAAmB,EACnB,WAAmB,EACnB,cAAsB;QAEtB,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,cAAe,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,2BAA2B,cAAc,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,MAAM,iEAAiE;gBACnF,0CAA0C,CAC7C,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,MAAM,IAAI,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExC,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjD,MAAM,oBAAoB,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAEtE,MAAM,QAAQ,GAAG,IAAA,iBAAS,EAAC;YACzB,IAAA,kBAAU,EAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACnC,IAAA,kBAAU,EAAC,IAAA,eAAO,EAAC,WAAW,CAAC,EAAE,EAAE,CAAC;SACrC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAc;YACxB,UAAU;YACV,QAAQ;YACR,oBAAoB,CAAC,QAAQ,EAAE;YAC/B,QAAQ;YACR,WAAW;SACZ,CAAC;QAEF,MAAM,OAAO,GAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,CAAC,GAAG,MAAqC,EAAE,EAAE;YAC3D,OAAO,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAChD,uBAAgB,CAAC,6BAA6B,EAC9C,CAAC,GAAG,MAAM,CAAC,CACZ,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IACvD,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAA6B,EAC7B,IAAc;QAEd,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAE5B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,CAAC,MAAM,4DAA4D;gBAC9E,0CAA0C,CAC7C,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC;QAEtC,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAC7D,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,8BAA8B,EACxE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CACzD,CAAC;QAEF,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI;YACzB,YAAY,EAAE,sBAAsB;YACpC,cAAc,EAAE,kBAAU,CAAC,oBAAoB;YAC/C,cAAc,EAAE,IAAI,CAAC,kBAAkB;YACvC,kCAAkC,EAAE,IAAI;YACxC,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,mBAAiE,EACjE,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,OAAqC;QAErC,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,oCAAoC,OAAO,CAAC,QAAQ,6CAA6C,CAChI,CAAC;YACF,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,UAAU,OAAO,CAAC,QAAQ,iBAAiB,CAC1E,CAAC;QACJ,CAAC;QAED,IACE,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,QAAQ;YACxC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAC/C,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,+BAA+B,OAAO,CAAC,WAAW,6CAA6C,CAC9H,CAAC;YACF,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,UAAU,OAAO,CAAC,WAAW,iBAAiB,CAC7E,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC;QAEtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAC9C,QAAQ,EACR,SAAS,EACT,MAAM;YACJ,CAAC,CAAC,IAAA,iBAAS,EAAC,mBAAmB,CAAC,SAAS,EAAE,qBAAa,CAAC;YACzD,CAAC,CAAC,IAAA,iBAAS,EAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,CAAC,EAChD,IAAI,EACJ,OAAO,CAAC,wBAAwB,EAChC,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iCAAc,CAAC;QAEzE,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAE9C,IAAI,IAAI,KAAK,oBAAQ,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,sBAAsB,GAC1B,gBAAgB,GAAG,SAAS;gBAC1B,CAAC,CAAC,CAAC,gBAAgB,GAAG,SAAS,CAAC,GAAG,gBAAgB;gBACnD,CAAC,CAAC,gBAAgB,CAAC;YAEvB,IACE,sBAAsB;gBACtB,MAAM,CACJ,IAAI,sBAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACtE,EACD,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,gCAAgC,IAAI,2BAA2B,sBAAsB,iBAAiB,UAAU,MAAM,cAAc,EAAE,CAAC;gBACrK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,MAAM,IAAI,0BAAkB,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,gBAAgB,GAAG,UAAU,EAAE,CAAC;gBAClC,8BAA8B;gBAC9B,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,gCAAgC,IAAI,sBAAsB,gBAAgB,iBAAiB,UAAU,EAAE,CAAC;gBACtI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,MAAM,IAAI,0BAAkB,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,IACE,gBAAgB;oBAChB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAC7D,CAAC;oBACD,MAAM,OAAO,GAAG,GACd,IAAI,CAAC,MACP,gCAAgC,IAAI,qBAAqB,gBAAgB,gBAAgB,SAAS,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC1B,MAAM,IAAI,0BAAkB,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,2GAA2G;QAC3G,2FAA2F;QAC3F,IAAI,OAAO,CAAC,OAAO,KAAK,sBAAe,CAAC,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACrE,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAC7D,OAAO,CAAC,wBAAwB;YAChC,wCAAwC;YACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAC/C,IAAI,CAAC,kBAAkB,CACxB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,GAAG,mBAAmB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE;YACrE,EAAE,QAAQ,EAAE,WAAW,EAAE;SAC1B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,YAAoB,EACpB,KAAa;QAEb,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAC9C,YAAY,CAAC,WAAW,EAAE,CAC3B,CAAC;QAEF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YAC1B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;;AA9ZH,gCA+ZC"}
@@ -16,6 +16,8 @@ export declare class RateFetcher {
16
16
  private tokens;
17
17
  private addressToTokenMap;
18
18
  private pairs;
19
+ private pricesPubSub;
20
+ private blacklistPubSub?;
19
21
  private firmRateAuth?;
20
22
  blackListCacheKey: string;
21
23
  private authHttp;
@@ -27,7 +29,7 @@ export declare class RateFetcher {
27
29
  private handleTokensResponse;
28
30
  private handlePairsResponse;
29
31
  private handleBlackListResponse;
30
- isBlackListed(userAddress: string): Promise<boolean>;
32
+ isBlackListed(userAddress: string): false | Promise<boolean>;
31
33
  private handleRatesResponse;
32
34
  checkHealth(): boolean;
33
35
  getPairsLiquidity(tokenAddress: string): {
@@ -37,4 +39,5 @@ export declare class RateFetcher {
37
39
  getAvailablePairs(): Promise<string[]>;
38
40
  getOrderPrice(srcToken: Token, destToken: Token, side: SwapSide): Promise<PriceAndAmountBigNumber[] | null>;
39
41
  getFirmRate(_srcToken: Token, _destToken: Token, srcAmount: string, side: SwapSide, takerAddress: Address, userAddress: Address, partner?: string, special?: boolean): Promise<OrderInfo>;
42
+ setBlacklist(userAddress: string): Promise<boolean>;
40
43
  }
@@ -15,6 +15,7 @@ const security_1 = require("./security");
15
15
  const validators_2 = require("../../lib/validators");
16
16
  const erc1271_utils_1 = require("../../lib/erc1271-utils");
17
17
  const utils_2 = require("../../utils");
18
+ const pub_sub_1 = require("../../lib/pub-sub");
18
19
  const GET_FIRM_RATE_TIMEOUT_MS = 2000;
19
20
  const reversePrice = (price) => [
20
21
  bignumber_constants_1.BN_1.dividedBy(price[0]),
@@ -33,6 +34,8 @@ class RateFetcher {
33
34
  tokens = {};
34
35
  addressToTokenMap = {};
35
36
  pairs = {};
37
+ pricesPubSub;
38
+ blacklistPubSub;
36
39
  firmRateAuth;
37
40
  blackListCacheKey;
38
41
  authHttp;
@@ -73,6 +76,8 @@ class RateFetcher {
73
76
  },
74
77
  handler: this.handleRatesResponse.bind(this),
75
78
  }, config.rateConfig.intervalMs, logger);
79
+ this.pricesPubSub = new pub_sub_1.ExpKeyValuePubSub(this.dexHelper, this.dexKey, 'prices');
80
+ this.blackListCacheKey = `${this.dexHelper.config.data.network}_${this.dexKey}_blacklist`;
76
81
  if (config.blacklistConfig) {
77
82
  this.blackListFetcher = new fetcher_1.Fetcher(dexHelper.httpRequest, {
78
83
  info: {
@@ -84,8 +89,8 @@ class RateFetcher {
84
89
  },
85
90
  handler: this.handleBlackListResponse.bind(this),
86
91
  }, config.blacklistConfig.intervalMs, logger);
92
+ this.blacklistPubSub = new pub_sub_1.NonExpSetPubSub(this.dexHelper, this.dexKey, 'blacklist');
87
93
  }
88
- this.blackListCacheKey = `${this.dexHelper.config.data.network}_${this.dexKey}_blacklist`;
89
94
  if (this.config.firmRateConfig.secret) {
90
95
  this.firmRateAuth = this.authHttp(this.config.firmRateConfig.secret);
91
96
  }
@@ -95,6 +100,13 @@ class RateFetcher {
95
100
  if (isContract) {
96
101
  this.verifierContract = (0, erc1271_utils_1.createERC1271Contract)(this.dexHelper.web3Provider, this.config.maker);
97
102
  }
103
+ if (this.dexHelper.config.isSlave) {
104
+ this.pricesPubSub.subscribe();
105
+ if (this.blacklistPubSub) {
106
+ const initSet = await this.dexHelper.cache.smembers(this.blackListCacheKey);
107
+ this.blacklistPubSub.initializeAndSubscribe(initSet);
108
+ }
109
+ }
98
110
  }
99
111
  start() {
100
112
  this.tokensFetcher.startPolling();
@@ -139,11 +151,19 @@ class RateFetcher {
139
151
  for (const address of resp.blacklist) {
140
152
  this.dexHelper.cache.sadd(this.blackListCacheKey, address.toLowerCase());
141
153
  }
154
+ if (this.blacklistPubSub) {
155
+ this.blacklistPubSub.publish(resp.blacklist);
156
+ }
142
157
  }
143
158
  isBlackListed(userAddress) {
144
- return this.dexHelper.cache.sismember(this.blackListCacheKey, userAddress.toLowerCase());
159
+ if (this.blacklistPubSub) {
160
+ return this.blacklistPubSub.has(userAddress.toLowerCase());
161
+ }
162
+ return false;
145
163
  }
146
164
  handleRatesResponse(resp) {
165
+ const pubSubData = {};
166
+ const ttl = this.config.rateConfig.dataTTLS;
147
167
  const pairs = this.pairs;
148
168
  if ((0, lodash_1.isEmpty)(pairs))
149
169
  return;
@@ -166,17 +186,27 @@ class RateFetcher {
166
186
  return;
167
187
  }
168
188
  if (prices.bids.length) {
169
- this.dexHelper.cache.setex(this.dexKey, this.dexHelper.config.data.network, `${baseToken.address}_${quoteToken.address}_bids`, this.config.rateConfig.dataTTLS, JSON.stringify(prices.bids));
189
+ const key = `${baseToken.address}_${quoteToken.address}_bids`;
190
+ const value = prices.bids;
191
+ pubSubData[key] = value;
192
+ this.dexHelper.cache.setex(this.dexKey, this.dexHelper.config.data.network, key, ttl, JSON.stringify(value));
170
193
  currentPricePairs.add(`${baseToken.address}_${quoteToken.address}`);
171
194
  }
172
195
  if (prices.asks.length) {
173
- this.dexHelper.cache.setex(this.dexKey, this.dexHelper.config.data.network, `${baseToken.address}_${quoteToken.address}_asks`, this.config.rateConfig.dataTTLS, JSON.stringify(prices.asks));
196
+ const key = `${baseToken.address}_${quoteToken.address}_asks`;
197
+ const value = prices.asks;
198
+ pubSubData[key] = value;
199
+ this.dexHelper.cache.setex(this.dexKey, this.dexHelper.config.data.network, key, ttl, JSON.stringify(value));
174
200
  currentPricePairs.add(`${quoteToken.address}_${baseToken.address}`);
175
201
  }
176
202
  });
177
203
  if (currentPricePairs.size > 0) {
178
- this.dexHelper.cache.setex(this.dexKey, this.dexHelper.config.data.network, `pairs`, this.config.rateConfig.dataTTLS, JSON.stringify(Array.from(currentPricePairs)));
204
+ const key = `pairs`;
205
+ const value = Array.from(currentPricePairs);
206
+ pubSubData[key] = value;
207
+ this.dexHelper.cache.setex(this.dexKey, this.dexHelper.config.data.network, key, ttl, JSON.stringify(value));
179
208
  }
209
+ this.pricesPubSub.publish(pubSubData, ttl);
180
210
  }
181
211
  checkHealth() {
182
212
  return [this.tokensFetcher, this.rateFetcher].some(f => f.lastFetchSucceeded);
@@ -210,37 +240,33 @@ class RateFetcher {
210
240
  });
211
241
  }
212
242
  async getAvailablePairs() {
213
- const pairs = await this.dexHelper.cache.getAndCacheLocally(this.dexKey, this.dexHelper.config.data.network, `pairs`, this.config.rateConfig.intervalMs / 1000);
243
+ const pairs = await this.pricesPubSub.getAndCache(`pairs`);
214
244
  if (!pairs) {
215
245
  return [];
216
246
  }
217
- return JSON.parse(pairs);
247
+ return pairs;
218
248
  }
219
249
  async getOrderPrice(srcToken, destToken, side) {
220
250
  let reversed = false;
221
- let pricesAsString = null;
251
+ let prices = null;
222
252
  if (side === core_1.SwapSide.SELL) {
223
- pricesAsString = await this.dexHelper.cache.getAndCacheLocally(this.dexKey, this.dexHelper.config.data.network, `${srcToken.address}_${destToken.address}_bids`, this.config.rateConfig.intervalMs / 1000);
224
- if (!pricesAsString) {
225
- pricesAsString = await this.dexHelper.cache.getAndCacheLocally(this.dexKey, this.dexHelper.config.data.network, `${destToken.address}_${srcToken.address}_asks`, this.config.rateConfig.intervalMs / 1000);
253
+ prices = await this.pricesPubSub.getAndCache(`${srcToken.address}_${destToken.address}_bids`);
254
+ if (!prices) {
255
+ prices = await this.pricesPubSub.getAndCache(`${destToken.address}_${srcToken.address}_asks`);
226
256
  reversed = true;
227
257
  }
228
258
  }
229
259
  else {
230
- pricesAsString = await this.dexHelper.cache.getAndCacheLocally(this.dexKey, this.dexHelper.config.data.network, `${destToken.address}_${srcToken.address}_asks`, this.config.rateConfig.intervalMs / 1000);
231
- if (!pricesAsString) {
232
- pricesAsString = await this.dexHelper.cache.getAndCacheLocally(this.dexKey, this.dexHelper.config.data.network, `${srcToken.address}_${destToken.address}_bids`, this.config.rateConfig.intervalMs / 1000);
260
+ prices = await this.pricesPubSub.getAndCache(`${destToken.address}_${srcToken.address}_asks`);
261
+ if (!prices) {
262
+ prices = await this.pricesPubSub.getAndCache(`${srcToken.address}_${destToken.address}_bids`);
233
263
  reversed = true;
234
264
  }
235
265
  }
236
- if (!pricesAsString) {
237
- return null;
238
- }
239
- const orderPricesAsString = JSON.parse(pricesAsString);
240
- if (!orderPricesAsString) {
266
+ if (!prices) {
241
267
  return null;
242
268
  }
243
- let orderPrices = orderPricesAsString.map(price => [
269
+ let orderPrices = prices.map(price => [
244
270
  new bignumber_js_1.default(price[0]),
245
271
  new bignumber_js_1.default(price[1]),
246
272
  ]);
@@ -302,6 +328,13 @@ class RateFetcher {
302
328
  throw e;
303
329
  }
304
330
  }
331
+ async setBlacklist(userAddress) {
332
+ await this.dexHelper.cache.hset(this.blackListCacheKey, userAddress.toLowerCase(), 'true');
333
+ if (this.blacklistPubSub) {
334
+ this.blacklistPubSub.publish([userAddress.toLowerCase()]);
335
+ }
336
+ return true;
337
+ }
305
338
  }
306
339
  exports.RateFetcher = RateFetcher;
307
340
  //# sourceMappingURL=rate-fetcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-fetcher.js","sourceRoot":"","sources":["../../../src/dex/generic-rfq/rate-fetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-fetcher.js","sourceRoot":"","sources":["../../../src/dex/generic-rfq/rate-fetcher.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,21 @@ type KeyValuePubSubMsg = {
7
7
  data: Record<string, unknown>;
8
8
  };
9
9
  type SetPubSubMsg = string[];
10
+ export declare class ExpKeyValuePubSub {
11
+ private dexHelper;
12
+ private dexKey;
13
+ private defaultValue?;
14
+ private defaultTTL?;
15
+ channel: string;
16
+ network: Network;
17
+ localCache: NodeCache;
18
+ logger: Logger;
19
+ constructor(dexHelper: IDexHelper, dexKey: string, channel: string, defaultValue?: any | undefined, defaultTTL?: number | undefined);
20
+ subscribe(): void;
21
+ publish(data: Record<string, unknown>, ttl: number): void;
22
+ handleSubscription(msg: KeyValuePubSubMsg): void;
23
+ getAndCache<T>(key: string): Promise<T | null>;
24
+ }
10
25
  export declare class ExpStringPubSub {
11
26
  private dexHelper;
12
27
  private dexKey;
@@ -3,9 +3,80 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NonExpSetPubSub = exports.ExpHashPubSub = exports.ExpStringPubSub = void 0;
6
+ exports.NonExpSetPubSub = exports.ExpHashPubSub = exports.ExpStringPubSub = exports.ExpKeyValuePubSub = void 0;
7
7
  const node_cache_1 = __importDefault(require("node-cache"));
8
8
  const utils_1 = require("../utils");
9
+ class ExpKeyValuePubSub {
10
+ dexHelper;
11
+ dexKey;
12
+ defaultValue;
13
+ defaultTTL;
14
+ channel;
15
+ network;
16
+ localCache = new node_cache_1.default();
17
+ logger;
18
+ constructor(dexHelper, dexKey, channel, defaultValue, defaultTTL) {
19
+ this.dexHelper = dexHelper;
20
+ this.dexKey = dexKey;
21
+ this.defaultValue = defaultValue;
22
+ this.defaultTTL = defaultTTL;
23
+ this.network = this.dexHelper.config.data.network;
24
+ this.channel = `${this.network}_${this.dexKey}_${channel}`;
25
+ this.logger = this.dexHelper.getLogger(`ExpKeyValuePubSub_${this.channel}`);
26
+ }
27
+ subscribe() {
28
+ this.logger.info(`Subscribing to ${this.channel}`);
29
+ this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
30
+ const decodedMsg = JSON.parse(msg);
31
+ this.handleSubscription(decodedMsg);
32
+ });
33
+ }
34
+ publish(data, ttl) {
35
+ const expiresAt = Math.round(Date.now() / 1000) + ttl;
36
+ this.dexHelper.cache.publish(this.channel, JSON.stringify({ expiresAt, data }));
37
+ }
38
+ handleSubscription(msg) {
39
+ const { expiresAt, data } = msg;
40
+ const now = Math.round(Date.now() / 1000);
41
+ // calculating ttl as message might come with the delay
42
+ const ttl = expiresAt - now;
43
+ if (ttl > 0) {
44
+ const keys = Object.keys(data);
45
+ for (const key of keys) {
46
+ this.localCache.set(key, data[key], ttl);
47
+ }
48
+ }
49
+ else {
50
+ this.logger.error('Message has expired', {
51
+ now,
52
+ expiresAt,
53
+ diffInSeconds: now - expiresAt,
54
+ keys: Object.keys(data),
55
+ });
56
+ }
57
+ }
58
+ async getAndCache(key) {
59
+ const localValue = this.localCache.get(key);
60
+ if (localValue) {
61
+ return localValue;
62
+ }
63
+ const [value, ttl] = await Promise.all([
64
+ this.dexHelper.cache.get(this.dexKey, this.network, key),
65
+ this.dexHelper.cache.ttl(this.dexKey, this.network, key),
66
+ ]);
67
+ if (value && ttl > 0) {
68
+ const parsedValue = JSON.parse(value);
69
+ this.localCache.set(key, parsedValue, ttl);
70
+ return parsedValue;
71
+ }
72
+ if (this.defaultValue && this.defaultTTL && this.defaultTTL > 0) {
73
+ this.localCache.set(key, this.defaultValue, this.defaultTTL);
74
+ return this.defaultValue;
75
+ }
76
+ return null;
77
+ }
78
+ }
79
+ exports.ExpKeyValuePubSub = ExpKeyValuePubSub;
9
80
  class ExpStringPubSub {
10
81
  dexHelper;
11
82
  dexKey;
@@ -1 +1 @@
1
- {"version":3,"file":"pub-sub.js","sourceRoot":"","sources":["../../src/lib/pub-sub.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAmC;AAInC,oCAAiC;AASjC,MAAa,eAAe;IAQhB;IACA;IAEA;IACA;IAXV,OAAO,CAAS;IAChB,OAAO,CAAU;IACjB,UAAU,GAAc,IAAI,oBAAS,EAAE,CAAC;IAExC,MAAM,CAAS;IAEf,YACU,SAAqB,EACrB,MAAc,EACtB,OAAe,EACP,YAAkB,EAClB,UAAmB;QAJnB,cAAS,GAAT,SAAS,CAAY;QACrB,WAAM,GAAN,MAAM,CAAQ;QAEd,iBAAY,GAAZ,YAAY,CAAM;QAClB,eAAU,GAAV,UAAU,CAAS;QAE3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;QAE3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;YACxD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAA6B,EAAE,GAAW;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAEtD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAC1B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CACpC,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,GAAsB;QACvC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,uDAAuD;QACvD,MAAM,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;QAE5B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBACvC,GAAG;gBACH,SAAS;gBACT,aAAa,EAAE,GAAG,GAAG,SAAS;gBAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,GAAW;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;QAE/C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;SACzD,CAAC,CAAC;QAEH,IAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArFD,0CAqFC;AAED,MAAa,aAAa;IAMd;IACA;IAEA;IARV,UAAU,GAAc,IAAI,oBAAS,EAAE,CAAC;IAExC,MAAM,CAAS;IAEf,YACU,SAAqB,EACrB,OAAe;IACvB,aAAa;IACL,GAAW;QAHX,cAAS,GAAT,SAAS,CAAY;QACrB,YAAO,GAAP,OAAO,CAAQ;QAEf,QAAG,GAAH,GAAG,CAAQ;QAEnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACtD,MAAM,UAAU,GAAG,aAAK,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;YACzD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAA6B;QACnC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YAE3D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAC1B,IAAI,CAAC,OAAO,EACZ,aAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,GAAsB;QACvC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,uDAAuD;QACvD,MAAM,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;QAE5B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBACvC,GAAG;gBACH,SAAS;gBACT,aAAa,EAAE,GAAG,GAAG,SAAS;gBAC9B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,GAAW;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;QAE/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEjE,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,aAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAChD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1ED,sCA0EC;AAED,MAAa,eAAe;IAQhB;IACA;IARV,OAAO,CAAS;IAChB,OAAO,CAAU;IACjB,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAExB,MAAM,CAAS;IAEf,YACU,SAAqB,EACrB,MAAc,EACtB,OAAe;QAFP,cAAS,GAAT,SAAS,CAAY;QACrB,WAAM,GAAN,MAAM,CAAQ;QAGtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;QAE3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,UAAoB;QAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QAE9D,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEhC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;YACnD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAiB;QACvB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,GAAiB;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,GAAG,GAAG,CAAC,CAAC;QAExD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF;AAvDD,0CAuDC"}
1
+ {"version":3,"file":"pub-sub.js","sourceRoot":"","sources":["../../src/lib/pub-sub.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paraswap/dex-lib",
3
- "version": "4.1.2-fluid",
3
+ "version": "4.1.2-pubsub-fluid",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "repository": "https://github.com/paraswap/paraswap-dex-lib",
@@ -447,12 +447,7 @@ export class GenericRFQ extends ParaSwapLimitOrders {
447
447
  }
448
448
 
449
449
  async setBlacklist(userAddress: string): Promise<boolean> {
450
- await this.dexHelper.cache.hset(
451
- this.rateFetcher.blackListCacheKey,
452
- userAddress.toLowerCase(),
453
- 'true',
454
- );
455
- return true;
450
+ return this.rateFetcher.setBlacklist(userAddress);
456
451
  }
457
452
 
458
453
  releaseResources(): void {
@@ -37,6 +37,7 @@ import {
37
37
  ERC1271Contract,
38
38
  } from '../../lib/erc1271-utils';
39
39
  import { isContractAddress } from '../../utils';
40
+ import { ExpKeyValuePubSub, NonExpSetPubSub } from '../../lib/pub-sub';
40
41
 
41
42
  const GET_FIRM_RATE_TIMEOUT_MS = 2000;
42
43
  export const reversePrice = (price: PriceAndAmountBigNumber) =>
@@ -55,6 +56,9 @@ export class RateFetcher {
55
56
  private addressToTokenMap: Record<string, TokenWithInfo> = {};
56
57
  private pairs: PairMap = {};
57
58
 
59
+ private pricesPubSub: ExpKeyValuePubSub;
60
+ private blacklistPubSub?: NonExpSetPubSub;
61
+
58
62
  private firmRateAuth?: (options: RequestConfig) => void;
59
63
 
60
64
  public blackListCacheKey: string;
@@ -123,6 +127,13 @@ export class RateFetcher {
123
127
  logger,
124
128
  );
125
129
 
130
+ this.pricesPubSub = new ExpKeyValuePubSub(
131
+ this.dexHelper,
132
+ this.dexKey,
133
+ 'prices',
134
+ );
135
+
136
+ this.blackListCacheKey = `${this.dexHelper.config.data.network}_${this.dexKey}_blacklist`;
126
137
  if (config.blacklistConfig) {
127
138
  this.blackListFetcher = new Fetcher<BlackListResponse>(
128
139
  dexHelper.httpRequest,
@@ -142,9 +153,14 @@ export class RateFetcher {
142
153
  config.blacklistConfig.intervalMs,
143
154
  logger,
144
155
  );
156
+
157
+ this.blacklistPubSub = new NonExpSetPubSub(
158
+ this.dexHelper,
159
+ this.dexKey,
160
+ 'blacklist',
161
+ );
145
162
  }
146
163
 
147
- this.blackListCacheKey = `${this.dexHelper.config.data.network}_${this.dexKey}_blacklist`;
148
164
  if (this.config.firmRateConfig.secret) {
149
165
  this.firmRateAuth = this.authHttp(this.config.firmRateConfig.secret);
150
166
  }
@@ -161,6 +177,16 @@ export class RateFetcher {
161
177
  this.config.maker,
162
178
  );
163
179
  }
180
+
181
+ if (this.dexHelper.config.isSlave) {
182
+ this.pricesPubSub.subscribe();
183
+ if (this.blacklistPubSub) {
184
+ const initSet = await this.dexHelper.cache.smembers(
185
+ this.blackListCacheKey,
186
+ );
187
+ this.blacklistPubSub.initializeAndSubscribe(initSet);
188
+ }
189
+ }
164
190
  }
165
191
 
166
192
  start() {
@@ -214,16 +240,22 @@ export class RateFetcher {
214
240
  for (const address of resp.blacklist) {
215
241
  this.dexHelper.cache.sadd(this.blackListCacheKey, address.toLowerCase());
216
242
  }
243
+
244
+ if (this.blacklistPubSub) {
245
+ this.blacklistPubSub.publish(resp.blacklist);
246
+ }
217
247
  }
218
248
 
219
249
  public isBlackListed(userAddress: string) {
220
- return this.dexHelper.cache.sismember(
221
- this.blackListCacheKey,
222
- userAddress.toLowerCase(),
223
- );
250
+ if (this.blacklistPubSub) {
251
+ return this.blacklistPubSub.has(userAddress.toLowerCase());
252
+ }
253
+ return false;
224
254
  }
225
255
 
226
256
  private handleRatesResponse(resp: RatesResponse) {
257
+ const pubSubData: Record<string, unknown> = {};
258
+ const ttl = this.config.rateConfig.dataTTLS;
227
259
  const pairs = this.pairs;
228
260
 
229
261
  if (isEmpty(pairs)) return;
@@ -252,37 +284,51 @@ export class RateFetcher {
252
284
  }
253
285
 
254
286
  if (prices.bids.length) {
287
+ const key = `${baseToken.address}_${quoteToken.address}_bids`;
288
+ const value = prices.bids;
289
+ pubSubData[key] = value;
290
+
255
291
  this.dexHelper.cache.setex(
256
292
  this.dexKey,
257
293
  this.dexHelper.config.data.network,
258
- `${baseToken.address}_${quoteToken.address}_bids`,
259
- this.config.rateConfig.dataTTLS,
260
- JSON.stringify(prices.bids),
294
+ key,
295
+ ttl,
296
+ JSON.stringify(value),
261
297
  );
262
298
  currentPricePairs.add(`${baseToken.address}_${quoteToken.address}`);
263
299
  }
264
300
 
265
301
  if (prices.asks.length) {
302
+ const key = `${baseToken.address}_${quoteToken.address}_asks`;
303
+ const value = prices.asks;
304
+ pubSubData[key] = value;
305
+
266
306
  this.dexHelper.cache.setex(
267
307
  this.dexKey,
268
308
  this.dexHelper.config.data.network,
269
- `${baseToken.address}_${quoteToken.address}_asks`,
270
- this.config.rateConfig.dataTTLS,
271
- JSON.stringify(prices.asks),
309
+ key,
310
+ ttl,
311
+ JSON.stringify(value),
272
312
  );
273
313
  currentPricePairs.add(`${quoteToken.address}_${baseToken.address}`);
274
314
  }
275
315
  });
276
316
 
277
317
  if (currentPricePairs.size > 0) {
318
+ const key = `pairs`;
319
+ const value = Array.from(currentPricePairs);
320
+ pubSubData[key] = value;
321
+
278
322
  this.dexHelper.cache.setex(
279
323
  this.dexKey,
280
324
  this.dexHelper.config.data.network,
281
- `pairs`,
282
- this.config.rateConfig.dataTTLS,
283
- JSON.stringify(Array.from(currentPricePairs)),
325
+ key,
326
+ ttl,
327
+ JSON.stringify(value),
284
328
  );
285
329
  }
330
+
331
+ this.pricesPubSub.publish(pubSubData, ttl);
286
332
  }
287
333
 
288
334
  checkHealth(): boolean {
@@ -322,18 +368,13 @@ export class RateFetcher {
322
368
  }
323
369
 
324
370
  public async getAvailablePairs(): Promise<string[]> {
325
- const pairs = await this.dexHelper.cache.getAndCacheLocally(
326
- this.dexKey,
327
- this.dexHelper.config.data.network,
328
- `pairs`,
329
- this.config.rateConfig.intervalMs / 1000,
330
- );
371
+ const pairs = await this.pricesPubSub.getAndCache<string[]>(`pairs`);
331
372
 
332
373
  if (!pairs) {
333
374
  return [];
334
375
  }
335
376
 
336
- return JSON.parse(pairs) as string[];
377
+ return pairs;
337
378
  }
338
379
 
339
380
  public async getOrderPrice(
@@ -343,53 +384,36 @@ export class RateFetcher {
343
384
  ): Promise<PriceAndAmountBigNumber[] | null> {
344
385
  let reversed = false;
345
386
 
346
- let pricesAsString: string | null = null;
387
+ let prices: PriceAndAmount[] | null = null;
347
388
  if (side === SwapSide.SELL) {
348
- pricesAsString = await this.dexHelper.cache.getAndCacheLocally(
349
- this.dexKey,
350
- this.dexHelper.config.data.network,
389
+ prices = await this.pricesPubSub.getAndCache(
351
390
  `${srcToken.address}_${destToken.address}_bids`,
352
- this.config.rateConfig.intervalMs / 1000,
353
391
  );
354
392
 
355
- if (!pricesAsString) {
356
- pricesAsString = await this.dexHelper.cache.getAndCacheLocally(
357
- this.dexKey,
358
- this.dexHelper.config.data.network,
393
+ if (!prices) {
394
+ prices = await this.pricesPubSub.getAndCache(
359
395
  `${destToken.address}_${srcToken.address}_asks`,
360
- this.config.rateConfig.intervalMs / 1000,
361
396
  );
362
397
  reversed = true;
363
398
  }
364
399
  } else {
365
- pricesAsString = await this.dexHelper.cache.getAndCacheLocally(
366
- this.dexKey,
367
- this.dexHelper.config.data.network,
400
+ prices = await this.pricesPubSub.getAndCache(
368
401
  `${destToken.address}_${srcToken.address}_asks`,
369
- this.config.rateConfig.intervalMs / 1000,
370
402
  );
371
403
 
372
- if (!pricesAsString) {
373
- pricesAsString = await this.dexHelper.cache.getAndCacheLocally(
374
- this.dexKey,
375
- this.dexHelper.config.data.network,
404
+ if (!prices) {
405
+ prices = await this.pricesPubSub.getAndCache(
376
406
  `${srcToken.address}_${destToken.address}_bids`,
377
- this.config.rateConfig.intervalMs / 1000,
378
407
  );
379
408
  reversed = true;
380
409
  }
381
410
  }
382
411
 
383
- if (!pricesAsString) {
412
+ if (!prices) {
384
413
  return null;
385
414
  }
386
415
 
387
- const orderPricesAsString: PriceAndAmount[] = JSON.parse(pricesAsString);
388
- if (!orderPricesAsString) {
389
- return null;
390
- }
391
-
392
- let orderPrices = orderPricesAsString.map(price => [
416
+ let orderPrices = prices.map(price => [
393
417
  new BigNumber(price[0]),
394
418
  new BigNumber(price[1]),
395
419
  ]);
@@ -488,4 +512,16 @@ export class RateFetcher {
488
512
  throw e;
489
513
  }
490
514
  }
515
+
516
+ async setBlacklist(userAddress: string): Promise<boolean> {
517
+ await this.dexHelper.cache.hset(
518
+ this.blackListCacheKey,
519
+ userAddress.toLowerCase(),
520
+ 'true',
521
+ );
522
+ if (this.blacklistPubSub) {
523
+ this.blacklistPubSub.publish([userAddress.toLowerCase()]);
524
+ }
525
+ return true;
526
+ }
491
527
  }
@@ -11,6 +11,92 @@ type KeyValuePubSubMsg = {
11
11
 
12
12
  type SetPubSubMsg = string[];
13
13
 
14
+ export class ExpKeyValuePubSub {
15
+ channel: string;
16
+ network: Network;
17
+ localCache: NodeCache = new NodeCache();
18
+
19
+ logger: Logger;
20
+
21
+ constructor(
22
+ private dexHelper: IDexHelper,
23
+ private dexKey: string,
24
+ channel: string,
25
+ private defaultValue?: any,
26
+ private defaultTTL?: number,
27
+ ) {
28
+ this.network = this.dexHelper.config.data.network;
29
+ this.channel = `${this.network}_${this.dexKey}_${channel}`;
30
+
31
+ this.logger = this.dexHelper.getLogger(`ExpKeyValuePubSub_${this.channel}`);
32
+ }
33
+
34
+ subscribe() {
35
+ this.logger.info(`Subscribing to ${this.channel}`);
36
+
37
+ this.dexHelper.cache.subscribe(this.channel, (_, msg) => {
38
+ const decodedMsg = JSON.parse(msg) as KeyValuePubSubMsg;
39
+ this.handleSubscription(decodedMsg);
40
+ });
41
+ }
42
+
43
+ publish(data: Record<string, unknown>, ttl: number) {
44
+ const expiresAt = Math.round(Date.now() / 1000) + ttl;
45
+ this.dexHelper.cache.publish(
46
+ this.channel,
47
+ JSON.stringify({ expiresAt, data }),
48
+ );
49
+ }
50
+
51
+ handleSubscription(msg: KeyValuePubSubMsg) {
52
+ const { expiresAt, data } = msg;
53
+
54
+ const now = Math.round(Date.now() / 1000);
55
+ // calculating ttl as message might come with the delay
56
+ const ttl = expiresAt - now;
57
+
58
+ if (ttl > 0) {
59
+ const keys = Object.keys(data);
60
+ for (const key of keys) {
61
+ this.localCache.set(key, data[key], ttl);
62
+ }
63
+ } else {
64
+ this.logger.error('Message has expired', {
65
+ now,
66
+ expiresAt,
67
+ diffInSeconds: now - expiresAt,
68
+ keys: Object.keys(data),
69
+ });
70
+ }
71
+ }
72
+
73
+ async getAndCache<T>(key: string): Promise<T | null> {
74
+ const localValue = this.localCache.get<T>(key);
75
+
76
+ if (localValue) {
77
+ return localValue;
78
+ }
79
+
80
+ const [value, ttl] = await Promise.all([
81
+ this.dexHelper.cache.get(this.dexKey, this.network, key),
82
+ this.dexHelper.cache.ttl(this.dexKey, this.network, key),
83
+ ]);
84
+
85
+ if (value && ttl > 0) {
86
+ const parsedValue = JSON.parse(value);
87
+ this.localCache.set(key, parsedValue, ttl);
88
+ return parsedValue;
89
+ }
90
+
91
+ if (this.defaultValue && this.defaultTTL && this.defaultTTL > 0) {
92
+ this.localCache.set(key, this.defaultValue, this.defaultTTL);
93
+ return this.defaultValue;
94
+ }
95
+
96
+ return null;
97
+ }
98
+ }
99
+
14
100
  export class ExpStringPubSub {
15
101
  channel: string;
16
102
  network: Network;