@talismn/balances 0.0.0-pr672-20230404063840 → 0.0.0-pr685-20230413025446

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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  # @talismn/balances
2
2
 
3
- ## 0.0.0-pr672-20230404063840
3
+ ## 0.0.0-pr685-20230413025446
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [c898da98]
8
+ - @talismn/chain-connector@0.0.0-pr685-20230413025446
9
+ - @talismn/chain-connector-evm@0.0.0-pr685-20230413025446
10
+ - @talismn/chaindata-provider@0.0.0-pr685-20230413025446
11
+ - @talismn/token-rates@0.0.0-pr685-20230413025446
12
+
13
+ ## 0.4.0
4
14
 
5
15
  ### Patch Changes
6
16
 
@@ -11,11 +21,11 @@
11
21
  - Updated dependencies [6643a4e4]
12
22
  - Updated dependencies [79f6ccf6]
13
23
  - Updated dependencies [c24dc1fb]
14
- - @talismn/chain-connector@0.0.0-pr672-20230404063840
15
- - @talismn/util@0.0.0-pr672-20230404063840
16
- - @talismn/token-rates@0.0.0-pr672-20230404063840
17
- - @talismn/chaindata-provider@0.0.0-pr672-20230404063840
18
- - @talismn/chain-connector-evm@0.0.0-pr672-20230404063840
24
+ - @talismn/chain-connector@0.4.3
25
+ - @talismn/util@0.1.8
26
+ - @talismn/token-rates@0.1.15
27
+ - @talismn/chaindata-provider@0.4.3
28
+ - @talismn/chain-connector-evm@0.4.3
19
29
 
20
30
  ## 0.3.3
21
31
 
@@ -1,7 +1,7 @@
1
1
  import type { Registry } from "@polkadot/types-codec/types";
2
2
  import { ChainId } from "@talismn/chaindata-provider";
3
3
  import { BalanceModule, DefaultChainMeta, DefaultModuleConfig, DefaultTransferParams, ExtendableChainMeta, ExtendableModuleConfig, ExtendableTokenType, ExtendableTransferParams } from "./BalanceModule";
4
- import { AddressesByToken, Balance, Balances, SubscriptionCallback, UnsubscribeFn } from "./types";
4
+ import { AddressesByToken, Balance, BalanceJson, Balances, SubscriptionCallback, UnsubscribeFn } from "./types";
5
5
  /**
6
6
  * Wraps a BalanceModule's fetch/subscribe methods with a single `balances` method.
7
7
  * This `balances` method will subscribe if a callback parameter is provided, or otherwise fetch.
@@ -12,6 +12,13 @@ export declare const createTypeRegistryCache: () => {
12
12
  getOrCreateTypeRegistry: (chainId: ChainId, metadataRpc?: `0x${string}`) => Registry;
13
13
  };
14
14
  export declare const filterMirrorTokens: (balance: Balance, i: number, balances: Balance[]) => boolean;
15
+ export declare const getValidSubscriptionIds: () => Set<string>;
16
+ export declare const createSubscriptionId: () => string;
17
+ export declare const deleteSubscriptionId: () => void;
18
+ /**
19
+ * Sets all balance statuses from `live-${string}` to either `live` or `cached`
20
+ */
21
+ export declare const deriveStatuses: (validSubscriptionIds: string[], balances: BalanceJson[]) => BalanceJson[];
15
22
  /**
16
23
  * Used by a variety of balance modules to help encode and decode substrate state calls.
17
24
  */
@@ -23,7 +23,9 @@ export type BalanceTypes = {
23
23
  export type BalanceJson = BalanceTypes[keyof BalanceTypes] extends never ? IBalance : BalanceTypes[keyof BalanceTypes];
24
24
  /** A collection of `BalanceJson` objects */
25
25
  export type BalanceJsonList = Record<string, BalanceJson>;
26
- export type BalanceStatus = "live" | "cache" | "stale";
26
+ export type BalanceStatusLive = `live-${string}`;
27
+ export declare const BalanceStatusLive: (subscriptionId: string) => BalanceStatusLive;
28
+ export type BalanceStatus = BalanceStatusLive | "live" | "cache" | "stale";
27
29
  /** `IBalance` is a common interface which all balance types must implement. */
28
30
  export type IBalance = {
29
31
  /** The module that this balance was retrieved by */
@@ -67,7 +67,7 @@ const db = new TalismanBalancesDatabase();
67
67
 
68
68
  var packageJson = {
69
69
  name: "@talismn/balances",
70
- version: "0.0.0-pr672-20230404063840",
70
+ version: "0.0.0-pr685-20230413025446",
71
71
  author: "Talisman",
72
72
  homepage: "https://talisman.xyz",
73
73
  license: "UNLICENSED",
@@ -161,6 +161,49 @@ const filterMirrorTokens = (balance, i, balances) => {
161
161
  const mirrorOf = balance.token?.mirrorOf;
162
162
  return !mirrorOf || !balances.find(b => b.tokenId === mirrorOf);
163
163
  };
164
+ const getValidSubscriptionIds = () => {
165
+ return new Set(localStorage.getItem("TalismanBalancesSubscriptionIds")?.split(",") ?? []);
166
+ };
167
+ const createSubscriptionId = () => {
168
+ // delete current id (if exists)
169
+ deleteSubscriptionId();
170
+
171
+ // create new id
172
+ const subscriptionId = Date.now().toString();
173
+ sessionStorage.setItem("TalismanBalancesSubscriptionId", subscriptionId);
174
+
175
+ // add to list of current ids
176
+ const subscriptionIds = getValidSubscriptionIds();
177
+ subscriptionIds.add(subscriptionId);
178
+ localStorage.setItem("TalismanBalancesSubscriptionIds", [...subscriptionIds].filter(Boolean).join(","));
179
+ return subscriptionId;
180
+ };
181
+ const deleteSubscriptionId = () => {
182
+ const subscriptionId = sessionStorage.getItem("TalismanBalancesSubscriptionId");
183
+ if (!subscriptionId) return;
184
+ const subscriptionIds = getValidSubscriptionIds();
185
+ subscriptionIds.delete(subscriptionId);
186
+ localStorage.setItem("TalismanBalancesSubscriptionIds", [...subscriptionIds].filter(Boolean).join(","));
187
+ };
188
+
189
+ /**
190
+ * Sets all balance statuses from `live-${string}` to either `live` or `cached`
191
+ */
192
+ const deriveStatuses = (validSubscriptionIds, balances) => balances.map(balance => {
193
+ if (balance.status === "live" || balance.status === "cache" || balance.status === "stale") return balance;
194
+ if (validSubscriptionIds.length < 1) return {
195
+ ...balance,
196
+ status: "cache"
197
+ };
198
+ if (!validSubscriptionIds.includes(balance.status.slice("live-".length))) return {
199
+ ...balance,
200
+ status: "cache"
201
+ };
202
+ return {
203
+ ...balance,
204
+ status: "live"
205
+ };
206
+ });
164
207
 
165
208
  /**
166
209
  * Used by a variety of balance modules to help encode and decode substrate state calls.
@@ -243,6 +286,7 @@ class StorageHelper {
243
286
  }
244
287
  }
245
288
 
289
+ const BalanceStatusLive = subscriptionId => `live-${subscriptionId}`;
246
290
  function excludeFromTransferableAmount(locks) {
247
291
  if (typeof locks === "string") return BigInt(locks);
248
292
  if (!Array.isArray(locks)) locks = [locks];
@@ -672,6 +716,7 @@ class SumBalancesFormatter {
672
716
 
673
717
  exports.Balance = Balance;
674
718
  exports.BalanceFormatter = BalanceFormatter;
719
+ exports.BalanceStatusLive = BalanceStatusLive;
675
720
  exports.Balances = Balances;
676
721
  exports.DefaultBalanceModule = DefaultBalanceModule;
677
722
  exports.FiatSumBalancesFormatter = FiatSumBalancesFormatter;
@@ -679,9 +724,13 @@ exports.StorageHelper = StorageHelper;
679
724
  exports.SumBalancesFormatter = SumBalancesFormatter;
680
725
  exports.TalismanBalancesDatabase = TalismanBalancesDatabase;
681
726
  exports.balances = balances;
727
+ exports.createSubscriptionId = createSubscriptionId;
682
728
  exports.createTypeRegistryCache = createTypeRegistryCache;
683
729
  exports.db = db;
730
+ exports.deleteSubscriptionId = deleteSubscriptionId;
731
+ exports.deriveStatuses = deriveStatuses;
684
732
  exports.excludeFromFeePayableLocks = excludeFromFeePayableLocks;
685
733
  exports.excludeFromTransferableAmount = excludeFromTransferableAmount;
686
734
  exports.filterMirrorTokens = filterMirrorTokens;
735
+ exports.getValidSubscriptionIds = getValidSubscriptionIds;
687
736
  exports.includeInTotalExtraAmount = includeInTotalExtraAmount;
@@ -67,7 +67,7 @@ const db = new TalismanBalancesDatabase();
67
67
 
68
68
  var packageJson = {
69
69
  name: "@talismn/balances",
70
- version: "0.0.0-pr672-20230404063840",
70
+ version: "0.0.0-pr685-20230413025446",
71
71
  author: "Talisman",
72
72
  homepage: "https://talisman.xyz",
73
73
  license: "UNLICENSED",
@@ -161,6 +161,49 @@ const filterMirrorTokens = (balance, i, balances) => {
161
161
  const mirrorOf = balance.token?.mirrorOf;
162
162
  return !mirrorOf || !balances.find(b => b.tokenId === mirrorOf);
163
163
  };
164
+ const getValidSubscriptionIds = () => {
165
+ return new Set(localStorage.getItem("TalismanBalancesSubscriptionIds")?.split(",") ?? []);
166
+ };
167
+ const createSubscriptionId = () => {
168
+ // delete current id (if exists)
169
+ deleteSubscriptionId();
170
+
171
+ // create new id
172
+ const subscriptionId = Date.now().toString();
173
+ sessionStorage.setItem("TalismanBalancesSubscriptionId", subscriptionId);
174
+
175
+ // add to list of current ids
176
+ const subscriptionIds = getValidSubscriptionIds();
177
+ subscriptionIds.add(subscriptionId);
178
+ localStorage.setItem("TalismanBalancesSubscriptionIds", [...subscriptionIds].filter(Boolean).join(","));
179
+ return subscriptionId;
180
+ };
181
+ const deleteSubscriptionId = () => {
182
+ const subscriptionId = sessionStorage.getItem("TalismanBalancesSubscriptionId");
183
+ if (!subscriptionId) return;
184
+ const subscriptionIds = getValidSubscriptionIds();
185
+ subscriptionIds.delete(subscriptionId);
186
+ localStorage.setItem("TalismanBalancesSubscriptionIds", [...subscriptionIds].filter(Boolean).join(","));
187
+ };
188
+
189
+ /**
190
+ * Sets all balance statuses from `live-${string}` to either `live` or `cached`
191
+ */
192
+ const deriveStatuses = (validSubscriptionIds, balances) => balances.map(balance => {
193
+ if (balance.status === "live" || balance.status === "cache" || balance.status === "stale") return balance;
194
+ if (validSubscriptionIds.length < 1) return {
195
+ ...balance,
196
+ status: "cache"
197
+ };
198
+ if (!validSubscriptionIds.includes(balance.status.slice("live-".length))) return {
199
+ ...balance,
200
+ status: "cache"
201
+ };
202
+ return {
203
+ ...balance,
204
+ status: "live"
205
+ };
206
+ });
164
207
 
165
208
  /**
166
209
  * Used by a variety of balance modules to help encode and decode substrate state calls.
@@ -243,6 +286,7 @@ class StorageHelper {
243
286
  }
244
287
  }
245
288
 
289
+ const BalanceStatusLive = subscriptionId => `live-${subscriptionId}`;
246
290
  function excludeFromTransferableAmount(locks) {
247
291
  if (typeof locks === "string") return BigInt(locks);
248
292
  if (!Array.isArray(locks)) locks = [locks];
@@ -672,6 +716,7 @@ class SumBalancesFormatter {
672
716
 
673
717
  exports.Balance = Balance;
674
718
  exports.BalanceFormatter = BalanceFormatter;
719
+ exports.BalanceStatusLive = BalanceStatusLive;
675
720
  exports.Balances = Balances;
676
721
  exports.DefaultBalanceModule = DefaultBalanceModule;
677
722
  exports.FiatSumBalancesFormatter = FiatSumBalancesFormatter;
@@ -679,9 +724,13 @@ exports.StorageHelper = StorageHelper;
679
724
  exports.SumBalancesFormatter = SumBalancesFormatter;
680
725
  exports.TalismanBalancesDatabase = TalismanBalancesDatabase;
681
726
  exports.balances = balances;
727
+ exports.createSubscriptionId = createSubscriptionId;
682
728
  exports.createTypeRegistryCache = createTypeRegistryCache;
683
729
  exports.db = db;
730
+ exports.deleteSubscriptionId = deleteSubscriptionId;
731
+ exports.deriveStatuses = deriveStatuses;
684
732
  exports.excludeFromFeePayableLocks = excludeFromFeePayableLocks;
685
733
  exports.excludeFromTransferableAmount = excludeFromTransferableAmount;
686
734
  exports.filterMirrorTokens = filterMirrorTokens;
735
+ exports.getValidSubscriptionIds = getValidSubscriptionIds;
687
736
  exports.includeInTotalExtraAmount = includeInTotalExtraAmount;
@@ -59,7 +59,7 @@ const db = new TalismanBalancesDatabase();
59
59
 
60
60
  var packageJson = {
61
61
  name: "@talismn/balances",
62
- version: "0.0.0-pr672-20230404063840",
62
+ version: "0.0.0-pr685-20230413025446",
63
63
  author: "Talisman",
64
64
  homepage: "https://talisman.xyz",
65
65
  license: "UNLICENSED",
@@ -153,6 +153,49 @@ const filterMirrorTokens = (balance, i, balances) => {
153
153
  const mirrorOf = balance.token?.mirrorOf;
154
154
  return !mirrorOf || !balances.find(b => b.tokenId === mirrorOf);
155
155
  };
156
+ const getValidSubscriptionIds = () => {
157
+ return new Set(localStorage.getItem("TalismanBalancesSubscriptionIds")?.split(",") ?? []);
158
+ };
159
+ const createSubscriptionId = () => {
160
+ // delete current id (if exists)
161
+ deleteSubscriptionId();
162
+
163
+ // create new id
164
+ const subscriptionId = Date.now().toString();
165
+ sessionStorage.setItem("TalismanBalancesSubscriptionId", subscriptionId);
166
+
167
+ // add to list of current ids
168
+ const subscriptionIds = getValidSubscriptionIds();
169
+ subscriptionIds.add(subscriptionId);
170
+ localStorage.setItem("TalismanBalancesSubscriptionIds", [...subscriptionIds].filter(Boolean).join(","));
171
+ return subscriptionId;
172
+ };
173
+ const deleteSubscriptionId = () => {
174
+ const subscriptionId = sessionStorage.getItem("TalismanBalancesSubscriptionId");
175
+ if (!subscriptionId) return;
176
+ const subscriptionIds = getValidSubscriptionIds();
177
+ subscriptionIds.delete(subscriptionId);
178
+ localStorage.setItem("TalismanBalancesSubscriptionIds", [...subscriptionIds].filter(Boolean).join(","));
179
+ };
180
+
181
+ /**
182
+ * Sets all balance statuses from `live-${string}` to either `live` or `cached`
183
+ */
184
+ const deriveStatuses = (validSubscriptionIds, balances) => balances.map(balance => {
185
+ if (balance.status === "live" || balance.status === "cache" || balance.status === "stale") return balance;
186
+ if (validSubscriptionIds.length < 1) return {
187
+ ...balance,
188
+ status: "cache"
189
+ };
190
+ if (!validSubscriptionIds.includes(balance.status.slice("live-".length))) return {
191
+ ...balance,
192
+ status: "cache"
193
+ };
194
+ return {
195
+ ...balance,
196
+ status: "live"
197
+ };
198
+ });
156
199
 
157
200
  /**
158
201
  * Used by a variety of balance modules to help encode and decode substrate state calls.
@@ -235,6 +278,7 @@ class StorageHelper {
235
278
  }
236
279
  }
237
280
 
281
+ const BalanceStatusLive = subscriptionId => `live-${subscriptionId}`;
238
282
  function excludeFromTransferableAmount(locks) {
239
283
  if (typeof locks === "string") return BigInt(locks);
240
284
  if (!Array.isArray(locks)) locks = [locks];
@@ -662,4 +706,4 @@ class SumBalancesFormatter {
662
706
  }
663
707
  }
664
708
 
665
- export { Balance, BalanceFormatter, Balances, DefaultBalanceModule, FiatSumBalancesFormatter, StorageHelper, SumBalancesFormatter, TalismanBalancesDatabase, balances, createTypeRegistryCache, db, excludeFromFeePayableLocks, excludeFromTransferableAmount, filterMirrorTokens, includeInTotalExtraAmount };
709
+ export { Balance, BalanceFormatter, BalanceStatusLive, Balances, DefaultBalanceModule, FiatSumBalancesFormatter, StorageHelper, SumBalancesFormatter, TalismanBalancesDatabase, balances, createSubscriptionId, createTypeRegistryCache, db, deleteSubscriptionId, deriveStatuses, excludeFromFeePayableLocks, excludeFromTransferableAmount, filterMirrorTokens, getValidSubscriptionIds, includeInTotalExtraAmount };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talismn/balances",
3
- "version": "0.0.0-pr672-20230404063840",
3
+ "version": "0.0.0-pr685-20230413025446",
4
4
  "author": "Talisman",
5
5
  "homepage": "https://talisman.xyz",
6
6
  "license": "UNLICENSED",
@@ -27,11 +27,11 @@
27
27
  "clean": "rm -rf dist && rm -rf .turbo rm -rf node_modules"
28
28
  },
29
29
  "dependencies": {
30
- "@talismn/chain-connector": "^0.0.0-pr672-20230404063840",
31
- "@talismn/chain-connector-evm": "^0.0.0-pr672-20230404063840",
32
- "@talismn/chaindata-provider": "^0.0.0-pr672-20230404063840",
33
- "@talismn/token-rates": "^0.0.0-pr672-20230404063840",
34
- "@talismn/util": "^0.0.0-pr672-20230404063840",
30
+ "@talismn/chain-connector": "^0.0.0-pr685-20230413025446",
31
+ "@talismn/chain-connector-evm": "^0.0.0-pr685-20230413025446",
32
+ "@talismn/chaindata-provider": "^0.0.0-pr685-20230413025446",
33
+ "@talismn/token-rates": "^0.0.0-pr685-20230413025446",
34
+ "@talismn/util": "^0.1.8",
35
35
  "anylogger": "^1.0.11",
36
36
  "dexie": "^3.2.3"
37
37
  },