@ocap/indexdb 1.30.15 → 1.30.17
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 -15
- package/lib/search-result.cjs +56 -15
- 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;
|
|
@@ -125,41 +130,55 @@ const formatSearchDescription = (type, row) => {
|
|
|
125
130
|
const validity = typeof row.valid === "boolean" ? row.valid ? "Valid" : "Invalid" : typeof row.valid === "number" ? row.valid ? "Valid" : "Invalid" : "";
|
|
126
131
|
const height = getString(row, "height");
|
|
127
132
|
return compactParts([
|
|
128
|
-
sender && receiver ? `${sender}
|
|
133
|
+
sender && receiver ? `${truncateAddress(sender)} → ${truncateAddress(receiver)}` : "",
|
|
129
134
|
validity,
|
|
130
135
|
height ? `Height ${height}` : ""
|
|
131
136
|
]);
|
|
132
137
|
}
|
|
133
138
|
case "rollupBlock": {
|
|
134
139
|
const txs = getArray(row, "txs");
|
|
140
|
+
const rollup = getString(row, "rollup");
|
|
141
|
+
const proposer = getString(row, "proposer");
|
|
135
142
|
return compactParts([
|
|
136
|
-
|
|
137
|
-
|
|
143
|
+
rollup ? truncateAddress(rollup) : "",
|
|
144
|
+
proposer ? truncateAddress(proposer) : "",
|
|
138
145
|
txs.length ? `${txs.length} txs` : ""
|
|
139
146
|
]);
|
|
140
147
|
}
|
|
141
148
|
case "account": {
|
|
142
|
-
const
|
|
143
|
-
const
|
|
144
|
-
const balances =
|
|
149
|
+
const migratedTo = getString(row, "migratedTo");
|
|
150
|
+
const nonZeroTokens = parseArray(row.tokens).filter((t) => t && typeof t.balance === "string" && t.balance.length > 0 && t.balance !== "0");
|
|
151
|
+
const balances = nonZeroTokens.slice(0, 2).map((t) => formatBNAmount(t.balance, t.decimal, t.symbol)).filter(Boolean);
|
|
152
|
+
const moreTokens = nonZeroTokens.length - balances.length;
|
|
153
|
+
return compactParts([
|
|
154
|
+
migratedTo ? `Migrated → ${truncateAddress(migratedTo)}` : "",
|
|
155
|
+
balances.length ? `Balance ${balances.join(", ")}` : "",
|
|
156
|
+
moreTokens > 0 ? `+${moreTokens} more` : ""
|
|
157
|
+
]);
|
|
158
|
+
}
|
|
159
|
+
case "asset": {
|
|
160
|
+
const owner = getString(row, "owner");
|
|
161
|
+
const parent = getString(row, "parent");
|
|
162
|
+
const consumedTime = getString(row, "consumedTime");
|
|
145
163
|
return compactParts([
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
164
|
+
owner ? `Owner ${truncateAddress(owner)}` : "",
|
|
165
|
+
parent ? `Factory ${truncateAddress(parent)}` : "",
|
|
166
|
+
consumedTime ? `Consumed ${consumedTime.slice(0, 10)}` : ""
|
|
149
167
|
]);
|
|
150
168
|
}
|
|
151
|
-
case "asset": return compactParts([getString(row, "owner") ? `Owner ${getString(row, "owner")}` : "", getString(row, "parent") ? `Factory ${getString(row, "parent")}` : ""]);
|
|
152
169
|
case "token": {
|
|
153
170
|
const totalSupply = getString(row, "totalSupply");
|
|
154
171
|
const decimal = getNumber(row, "decimal");
|
|
155
172
|
const symbol = getString(row, "symbol");
|
|
156
|
-
|
|
173
|
+
const issuer = getString(row, "issuer");
|
|
174
|
+
return compactParts([totalSupply ? `Supply ${formatBNAmount(totalSupply, decimal ?? void 0, symbol)}` : "", issuer ? `Issuer ${truncateAddress(issuer)}` : ""]);
|
|
157
175
|
}
|
|
158
176
|
case "factory": {
|
|
177
|
+
const owner = getString(row, "owner");
|
|
159
178
|
const minted = getNumber(row, "numMinted");
|
|
160
179
|
const limit = getNumber(row, "limit", "limit_");
|
|
161
180
|
return compactParts([
|
|
162
|
-
|
|
181
|
+
owner ? `Owner ${truncateAddress(owner)}` : "",
|
|
163
182
|
minted !== null ? `${minted} minted` : "",
|
|
164
183
|
limit !== null ? `Limit ${limit}` : ""
|
|
165
184
|
]);
|
|
@@ -179,19 +198,38 @@ const formatSearchDescription = (type, row) => {
|
|
|
179
198
|
const sender = getString(row, "sender");
|
|
180
199
|
const receiver = getString(row, "receiver");
|
|
181
200
|
const revocable = typeof row.revocable === "boolean" ? row.revocable ? "Revocable" : "Irrevocable" : typeof row.revocable === "number" ? row.revocable ? "Revocable" : "Irrevocable" : "";
|
|
182
|
-
|
|
201
|
+
const nonZero = parseArray(row.tokens).filter((t) => t && typeof t.balance === "string" && t.balance.length > 0 && t.balance !== "0");
|
|
202
|
+
const stakedBalances = nonZero.slice(0, 2).map((t) => formatBNAmount(t.balance, t.decimal, t.symbol)).filter(Boolean);
|
|
203
|
+
const moreStaked = nonZero.length - stakedBalances.length;
|
|
204
|
+
return compactParts([
|
|
205
|
+
sender && receiver ? `${truncateAddress(sender)} → ${truncateAddress(receiver)}` : "",
|
|
206
|
+
stakedBalances.length ? `Staked ${stakedBalances.join(", ")}` : "",
|
|
207
|
+
moreStaked > 0 ? `+${moreStaked} more` : "",
|
|
208
|
+
revocable
|
|
209
|
+
]);
|
|
183
210
|
}
|
|
184
211
|
case "delegation": {
|
|
185
212
|
const from = getString(row, "from", "from_");
|
|
186
213
|
const to = getString(row, "to", "to_");
|
|
187
|
-
|
|
214
|
+
const validUntil = getNumber(row, "validUntil");
|
|
215
|
+
let validityText = "";
|
|
216
|
+
if (validUntil !== null) if (validUntil === 0) validityText = "Never expires";
|
|
217
|
+
else {
|
|
218
|
+
const ms = validUntil * 1e3;
|
|
219
|
+
const d = new Date(ms);
|
|
220
|
+
if (Number.isFinite(d.getTime())) validityText = `Valid until ${d.toISOString().slice(0, 10)}`;
|
|
221
|
+
}
|
|
222
|
+
return compactParts([from && to ? `${truncateAddress(from)} → ${truncateAddress(to)}` : "", validityText]);
|
|
188
223
|
}
|
|
189
224
|
case "rollup": {
|
|
190
225
|
const tokenInfo = parseObject(row.tokenInfo) ?? {};
|
|
226
|
+
const tokenAddress = getString(row, "tokenAddress");
|
|
191
227
|
const deposit = getString(row, "totalDepositAmount");
|
|
192
228
|
const withdraw = getString(row, "totalWithdrawAmount");
|
|
229
|
+
const paused = row.paused === true || row.paused === 1;
|
|
193
230
|
return compactParts([
|
|
194
|
-
|
|
231
|
+
row.closed === true || row.closed === 1 ? "Closed" : paused ? "Paused" : "",
|
|
232
|
+
tokenInfo.symbol ? `Token ${tokenInfo.symbol}` : tokenAddress ? `Token ${truncateAddress(tokenAddress)}` : "",
|
|
195
233
|
deposit ? `Deposits ${formatBNAmount(deposit, tokenInfo.decimal, tokenInfo.symbol)}` : "",
|
|
196
234
|
withdraw ? `Withdrawals ${formatBNAmount(withdraw, tokenInfo.decimal, tokenInfo.symbol)}` : ""
|
|
197
235
|
]);
|
|
@@ -218,6 +256,9 @@ const formatSearchTags = (type, row) => {
|
|
|
218
256
|
const status = getString(row, "status");
|
|
219
257
|
if (status) tags.add(status);
|
|
220
258
|
}
|
|
259
|
+
if (type === "rollupBlock") {
|
|
260
|
+
if (row.governance === true || row.governance === 1) tags.add("Governance");
|
|
261
|
+
}
|
|
221
262
|
return Array.from(tags);
|
|
222
263
|
};
|
|
223
264
|
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;
|
|
@@ -126,41 +131,55 @@ const formatSearchDescription = (type, row) => {
|
|
|
126
131
|
const validity = typeof row.valid === "boolean" ? row.valid ? "Valid" : "Invalid" : typeof row.valid === "number" ? row.valid ? "Valid" : "Invalid" : "";
|
|
127
132
|
const height = getString(row, "height");
|
|
128
133
|
return compactParts([
|
|
129
|
-
sender && receiver ? `${sender}
|
|
134
|
+
sender && receiver ? `${truncateAddress(sender)} → ${truncateAddress(receiver)}` : "",
|
|
130
135
|
validity,
|
|
131
136
|
height ? `Height ${height}` : ""
|
|
132
137
|
]);
|
|
133
138
|
}
|
|
134
139
|
case "rollupBlock": {
|
|
135
140
|
const txs = getArray(row, "txs");
|
|
141
|
+
const rollup = getString(row, "rollup");
|
|
142
|
+
const proposer = getString(row, "proposer");
|
|
136
143
|
return compactParts([
|
|
137
|
-
|
|
138
|
-
|
|
144
|
+
rollup ? truncateAddress(rollup) : "",
|
|
145
|
+
proposer ? truncateAddress(proposer) : "",
|
|
139
146
|
txs.length ? `${txs.length} txs` : ""
|
|
140
147
|
]);
|
|
141
148
|
}
|
|
142
149
|
case "account": {
|
|
143
|
-
const
|
|
144
|
-
const
|
|
145
|
-
const balances =
|
|
150
|
+
const migratedTo = getString(row, "migratedTo");
|
|
151
|
+
const nonZeroTokens = parseArray(row.tokens).filter((t) => t && typeof t.balance === "string" && t.balance.length > 0 && t.balance !== "0");
|
|
152
|
+
const balances = nonZeroTokens.slice(0, 2).map((t) => formatBNAmount(t.balance, t.decimal, t.symbol)).filter(Boolean);
|
|
153
|
+
const moreTokens = nonZeroTokens.length - balances.length;
|
|
154
|
+
return compactParts([
|
|
155
|
+
migratedTo ? `Migrated → ${truncateAddress(migratedTo)}` : "",
|
|
156
|
+
balances.length ? `Balance ${balances.join(", ")}` : "",
|
|
157
|
+
moreTokens > 0 ? `+${moreTokens} more` : ""
|
|
158
|
+
]);
|
|
159
|
+
}
|
|
160
|
+
case "asset": {
|
|
161
|
+
const owner = getString(row, "owner");
|
|
162
|
+
const parent = getString(row, "parent");
|
|
163
|
+
const consumedTime = getString(row, "consumedTime");
|
|
146
164
|
return compactParts([
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
165
|
+
owner ? `Owner ${truncateAddress(owner)}` : "",
|
|
166
|
+
parent ? `Factory ${truncateAddress(parent)}` : "",
|
|
167
|
+
consumedTime ? `Consumed ${consumedTime.slice(0, 10)}` : ""
|
|
150
168
|
]);
|
|
151
169
|
}
|
|
152
|
-
case "asset": return compactParts([getString(row, "owner") ? `Owner ${getString(row, "owner")}` : "", getString(row, "parent") ? `Factory ${getString(row, "parent")}` : ""]);
|
|
153
170
|
case "token": {
|
|
154
171
|
const totalSupply = getString(row, "totalSupply");
|
|
155
172
|
const decimal = getNumber(row, "decimal");
|
|
156
173
|
const symbol = getString(row, "symbol");
|
|
157
|
-
|
|
174
|
+
const issuer = getString(row, "issuer");
|
|
175
|
+
return compactParts([totalSupply ? `Supply ${formatBNAmount(totalSupply, decimal ?? void 0, symbol)}` : "", issuer ? `Issuer ${truncateAddress(issuer)}` : ""]);
|
|
158
176
|
}
|
|
159
177
|
case "factory": {
|
|
178
|
+
const owner = getString(row, "owner");
|
|
160
179
|
const minted = getNumber(row, "numMinted");
|
|
161
180
|
const limit = getNumber(row, "limit", "limit_");
|
|
162
181
|
return compactParts([
|
|
163
|
-
|
|
182
|
+
owner ? `Owner ${truncateAddress(owner)}` : "",
|
|
164
183
|
minted !== null ? `${minted} minted` : "",
|
|
165
184
|
limit !== null ? `Limit ${limit}` : ""
|
|
166
185
|
]);
|
|
@@ -180,19 +199,38 @@ const formatSearchDescription = (type, row) => {
|
|
|
180
199
|
const sender = getString(row, "sender");
|
|
181
200
|
const receiver = getString(row, "receiver");
|
|
182
201
|
const revocable = typeof row.revocable === "boolean" ? row.revocable ? "Revocable" : "Irrevocable" : typeof row.revocable === "number" ? row.revocable ? "Revocable" : "Irrevocable" : "";
|
|
183
|
-
|
|
202
|
+
const nonZero = parseArray(row.tokens).filter((t) => t && typeof t.balance === "string" && t.balance.length > 0 && t.balance !== "0");
|
|
203
|
+
const stakedBalances = nonZero.slice(0, 2).map((t) => formatBNAmount(t.balance, t.decimal, t.symbol)).filter(Boolean);
|
|
204
|
+
const moreStaked = nonZero.length - stakedBalances.length;
|
|
205
|
+
return compactParts([
|
|
206
|
+
sender && receiver ? `${truncateAddress(sender)} → ${truncateAddress(receiver)}` : "",
|
|
207
|
+
stakedBalances.length ? `Staked ${stakedBalances.join(", ")}` : "",
|
|
208
|
+
moreStaked > 0 ? `+${moreStaked} more` : "",
|
|
209
|
+
revocable
|
|
210
|
+
]);
|
|
184
211
|
}
|
|
185
212
|
case "delegation": {
|
|
186
213
|
const from = getString(row, "from", "from_");
|
|
187
214
|
const to = getString(row, "to", "to_");
|
|
188
|
-
|
|
215
|
+
const validUntil = getNumber(row, "validUntil");
|
|
216
|
+
let validityText = "";
|
|
217
|
+
if (validUntil !== null) if (validUntil === 0) validityText = "Never expires";
|
|
218
|
+
else {
|
|
219
|
+
const ms = validUntil * 1e3;
|
|
220
|
+
const d = new Date(ms);
|
|
221
|
+
if (Number.isFinite(d.getTime())) validityText = `Valid until ${d.toISOString().slice(0, 10)}`;
|
|
222
|
+
}
|
|
223
|
+
return compactParts([from && to ? `${truncateAddress(from)} → ${truncateAddress(to)}` : "", validityText]);
|
|
189
224
|
}
|
|
190
225
|
case "rollup": {
|
|
191
226
|
const tokenInfo = parseObject(row.tokenInfo) ?? {};
|
|
227
|
+
const tokenAddress = getString(row, "tokenAddress");
|
|
192
228
|
const deposit = getString(row, "totalDepositAmount");
|
|
193
229
|
const withdraw = getString(row, "totalWithdrawAmount");
|
|
230
|
+
const paused = row.paused === true || row.paused === 1;
|
|
194
231
|
return compactParts([
|
|
195
|
-
|
|
232
|
+
row.closed === true || row.closed === 1 ? "Closed" : paused ? "Paused" : "",
|
|
233
|
+
tokenInfo.symbol ? `Token ${tokenInfo.symbol}` : tokenAddress ? `Token ${truncateAddress(tokenAddress)}` : "",
|
|
196
234
|
deposit ? `Deposits ${formatBNAmount(deposit, tokenInfo.decimal, tokenInfo.symbol)}` : "",
|
|
197
235
|
withdraw ? `Withdrawals ${formatBNAmount(withdraw, tokenInfo.decimal, tokenInfo.symbol)}` : ""
|
|
198
236
|
]);
|
|
@@ -219,6 +257,9 @@ const formatSearchTags = (type, row) => {
|
|
|
219
257
|
const status = getString(row, "status");
|
|
220
258
|
if (status) tags.add(status);
|
|
221
259
|
}
|
|
260
|
+
if (type === "rollupBlock") {
|
|
261
|
+
if (row.governance === true || row.governance === 1) tags.add("Governance");
|
|
262
|
+
}
|
|
222
263
|
return Array.from(tags);
|
|
223
264
|
};
|
|
224
265
|
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.17",
|
|
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.17",
|
|
56
|
+
"@ocap/types": "1.30.17",
|
|
57
|
+
"@ocap/util": "1.30.17",
|
|
58
58
|
"kareem": "^2.4.1",
|
|
59
59
|
"lodash": "^4.17.23"
|
|
60
60
|
}
|