@talismn/balances 0.0.0-pr660-20230328111733 → 0.0.0-pr660-20230328121248
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 +6 -6
- package/dist/declarations/src/TalismanBalancesDatabase.d.ts +0 -6
- package/dist/declarations/src/helpers.d.ts +4 -1
- package/dist/talismn-balances.cjs.dev.js +33 -7
- package/dist/talismn-balances.cjs.prod.js +33 -7
- package/dist/talismn-balances.esm.js +31 -8
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# @talismn/balances
|
2
2
|
|
3
|
-
## 0.0.0-pr660-
|
3
|
+
## 0.0.0-pr660-20230328121248
|
4
4
|
|
5
5
|
### Patch Changes
|
6
6
|
|
@@ -12,11 +12,11 @@
|
|
12
12
|
- Updated dependencies [fa4d115f]
|
13
13
|
- Updated dependencies [79f6ccf6]
|
14
14
|
- Updated dependencies [c24dc1fb]
|
15
|
-
- @talismn/chain-connector@0.0.0-pr660-
|
16
|
-
- @talismn/util@0.0.0-pr660-
|
17
|
-
- @talismn/token-rates@0.0.0-pr660-
|
18
|
-
- @talismn/chaindata-provider@0.0.0-pr660-
|
19
|
-
- @talismn/chain-connector-evm@0.0.0-pr660-
|
15
|
+
- @talismn/chain-connector@0.0.0-pr660-20230328121248
|
16
|
+
- @talismn/util@0.0.0-pr660-20230328121248
|
17
|
+
- @talismn/token-rates@0.0.0-pr660-20230328121248
|
18
|
+
- @talismn/chaindata-provider@0.0.0-pr660-20230328121248
|
19
|
+
- @talismn/chain-connector-evm@0.0.0-pr660-20230328121248
|
20
20
|
|
21
21
|
## 0.3.3
|
22
22
|
|
@@ -1,13 +1,7 @@
|
|
1
1
|
import { Dexie } from "dexie";
|
2
2
|
import { BalanceJson } from "./types";
|
3
|
-
type BalancesDbMeta = {
|
4
|
-
id: string;
|
5
|
-
value: string;
|
6
|
-
};
|
7
3
|
export declare class TalismanBalancesDatabase extends Dexie {
|
8
4
|
balances: Dexie.Table<BalanceJson, string>;
|
9
|
-
meta: Dexie.Table<BalancesDbMeta, string>;
|
10
5
|
constructor();
|
11
6
|
}
|
12
7
|
export declare const db: TalismanBalancesDatabase;
|
13
|
-
export {};
|
@@ -12,10 +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;
|
15
18
|
/**
|
16
19
|
* Sets all balance statuses from `live-${string}` to either `live` or `cached`
|
17
20
|
*/
|
18
|
-
export declare const deriveStatuses: (
|
21
|
+
export declare const deriveStatuses: (validSubscriptionIds: string[], balances: BalanceJson[]) => BalanceJson[];
|
19
22
|
/**
|
20
23
|
* Used by a variety of balance modules to help encode and decode substrate state calls.
|
21
24
|
*/
|
@@ -49,15 +49,14 @@ class TalismanBalancesDatabase extends dexie.Dexie {
|
|
49
49
|
super("TalismanBalances");
|
50
50
|
|
51
51
|
// https://dexie.org/docs/Tutorial/Design#database-versioning
|
52
|
-
this.version(
|
52
|
+
this.version(1).stores({
|
53
53
|
// You only need to specify properties that you wish to index.
|
54
54
|
// The object store will allow any properties on your stored objects but you can only query them by indexed properties
|
55
55
|
// https://dexie.org/docs/API-Reference#declare-database
|
56
56
|
//
|
57
57
|
// Never index properties containing images, movies or large (huge) strings. Store them in IndexedDB, yes! but just don’t index them!
|
58
58
|
// https://dexie.org/docs/Version/Version.stores()#warning
|
59
|
-
balances: "id, source, status, address, tokenId"
|
60
|
-
meta: "id"
|
59
|
+
balances: "id, source, status, address, tokenId"
|
61
60
|
});
|
62
61
|
|
63
62
|
// this.on("ready", async () => {})
|
@@ -68,7 +67,7 @@ const db = new TalismanBalancesDatabase();
|
|
68
67
|
|
69
68
|
var packageJson = {
|
70
69
|
name: "@talismn/balances",
|
71
|
-
version: "0.0.0-pr660-
|
70
|
+
version: "0.0.0-pr660-20230328121248",
|
72
71
|
author: "Talisman",
|
73
72
|
homepage: "https://talisman.xyz",
|
74
73
|
license: "UNLICENSED",
|
@@ -162,17 +161,41 @@ const filterMirrorTokens = (balance, i, balances) => {
|
|
162
161
|
const mirrorOf = balance.token?.mirrorOf;
|
163
162
|
return !mirrorOf || !balances.find(b => b.tokenId === mirrorOf);
|
164
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
|
+
};
|
165
188
|
|
166
189
|
/**
|
167
190
|
* Sets all balance statuses from `live-${string}` to either `live` or `cached`
|
168
191
|
*/
|
169
|
-
const deriveStatuses = (
|
192
|
+
const deriveStatuses = (validSubscriptionIds, balances) => balances.map(balance => {
|
170
193
|
if (balance.status === "live" || balance.status === "cache" || balance.status === "stale") return balance;
|
171
|
-
if (
|
194
|
+
if (validSubscriptionIds.length < 1) return {
|
172
195
|
...balance,
|
173
196
|
status: "cache"
|
174
197
|
};
|
175
|
-
if (balance.status.slice("live-".length)
|
198
|
+
if (!validSubscriptionIds.includes(balance.status.slice("live-".length))) return {
|
176
199
|
...balance,
|
177
200
|
status: "cache"
|
178
201
|
};
|
@@ -701,10 +724,13 @@ exports.StorageHelper = StorageHelper;
|
|
701
724
|
exports.SumBalancesFormatter = SumBalancesFormatter;
|
702
725
|
exports.TalismanBalancesDatabase = TalismanBalancesDatabase;
|
703
726
|
exports.balances = balances;
|
727
|
+
exports.createSubscriptionId = createSubscriptionId;
|
704
728
|
exports.createTypeRegistryCache = createTypeRegistryCache;
|
705
729
|
exports.db = db;
|
730
|
+
exports.deleteSubscriptionId = deleteSubscriptionId;
|
706
731
|
exports.deriveStatuses = deriveStatuses;
|
707
732
|
exports.excludeFromFeePayableLocks = excludeFromFeePayableLocks;
|
708
733
|
exports.excludeFromTransferableAmount = excludeFromTransferableAmount;
|
709
734
|
exports.filterMirrorTokens = filterMirrorTokens;
|
735
|
+
exports.getValidSubscriptionIds = getValidSubscriptionIds;
|
710
736
|
exports.includeInTotalExtraAmount = includeInTotalExtraAmount;
|
@@ -49,15 +49,14 @@ class TalismanBalancesDatabase extends dexie.Dexie {
|
|
49
49
|
super("TalismanBalances");
|
50
50
|
|
51
51
|
// https://dexie.org/docs/Tutorial/Design#database-versioning
|
52
|
-
this.version(
|
52
|
+
this.version(1).stores({
|
53
53
|
// You only need to specify properties that you wish to index.
|
54
54
|
// The object store will allow any properties on your stored objects but you can only query them by indexed properties
|
55
55
|
// https://dexie.org/docs/API-Reference#declare-database
|
56
56
|
//
|
57
57
|
// Never index properties containing images, movies or large (huge) strings. Store them in IndexedDB, yes! but just don’t index them!
|
58
58
|
// https://dexie.org/docs/Version/Version.stores()#warning
|
59
|
-
balances: "id, source, status, address, tokenId"
|
60
|
-
meta: "id"
|
59
|
+
balances: "id, source, status, address, tokenId"
|
61
60
|
});
|
62
61
|
|
63
62
|
// this.on("ready", async () => {})
|
@@ -68,7 +67,7 @@ const db = new TalismanBalancesDatabase();
|
|
68
67
|
|
69
68
|
var packageJson = {
|
70
69
|
name: "@talismn/balances",
|
71
|
-
version: "0.0.0-pr660-
|
70
|
+
version: "0.0.0-pr660-20230328121248",
|
72
71
|
author: "Talisman",
|
73
72
|
homepage: "https://talisman.xyz",
|
74
73
|
license: "UNLICENSED",
|
@@ -162,17 +161,41 @@ const filterMirrorTokens = (balance, i, balances) => {
|
|
162
161
|
const mirrorOf = balance.token?.mirrorOf;
|
163
162
|
return !mirrorOf || !balances.find(b => b.tokenId === mirrorOf);
|
164
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
|
+
};
|
165
188
|
|
166
189
|
/**
|
167
190
|
* Sets all balance statuses from `live-${string}` to either `live` or `cached`
|
168
191
|
*/
|
169
|
-
const deriveStatuses = (
|
192
|
+
const deriveStatuses = (validSubscriptionIds, balances) => balances.map(balance => {
|
170
193
|
if (balance.status === "live" || balance.status === "cache" || balance.status === "stale") return balance;
|
171
|
-
if (
|
194
|
+
if (validSubscriptionIds.length < 1) return {
|
172
195
|
...balance,
|
173
196
|
status: "cache"
|
174
197
|
};
|
175
|
-
if (balance.status.slice("live-".length)
|
198
|
+
if (!validSubscriptionIds.includes(balance.status.slice("live-".length))) return {
|
176
199
|
...balance,
|
177
200
|
status: "cache"
|
178
201
|
};
|
@@ -701,10 +724,13 @@ exports.StorageHelper = StorageHelper;
|
|
701
724
|
exports.SumBalancesFormatter = SumBalancesFormatter;
|
702
725
|
exports.TalismanBalancesDatabase = TalismanBalancesDatabase;
|
703
726
|
exports.balances = balances;
|
727
|
+
exports.createSubscriptionId = createSubscriptionId;
|
704
728
|
exports.createTypeRegistryCache = createTypeRegistryCache;
|
705
729
|
exports.db = db;
|
730
|
+
exports.deleteSubscriptionId = deleteSubscriptionId;
|
706
731
|
exports.deriveStatuses = deriveStatuses;
|
707
732
|
exports.excludeFromFeePayableLocks = excludeFromFeePayableLocks;
|
708
733
|
exports.excludeFromTransferableAmount = excludeFromTransferableAmount;
|
709
734
|
exports.filterMirrorTokens = filterMirrorTokens;
|
735
|
+
exports.getValidSubscriptionIds = getValidSubscriptionIds;
|
710
736
|
exports.includeInTotalExtraAmount = includeInTotalExtraAmount;
|
@@ -41,15 +41,14 @@ class TalismanBalancesDatabase extends Dexie {
|
|
41
41
|
super("TalismanBalances");
|
42
42
|
|
43
43
|
// https://dexie.org/docs/Tutorial/Design#database-versioning
|
44
|
-
this.version(
|
44
|
+
this.version(1).stores({
|
45
45
|
// You only need to specify properties that you wish to index.
|
46
46
|
// The object store will allow any properties on your stored objects but you can only query them by indexed properties
|
47
47
|
// https://dexie.org/docs/API-Reference#declare-database
|
48
48
|
//
|
49
49
|
// Never index properties containing images, movies or large (huge) strings. Store them in IndexedDB, yes! but just don’t index them!
|
50
50
|
// https://dexie.org/docs/Version/Version.stores()#warning
|
51
|
-
balances: "id, source, status, address, tokenId"
|
52
|
-
meta: "id"
|
51
|
+
balances: "id, source, status, address, tokenId"
|
53
52
|
});
|
54
53
|
|
55
54
|
// this.on("ready", async () => {})
|
@@ -60,7 +59,7 @@ const db = new TalismanBalancesDatabase();
|
|
60
59
|
|
61
60
|
var packageJson = {
|
62
61
|
name: "@talismn/balances",
|
63
|
-
version: "0.0.0-pr660-
|
62
|
+
version: "0.0.0-pr660-20230328121248",
|
64
63
|
author: "Talisman",
|
65
64
|
homepage: "https://talisman.xyz",
|
66
65
|
license: "UNLICENSED",
|
@@ -154,17 +153,41 @@ const filterMirrorTokens = (balance, i, balances) => {
|
|
154
153
|
const mirrorOf = balance.token?.mirrorOf;
|
155
154
|
return !mirrorOf || !balances.find(b => b.tokenId === mirrorOf);
|
156
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
|
+
};
|
157
180
|
|
158
181
|
/**
|
159
182
|
* Sets all balance statuses from `live-${string}` to either `live` or `cached`
|
160
183
|
*/
|
161
|
-
const deriveStatuses = (
|
184
|
+
const deriveStatuses = (validSubscriptionIds, balances) => balances.map(balance => {
|
162
185
|
if (balance.status === "live" || balance.status === "cache" || balance.status === "stale") return balance;
|
163
|
-
if (
|
186
|
+
if (validSubscriptionIds.length < 1) return {
|
164
187
|
...balance,
|
165
188
|
status: "cache"
|
166
189
|
};
|
167
|
-
if (balance.status.slice("live-".length)
|
190
|
+
if (!validSubscriptionIds.includes(balance.status.slice("live-".length))) return {
|
168
191
|
...balance,
|
169
192
|
status: "cache"
|
170
193
|
};
|
@@ -683,4 +706,4 @@ class SumBalancesFormatter {
|
|
683
706
|
}
|
684
707
|
}
|
685
708
|
|
686
|
-
export { Balance, BalanceFormatter, BalanceStatusLive, Balances, DefaultBalanceModule, FiatSumBalancesFormatter, StorageHelper, SumBalancesFormatter, TalismanBalancesDatabase, balances, createTypeRegistryCache, db, deriveStatuses, 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-pr660-
|
3
|
+
"version": "0.0.0-pr660-20230328121248",
|
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-pr660-
|
31
|
-
"@talismn/chain-connector-evm": "^0.0.0-pr660-
|
32
|
-
"@talismn/chaindata-provider": "^0.0.0-pr660-
|
33
|
-
"@talismn/token-rates": "^0.0.0-pr660-
|
34
|
-
"@talismn/util": "^0.0.0-pr660-
|
30
|
+
"@talismn/chain-connector": "^0.0.0-pr660-20230328121248",
|
31
|
+
"@talismn/chain-connector-evm": "^0.0.0-pr660-20230328121248",
|
32
|
+
"@talismn/chaindata-provider": "^0.0.0-pr660-20230328121248",
|
33
|
+
"@talismn/token-rates": "^0.0.0-pr660-20230328121248",
|
34
|
+
"@talismn/util": "^0.0.0-pr660-20230328121248",
|
35
35
|
"anylogger": "^1.0.11",
|
36
36
|
"dexie": "^3.2.3"
|
37
37
|
},
|