@keplr-wallet/stores-eth 0.12.229 → 0.12.230

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.
@@ -1,3 +1,4 @@
1
+ /// <reference types="lodash" />
1
2
  import { AppCurrency } from "@keplr-wallet/types";
2
3
  import { ChainStore, IQueriesStore } from "@keplr-wallet/stores";
3
4
  import { KVStore } from "@keplr-wallet/common";
@@ -23,6 +24,7 @@ export declare class ERC20CurrencyRegistrar {
23
24
  _isInitialized: boolean;
24
25
  protected cacheERC20Metadata: Map<string, CurrencyCache>;
25
26
  protected staledERC20Metadata: Map<string, CurrencyCache>;
27
+ protected debouncedSetCacheERC20MetadataToDB: import("lodash").DebouncedFunc<() => void>;
26
28
  constructor(kvStore: KVStore, cacheDuration: number, // 1 days
27
29
  failedCacheDuration: number, // 1 hours
28
30
  chainStore: ChainStore, queriesStore: IQueriesStore<EthereumQueries & KeplrETCQueries>);
@@ -48,5 +50,6 @@ export declare class ERC20CurrencyRegistrar {
48
50
  staled: boolean;
49
51
  };
50
52
  protected setCacheERC20Metadata(chainId: string, contractAddress: string, cache: CurrencyCache): void;
53
+ protected setCacheERC20MetadataToDB(): void;
51
54
  }
52
55
  export {};
@@ -14,10 +14,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
14
14
  step((generator = generator.apply(thisArg, _arguments || [])).next());
15
15
  });
16
16
  };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
17
20
  Object.defineProperty(exports, "__esModule", { value: true });
18
21
  exports.ERC20CurrencyRegistrar = void 0;
19
22
  const common_1 = require("@keplr-wallet/common");
20
23
  const mobx_1 = require("mobx");
24
+ const lodash_debounce_1 = __importDefault(require("lodash.debounce"));
21
25
  class ERC20CurrencyRegistrar {
22
26
  constructor(kvStore, cacheDuration = 24 * 3600 * 1000, // 1 days
23
27
  failedCacheDuration = 1 * 3600 * 1000, // 1 hours
@@ -30,6 +34,7 @@ class ERC20CurrencyRegistrar {
30
34
  this._isInitialized = false;
31
35
  this.cacheERC20Metadata = new Map();
32
36
  this.staledERC20Metadata = new Map();
37
+ this.debouncedSetCacheERC20MetadataToDB = (0, lodash_debounce_1.default)(this.setCacheERC20MetadataToDB.bind(this), 1000);
33
38
  this.chainStore.registerCurrencyRegistrar(this.currencyRegistrar.bind(this));
34
39
  (0, mobx_1.makeObservable)(this);
35
40
  this.init();
@@ -235,11 +240,7 @@ class ERC20CurrencyRegistrar {
235
240
  if (res.notFound) {
236
241
  if (Date.now() - res.timestamp > this.failedCacheDuration) {
237
242
  this.cacheERC20Metadata.delete(key);
238
- {
239
- const dbKey = `cacheERC20Metadata-v2`;
240
- const obj = Object.fromEntries(this.cacheERC20Metadata);
241
- this.kvStore.set(dbKey, obj);
242
- }
243
+ this.debouncedSetCacheERC20MetadataToDB();
243
244
  res = undefined;
244
245
  staled = false;
245
246
  }
@@ -248,9 +249,7 @@ class ERC20CurrencyRegistrar {
248
249
  this.cacheERC20Metadata.delete(key);
249
250
  const savedStaled = this.staledERC20Metadata.has(key);
250
251
  if (!savedStaled) {
251
- const dbKey = `cacheERC20Metadata-v2`;
252
- const obj = Object.fromEntries(this.cacheERC20Metadata);
253
- this.kvStore.set(dbKey, obj);
252
+ this.debouncedSetCacheERC20MetadataToDB();
254
253
  this.staledERC20Metadata.set(key, res);
255
254
  }
256
255
  staled = true;
@@ -264,15 +263,16 @@ class ERC20CurrencyRegistrar {
264
263
  setCacheERC20Metadata(chainId, contractAddress, cache) {
265
264
  const key = `${chainId}/${contractAddress}`;
266
265
  this.cacheERC20Metadata.set(key, cache);
267
- {
268
- const dbKey = `cacheERC20Metadata-v2`;
269
- const obj = Object.fromEntries(this.cacheERC20Metadata);
270
- this.kvStore.set(dbKey, obj);
271
- }
266
+ this.debouncedSetCacheERC20MetadataToDB();
272
267
  if (this.staledERC20Metadata.has(key)) {
273
268
  this.staledERC20Metadata.set(key, cache);
274
269
  }
275
270
  }
271
+ setCacheERC20MetadataToDB() {
272
+ const dbKey = `cacheERC20Metadata-v2`;
273
+ const obj = Object.fromEntries(this.cacheERC20Metadata);
274
+ this.kvStore.set(dbKey, obj);
275
+ }
276
276
  }
277
277
  __decorate([
278
278
  mobx_1.observable
@@ -1 +1 @@
1
- {"version":3,"file":"currency-registrar.js","sourceRoot":"","sources":["../src/currency-registrar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"currency-registrar.js","sourceRoot":"","sources":["../src/currency-registrar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,iDAA4D;AAC5D,+BAA+D;AAG/D,sEAAuC;AAgBvC,MAAa,sBAAsB;IAYjC,YACqB,OAAgB,EAChB,gBAAwB,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,SAAS;IACnD,sBAA8B,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU;IACzD,UAAsB,EACtB,YAElB;QANkB,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAA2B;QACxC,wBAAmB,GAAnB,mBAAmB,CAA0B;QAC7C,eAAU,GAAV,UAAU,CAAY;QACtB,iBAAY,GAAZ,YAAY,CAE9B;QAjBI,mBAAc,GAAG,KAAK,CAAC;QAEpB,uBAAkB,GAA+B,IAAI,GAAG,EAAE,CAAC;QAC3D,wBAAmB,GAA+B,IAAI,GAAG,EAAE,CAAC;QAE5D,uCAAkC,GAAG,IAAA,yBAAQ,EACrD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EACzC,IAAI,CACL,CAAC;QAWA,IAAI,CAAC,UAAU,CAAC,yBAAyB,CACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAClC,CAAC;QAEF,IAAA,qBAAc,EAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEK,IAAI;;YACR,MAAM,KAAK,GAAG,uBAAuB,CAAC;YACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAgC,KAAK,CAAC,CAAC;YAC3E,IAAI,KAAK,EAAE;gBACT,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAChD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACzC;aACF;YAED,IAAA,kBAAW,EAAC,GAAG,EAAE;gBACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAES,iBAAiB,CACzB,OAAe,EACf,gBAAwB;QAOxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACtC,OAAO;SACR;QAED,MAAM,WAAW,GAAG,IAAI,oBAAW,CAAC,gBAAgB,CAAC,CAAC;QACtD,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;YAChC,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,KAAK;aACZ,CAAC;SACH;QAED,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEhE,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC5D,IAAI,GAAG,CAAC,UAAU,EAAE;YAClB,gBAAgB,GAAG,IAAI,CAAC;SACzB;QACD,MAAM,aAAa,GAA8B,GAAG,CAAC,GAAG;YACtD,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO;gBACb,gBAAgB,EAAE,WAAW,CAAC,KAAK;gBACnC,eAAe;gBACf,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS;gBAC5B,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY;gBAClC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW;gBAChC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ;aAC/B;YACH,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YACrC,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE;oBACnD,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,aAAa,CAAC,SAAS;oBAC/B,QAAQ,EAAE,aAAa,CAAC,YAAY;oBACpC,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,OAAO,EAAE,aAAa,CAAC,YAAY;oBACnC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;aACJ;iBAAM,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACvB,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE;oBACnD,QAAQ,EAAE,IAAI;oBACd,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;aACJ;SACF;QACD,IAAI,aAAa,EAAE;YACjB,OAAO;gBACL,KAAK,oBACA,aAAa,CACjB;gBACD,IAAI,EAAE,CAAC,gBAAgB;aACxB,CAAC;SACH;aAAM;YACL,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,CAAC,gBAAgB;aACxB,CAAC;SACH;IACH,CAAC;IAES,gBAAgB,CACxB,OAAe,EACf,eAAuB;;QAcvB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,CACxD,OAAO,EACP,eAAe,CAChB,CAAC;QACF,IAAI,MAAM,EAAE;YACV,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,OAAO;oBACL,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,KAAK;oBACjB,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,IAAI;iBACf,CAAC;aACH;YACD,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO;oBACL,GAAG,EAAE;wBACH,SAAS,EAAE,MAAM,CAAC,MAAM;wBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,YAAY,EAAE,MAAM,CAAC,OAAO;qBAC7B;oBACD,UAAU,EAAE,KAAK;oBACjB,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,KAAK;iBAChB,CAAC;aACH;SACF;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,MAAM,YAAY,GAChB,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC,gBAAgB,CAC/D,eAAe,CAChB,CAAC;YACJ,IAAI,YAAY,EAAE;gBAChB,MAAM,SAAS,GAOC,MAAM;oBACpB,CAAC,CAAC;wBACE,SAAS,EAAE,MAAM,CAAC,MAAM;wBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,YAAY,EAAE,MAAM,CAAC,OAAO;qBAC7B;oBACH,CAAC,CAAC,SAAS,CAAC;gBAEd,IAAI,YAAY,CAAC,UAAU,EAAE;oBAC3B,gBAAgB,GAAG,IAAI,CAAC;iBACzB;gBACD,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,IAAI,IAAI,EAAE;oBAChE,OAAO;wBACL,GAAG,EAAE;4BACH,SAAS,EAAE,YAAY,CAAC,MAAM;4BAC9B,QAAQ,EAAE,YAAY,CAAC,QAAQ;4BAC/B,WAAW,EAAE,YAAY,CAAC,WAAW;4BACrC,YAAY,EAAE,YAAY,CAAC,OAAO;yBACnC;wBACD,UAAU,EAAE,gBAAgB;wBAC5B,SAAS,EAAE,KAAK;wBAChB,QAAQ,EAAE,KAAK;qBAChB,CAAC;iBACH;qBAAM;oBACL,MAAM,QAAQ,GAAG,CAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,0CAAE,MAAM,MAAK,GAAG,CAAC;oBACrD,IAAI,QAAQ,EAAE;wBACZ,MAAM,kBAAkB,GACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,wBAAwB,CAC1D,SAAS,eAAe,EAAE,CAC3B,CAAC;wBACJ,IAAI,kBAAkB,CAAC,UAAU,EAAE;4BACjC,gBAAgB,GAAG,IAAI,CAAC;yBACzB;wBACD,IAAI,kBAAkB,CAAC,QAAQ,EAAE;4BAC/B,OAAO;gCACL,GAAG,EAAE;oCACH,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,SAAS;oCAChD,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,YAAY;oCAClD,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC,WAAW;oCACpD,YAAY,EAAE,kBAAkB,CAAC,QAAQ,CAAC,YAAY;iCACvD;gCACD,UAAU,EAAE,gBAAgB;gCAC5B,SAAS,EAAE,KAAK;gCAChB,QAAQ,EAAE,KAAK;6BAChB,CAAC;yBACH;6BAAM;4BACL,OAAO;gCACL,GAAG,EACD,CAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,KAAK,0CAAE,MAAM,MAAK,GAAG;oCACvC,CAAC,CAAC,SAAS;oCACX,CAAC,CAAC,SAAS;gCACf,UAAU,EAAE,gBAAgB;gCAC5B,SAAS,EAAE,KAAK;gCAChB,QAAQ,EAAE,CAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,KAAK,0CAAE,MAAM,MAAK,GAAG;6BACpD,CAAC;yBACH;qBACF;yBAAM;wBACL,OAAO;4BACL,GAAG,EAAE,SAAS;4BACd,UAAU,EAAE,gBAAgB;4BAC5B,SAAS,EAAE,KAAK;4BAChB,QAAQ;yBACT,CAAC;qBACH;iBACF;aACF;iBAAM;gBACL,OAAO;oBACL,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,KAAK;oBACjB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,KAAK;iBAChB,CAAC;aACH;SACF;aAAM;YACL,OAAO;gBACL,GAAG,EAAE,SAAS;gBACd,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;aAChB,CAAC;SACH;IACH,CAAC;IAES,qBAAqB,CAC7B,OAAe,EACf,eAAuB;QAEvB,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,eAAe,EAAE,CAAC;QAE5C,IAAI,GAAG,GACL,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,GAAG,EAAE;YACP,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAChB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE;oBACzD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAEpC,IAAI,CAAC,kCAAkC,EAAE,CAAC;oBAE1C,GAAG,GAAG,SAAS,CAAC;oBAChB,MAAM,GAAG,KAAK,CAAC;iBAChB;aACF;iBAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE;gBAC1D,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEpC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtD,IAAI,CAAC,WAAW,EAAE;oBAChB,IAAI,CAAC,kCAAkC,EAAE,CAAC;oBAE1C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBACxC;gBAED,MAAM,GAAG,IAAI,CAAC;aACf;SACF;QAED,OAAO;YACL,GAAG;YACH,MAAM;SACP,CAAC;IACJ,CAAC;IAES,qBAAqB,CAC7B,OAAe,EACf,eAAuB,EACvB,KAAoB;QAEpB,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,eAAe,EAAE,CAAC;QAE5C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAExC,IAAI,CAAC,kCAAkC,EAAE,CAAC;QAE1C,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC1C;IACH,CAAC;IAES,yBAAyB;QACjC,MAAM,KAAK,GAAG,uBAAuB,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAgC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;CACF;AAvUQ;IADN,iBAAU;8DACmB;AAFhC,wDAyUC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/stores-eth",
3
- "version": "0.12.229",
3
+ "version": "0.12.230",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -21,18 +21,22 @@
21
21
  "@ethersproject/bytes": "^5.7.0",
22
22
  "@ethersproject/transactions": "^5.7.0",
23
23
  "@ethersproject/units": "^5.7.0",
24
- "@keplr-wallet/common": "0.12.229",
25
- "@keplr-wallet/simple-fetch": "0.12.229",
26
- "@keplr-wallet/stores": "0.12.229",
27
- "@keplr-wallet/stores-etc": "0.12.229",
28
- "@keplr-wallet/types": "0.12.229",
29
- "@keplr-wallet/unit": "0.12.229",
24
+ "@keplr-wallet/common": "0.12.230",
25
+ "@keplr-wallet/simple-fetch": "0.12.230",
26
+ "@keplr-wallet/stores": "0.12.230",
27
+ "@keplr-wallet/stores-etc": "0.12.230",
28
+ "@keplr-wallet/types": "0.12.230",
29
+ "@keplr-wallet/unit": "0.12.230",
30
30
  "big-integer": "^1.6.48",
31
+ "lodash.debounce": "^4.0.8",
31
32
  "utility-types": "^3.10.0"
32
33
  },
33
34
  "peerDependencies": {
34
35
  "mobx": "^6",
35
36
  "mobx-utils": "^6"
36
37
  },
37
- "gitHead": "3f33f7e01a0949fff9f4dff80ca614e97eb149ae"
38
+ "devDependencies": {
39
+ "@types/lodash.debounce": "^4"
40
+ },
41
+ "gitHead": "000cab79065eb25adc8d5906f7ddf552a5e657d8"
38
42
  }
@@ -4,6 +4,7 @@ import { DenomHelper, KVStore } from "@keplr-wallet/common";
4
4
  import { makeObservable, observable, runInAction } from "mobx";
5
5
  import { EthereumQueries } from "./queries";
6
6
  import { KeplrETCQueries } from "@keplr-wallet/stores-etc";
7
+ import debounce from "lodash.debounce";
7
8
 
8
9
  type CurrencyCache =
9
10
  | {
@@ -26,6 +27,11 @@ export class ERC20CurrencyRegistrar {
26
27
  protected cacheERC20Metadata: Map<string, CurrencyCache> = new Map();
27
28
  protected staledERC20Metadata: Map<string, CurrencyCache> = new Map();
28
29
 
30
+ protected debouncedSetCacheERC20MetadataToDB = debounce(
31
+ this.setCacheERC20MetadataToDB.bind(this),
32
+ 1000
33
+ );
34
+
29
35
  constructor(
30
36
  protected readonly kvStore: KVStore,
31
37
  protected readonly cacheDuration: number = 24 * 3600 * 1000, // 1 days
@@ -296,11 +302,9 @@ export class ERC20CurrencyRegistrar {
296
302
  if (res.notFound) {
297
303
  if (Date.now() - res.timestamp > this.failedCacheDuration) {
298
304
  this.cacheERC20Metadata.delete(key);
299
- {
300
- const dbKey = `cacheERC20Metadata-v2`;
301
- const obj = Object.fromEntries(this.cacheERC20Metadata);
302
- this.kvStore.set<Record<string, CurrencyCache>>(dbKey, obj);
303
- }
305
+
306
+ this.debouncedSetCacheERC20MetadataToDB();
307
+
304
308
  res = undefined;
305
309
  staled = false;
306
310
  }
@@ -309,9 +313,7 @@ export class ERC20CurrencyRegistrar {
309
313
 
310
314
  const savedStaled = this.staledERC20Metadata.has(key);
311
315
  if (!savedStaled) {
312
- const dbKey = `cacheERC20Metadata-v2`;
313
- const obj = Object.fromEntries(this.cacheERC20Metadata);
314
- this.kvStore.set<Record<string, CurrencyCache>>(dbKey, obj);
316
+ this.debouncedSetCacheERC20MetadataToDB();
315
317
 
316
318
  this.staledERC20Metadata.set(key, res);
317
319
  }
@@ -334,14 +336,17 @@ export class ERC20CurrencyRegistrar {
334
336
  const key = `${chainId}/${contractAddress}`;
335
337
 
336
338
  this.cacheERC20Metadata.set(key, cache);
337
- {
338
- const dbKey = `cacheERC20Metadata-v2`;
339
- const obj = Object.fromEntries(this.cacheERC20Metadata);
340
- this.kvStore.set<Record<string, CurrencyCache>>(dbKey, obj);
341
- }
339
+
340
+ this.debouncedSetCacheERC20MetadataToDB();
342
341
 
343
342
  if (this.staledERC20Metadata.has(key)) {
344
343
  this.staledERC20Metadata.set(key, cache);
345
344
  }
346
345
  }
346
+
347
+ protected setCacheERC20MetadataToDB() {
348
+ const dbKey = `cacheERC20Metadata-v2`;
349
+ const obj = Object.fromEntries(this.cacheERC20Metadata);
350
+ this.kvStore.set<Record<string, CurrencyCache>>(dbKey, obj);
351
+ }
347
352
  }