@ocap/indexdb 1.18.18 → 1.18.20
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/util.js +16 -7
- package/package.json +4 -4
package/lib/util.js
CHANGED
@@ -6,15 +6,19 @@ const uniqBy = require('lodash/uniqBy');
|
|
6
6
|
const { createSortedList } = require('@ocap/util/lib/create-sorted-list');
|
7
7
|
const { BN } = require('@ocap/util');
|
8
8
|
|
9
|
-
const formatTokenMeta = (token, tokenStates) => {
|
9
|
+
const formatTokenMeta = (token, tokenStates, ...rest) => {
|
10
10
|
if (!tokenStates) {
|
11
11
|
return token;
|
12
12
|
}
|
13
13
|
|
14
|
-
const tokenState = tokenStates.find((x) => x.address === token.address);
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
const tokenState = tokenStates.filter(Boolean).find((x) => x.address === token.address);
|
15
|
+
if (tokenState) {
|
16
|
+
token.decimal = tokenState.decimal;
|
17
|
+
token.unit = tokenState.unit;
|
18
|
+
token.symbol = tokenState.symbol;
|
19
|
+
} else {
|
20
|
+
console.warn('Invalid token state on formatting', token, tokenStates, ...rest);
|
21
|
+
}
|
18
22
|
|
19
23
|
return token;
|
20
24
|
};
|
@@ -235,13 +239,18 @@ const createIndexedTransaction = async (tx, ctx, indexdb) => {
|
|
235
239
|
|
236
240
|
const createIndexedStake = async (x, ctx, indexdb) => {
|
237
241
|
const tokens = uniq(Object.keys(x.tokens || {}).concat(Object.keys(x.revokedTokens || {})));
|
238
|
-
const
|
242
|
+
const existTokenStates = ctx.tokenStates || [];
|
243
|
+
const missingTokenStates = await Promise.all(
|
244
|
+
tokens.filter((a) => !existTokenStates.find((t) => t.address === a)).map((t) => indexdb.token.get(t))
|
245
|
+
);
|
246
|
+
const tokenStates = [...existTokenStates, ...missingTokenStates];
|
239
247
|
return {
|
240
248
|
...pick(x, [
|
241
249
|
'address',
|
242
250
|
'sender',
|
243
251
|
'receiver',
|
244
252
|
'assets',
|
253
|
+
'slashers',
|
245
254
|
'revocable',
|
246
255
|
'data',
|
247
256
|
'message',
|
@@ -249,7 +258,7 @@ const createIndexedStake = async (x, ctx, indexdb) => {
|
|
249
258
|
'revokedAssets',
|
250
259
|
]),
|
251
260
|
tokens: Object.keys(x.tokens || {}).map((address) =>
|
252
|
-
formatTokenMeta({ address, balance: x.tokens[address] }, tokenStates)
|
261
|
+
formatTokenMeta({ address, balance: x.tokens[address] }, tokenStates, x)
|
253
262
|
),
|
254
263
|
revokedTokens: Object.keys(x.revokedTokens || {}).map((address) =>
|
255
264
|
formatTokenMeta({ address, balance: x.revokedTokens[address] }, tokenStates)
|
package/package.json
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
"publishConfig": {
|
4
4
|
"access": "public"
|
5
5
|
},
|
6
|
-
"version": "1.18.
|
6
|
+
"version": "1.18.20",
|
7
7
|
"description": "Defines the basic interface for OCAP IndexDB",
|
8
8
|
"main": "lib/main.js",
|
9
9
|
"files": [
|
@@ -25,10 +25,10 @@
|
|
25
25
|
"jest": "^27.5.1"
|
26
26
|
},
|
27
27
|
"dependencies": {
|
28
|
-
"@ocap/state": "1.18.
|
29
|
-
"@ocap/util": "1.18.
|
28
|
+
"@ocap/state": "1.18.20",
|
29
|
+
"@ocap/util": "1.18.20",
|
30
30
|
"kareem": "^2.4.1",
|
31
31
|
"lodash": "^4.17.21"
|
32
32
|
},
|
33
|
-
"gitHead": "
|
33
|
+
"gitHead": "f220849b0c31f7f90281684080f001e18df9e077"
|
34
34
|
}
|