@towns-protocol/web3 0.0.453 → 0.0.455

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.
Files changed (67) hide show
  1. package/dist/cache/EntitlementCache.d.ts +16 -11
  2. package/dist/cache/EntitlementCache.d.ts.map +1 -1
  3. package/dist/cache/EntitlementCache.js +49 -27
  4. package/dist/cache/EntitlementCache.js.map +1 -1
  5. package/dist/cache/ICacheStorage.d.ts +44 -0
  6. package/dist/cache/ICacheStorage.d.ts.map +1 -0
  7. package/dist/cache/ICacheStorage.js +2 -0
  8. package/dist/cache/ICacheStorage.js.map +1 -0
  9. package/dist/cache/KVCacheStorage.d.ts +79 -0
  10. package/dist/cache/KVCacheStorage.d.ts.map +1 -0
  11. package/dist/cache/KVCacheStorage.js +227 -0
  12. package/dist/cache/KVCacheStorage.js.map +1 -0
  13. package/dist/cache/Keyable.d.ts +15 -26
  14. package/dist/cache/Keyable.d.ts.map +1 -1
  15. package/dist/cache/Keyable.js +57 -42
  16. package/dist/cache/Keyable.js.map +1 -1
  17. package/dist/cache/SimpleCache.d.ts +18 -13
  18. package/dist/cache/SimpleCache.d.ts.map +1 -1
  19. package/dist/cache/SimpleCache.js +58 -39
  20. package/dist/cache/SimpleCache.js.map +1 -1
  21. package/dist/cache/TTLCacheStorage.d.ts +19 -0
  22. package/dist/cache/TTLCacheStorage.d.ts.map +1 -0
  23. package/dist/cache/TTLCacheStorage.js +40 -0
  24. package/dist/cache/TTLCacheStorage.js.map +1 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/space/IEntitlementsShim.d.ts +2 -7
  30. package/dist/space/IEntitlementsShim.d.ts.map +1 -1
  31. package/dist/space/IEntitlementsShim.js +4 -11
  32. package/dist/space/IEntitlementsShim.js.map +1 -1
  33. package/dist/space/ITippingShim.d.ts +1 -1
  34. package/dist/space/ITippingShim.d.ts.map +1 -1
  35. package/dist/space/ITippingShim.js +2 -2
  36. package/dist/space/ITippingShim.js.map +1 -1
  37. package/dist/space/OwnableFacetShim.d.ts +2 -7
  38. package/dist/space/OwnableFacetShim.d.ts.map +1 -1
  39. package/dist/space/OwnableFacetShim.js +4 -11
  40. package/dist/space/OwnableFacetShim.js.map +1 -1
  41. package/dist/space/Space.d.ts +2 -1
  42. package/dist/space/Space.d.ts.map +1 -1
  43. package/dist/space/Space.js +3 -3
  44. package/dist/space/Space.js.map +1 -1
  45. package/dist/space/entitlements/ConvertersEntitlements.js +1 -1
  46. package/dist/space/entitlements/ConvertersEntitlements.js.map +1 -1
  47. package/dist/space-dapp/SpaceDapp.d.ts +16 -11
  48. package/dist/space-dapp/SpaceDapp.d.ts.map +1 -1
  49. package/dist/space-dapp/SpaceDapp.js +67 -57
  50. package/dist/space-dapp/SpaceDapp.js.map +1 -1
  51. package/dist/space-dapp/SpaceDappFactory.d.ts +2 -2
  52. package/dist/space-dapp/SpaceDappFactory.d.ts.map +1 -1
  53. package/dist/space-dapp/SpaceDappFactory.js +2 -2
  54. package/dist/space-dapp/SpaceDappFactory.js.map +1 -1
  55. package/dist/space-owner/SpaceOwner.d.ts +2 -1
  56. package/dist/space-owner/SpaceOwner.d.ts.map +1 -1
  57. package/dist/space-owner/SpaceOwner.js +5 -12
  58. package/dist/space-owner/SpaceOwner.js.map +1 -1
  59. package/dist/space-registrar/SpaceRegistrar.d.ts +3 -1
  60. package/dist/space-registrar/SpaceRegistrar.d.ts.map +1 -1
  61. package/dist/space-registrar/SpaceRegistrar.js +4 -2
  62. package/dist/space-registrar/SpaceRegistrar.js.map +1 -1
  63. package/dist/towns-token/TownsToken.d.ts +2 -1
  64. package/dist/towns-token/TownsToken.d.ts.map +1 -1
  65. package/dist/towns-token/TownsToken.js +4 -11
  66. package/dist/towns-token/TownsToken.js.map +1 -1
  67. package/package.json +5 -4
@@ -1,47 +1,62 @@
1
- export class BannedTokenIdsRequest {
2
- spaceId;
3
- constructor(spaceId) {
4
- this.spaceId = spaceId;
1
+ import { ethers } from 'ethers';
2
+ export class Keyable {
3
+ parts;
4
+ constructor(...args) {
5
+ this.parts = args;
5
6
  }
6
7
  toKey() {
7
- return `bannedTokenIds:${this.spaceId}`;
8
- }
9
- }
10
- export class OwnerOfTokenRequest {
11
- spaceId;
12
- tokenId;
13
- constructor(spaceId, tokenId) {
14
- this.spaceId = spaceId;
15
- this.tokenId = tokenId;
16
- }
17
- toKey() {
18
- return `ownerOfToken:${this.spaceId}:${this.tokenId.toString()}`;
19
- }
20
- }
21
- export class IsTokenBanned {
22
- spaceId;
23
- tokenId;
24
- constructor(spaceId, tokenId) {
25
- this.spaceId = spaceId;
26
- this.tokenId = tokenId;
27
- }
28
- toKey() {
29
- return `isBanned:${this.spaceId}:${this.tokenId.toString()}`;
30
- }
31
- }
32
- export class EntitlementRequest {
33
- spaceId;
34
- channelId;
35
- userId;
36
- permission;
37
- constructor(spaceId, channelId, userId, permission) {
38
- this.spaceId = spaceId;
39
- this.channelId = channelId;
40
- this.userId = userId;
41
- this.permission = permission;
42
- }
43
- toKey() {
44
- return `{spaceId:${this.spaceId},channelId:${this.channelId},userId:${this.userId},permission:${this.permission}}`;
8
+ return this.parts
9
+ .map((part) => {
10
+ if (part === null)
11
+ return 'null';
12
+ if (part === undefined)
13
+ return 'undefined';
14
+ if (ethers.BigNumber.isBigNumber(part)) {
15
+ return part.toString();
16
+ }
17
+ if (typeof part === 'object') {
18
+ return JSON.stringify(part);
19
+ }
20
+ // At this point, part is a primitive (string, number, boolean, bigint, symbol)
21
+ return String(part);
22
+ })
23
+ .join(':');
24
+ }
25
+ static spaceInfoRequest(spaceId) {
26
+ return new Keyable('spaceInfo', spaceId);
27
+ }
28
+ static getEntitlementsRequest(spaceAddress) {
29
+ return new Keyable('getEntitlements', spaceAddress);
30
+ }
31
+ static ownerRequest(spaceAddress) {
32
+ return new Keyable('owner', spaceAddress);
33
+ }
34
+ static balanceOfRequest(accountAddress) {
35
+ return new Keyable('balanceOf', accountAddress);
36
+ }
37
+ static bannedTokenIdsRequest(spaceId) {
38
+ return new Keyable('bannedTokenIds', spaceId);
39
+ }
40
+ static ownerOfTokenRequest(spaceId, tokenId) {
41
+ return new Keyable('ownerOfToken', spaceId, tokenId);
42
+ }
43
+ static isTokenBanned(spaceId, tokenId) {
44
+ return new Keyable('isTokenBanned', spaceId, tokenId);
45
+ }
46
+ static entitlementRequest(spaceId, channelId, userId, permission) {
47
+ return new Keyable('entitlement', spaceId, channelId, userId, permission);
48
+ }
49
+ static spaceEntitlementRequest(spaceId, permission) {
50
+ return new Keyable('spaceEntitlement', spaceId, permission);
51
+ }
52
+ static spaceEntitlementEvaluationRequest(spaceId, rootKey, permission) {
53
+ return new Keyable('spaceEntitlementEval', spaceId, rootKey, permission);
54
+ }
55
+ static channelEntitlementRequest(spaceId, channelId, permission) {
56
+ return new Keyable('channelEntitlement', spaceId, channelId, permission);
57
+ }
58
+ static channelEntitlementEvaluationRequest(spaceId, channelNetworkId, userId, permission) {
59
+ return new Keyable('channelEntitlementEval', spaceId, channelNetworkId, userId, permission);
45
60
  }
46
61
  }
47
62
  //# sourceMappingURL=Keyable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Keyable.js","sourceRoot":"","sources":["../../src/cache/Keyable.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,qBAAqB;IAC9B,OAAO,CAAQ;IACf,YAAY,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IACD,KAAK;QACD,OAAO,kBAAkB,IAAI,CAAC,OAAO,EAAE,CAAA;IAC3C,CAAC;CACJ;AAED,MAAM,OAAO,mBAAmB;IAC5B,OAAO,CAAQ;IACf,OAAO,CAAkB;IACzB,YAAY,OAAe,EAAE,OAAyB;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IACD,KAAK;QACD,OAAO,gBAAgB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA;IACpE,CAAC;CACJ;AAED,MAAM,OAAO,aAAa;IACtB,OAAO,CAAQ;IACf,OAAO,CAAkB;IACzB,YAAY,OAAe,EAAE,OAAyB;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IACD,KAAK;QACD,OAAO,YAAY,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAA;IAChE,CAAC;CACJ;AAED,MAAM,OAAO,kBAAkB;IAC3B,OAAO,CAAQ;IACf,SAAS,CAAQ;IACjB,MAAM,CAAQ;IACd,UAAU,CAAY;IACtB,YAAY,OAAe,EAAE,SAAiB,EAAE,MAAc,EAAE,UAAsB;QAClF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAChC,CAAC;IACD,KAAK;QACD,OAAO,YAAY,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,UAAU,GAAG,CAAA;IACtH,CAAC;CACJ"}
1
+ {"version":3,"file":"Keyable.js","sourceRoot":"","sources":["../../src/cache/Keyable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,MAAM,OAAO,OAAO;IACC,KAAK,CAAW;IAEjC,YAAY,GAAG,IAAe;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACrB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,KAAK;aACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACV,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAA;YAChC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,WAAW,CAAA;YAC1C,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC1B,CAAC;YACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC/B,CAAC;YACD,+EAA+E;YAC/E,OAAO,MAAM,CAAC,IAAmD,CAAC,CAAA;QACtE,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAe;QACnC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,YAAoB;QAC9C,OAAO,IAAI,OAAO,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,YAAoB;QACpC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,cAAsB;QAC1C,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,OAAe;QACxC,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,OAAe,EAAE,OAAyB;QACjE,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAe,EAAE,OAAyB;QAC3D,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,CAAC,kBAAkB,CACrB,OAAe,EACf,SAAiB,EACjB,MAAc,EACd,UAAsB;QAEtB,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,OAAe,EAAE,UAAsB;QAClE,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,CAAC,iCAAiC,CACpC,OAAe,EACf,OAAe,EACf,UAAsB;QAEtB,OAAO,IAAI,OAAO,CAAC,sBAAsB,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,CAAC,yBAAyB,CAC5B,OAAe,EACf,SAAiB,EACjB,UAAsB;QAEtB,OAAO,IAAI,OAAO,CAAC,oBAAoB,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,CAAC,mCAAmC,CACtC,OAAe,EACf,gBAAwB,EACxB,MAAc,EACd,UAAsB;QAEtB,OAAO,IAAI,OAAO,CAAC,wBAAwB,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAC/F,CAAC;CACJ"}
@@ -1,24 +1,29 @@
1
1
  import { Keyable } from './Keyable';
2
- export declare class SimpleCache<K extends Keyable, V> {
3
- private cache;
2
+ import { CreateStorageFn } from './ICacheStorage';
3
+ export interface SimpleCacheOptions<V> {
4
+ ttlSeconds?: number;
5
+ maxSize?: number;
6
+ /** Factory function to create storage. Defaults to in-memory TTLCacheStorage */
7
+ createStorageFn: CreateStorageFn<V> | undefined;
8
+ }
9
+ export declare class SimpleCache<V> {
10
+ private readonly storage;
4
11
  private pendingFetches;
5
12
  /**
6
- * @param ttlSeconds Optional time-to-live for cache entries in seconds. If not provided, cache entries do not expire.
7
- * @param maxSize Optional maximum number of entries in the cache.
13
+ * @param options.ttlSeconds Optional time-to-live for cache entries in seconds. If not provided, cache entries do not expire.
14
+ * @param options.maxSize Optional maximum number of entries in the cache.
15
+ * @param options.createStorageFn Optional factory to create storage backend. Defaults to in-memory TTLCache.
8
16
  */
9
- constructor(args?: {
10
- ttlSeconds?: number;
11
- maxSize?: number;
12
- });
13
- get(key: K): V | undefined;
14
- add(key: K, value: V): void;
15
- remove(key: K): void;
16
- clear(): void;
17
+ constructor(options: SimpleCacheOptions<V>);
18
+ get(key: Keyable): Promise<V | undefined>;
19
+ add(key: Keyable, value: V): Promise<void>;
20
+ remove(key: Keyable): Promise<void>;
21
+ clear(): Promise<void>;
17
22
  /**
18
23
  * Executes a function to fetch a value if it's not in the cache,
19
24
  * stores the result, and returns it.
20
25
  */
21
- executeUsingCache(key: K, fetchFn: (key: K) => Promise<V>, opts?: {
26
+ executeUsingCache(key: Keyable, fetchFn: (key: Keyable) => Promise<V>, opts?: {
22
27
  skipCache?: boolean;
23
28
  }): Promise<V>;
24
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleCache.d.ts","sourceRoot":"","sources":["../../src/cache/SimpleCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC;IACzC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,cAAc,CAAqC;IAE3D;;;OAGG;gBACS,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;IAShE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI;IAIpB,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACG,iBAAiB,CACnB,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC,CAAC,CAAC;CAmChB"}
1
+ {"version":3,"file":"SimpleCache.d.ts","sourceRoot":"","sources":["../../src/cache/SimpleCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAiB,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGhE,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;CAClD;AAED,qBAAa,WAAW,CAAC,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,cAAc,CAAqC;IAE3D;;;;OAIG;gBACS,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IASpC,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIzC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;;OAGG;IACG,iBAAiB,CACnB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EACrC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC,CAAC,CAAC;CA8ChB"}
@@ -1,30 +1,38 @@
1
- import TTLCache from '@isaacs/ttlcache';
1
+ import { createDefaultStorage } from './TTLCacheStorage';
2
2
  export class SimpleCache {
3
- cache;
3
+ storage;
4
4
  pendingFetches = new Map();
5
5
  /**
6
- * @param ttlSeconds Optional time-to-live for cache entries in seconds. If not provided, cache entries do not expire.
7
- * @param maxSize Optional maximum number of entries in the cache.
6
+ * @param options.ttlSeconds Optional time-to-live for cache entries in seconds. If not provided, cache entries do not expire.
7
+ * @param options.maxSize Optional maximum number of entries in the cache.
8
+ * @param options.createStorageFn Optional factory to create storage backend. Defaults to in-memory TTLCache.
8
9
  */
9
- constructor(args = {}) {
10
- const ttlMilliseconds = args.ttlSeconds !== undefined ? args.ttlSeconds * 1000 : Infinity;
11
- const maxSize = args.maxSize ?? 10_000;
12
- this.cache = new TTLCache({
13
- ttl: ttlMilliseconds,
14
- max: maxSize,
10
+ constructor(options) {
11
+ const ttlMs = options.ttlSeconds !== undefined ? options.ttlSeconds * 1000 : undefined;
12
+ const createFn = options.createStorageFn ?? createDefaultStorage;
13
+ this.storage = createFn({
14
+ ttlMs,
15
+ maxSize: options.maxSize,
15
16
  });
16
17
  }
17
- get(key) {
18
- return this.cache.get(key.toKey());
18
+ async get(key) {
19
+ return this.storage.get(key.toKey());
19
20
  }
20
- add(key, value) {
21
- this.cache.set(key.toKey(), value);
21
+ async add(key, value) {
22
+ return this.storage.set(key.toKey(), value);
22
23
  }
23
- remove(key) {
24
- this.cache.delete(key.toKey());
24
+ async remove(key) {
25
+ const cacheKey = key.toKey();
26
+ // Clear pending fetch first to prevent returning stale in-flight data
27
+ this.pendingFetches.delete(cacheKey);
28
+ return this.storage.delete(cacheKey);
25
29
  }
26
- clear() {
27
- this.cache.clear();
30
+ async clear() {
31
+ // Clear all pending fetches first to prevent returning stale in-flight data
32
+ this.pendingFetches.clear();
33
+ if (this.storage.clear) {
34
+ return this.storage.clear();
35
+ }
28
36
  }
29
37
  /**
30
38
  * Executes a function to fetch a value if it's not in the cache,
@@ -32,33 +40,44 @@ export class SimpleCache {
32
40
  */
33
41
  async executeUsingCache(key, fetchFn, opts) {
34
42
  const cacheKey = key.toKey();
35
- // 1. Check main cache
36
- if (opts?.skipCache !== true) {
37
- const cachedValue = this.cache.get(cacheKey);
38
- if (cachedValue !== undefined) {
39
- return cachedValue;
43
+ const skipCache = opts?.skipCache === true;
44
+ // 1. Check for pending fetch FIRST (synchronous check before any await)
45
+ // This prevents race conditions where concurrent calls interleave
46
+ // Skip deduplication when skipCache is true - caller explicitly wants fresh data
47
+ if (!skipCache) {
48
+ const pendingPromise = this.pendingFetches.get(cacheKey);
49
+ if (pendingPromise) {
50
+ return pendingPromise;
40
51
  }
41
52
  }
42
- // 2. Check for pending fetch
43
- const pendingPromise = this.pendingFetches.get(cacheKey);
44
- if (pendingPromise) {
45
- return pendingPromise; // Return existing promise
46
- }
47
- // 3. No cached value, no pending fetch: Initiate fetch
48
- const fetchPromise = fetchFn(key).catch((err) => {
49
- this.pendingFetches.delete(cacheKey);
50
- throw err;
51
- });
52
- this.pendingFetches.set(cacheKey, fetchPromise);
53
- try {
54
- const fetchedValue = await fetchPromise;
53
+ // 2. Create promise that checks cache then fetches if needed
54
+ // Store it synchronously BEFORE any await to prevent races
55
+ const operationPromise = (async () => {
56
+ // Check main cache
57
+ if (!skipCache) {
58
+ const cachedValue = await this.storage.get(cacheKey);
59
+ if (cachedValue !== undefined) {
60
+ return cachedValue;
61
+ }
62
+ }
63
+ // No cached value: Initiate fetch
64
+ const fetchedValue = await fetchFn(key);
55
65
  // Add to main cache only on successful fetch
56
- this.cache.set(cacheKey, fetchedValue);
66
+ await this.storage.set(cacheKey, fetchedValue);
57
67
  return fetchedValue;
68
+ })();
69
+ // Only track in pendingFetches if not skipping cache
70
+ // skipCache calls run independently and don't deduplicate
71
+ if (!skipCache) {
72
+ this.pendingFetches.set(cacheKey, operationPromise);
73
+ }
74
+ try {
75
+ return await operationPromise;
58
76
  }
59
77
  finally {
60
- // Remove from pending fetches regardless of success or failure
61
- this.pendingFetches.delete(cacheKey);
78
+ if (!skipCache) {
79
+ this.pendingFetches.delete(cacheKey);
80
+ }
62
81
  }
63
82
  }
64
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleCache.js","sourceRoot":"","sources":["../../src/cache/SimpleCache.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kBAAkB,CAAA;AAGvC,MAAM,OAAO,WAAW;IACZ,KAAK,CAAqB;IAC1B,cAAc,GAA4B,IAAI,GAAG,EAAE,CAAA;IAE3D;;;OAGG;IACH,YAAY,OAAkD,EAAE;QAC5D,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAA;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC;YACtB,GAAG,EAAE,eAAe;YACpB,GAAG,EAAE,OAAO;SACf,CAAC,CAAA;IACN,CAAC;IAED,GAAG,CAAC,GAAM;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,GAAM;QACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IAClC,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CACnB,GAAM,EACN,OAA+B,EAC/B,IAA8B;QAE9B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;QAE5B,sBAAsB;QACtB,IAAI,IAAI,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,WAAW,CAAA;YACtB,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACxD,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,cAAc,CAAA,CAAC,0BAA0B;QACpD,CAAC;QAED,uDAAuD;QACvD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACpC,MAAM,GAAG,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE/C,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAA;YACvC,6CAA6C;YAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YACtC,OAAO,YAAY,CAAA;QACvB,CAAC;gBAAS,CAAC;YACP,+DAA+D;YAC/D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxC,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"SimpleCache.js","sourceRoot":"","sources":["../../src/cache/SimpleCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { ICacheStorage, CacheStorageConfig } from './ICacheStorage';
2
+ /**
3
+ * In-memory cache storage implementation using TTLCache
4
+ * This is the default storage backend for SimpleCache and EntitlementCache
5
+ */
6
+ export declare class TTLCacheStorage<V> implements ICacheStorage<V> {
7
+ private readonly cache;
8
+ private readonly defaultTtlMs;
9
+ constructor(config?: CacheStorageConfig);
10
+ get(key: string): Promise<V | undefined>;
11
+ set(key: string, value: V, ttlMs?: number): Promise<void>;
12
+ delete(key: string): Promise<void>;
13
+ clear(): Promise<void>;
14
+ }
15
+ /**
16
+ * Default factory function that creates in-memory TTLCacheStorage
17
+ */
18
+ export declare function createDefaultStorage<V>(config: CacheStorageConfig): ICacheStorage<V>;
19
+ //# sourceMappingURL=TTLCacheStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTLCacheStorage.d.ts","sourceRoot":"","sources":["../../src/cache/TTLCacheStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEnE;;;GAGG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;gBAEzB,MAAM,CAAC,EAAE,kBAAkB;IAQjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAEpF"}
@@ -0,0 +1,40 @@
1
+ import TTLCache from '@isaacs/ttlcache';
2
+ /**
3
+ * In-memory cache storage implementation using TTLCache
4
+ * This is the default storage backend for SimpleCache and EntitlementCache
5
+ */
6
+ export class TTLCacheStorage {
7
+ cache;
8
+ defaultTtlMs;
9
+ constructor(config) {
10
+ this.defaultTtlMs = config?.ttlMs ?? Infinity;
11
+ this.cache = new TTLCache({
12
+ ttl: this.defaultTtlMs,
13
+ max: config?.maxSize ?? 10_000,
14
+ });
15
+ }
16
+ async get(key) {
17
+ return this.cache.get(key);
18
+ }
19
+ async set(key, value, ttlMs) {
20
+ if (ttlMs !== undefined) {
21
+ this.cache.set(key, value, { ttl: ttlMs });
22
+ }
23
+ else {
24
+ this.cache.set(key, value);
25
+ }
26
+ }
27
+ async delete(key) {
28
+ this.cache.delete(key);
29
+ }
30
+ async clear() {
31
+ this.cache.clear();
32
+ }
33
+ }
34
+ /**
35
+ * Default factory function that creates in-memory TTLCacheStorage
36
+ */
37
+ export function createDefaultStorage(config) {
38
+ return new TTLCacheStorage(config);
39
+ }
40
+ //# sourceMappingURL=TTLCacheStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTLCacheStorage.js","sourceRoot":"","sources":["../../src/cache/TTLCacheStorage.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kBAAkB,CAAA;AAGvC;;;GAGG;AACH,MAAM,OAAO,eAAe;IACP,KAAK,CAAqB;IAC1B,YAAY,CAAQ;IAErC,YAAY,MAA2B;QACnC,IAAI,CAAC,YAAY,GAAG,MAAM,EAAE,KAAK,IAAI,QAAQ,CAAA;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC;YACtB,GAAG,EAAE,IAAI,CAAC,YAAY;YACtB,GAAG,EAAE,MAAM,EAAE,OAAO,IAAI,MAAM;SACjC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAQ,EAAE,KAAc;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC9B,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAI,MAA0B;IAC9D,OAAO,IAAI,eAAe,CAAI,MAAM,CAAC,CAAA;AACzC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -18,8 +18,11 @@ export * from './base-registry/INodeOperatorShim';
18
18
  export * from './base-registry/ISpaceDelegationShim';
19
19
  export * from './base-registry/RewardsDistributionShim';
20
20
  export * from './cache/EntitlementCache';
21
+ export * from './cache/ICacheStorage';
21
22
  export * from './cache/Keyable';
23
+ export * from './cache/KVCacheStorage';
22
24
  export * from './cache/SimpleCache';
25
+ export * from './cache/TTLCacheStorage';
23
26
  export * from './chain';
24
27
  export * from './delegate-registry/DelegateRegistry';
25
28
  export * from './eip-712/EIP-712';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -18,8 +18,11 @@ export * from './base-registry/INodeOperatorShim';
18
18
  export * from './base-registry/ISpaceDelegationShim';
19
19
  export * from './base-registry/RewardsDistributionShim';
20
20
  export * from './cache/EntitlementCache';
21
+ export * from './cache/ICacheStorage';
21
22
  export * from './cache/Keyable';
23
+ export * from './cache/KVCacheStorage';
22
24
  export * from './cache/SimpleCache';
25
+ export * from './cache/TTLCacheStorage';
23
26
  export * from './chain';
24
27
  export * from './delegate-registry/DelegateRegistry';
25
28
  export * from './eip-712/EIP-712';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,12 @@ import { EntitlementsManager__factory } from '@towns-protocol/generated/dev/typi
2
2
  import { ethers } from 'ethers';
3
3
  import { IEntitlementsManagerBase } from '@towns-protocol/generated/dev/typings/IEntitlementsManager';
4
4
  import { BaseContractShim } from '../BaseContractShim';
5
- import { Keyable } from '../cache/Keyable';
5
+ import { SpaceDappCreateStorageFn } from '../space-dapp/SpaceDapp';
6
6
  declare const connect: typeof EntitlementsManager__factory.connect;
7
7
  export type { IEntitlementsManagerBase as IEntitlementsBase };
8
- export declare class GetEntitlements implements Keyable {
9
- spaceAddress: string;
10
- constructor(spaceAddress: string);
11
- toKey(): string;
12
- }
13
8
  export declare class IEntitlementsShim extends BaseContractShim<typeof connect> {
14
9
  private readonly getEntitlementsCache;
15
- constructor(address: string, provider: ethers.providers.Provider);
10
+ constructor(address: string, provider: ethers.providers.Provider, createStorageFn: SpaceDappCreateStorageFn | undefined);
16
11
  getEntitlements(): Promise<IEntitlementsManagerBase.EntitlementStructOutput[]>;
17
12
  }
18
13
  //# sourceMappingURL=IEntitlementsShim.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IEntitlementsShim.d.ts","sourceRoot":"","sources":["../../src/space/IEntitlementsShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8EAA8E,CAAA;AAC3H,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAA;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG1C,QAAA,MAAa,OAAO,6CAAiC,CAAA;AAErD,YAAY,EAAE,wBAAwB,IAAI,iBAAiB,EAAE,CAAA;AAE7D,qBAAa,eAAgB,YAAW,OAAO;IAC3C,YAAY,EAAE,MAAM,CAAA;gBACR,YAAY,EAAE,MAAM;IAGhC,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB,CAAC,OAAO,OAAO,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGpC;gBAEW,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;IAQnD,eAAe,IAAI,OAAO,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,CAAC;CAM9F"}
1
+ {"version":3,"file":"IEntitlementsShim.d.ts","sourceRoot":"","sources":["../../src/space/IEntitlementsShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8EAA8E,CAAA;AAC3H,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAA;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,QAAA,MAAa,OAAO,6CAAiC,CAAA;AAErD,YAAY,EAAE,wBAAwB,IAAI,iBAAiB,EAAE,CAAA;AAE7D,qBAAa,iBAAkB,SAAQ,gBAAgB,CAAC,OAAO,OAAO,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAEpC;gBAGG,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,eAAe,EAAE,wBAAwB,GAAG,SAAS;IAU5C,eAAe,IAAI,OAAO,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,CAAC;CAM9F"}
@@ -1,26 +1,19 @@
1
1
  import { EntitlementsManager__factory } from '@towns-protocol/generated/dev/typings/factories/EntitlementsManager__factory';
2
2
  import { BaseContractShim } from '../BaseContractShim';
3
+ import { Keyable } from '../cache/Keyable';
3
4
  import { SimpleCache } from '../cache/SimpleCache';
4
5
  const { abi, connect } = EntitlementsManager__factory;
5
- export class GetEntitlements {
6
- spaceAddress;
7
- constructor(spaceAddress) {
8
- this.spaceAddress = spaceAddress;
9
- }
10
- toKey() {
11
- return `getEntitlements:${this.spaceAddress}`;
12
- }
13
- }
14
6
  export class IEntitlementsShim extends BaseContractShim {
15
7
  getEntitlementsCache;
16
- constructor(address, provider) {
8
+ constructor(address, provider, createStorageFn) {
17
9
  super(address, provider, connect, abi);
18
10
  this.getEntitlementsCache = new SimpleCache({
19
11
  ttlSeconds: 15 * 60,
12
+ createStorageFn,
20
13
  });
21
14
  }
22
15
  async getEntitlements() {
23
- return this.getEntitlementsCache.executeUsingCache(new GetEntitlements(this.address), async () => this.read.getEntitlements());
16
+ return this.getEntitlementsCache.executeUsingCache(Keyable.getEntitlementsRequest(this.address), async () => this.read.getEntitlements());
24
17
  }
25
18
  }
26
19
  //# sourceMappingURL=IEntitlementsShim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IEntitlementsShim.js","sourceRoot":"","sources":["../../src/space/IEntitlementsShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8EAA8E,CAAA;AAG3H,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAA;AAIrD,MAAM,OAAO,eAAe;IACxB,YAAY,CAAQ;IACpB,YAAY,YAAoB;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IACD,KAAK;QACD,OAAO,mBAAmB,IAAI,CAAC,YAAY,EAAE,CAAA;IACjD,CAAC;CACJ;AAED,MAAM,OAAO,iBAAkB,SAAQ,gBAAgC;IAClD,oBAAoB,CAGpC;IAED,YAAY,OAAe,EAAE,QAAmC;QAC5D,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QAEtC,IAAI,CAAC,oBAAoB,GAAG,IAAI,WAAW,CAAC;YACxC,UAAU,EAAE,EAAE,GAAG,EAAE;SACtB,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,eAAe;QACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAC9C,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EACjC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAC1C,CAAA;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"IEntitlementsShim.js","sourceRoot":"","sources":["../../src/space/IEntitlementsShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,8EAA8E,CAAA;AAG3H,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGlD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAA;AAIrD,MAAM,OAAO,iBAAkB,SAAQ,gBAAgC;IAClD,oBAAoB,CAEpC;IAED,YACI,OAAe,EACf,QAAmC,EACnC,eAAqD;QAErD,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;QAEtC,IAAI,CAAC,oBAAoB,GAAG,IAAI,WAAW,CAAC;YACxC,UAAU,EAAE,EAAE,GAAG,EAAE;YACnB,eAAe;SAClB,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,eAAe;QACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAC9C,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAC5C,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAC1C,CAAA;IACL,CAAC;CACJ"}
@@ -7,7 +7,7 @@ export type TipEventObject = GeneratedTipEventObject;
7
7
  export declare enum TipRecipientType {
8
8
  Member = 0,
9
9
  Bot = 1,
10
- Pool = 2
10
+ Any = 2
11
11
  }
12
12
  export type TipSentEventObject = {
13
13
  sender: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ITippingShim.d.ts","sourceRoot":"","sources":["../../src/space/ITippingShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,gDAAgD,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAA;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE3D,QAAA,MAAa,OAAO,kCAAsB,CAAA;AAG1C,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAA;AAGpD,oBAAY,gBAAgB;IACxB,MAAM,IAAI;IACV,GAAG,IAAI;IACP,IAAI,IAAI;CACX;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,YAAa,SAAQ,gBAAgB,CAAC,OAAO,OAAO,CAAC;gBAClD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;IAIhE;;;;OAIG;IACU,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnE;;;;OAIG;IACU,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5D,WAAW,CACd,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,MAAM,GACtB,kBAAkB,GAAG,SAAS;CAmDpC"}
1
+ {"version":3,"file":"ITippingShim.d.ts","sourceRoot":"","sources":["../../src/space/ITippingShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,gDAAgD,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAA;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE3D,QAAA,MAAa,OAAO,kCAAsB,CAAA;AAG1C,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAA;AAGpD,oBAAY,gBAAgB;IACxB,MAAM,IAAI;IACV,GAAG,IAAI;IACP,GAAG,IAAI;CACV;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,YAAa,SAAQ,gBAAgB,CAAC,OAAO,OAAO,CAAC;gBAClD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;IAIhE;;;;OAIG;IACU,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnE;;;;OAIG;IACU,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5D,WAAW,CACd,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,MAAM,GACtB,kBAAkB,GAAG,SAAS;CAmDpC"}
@@ -7,7 +7,7 @@ export var TipRecipientType;
7
7
  (function (TipRecipientType) {
8
8
  TipRecipientType[TipRecipientType["Member"] = 0] = "Member";
9
9
  TipRecipientType[TipRecipientType["Bot"] = 1] = "Bot";
10
- TipRecipientType[TipRecipientType["Pool"] = 2] = "Pool";
10
+ TipRecipientType[TipRecipientType["Any"] = 2] = "Any";
11
11
  })(TipRecipientType || (TipRecipientType = {}));
12
12
  export class ITippingShim extends BaseContractShim {
13
13
  constructor(address, provider) {
@@ -51,7 +51,7 @@ export class ITippingShim extends BaseContractShim {
51
51
  tokenId = decoded[2];
52
52
  }
53
53
  else {
54
- // Bot/Pool tips: data = abi.encode(messageId, channelId)
54
+ // Bot/Any tips: data = abi.encode(messageId, channelId)
55
55
  const decoded = ethers.utils.defaultAbiCoder.decode(['bytes32', 'bytes32'], data);
56
56
  messageId = decoded[0];
57
57
  channelId = decoded[1];
@@ -1 +1 @@
1
- {"version":3,"file":"ITippingShim.js","sourceRoot":"","sources":["../../src/space/ITippingShim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ITippingShim.js","sourceRoot":"","sources":["../../src/space/ITippingShim.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,11 @@
1
1
  import { ethers } from 'ethers';
2
2
  import { BaseContractShim } from '../BaseContractShim';
3
3
  import { OwnableFacet__factory } from '@towns-protocol/generated/dev/typings/factories/OwnableFacet__factory';
4
- import { Keyable } from '../cache/Keyable';
4
+ import { SpaceDappCreateStorageFn } from '../space-dapp/SpaceDapp';
5
5
  declare const connect: typeof OwnableFacet__factory.connect;
6
- export declare class OwnerRequest implements Keyable {
7
- spaceId: string;
8
- constructor(spaceId: string);
9
- toKey(): string;
10
- }
11
6
  export declare class OwnableFacetShim extends BaseContractShim<typeof connect> {
12
7
  private readonly ownerCache;
13
- constructor(address: string, provider: ethers.providers.Provider);
8
+ constructor(address: string, provider: ethers.providers.Provider, createStorageFn: SpaceDappCreateStorageFn | undefined);
14
9
  getOwner(): Promise<string>;
15
10
  }
16
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"OwnableFacetShim.d.ts","sourceRoot":"","sources":["../../src/space/OwnableFacetShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAA;AAC7G,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG1C,QAAA,MAAa,OAAO,sCAA0B,CAAA;AAE9C,qBAAa,YAAa,YAAW,OAAO;IACxC,OAAO,EAAE,MAAM,CAAA;gBACH,OAAO,EAAE,MAAM;IAG3B,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,OAAO,OAAO,CAAC;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;gBAElD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;IAQnD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;CAK3C"}
1
+ {"version":3,"file":"OwnableFacetShim.d.ts","sourceRoot":"","sources":["../../src/space/OwnableFacetShim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uEAAuE,CAAA;AAG7G,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,QAAA,MAAa,OAAO,sCAA0B,CAAA;AAE9C,qBAAa,gBAAiB,SAAQ,gBAAgB,CAAC,OAAO,OAAO,CAAC;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAG5C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,eAAe,EAAE,wBAAwB,GAAG,SAAS;IAU5C,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;CAK3C"}
@@ -1,26 +1,19 @@
1
1
  import { BaseContractShim } from '../BaseContractShim';
2
2
  import { OwnableFacet__factory } from '@towns-protocol/generated/dev/typings/factories/OwnableFacet__factory';
3
+ import { Keyable } from '../cache/Keyable';
3
4
  import { SimpleCache } from '../cache/SimpleCache';
4
5
  const { abi, connect } = OwnableFacet__factory;
5
- export class OwnerRequest {
6
- spaceId;
7
- constructor(spaceId) {
8
- this.spaceId = spaceId;
9
- }
10
- toKey() {
11
- return `owner:${this.spaceId}`;
12
- }
13
- }
14
6
  export class OwnableFacetShim extends BaseContractShim {
15
7
  ownerCache;
16
- constructor(address, provider) {
8
+ constructor(address, provider, createStorageFn) {
17
9
  super(address, provider, connect, abi);
18
10
  this.ownerCache = new SimpleCache({
19
11
  ttlSeconds: 120 * 60,
12
+ createStorageFn,
20
13
  });
21
14
  }
22
15
  async getOwner() {
23
- return this.ownerCache.executeUsingCache(new OwnerRequest(this.address), async () => this.read.owner());
16
+ return this.ownerCache.executeUsingCache(Keyable.ownerRequest(this.address), async () => this.read.owner());
24
17
  }
25
18
  }
26
19
  //# sourceMappingURL=OwnableFacetShim.js.map