@ocap/indexdb 1.30.16 → 1.30.18
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/esm/search-result.mjs +56 -20
- package/lib/search-result.cjs +56 -20
- package/package.json +4 -4
package/esm/search-result.mjs
CHANGED
|
@@ -21,6 +21,11 @@ const parseArray = (value) => {
|
|
|
21
21
|
}
|
|
22
22
|
return [];
|
|
23
23
|
};
|
|
24
|
+
const truncateAddress = (addr, prefix = 6, suffix = 4) => {
|
|
25
|
+
if (!addr) return "";
|
|
26
|
+
if (addr.length <= prefix + suffix + 3) return addr;
|
|
27
|
+
return `${addr.slice(0, prefix)}...${addr.slice(-suffix)}`;
|
|
28
|
+
};
|
|
24
29
|
const formatBNAmount = (value, decimal, symbol) => {
|
|
25
30
|
if (!value) return "";
|
|
26
31
|
let display = value;
|
|
@@ -123,43 +128,52 @@ const formatSearchDescription = (type, row) => {
|
|
|
123
128
|
const sender = getString(row, "sender");
|
|
124
129
|
const receiver = getString(row, "receiver");
|
|
125
130
|
const validity = typeof row.valid === "boolean" ? row.valid ? "Valid" : "Invalid" : typeof row.valid === "number" ? row.valid ? "Valid" : "Invalid" : "";
|
|
126
|
-
|
|
127
|
-
return compactParts([
|
|
128
|
-
sender && receiver ? `${sender} -> ${receiver}` : "",
|
|
129
|
-
validity,
|
|
130
|
-
height ? `Height ${height}` : ""
|
|
131
|
-
]);
|
|
131
|
+
return compactParts([sender && receiver ? `${truncateAddress(sender)} → ${truncateAddress(receiver)}` : "", validity]);
|
|
132
132
|
}
|
|
133
133
|
case "rollupBlock": {
|
|
134
134
|
const txs = getArray(row, "txs");
|
|
135
|
+
const rollup = getString(row, "rollup");
|
|
136
|
+
const proposer = getString(row, "proposer");
|
|
135
137
|
return compactParts([
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
rollup ? truncateAddress(rollup) : "",
|
|
139
|
+
proposer ? truncateAddress(proposer) : "",
|
|
138
140
|
txs.length ? `${txs.length} txs` : ""
|
|
139
141
|
]);
|
|
140
142
|
}
|
|
141
143
|
case "account": {
|
|
142
|
-
const
|
|
143
|
-
const
|
|
144
|
-
const balances =
|
|
144
|
+
const migratedTo = getString(row, "migratedTo");
|
|
145
|
+
const nonZeroTokens = parseArray(row.tokens).filter((t) => t && typeof t.balance === "string" && t.balance.length > 0 && t.balance !== "0");
|
|
146
|
+
const balances = nonZeroTokens.slice(0, 2).map((t) => formatBNAmount(t.balance, t.decimal, t.symbol)).filter(Boolean);
|
|
147
|
+
const moreTokens = nonZeroTokens.length - balances.length;
|
|
148
|
+
return compactParts([
|
|
149
|
+
migratedTo ? `Migrated → ${truncateAddress(migratedTo)}` : "",
|
|
150
|
+
balances.length ? `Balance ${balances.join(", ")}` : "",
|
|
151
|
+
moreTokens > 0 ? `+${moreTokens} more` : ""
|
|
152
|
+
]);
|
|
153
|
+
}
|
|
154
|
+
case "asset": {
|
|
155
|
+
const owner = getString(row, "owner");
|
|
156
|
+
const parent = getString(row, "parent");
|
|
157
|
+
const consumedTime = getString(row, "consumedTime");
|
|
145
158
|
return compactParts([
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
159
|
+
owner ? `Owner ${truncateAddress(owner)}` : "",
|
|
160
|
+
parent ? `Factory ${truncateAddress(parent)}` : "",
|
|
161
|
+
consumedTime ? `Consumed ${consumedTime.slice(0, 10)}` : ""
|
|
149
162
|
]);
|
|
150
163
|
}
|
|
151
|
-
case "asset": return compactParts([getString(row, "owner") ? `Owner ${getString(row, "owner")}` : "", getString(row, "parent") ? `Factory ${getString(row, "parent")}` : ""]);
|
|
152
164
|
case "token": {
|
|
153
165
|
const totalSupply = getString(row, "totalSupply");
|
|
154
166
|
const decimal = getNumber(row, "decimal");
|
|
155
167
|
const symbol = getString(row, "symbol");
|
|
156
|
-
|
|
168
|
+
const issuer = getString(row, "issuer");
|
|
169
|
+
return compactParts([totalSupply ? `Supply ${formatBNAmount(totalSupply, decimal ?? void 0, symbol)}` : "", issuer ? `Issuer ${truncateAddress(issuer)}` : ""]);
|
|
157
170
|
}
|
|
158
171
|
case "factory": {
|
|
172
|
+
const owner = getString(row, "owner");
|
|
159
173
|
const minted = getNumber(row, "numMinted");
|
|
160
174
|
const limit = getNumber(row, "limit", "limit_");
|
|
161
175
|
return compactParts([
|
|
162
|
-
|
|
176
|
+
owner ? `Owner ${truncateAddress(owner)}` : "",
|
|
163
177
|
minted !== null ? `${minted} minted` : "",
|
|
164
178
|
limit !== null ? `Limit ${limit}` : ""
|
|
165
179
|
]);
|
|
@@ -179,19 +193,38 @@ const formatSearchDescription = (type, row) => {
|
|
|
179
193
|
const sender = getString(row, "sender");
|
|
180
194
|
const receiver = getString(row, "receiver");
|
|
181
195
|
const revocable = typeof row.revocable === "boolean" ? row.revocable ? "Revocable" : "Irrevocable" : typeof row.revocable === "number" ? row.revocable ? "Revocable" : "Irrevocable" : "";
|
|
182
|
-
|
|
196
|
+
const nonZero = parseArray(row.tokens).filter((t) => t && typeof t.balance === "string" && t.balance.length > 0 && t.balance !== "0");
|
|
197
|
+
const stakedBalances = nonZero.slice(0, 2).map((t) => formatBNAmount(t.balance, t.decimal, t.symbol)).filter(Boolean);
|
|
198
|
+
const moreStaked = nonZero.length - stakedBalances.length;
|
|
199
|
+
return compactParts([
|
|
200
|
+
sender && receiver ? `${truncateAddress(sender)} → ${truncateAddress(receiver)}` : "",
|
|
201
|
+
stakedBalances.length ? `Staked ${stakedBalances.join(", ")}` : "",
|
|
202
|
+
moreStaked > 0 ? `+${moreStaked} more` : "",
|
|
203
|
+
revocable
|
|
204
|
+
]);
|
|
183
205
|
}
|
|
184
206
|
case "delegation": {
|
|
185
207
|
const from = getString(row, "from", "from_");
|
|
186
208
|
const to = getString(row, "to", "to_");
|
|
187
|
-
|
|
209
|
+
const validUntil = getNumber(row, "validUntil");
|
|
210
|
+
let validityText = "";
|
|
211
|
+
if (validUntil !== null) if (validUntil === 0) validityText = "Never expires";
|
|
212
|
+
else {
|
|
213
|
+
const ms = validUntil * 1e3;
|
|
214
|
+
const d = new Date(ms);
|
|
215
|
+
if (Number.isFinite(d.getTime())) validityText = `Valid until ${d.toISOString().slice(0, 10)}`;
|
|
216
|
+
}
|
|
217
|
+
return compactParts([from && to ? `${truncateAddress(from)} → ${truncateAddress(to)}` : "", validityText]);
|
|
188
218
|
}
|
|
189
219
|
case "rollup": {
|
|
190
220
|
const tokenInfo = parseObject(row.tokenInfo) ?? {};
|
|
221
|
+
const tokenAddress = getString(row, "tokenAddress");
|
|
191
222
|
const deposit = getString(row, "totalDepositAmount");
|
|
192
223
|
const withdraw = getString(row, "totalWithdrawAmount");
|
|
224
|
+
const paused = row.paused === true || row.paused === 1;
|
|
193
225
|
return compactParts([
|
|
194
|
-
|
|
226
|
+
row.closed === true || row.closed === 1 ? "Closed" : paused ? "Paused" : "",
|
|
227
|
+
tokenInfo.symbol ? `Token ${tokenInfo.symbol}` : tokenAddress ? `Token ${truncateAddress(tokenAddress)}` : "",
|
|
195
228
|
deposit ? `Deposits ${formatBNAmount(deposit, tokenInfo.decimal, tokenInfo.symbol)}` : "",
|
|
196
229
|
withdraw ? `Withdrawals ${formatBNAmount(withdraw, tokenInfo.decimal, tokenInfo.symbol)}` : ""
|
|
197
230
|
]);
|
|
@@ -218,6 +251,9 @@ const formatSearchTags = (type, row) => {
|
|
|
218
251
|
const status = getString(row, "status");
|
|
219
252
|
if (status) tags.add(status);
|
|
220
253
|
}
|
|
254
|
+
if (type === "rollupBlock") {
|
|
255
|
+
if (row.governance === true || row.governance === 1) tags.add("Governance");
|
|
256
|
+
}
|
|
221
257
|
return Array.from(tags);
|
|
222
258
|
};
|
|
223
259
|
const formatSearchTimestamp = (type, row) => {
|
package/lib/search-result.cjs
CHANGED
|
@@ -22,6 +22,11 @@ const parseArray = (value) => {
|
|
|
22
22
|
}
|
|
23
23
|
return [];
|
|
24
24
|
};
|
|
25
|
+
const truncateAddress = (addr, prefix = 6, suffix = 4) => {
|
|
26
|
+
if (!addr) return "";
|
|
27
|
+
if (addr.length <= prefix + suffix + 3) return addr;
|
|
28
|
+
return `${addr.slice(0, prefix)}...${addr.slice(-suffix)}`;
|
|
29
|
+
};
|
|
25
30
|
const formatBNAmount = (value, decimal, symbol) => {
|
|
26
31
|
if (!value) return "";
|
|
27
32
|
let display = value;
|
|
@@ -124,43 +129,52 @@ const formatSearchDescription = (type, row) => {
|
|
|
124
129
|
const sender = getString(row, "sender");
|
|
125
130
|
const receiver = getString(row, "receiver");
|
|
126
131
|
const validity = typeof row.valid === "boolean" ? row.valid ? "Valid" : "Invalid" : typeof row.valid === "number" ? row.valid ? "Valid" : "Invalid" : "";
|
|
127
|
-
|
|
128
|
-
return compactParts([
|
|
129
|
-
sender && receiver ? `${sender} -> ${receiver}` : "",
|
|
130
|
-
validity,
|
|
131
|
-
height ? `Height ${height}` : ""
|
|
132
|
-
]);
|
|
132
|
+
return compactParts([sender && receiver ? `${truncateAddress(sender)} → ${truncateAddress(receiver)}` : "", validity]);
|
|
133
133
|
}
|
|
134
134
|
case "rollupBlock": {
|
|
135
135
|
const txs = getArray(row, "txs");
|
|
136
|
+
const rollup = getString(row, "rollup");
|
|
137
|
+
const proposer = getString(row, "proposer");
|
|
136
138
|
return compactParts([
|
|
137
|
-
|
|
138
|
-
|
|
139
|
+
rollup ? truncateAddress(rollup) : "",
|
|
140
|
+
proposer ? truncateAddress(proposer) : "",
|
|
139
141
|
txs.length ? `${txs.length} txs` : ""
|
|
140
142
|
]);
|
|
141
143
|
}
|
|
142
144
|
case "account": {
|
|
143
|
-
const
|
|
144
|
-
const
|
|
145
|
-
const balances =
|
|
145
|
+
const migratedTo = getString(row, "migratedTo");
|
|
146
|
+
const nonZeroTokens = parseArray(row.tokens).filter((t) => t && typeof t.balance === "string" && t.balance.length > 0 && t.balance !== "0");
|
|
147
|
+
const balances = nonZeroTokens.slice(0, 2).map((t) => formatBNAmount(t.balance, t.decimal, t.symbol)).filter(Boolean);
|
|
148
|
+
const moreTokens = nonZeroTokens.length - balances.length;
|
|
149
|
+
return compactParts([
|
|
150
|
+
migratedTo ? `Migrated → ${truncateAddress(migratedTo)}` : "",
|
|
151
|
+
balances.length ? `Balance ${balances.join(", ")}` : "",
|
|
152
|
+
moreTokens > 0 ? `+${moreTokens} more` : ""
|
|
153
|
+
]);
|
|
154
|
+
}
|
|
155
|
+
case "asset": {
|
|
156
|
+
const owner = getString(row, "owner");
|
|
157
|
+
const parent = getString(row, "parent");
|
|
158
|
+
const consumedTime = getString(row, "consumedTime");
|
|
146
159
|
return compactParts([
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
160
|
+
owner ? `Owner ${truncateAddress(owner)}` : "",
|
|
161
|
+
parent ? `Factory ${truncateAddress(parent)}` : "",
|
|
162
|
+
consumedTime ? `Consumed ${consumedTime.slice(0, 10)}` : ""
|
|
150
163
|
]);
|
|
151
164
|
}
|
|
152
|
-
case "asset": return compactParts([getString(row, "owner") ? `Owner ${getString(row, "owner")}` : "", getString(row, "parent") ? `Factory ${getString(row, "parent")}` : ""]);
|
|
153
165
|
case "token": {
|
|
154
166
|
const totalSupply = getString(row, "totalSupply");
|
|
155
167
|
const decimal = getNumber(row, "decimal");
|
|
156
168
|
const symbol = getString(row, "symbol");
|
|
157
|
-
|
|
169
|
+
const issuer = getString(row, "issuer");
|
|
170
|
+
return compactParts([totalSupply ? `Supply ${formatBNAmount(totalSupply, decimal ?? void 0, symbol)}` : "", issuer ? `Issuer ${truncateAddress(issuer)}` : ""]);
|
|
158
171
|
}
|
|
159
172
|
case "factory": {
|
|
173
|
+
const owner = getString(row, "owner");
|
|
160
174
|
const minted = getNumber(row, "numMinted");
|
|
161
175
|
const limit = getNumber(row, "limit", "limit_");
|
|
162
176
|
return compactParts([
|
|
163
|
-
|
|
177
|
+
owner ? `Owner ${truncateAddress(owner)}` : "",
|
|
164
178
|
minted !== null ? `${minted} minted` : "",
|
|
165
179
|
limit !== null ? `Limit ${limit}` : ""
|
|
166
180
|
]);
|
|
@@ -180,19 +194,38 @@ const formatSearchDescription = (type, row) => {
|
|
|
180
194
|
const sender = getString(row, "sender");
|
|
181
195
|
const receiver = getString(row, "receiver");
|
|
182
196
|
const revocable = typeof row.revocable === "boolean" ? row.revocable ? "Revocable" : "Irrevocable" : typeof row.revocable === "number" ? row.revocable ? "Revocable" : "Irrevocable" : "";
|
|
183
|
-
|
|
197
|
+
const nonZero = parseArray(row.tokens).filter((t) => t && typeof t.balance === "string" && t.balance.length > 0 && t.balance !== "0");
|
|
198
|
+
const stakedBalances = nonZero.slice(0, 2).map((t) => formatBNAmount(t.balance, t.decimal, t.symbol)).filter(Boolean);
|
|
199
|
+
const moreStaked = nonZero.length - stakedBalances.length;
|
|
200
|
+
return compactParts([
|
|
201
|
+
sender && receiver ? `${truncateAddress(sender)} → ${truncateAddress(receiver)}` : "",
|
|
202
|
+
stakedBalances.length ? `Staked ${stakedBalances.join(", ")}` : "",
|
|
203
|
+
moreStaked > 0 ? `+${moreStaked} more` : "",
|
|
204
|
+
revocable
|
|
205
|
+
]);
|
|
184
206
|
}
|
|
185
207
|
case "delegation": {
|
|
186
208
|
const from = getString(row, "from", "from_");
|
|
187
209
|
const to = getString(row, "to", "to_");
|
|
188
|
-
|
|
210
|
+
const validUntil = getNumber(row, "validUntil");
|
|
211
|
+
let validityText = "";
|
|
212
|
+
if (validUntil !== null) if (validUntil === 0) validityText = "Never expires";
|
|
213
|
+
else {
|
|
214
|
+
const ms = validUntil * 1e3;
|
|
215
|
+
const d = new Date(ms);
|
|
216
|
+
if (Number.isFinite(d.getTime())) validityText = `Valid until ${d.toISOString().slice(0, 10)}`;
|
|
217
|
+
}
|
|
218
|
+
return compactParts([from && to ? `${truncateAddress(from)} → ${truncateAddress(to)}` : "", validityText]);
|
|
189
219
|
}
|
|
190
220
|
case "rollup": {
|
|
191
221
|
const tokenInfo = parseObject(row.tokenInfo) ?? {};
|
|
222
|
+
const tokenAddress = getString(row, "tokenAddress");
|
|
192
223
|
const deposit = getString(row, "totalDepositAmount");
|
|
193
224
|
const withdraw = getString(row, "totalWithdrawAmount");
|
|
225
|
+
const paused = row.paused === true || row.paused === 1;
|
|
194
226
|
return compactParts([
|
|
195
|
-
|
|
227
|
+
row.closed === true || row.closed === 1 ? "Closed" : paused ? "Paused" : "",
|
|
228
|
+
tokenInfo.symbol ? `Token ${tokenInfo.symbol}` : tokenAddress ? `Token ${truncateAddress(tokenAddress)}` : "",
|
|
196
229
|
deposit ? `Deposits ${formatBNAmount(deposit, tokenInfo.decimal, tokenInfo.symbol)}` : "",
|
|
197
230
|
withdraw ? `Withdrawals ${formatBNAmount(withdraw, tokenInfo.decimal, tokenInfo.symbol)}` : ""
|
|
198
231
|
]);
|
|
@@ -219,6 +252,9 @@ const formatSearchTags = (type, row) => {
|
|
|
219
252
|
const status = getString(row, "status");
|
|
220
253
|
if (status) tags.add(status);
|
|
221
254
|
}
|
|
255
|
+
if (type === "rollupBlock") {
|
|
256
|
+
if (row.governance === true || row.governance === 1) tags.add("Governance");
|
|
257
|
+
}
|
|
222
258
|
return Array.from(tags);
|
|
223
259
|
};
|
|
224
260
|
const formatSearchTimestamp = (type, row) => {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.30.
|
|
6
|
+
"version": "1.30.18",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"description": "Defines the basic interface for OCAP IndexDB",
|
|
9
9
|
"main": "./lib/main.cjs",
|
|
@@ -52,9 +52,9 @@
|
|
|
52
52
|
"tsdown": "^0.18.4"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@ocap/state": "1.30.
|
|
56
|
-
"@ocap/types": "1.30.
|
|
57
|
-
"@ocap/util": "1.30.
|
|
55
|
+
"@ocap/state": "1.30.18",
|
|
56
|
+
"@ocap/types": "1.30.18",
|
|
57
|
+
"@ocap/util": "1.30.18",
|
|
58
58
|
"kareem": "^2.4.1",
|
|
59
59
|
"lodash": "^4.17.23"
|
|
60
60
|
}
|