@lodestar/db 1.34.0-dev.2f71baeaa0 → 1.34.0-dev.32681419fd
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/lib/abstractPrefixedRepository.d.ts +8 -13
- package/lib/abstractPrefixedRepository.js +17 -31
- package/lib/abstractPrefixedRepository.js.map +1 -1
- package/lib/util.d.ts +13 -1
- package/lib/util.js +22 -2
- package/lib/util.js.map +1 -1
- package/package.json +5 -5
|
@@ -17,6 +17,10 @@ export declare abstract class PrefixedRepository<P, I extends Id, T> {
|
|
|
17
17
|
protected type: Type<T>;
|
|
18
18
|
private readonly bucketId;
|
|
19
19
|
private readonly dbReqOpts;
|
|
20
|
+
/** Inclusive range for the minimum key for the bucket */
|
|
21
|
+
private readonly minKey;
|
|
22
|
+
/** Exclusive range for the maximum key for the bucket */
|
|
23
|
+
private readonly maxKey;
|
|
20
24
|
protected constructor(config: ChainForkConfig, db: Db, bucket: number, type: Type<T>, bucketId: string);
|
|
21
25
|
abstract encodeKeyRaw(prefix: P, id: I): Uint8Array;
|
|
22
26
|
abstract decodeKeyRaw(raw: Uint8Array): {
|
|
@@ -47,23 +51,11 @@ export declare abstract class PrefixedRepository<P, I extends Id, T> {
|
|
|
47
51
|
delete(prefix: P, id: I): Promise<void>;
|
|
48
52
|
deleteMany(prefix: P | P[]): Promise<void>;
|
|
49
53
|
valuesStream(prefix: P | P[]): AsyncIterable<T>;
|
|
50
|
-
/**
|
|
51
|
-
* Non iterative version of `valuesStream`.
|
|
52
|
-
*/
|
|
53
|
-
values(prefix: P | P[]): Promise<T[]>;
|
|
54
54
|
valuesStreamBinary(prefix: P | P[]): AsyncIterable<{
|
|
55
55
|
prefix: P;
|
|
56
56
|
id: I;
|
|
57
57
|
value: Uint8Array;
|
|
58
58
|
}>;
|
|
59
|
-
/**
|
|
60
|
-
* Non iterative version of `valuesStreamBinary`.
|
|
61
|
-
*/
|
|
62
|
-
valuesBinary(prefix: P | P[]): Promise<{
|
|
63
|
-
prefix: P;
|
|
64
|
-
id: I;
|
|
65
|
-
value: Uint8Array;
|
|
66
|
-
}[]>;
|
|
67
59
|
entriesStream(prefix: P | P[]): AsyncIterable<{
|
|
68
60
|
prefix: P;
|
|
69
61
|
id: I;
|
|
@@ -74,7 +66,10 @@ export declare abstract class PrefixedRepository<P, I extends Id, T> {
|
|
|
74
66
|
id: I;
|
|
75
67
|
value: Uint8Array;
|
|
76
68
|
}>;
|
|
77
|
-
keys(opts?: FilterOptions<
|
|
69
|
+
keys(opts?: FilterOptions<{
|
|
70
|
+
prefix: P;
|
|
71
|
+
id: I;
|
|
72
|
+
}>): Promise<{
|
|
78
73
|
prefix: P;
|
|
79
74
|
id: I;
|
|
80
75
|
}[]>;
|
|
@@ -15,6 +15,8 @@ export class PrefixedRepository {
|
|
|
15
15
|
this.type = type;
|
|
16
16
|
this.bucketId = bucketId;
|
|
17
17
|
this.dbReqOpts = { bucketId: this.bucketId };
|
|
18
|
+
this.minKey = encodeKey(bucket, Buffer.alloc(0));
|
|
19
|
+
this.maxKey = encodeKey(bucket + 1, Buffer.alloc(0));
|
|
18
20
|
}
|
|
19
21
|
encodeValue(value) {
|
|
20
22
|
return this.type.serialize(value);
|
|
@@ -112,16 +114,6 @@ export class PrefixedRepository {
|
|
|
112
114
|
}
|
|
113
115
|
}
|
|
114
116
|
}
|
|
115
|
-
/**
|
|
116
|
-
* Non iterative version of `valuesStream`.
|
|
117
|
-
*/
|
|
118
|
-
async values(prefix) {
|
|
119
|
-
const result = [];
|
|
120
|
-
for await (const value of this.valuesStream(prefix)) {
|
|
121
|
-
result.push(value);
|
|
122
|
-
}
|
|
123
|
-
return result;
|
|
124
|
-
}
|
|
125
117
|
async *valuesStreamBinary(prefix) {
|
|
126
118
|
for (const p of Array.isArray(prefix) ? prefix : [prefix]) {
|
|
127
119
|
for await (const { key, value } of this.db.entriesStream({
|
|
@@ -138,16 +130,6 @@ export class PrefixedRepository {
|
|
|
138
130
|
}
|
|
139
131
|
}
|
|
140
132
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Non iterative version of `valuesStreamBinary`.
|
|
143
|
-
*/
|
|
144
|
-
async valuesBinary(prefix) {
|
|
145
|
-
const result = [];
|
|
146
|
-
for await (const value of this.valuesStreamBinary(prefix)) {
|
|
147
|
-
result.push(value);
|
|
148
|
-
}
|
|
149
|
-
return result;
|
|
150
|
-
}
|
|
151
133
|
async *entriesStream(prefix) {
|
|
152
134
|
for (const v of Array.isArray(prefix) ? prefix : [prefix]) {
|
|
153
135
|
for await (const { key, value } of this.db.entriesStream({
|
|
@@ -168,7 +150,7 @@ export class PrefixedRepository {
|
|
|
168
150
|
for (const v of Array.isArray(prefix) ? prefix : [prefix]) {
|
|
169
151
|
for await (const { key, value } of this.db.entriesStream({
|
|
170
152
|
gte: this.wrapKey(this.getMinKeyRaw(v)),
|
|
171
|
-
|
|
153
|
+
lte: this.wrapKey(this.getMaxKeyRaw(v)),
|
|
172
154
|
bucketId: this.bucketId,
|
|
173
155
|
})) {
|
|
174
156
|
const { prefix, id } = this.decodeKeyRaw(this.unwrapKey(key));
|
|
@@ -184,19 +166,23 @@ export class PrefixedRepository {
|
|
|
184
166
|
const optsBuff = {
|
|
185
167
|
bucketId: this.bucketId,
|
|
186
168
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
169
|
+
if (opts?.gte !== undefined) {
|
|
170
|
+
optsBuff.gte = this.wrapKey(this.encodeKeyRaw(opts.gte.prefix, opts.gte.id));
|
|
171
|
+
}
|
|
172
|
+
else if (opts?.gt !== undefined) {
|
|
173
|
+
optsBuff.gt = this.wrapKey(this.encodeKeyRaw(opts.gt.prefix, opts.gt.id));
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
optsBuff.gte = this.minKey;
|
|
190
177
|
}
|
|
191
|
-
|
|
192
|
-
optsBuff.lte = this.wrapKey(opts.lte);
|
|
178
|
+
if (opts?.lte !== undefined) {
|
|
179
|
+
optsBuff.lte = this.wrapKey(this.encodeKeyRaw(opts.lte.prefix, opts.lte.id));
|
|
193
180
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
optsBuff.gt = this.wrapKey(opts.gt);
|
|
181
|
+
else if (opts?.lt !== undefined) {
|
|
182
|
+
optsBuff.lt = this.wrapKey(this.encodeKeyRaw(opts.lt.prefix, opts.lt.id));
|
|
197
183
|
}
|
|
198
|
-
else
|
|
199
|
-
optsBuff.
|
|
184
|
+
else {
|
|
185
|
+
optsBuff.lt = this.maxKey;
|
|
200
186
|
}
|
|
201
187
|
if (opts?.reverse !== undefined)
|
|
202
188
|
optsBuff.reverse = opts.reverse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractPrefixedRepository.js","sourceRoot":"","sources":["../src/abstractPrefixedRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AAIpC;;;;;;GAMG;AACH,MAAM,OAAgB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"abstractPrefixedRepository.js","sourceRoot":"","sources":["../src/abstractPrefixedRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AAIpC;;;;;;GAMG;AACH,MAAM,OAAgB,kBAAkB;IAOtC,YACY,MAAuB,EACvB,EAAM,EACN,MAAc,EACd,IAAa,EACN,QAAgB;QAJvB,WAAM,GAAN,MAAM,CAAiB;QACvB,OAAE,GAAF,EAAE,CAAI;QACN,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;QACN,aAAQ,GAAR,QAAQ,CAAQ;QAEjC,IAAI,CAAC,SAAS,GAAG,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAaS,WAAW,CAAC,KAAQ;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAES,WAAW,CAAC,IAAgB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAES,OAAO,CAAC,GAAe;QAC/B,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAES,SAAS,CAAC,GAAe;QACjC,OAAO,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,KAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAM,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAS,EAAE,EAAK;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAS,EAAE,GAAQ;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAS,EAAE,GAAQ;QACrC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAS,EAAE,EAAK;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAS,EAAE,IAAO;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAS,EAAE,KAAU;QACjC,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAS,EAAE,EAAK,EAAE,KAAiB;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAS,EAAE,KAAgC;QAC7D,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,KAAK,MAAM,EAAC,GAAG,EAAE,KAAK,EAAC,IAAI,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAS,EAAE,EAAK;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAe;QAC9B,MAAM,IAAI,GAAmB,EAAE,CAAC;QAEhC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;gBACtC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,CAAC,YAAY,CAAC,MAAe;QACjC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;gBAC1C,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,EAAE,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,kBAAkB,CAAC,MAAe;QACvC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,IAAI,KAAK,EAAE,MAAM,EAAC,GAAG,EAAE,KAAK,EAAC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;gBACrD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,EAAE,CAAC;gBACH,MAAM,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE5D,MAAM;oBACJ,MAAM;oBACN,EAAE;oBACF,KAAK;iBACN,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,aAAa,CAAC,MAAe;QAClC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,IAAI,KAAK,EAAE,MAAM,EAAC,GAAG,EAAE,KAAK,EAAC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;gBACrD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,EAAE,CAAC;gBACH,MAAM,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE5D,MAAM;oBACJ,MAAM;oBACN,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;iBAC/B,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,mBAAmB,CAAC,MAAe;QACxC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,IAAI,KAAK,EAAE,MAAM,EAAC,GAAG,EAAE,KAAK,EAAC,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;gBACrD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,EAAE,CAAC;gBACH,MAAM,EAAC,MAAM,EAAE,EAAE,EAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE5D,MAAM;oBACJ,MAAM;oBACN,EAAE,EAAE,EAAE;oBACN,KAAK;iBACN,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAwC;QACjD,MAAM,QAAQ,GAA8B;YAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QAEF,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,IAAI,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,IAAI,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS;YAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACjE,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS;YAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAE3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF"}
|
package/lib/util.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
export declare const uintLen = 8;
|
|
2
2
|
/**
|
|
3
|
-
* Prepend a bucket to a key
|
|
3
|
+
* Encode a key for the db write/read, Prepend a bucket to a key
|
|
4
|
+
*
|
|
5
|
+
* The encoding of key is very important step that can cause failure of proper indexing and querying of data
|
|
6
|
+
*
|
|
7
|
+
* We are using LevelDB which have pluggable comparator support, so you can decide how to
|
|
8
|
+
* compare keys. But for NodeJS binding only default comparison algorithm is supported which
|
|
9
|
+
* uses lexicographical comparison of the raw bytes of the keys
|
|
10
|
+
*
|
|
11
|
+
* It is important to use **helpers implemented here** to encode db keys so that key comparison properly work.
|
|
4
12
|
*/
|
|
5
13
|
export declare function encodeKey(bucket: number, key: Uint8Array | string | number | bigint): Uint8Array;
|
|
14
|
+
export declare function encodeNumberForDbKey(value: number, byteSize: number): Uint8Array;
|
|
15
|
+
export declare function decodeNumberForDbKey(value: Uint8Array, byteSize: number): number;
|
|
16
|
+
export declare function encodeStringForDbKey(value: string): Uint8Array;
|
|
17
|
+
export declare function decodeStringForDbKey(value: Uint8Array): string;
|
|
6
18
|
//# sourceMappingURL=util.d.ts.map
|
package/lib/util.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import { intToBytes } from "@lodestar/utils";
|
|
1
|
+
import { bytesToInt, intToBytes } from "@lodestar/utils";
|
|
2
2
|
import { BUCKET_LENGTH } from "./const.js";
|
|
3
3
|
export const uintLen = 8;
|
|
4
4
|
/**
|
|
5
|
-
* Prepend a bucket to a key
|
|
5
|
+
* Encode a key for the db write/read, Prepend a bucket to a key
|
|
6
|
+
*
|
|
7
|
+
* The encoding of key is very important step that can cause failure of proper indexing and querying of data
|
|
8
|
+
*
|
|
9
|
+
* We are using LevelDB which have pluggable comparator support, so you can decide how to
|
|
10
|
+
* compare keys. But for NodeJS binding only default comparison algorithm is supported which
|
|
11
|
+
* uses lexicographical comparison of the raw bytes of the keys
|
|
12
|
+
*
|
|
13
|
+
* It is important to use **helpers implemented here** to encode db keys so that key comparison properly work.
|
|
6
14
|
*/
|
|
7
15
|
export function encodeKey(bucket, key) {
|
|
8
16
|
let buf;
|
|
@@ -24,4 +32,16 @@ export function encodeKey(bucket, key) {
|
|
|
24
32
|
buf.set(intToBytes(bucket, BUCKET_LENGTH, "le"), 0);
|
|
25
33
|
return buf;
|
|
26
34
|
}
|
|
35
|
+
export function encodeNumberForDbKey(value, byteSize) {
|
|
36
|
+
return intToBytes(value, byteSize, "be");
|
|
37
|
+
}
|
|
38
|
+
export function decodeNumberForDbKey(value, byteSize) {
|
|
39
|
+
return bytesToInt(value.slice(0, byteSize), "be");
|
|
40
|
+
}
|
|
41
|
+
export function encodeStringForDbKey(value) {
|
|
42
|
+
return Buffer.from(value, "utf-8");
|
|
43
|
+
}
|
|
44
|
+
export function decodeStringForDbKey(value) {
|
|
45
|
+
return Buffer.from(value).toString("utf8");
|
|
46
|
+
}
|
|
27
47
|
//# sourceMappingURL=util.js.map
|
package/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AAEzB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,GAA0C;IAClF,IAAI,GAAW,CAAC;IAChB,MAAM,YAAY,GAAG,aAAa,CAAC;IACnC,6CAA6C;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC9D,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;QAC3C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC7B,CAAC;IACD,6BAA6B;IAC7B,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,QAAgB;IAClE,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAiB,EAAE,QAAgB;IACtE,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAiB;IACpD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodestar/db",
|
|
3
|
-
"version": "1.34.0-dev.
|
|
3
|
+
"version": "1.34.0-dev.32681419fd",
|
|
4
4
|
"description": "DB modules of Lodestar",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"homepage": "https://github.com/ChainSafe/lodestar#readme",
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@chainsafe/ssz": "^1.2.2",
|
|
40
|
-
"@lodestar/config": "1.34.0-dev.
|
|
41
|
-
"@lodestar/utils": "1.34.0-dev.
|
|
40
|
+
"@lodestar/config": "1.34.0-dev.32681419fd",
|
|
41
|
+
"@lodestar/utils": "1.34.0-dev.32681419fd",
|
|
42
42
|
"classic-level": "^1.4.1",
|
|
43
43
|
"it-all": "^3.0.4"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@lodestar/logger": "1.34.0-dev.
|
|
46
|
+
"@lodestar/logger": "1.34.0-dev.32681419fd"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "211949d3ea2f6214baca2328da51a91052d3d229"
|
|
49
49
|
}
|