@ckb-ccc/core 0.0.13-alpha.6 → 0.0.13-alpha.8
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 +22 -0
- package/dist/ckb/transaction.d.ts +91 -1
- package/dist/ckb/transaction.d.ts.map +1 -1
- package/dist/ckb/transaction.js +118 -24
- package/dist/client/cache/cache.d.ts +29 -9
- package/dist/client/cache/cache.d.ts.map +1 -1
- package/dist/client/cache/cache.js +43 -1
- package/dist/client/cache/memory.d.ts +10 -6
- package/dist/client/cache/memory.d.ts.map +1 -1
- package/dist/client/cache/memory.js +49 -39
- package/dist/client/client.d.ts +10 -4
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +6 -5
- package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist/client/clientPublicMainnet.advanced.js +15 -0
- package/dist/client/clientPublicTestnet.advanced.d.ts.map +1 -1
- package/dist/client/clientPublicTestnet.advanced.js +15 -0
- package/dist/client/clientTypes.d.ts +47 -4
- package/dist/client/clientTypes.d.ts.map +1 -1
- package/dist/client/clientTypes.js +26 -1
- package/dist/client/jsonRpc/index.d.ts +39 -1
- package/dist/client/jsonRpc/index.d.ts.map +1 -1
- package/dist/client/jsonRpc/index.js +63 -2
- package/dist/client/jsonRpc/transformers.d.ts.map +1 -1
- package/dist/client/jsonRpc/transformers.js +11 -4
- package/dist/fixedPoint/index.d.ts +3 -3
- package/dist/fixedPoint/index.js +3 -3
- package/dist/signer/signer/index.d.ts +3 -1
- package/dist/signer/signer/index.d.ts.map +1 -1
- package/dist/signer/signer/index.js +14 -0
- package/dist.commonjs/ckb/transaction.d.ts +91 -1
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
- package/dist.commonjs/ckb/transaction.js +121 -23
- package/dist.commonjs/client/cache/cache.d.ts +29 -9
- package/dist.commonjs/client/cache/cache.d.ts.map +1 -1
- package/dist.commonjs/client/cache/cache.js +45 -0
- package/dist.commonjs/client/cache/memory.d.ts +10 -6
- package/dist.commonjs/client/cache/memory.d.ts.map +1 -1
- package/dist.commonjs/client/cache/memory.js +49 -39
- package/dist.commonjs/client/client.d.ts +10 -4
- package/dist.commonjs/client/client.d.ts.map +1 -1
- package/dist.commonjs/client/client.js +6 -5
- package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicMainnet.advanced.js +15 -0
- package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts.map +1 -1
- package/dist.commonjs/client/clientPublicTestnet.advanced.js +15 -0
- package/dist.commonjs/client/clientTypes.d.ts +47 -4
- package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
- package/dist.commonjs/client/clientTypes.js +33 -5
- package/dist.commonjs/client/jsonRpc/index.d.ts +39 -1
- package/dist.commonjs/client/jsonRpc/index.d.ts.map +1 -1
- package/dist.commonjs/client/jsonRpc/index.js +74 -13
- package/dist.commonjs/client/jsonRpc/transformers.d.ts.map +1 -1
- package/dist.commonjs/client/jsonRpc/transformers.js +55 -48
- package/dist.commonjs/fixedPoint/index.d.ts +3 -3
- package/dist.commonjs/fixedPoint/index.js +3 -3
- package/dist.commonjs/signer/signer/index.d.ts +3 -1
- package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
- package/dist.commonjs/signer/signer/index.js +14 -0
- package/package.json +1 -1
- package/src/ckb/transaction.ts +170 -30
- package/src/client/cache/cache.ts +58 -13
- package/src/client/cache/memory.ts +60 -52
- package/src/client/client.ts +22 -5
- package/src/client/clientPublicMainnet.advanced.ts +17 -0
- package/src/client/clientPublicTestnet.advanced.ts +17 -0
- package/src/client/clientTypes.ts +76 -5
- package/src/client/jsonRpc/index.ts +105 -3
- package/src/client/jsonRpc/transformers.ts +11 -3
- package/src/fixedPoint/index.ts +3 -3
- package/src/signer/signer/index.ts +20 -1
|
@@ -268,12 +268,102 @@ export declare class Cell {
|
|
|
268
268
|
*/
|
|
269
269
|
clone(): Cell;
|
|
270
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* @public
|
|
273
|
+
*/
|
|
274
|
+
export type EpochLike = [NumLike, NumLike, NumLike];
|
|
275
|
+
/**
|
|
276
|
+
* @public
|
|
277
|
+
*/
|
|
278
|
+
export type Epoch = [Num, Num, Num];
|
|
279
|
+
/**
|
|
280
|
+
* @public
|
|
281
|
+
*/
|
|
282
|
+
export declare function epochFrom(epochLike: EpochLike): Epoch;
|
|
283
|
+
/**
|
|
284
|
+
* @public
|
|
285
|
+
*/
|
|
286
|
+
export declare function epochFromHex(hex: HexLike): Epoch;
|
|
287
|
+
/**
|
|
288
|
+
* @public
|
|
289
|
+
*/
|
|
290
|
+
export declare function epochToHex(epochLike: EpochLike): Hex;
|
|
291
|
+
/**
|
|
292
|
+
* @public
|
|
293
|
+
*/
|
|
294
|
+
export type SinceLike = {
|
|
295
|
+
relative: "absolute" | "relative";
|
|
296
|
+
metric: "blockNumber" | "epoch" | "timestamp";
|
|
297
|
+
value: NumLike;
|
|
298
|
+
} | NumLike;
|
|
299
|
+
/**
|
|
300
|
+
* @public
|
|
301
|
+
*/
|
|
302
|
+
export declare class Since {
|
|
303
|
+
relative: "absolute" | "relative";
|
|
304
|
+
metric: "blockNumber" | "epoch" | "timestamp";
|
|
305
|
+
value: Num;
|
|
306
|
+
/**
|
|
307
|
+
* Creates an instance of Since.
|
|
308
|
+
*
|
|
309
|
+
* @param relative - Absolute or relative
|
|
310
|
+
* @param metric - The metric of since
|
|
311
|
+
* @param value - The value of since
|
|
312
|
+
*/
|
|
313
|
+
constructor(relative: "absolute" | "relative", metric: "blockNumber" | "epoch" | "timestamp", value: Num);
|
|
314
|
+
/**
|
|
315
|
+
* Clone a Since.
|
|
316
|
+
*
|
|
317
|
+
* @returns A cloned Since instance.
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```typescript
|
|
321
|
+
* const since1 = since0.clone();
|
|
322
|
+
* ```
|
|
323
|
+
*/
|
|
324
|
+
clone(): Since;
|
|
325
|
+
/**
|
|
326
|
+
* Creates a Since instance from a SinceLike object.
|
|
327
|
+
*
|
|
328
|
+
* @param since - A SinceLike object or an instance of Since.
|
|
329
|
+
* @returns A Since instance.
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* ```typescript
|
|
333
|
+
* const since = Since.from("0x1234567812345678");
|
|
334
|
+
* ```
|
|
335
|
+
*/
|
|
336
|
+
static from(since: SinceLike): Since;
|
|
337
|
+
/**
|
|
338
|
+
* Converts the Since instance to num.
|
|
339
|
+
*
|
|
340
|
+
* @returns A num
|
|
341
|
+
*
|
|
342
|
+
* @example
|
|
343
|
+
* ```typescript
|
|
344
|
+
* const num = since.toNum();
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
toNum(): Num;
|
|
348
|
+
/**
|
|
349
|
+
* Creates a Since instance from a num-like value.
|
|
350
|
+
*
|
|
351
|
+
* @param numLike - The num-like value to convert.
|
|
352
|
+
* @returns A Since instance.
|
|
353
|
+
*
|
|
354
|
+
* @example
|
|
355
|
+
* ```typescript
|
|
356
|
+
* const since = Since.fromNum("0x0");
|
|
357
|
+
* ```
|
|
358
|
+
*/
|
|
359
|
+
static fromNum(numLike: NumLike): Since;
|
|
360
|
+
}
|
|
271
361
|
/**
|
|
272
362
|
* @public
|
|
273
363
|
*/
|
|
274
364
|
export type CellInputLike = {
|
|
275
365
|
previousOutput: OutPointLike;
|
|
276
|
-
since?: NumLike | null;
|
|
366
|
+
since?: SinceLike | NumLike | null;
|
|
277
367
|
cellOutput?: CellOutputLike | null;
|
|
278
368
|
outputData?: HexLike | null;
|
|
279
369
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/ckb/transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Transaction = exports.udtBalanceFrom = exports.WitnessArgs = exports.CellDep = exports.CellInput = exports.Cell = exports.CellOutput = exports.OutPoint = exports.depTypeFromBytes = exports.depTypeToBytes = exports.depTypeFrom = void 0;
|
|
26
|
+
exports.Transaction = exports.udtBalanceFrom = exports.WitnessArgs = exports.CellDep = exports.CellInput = exports.Since = exports.epochToHex = exports.epochFromHex = exports.epochFrom = exports.Cell = exports.CellOutput = exports.OutPoint = exports.depTypeFromBytes = exports.depTypeToBytes = exports.depTypeFrom = void 0;
|
|
27
27
|
const index_js_1 = require("../bytes/index.js");
|
|
28
28
|
const index_js_2 = require("../fixedPoint/index.js");
|
|
29
29
|
const index_js_3 = require("../hasher/index.js");
|
|
@@ -340,6 +340,117 @@ class Cell {
|
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
342
|
exports.Cell = Cell;
|
|
343
|
+
/**
|
|
344
|
+
* @public
|
|
345
|
+
*/
|
|
346
|
+
function epochFrom(epochLike) {
|
|
347
|
+
return [(0, index_js_5.numFrom)(epochLike[0]), (0, index_js_5.numFrom)(epochLike[1]), (0, index_js_5.numFrom)(epochLike[2])];
|
|
348
|
+
}
|
|
349
|
+
exports.epochFrom = epochFrom;
|
|
350
|
+
/**
|
|
351
|
+
* @public
|
|
352
|
+
*/
|
|
353
|
+
function epochFromHex(hex) {
|
|
354
|
+
const bytes = (0, index_js_1.bytesFrom)((0, index_js_4.hexFrom)(hex));
|
|
355
|
+
return [
|
|
356
|
+
(0, index_js_5.numFrom)(bytes.slice(4, 7)),
|
|
357
|
+
(0, index_js_5.numFrom)(bytes.slice(2, 4)),
|
|
358
|
+
(0, index_js_5.numFrom)(bytes.slice(0, 2)),
|
|
359
|
+
];
|
|
360
|
+
}
|
|
361
|
+
exports.epochFromHex = epochFromHex;
|
|
362
|
+
/**
|
|
363
|
+
* @public
|
|
364
|
+
*/
|
|
365
|
+
function epochToHex(epochLike) {
|
|
366
|
+
const epoch = epochFrom(epochLike);
|
|
367
|
+
return (0, index_js_4.hexFrom)((0, index_js_1.bytesConcat)((0, index_js_5.numBeToBytes)(epoch[2], 2), (0, index_js_5.numBeToBytes)(epoch[1], 2), (0, index_js_5.numBeToBytes)(epoch[0], 3)));
|
|
368
|
+
}
|
|
369
|
+
exports.epochToHex = epochToHex;
|
|
370
|
+
/**
|
|
371
|
+
* @public
|
|
372
|
+
*/
|
|
373
|
+
class Since {
|
|
374
|
+
/**
|
|
375
|
+
* Creates an instance of Since.
|
|
376
|
+
*
|
|
377
|
+
* @param relative - Absolute or relative
|
|
378
|
+
* @param metric - The metric of since
|
|
379
|
+
* @param value - The value of since
|
|
380
|
+
*/
|
|
381
|
+
constructor(relative, metric, value) {
|
|
382
|
+
this.relative = relative;
|
|
383
|
+
this.metric = metric;
|
|
384
|
+
this.value = value;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Clone a Since.
|
|
388
|
+
*
|
|
389
|
+
* @returns A cloned Since instance.
|
|
390
|
+
*
|
|
391
|
+
* @example
|
|
392
|
+
* ```typescript
|
|
393
|
+
* const since1 = since0.clone();
|
|
394
|
+
* ```
|
|
395
|
+
*/
|
|
396
|
+
clone() {
|
|
397
|
+
return new Since(this.relative, this.metric, this.value);
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Creates a Since instance from a SinceLike object.
|
|
401
|
+
*
|
|
402
|
+
* @param since - A SinceLike object or an instance of Since.
|
|
403
|
+
* @returns A Since instance.
|
|
404
|
+
*
|
|
405
|
+
* @example
|
|
406
|
+
* ```typescript
|
|
407
|
+
* const since = Since.from("0x1234567812345678");
|
|
408
|
+
* ```
|
|
409
|
+
*/
|
|
410
|
+
static from(since) {
|
|
411
|
+
if (since instanceof Since) {
|
|
412
|
+
return since;
|
|
413
|
+
}
|
|
414
|
+
if (typeof since === "object" && "relative" in since) {
|
|
415
|
+
return new Since(since.relative, since.metric, (0, index_js_5.numFrom)(since.value));
|
|
416
|
+
}
|
|
417
|
+
return Since.fromNum(since);
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Converts the Since instance to num.
|
|
421
|
+
*
|
|
422
|
+
* @returns A num
|
|
423
|
+
*
|
|
424
|
+
* @example
|
|
425
|
+
* ```typescript
|
|
426
|
+
* const num = since.toNum();
|
|
427
|
+
* ```
|
|
428
|
+
*/
|
|
429
|
+
toNum() {
|
|
430
|
+
const flag = ((this.relative === "absolute" ? 0 : 1) << 7) |
|
|
431
|
+
({ blockNumber: 0, epoch: 1, timestamp: 2 }[this.metric] << 5);
|
|
432
|
+
return (0, index_js_5.numFrom)((0, index_js_1.bytesConcat)([flag], (0, index_js_5.numLeToBytes)(this.value, 7)));
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Creates a Since instance from a num-like value.
|
|
436
|
+
*
|
|
437
|
+
* @param numLike - The num-like value to convert.
|
|
438
|
+
* @returns A Since instance.
|
|
439
|
+
*
|
|
440
|
+
* @example
|
|
441
|
+
* ```typescript
|
|
442
|
+
* const since = Since.fromNum("0x0");
|
|
443
|
+
* ```
|
|
444
|
+
*/
|
|
445
|
+
static fromNum(numLike) {
|
|
446
|
+
const bytes = (0, index_js_5.numBeToBytes)(numLike, 8);
|
|
447
|
+
const relative = bytes[0] >> 7 === 0 ? "absolute" : "relative";
|
|
448
|
+
const metric = ["blockNumber", "epoch", "timestamp"][(bytes[0] >> 5) & 3];
|
|
449
|
+
const value = (0, index_js_5.numLeFromBytes)(bytes.slice(1, 8));
|
|
450
|
+
return new Since(relative, metric, value);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
exports.Since = Since;
|
|
343
454
|
/**
|
|
344
455
|
* @public
|
|
345
456
|
*/
|
|
@@ -389,7 +500,7 @@ class CellInput {
|
|
|
389
500
|
if (cellInput instanceof CellInput) {
|
|
390
501
|
return cellInput;
|
|
391
502
|
}
|
|
392
|
-
return new CellInput(OutPoint.from(cellInput.previousOutput),
|
|
503
|
+
return new CellInput(OutPoint.from(cellInput.previousOutput), Since.from(cellInput.since ?? 0).toNum(), (0, index_js_6.apply)(CellOutput.from, cellInput.cellOutput), (0, index_js_6.apply)(index_js_4.hexFrom, cellInput.outputData));
|
|
393
504
|
}
|
|
394
505
|
/**
|
|
395
506
|
* Complete extra infos in the input. Like the output of the out point.
|
|
@@ -1192,36 +1303,23 @@ class Transaction {
|
|
|
1192
1303
|
}, (0, index_js_5.numFrom)(0));
|
|
1193
1304
|
}
|
|
1194
1305
|
async completeInputs(from, filter, accumulator, init) {
|
|
1195
|
-
const scripts = (await from.getAddressObjs()).map(({ script }) => script);
|
|
1196
1306
|
const collectedCells = [];
|
|
1197
1307
|
let acc = init;
|
|
1198
1308
|
let fulfilled = false;
|
|
1199
|
-
for (const
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
scriptType: "lock",
|
|
1203
|
-
filter,
|
|
1204
|
-
scriptSearchMode: "exact",
|
|
1205
|
-
withData: true,
|
|
1206
|
-
})) {
|
|
1207
|
-
if (this.inputs.some(({ previousOutput }) => previousOutput.eq(cell.outPoint))) {
|
|
1208
|
-
continue;
|
|
1209
|
-
}
|
|
1210
|
-
const i = collectedCells.push(cell);
|
|
1211
|
-
const next = await Promise.resolve(accumulator(acc, cell, i - 1, collectedCells));
|
|
1212
|
-
if (next === undefined) {
|
|
1213
|
-
fulfilled = true;
|
|
1214
|
-
break;
|
|
1215
|
-
}
|
|
1216
|
-
acc = next;
|
|
1309
|
+
for await (const cell of from.findCells(filter, true)) {
|
|
1310
|
+
if (this.inputs.some(({ previousOutput }) => previousOutput.eq(cell.outPoint))) {
|
|
1311
|
+
continue;
|
|
1217
1312
|
}
|
|
1218
|
-
|
|
1313
|
+
const i = collectedCells.push(cell);
|
|
1314
|
+
const next = await Promise.resolve(accumulator(acc, cell, i - 1, collectedCells));
|
|
1315
|
+
if (next === undefined) {
|
|
1316
|
+
fulfilled = true;
|
|
1219
1317
|
break;
|
|
1220
1318
|
}
|
|
1319
|
+
acc = next;
|
|
1221
1320
|
}
|
|
1222
1321
|
this.inputs.push(...collectedCells.map(({ outPoint, outputData, cellOutput }) => CellInput.from({
|
|
1223
1322
|
previousOutput: outPoint,
|
|
1224
|
-
since: 0,
|
|
1225
1323
|
outputData,
|
|
1226
1324
|
cellOutput,
|
|
1227
1325
|
})));
|
|
@@ -1,15 +1,35 @@
|
|
|
1
1
|
import { Cell, CellLike, OutPointLike, Transaction, TransactionLike } from "../../ckb/index.js";
|
|
2
2
|
import { HexLike } from "../../hex/index.js";
|
|
3
3
|
import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
|
|
4
|
-
export
|
|
5
|
-
markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
|
|
6
|
-
markUnusable(...outPointLike: (OutPointLike | OutPointLike[])[]): Promise<void>;
|
|
4
|
+
export declare abstract class ClientCache {
|
|
5
|
+
abstract markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
|
|
6
|
+
abstract markUnusable(...outPointLike: (OutPointLike | OutPointLike[])[]): Promise<void>;
|
|
7
7
|
markTransactions(...transactionLike: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
abstract clear(): Promise<void>;
|
|
9
|
+
abstract findCells(filter: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
|
|
10
|
+
/**
|
|
11
|
+
* Get a known cell by out point
|
|
12
|
+
* @param _outPoint
|
|
13
|
+
*/
|
|
14
|
+
abstract getCell(_outPoint: OutPointLike): Promise<Cell | undefined>;
|
|
15
|
+
abstract isUnusable(outPointLike: OutPointLike): Promise<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* Record known transactions
|
|
18
|
+
* Implement this method to enable transactions query caching
|
|
19
|
+
* @param _transactions
|
|
20
|
+
*/
|
|
21
|
+
recordTransactions(..._transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Get a known transaction by hash
|
|
24
|
+
* Implement this method to enable transactions query caching
|
|
25
|
+
* @param _txHash
|
|
26
|
+
*/
|
|
27
|
+
getTransaction(_txHash: HexLike): Promise<Transaction | undefined>;
|
|
28
|
+
/**
|
|
29
|
+
* Record known cells
|
|
30
|
+
* Implement this method to enable cells query caching
|
|
31
|
+
* @param _cells
|
|
32
|
+
*/
|
|
33
|
+
recordCells(..._cells: (CellLike | CellLike[])[]): Promise<void>;
|
|
14
34
|
}
|
|
15
35
|
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/client/cache/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE5E,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/client/cache/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE5E,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3E,QAAQ,CAAC,YAAY,CACnB,GAAG,YAAY,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GACjD,OAAO,CAAC,IAAI,CAAC;IACV,gBAAgB,CACpB,GAAG,eAAe,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;IAuBhB,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAChB,MAAM,EAAE,8BAA8B,GACrC,cAAc,CAAC,IAAI,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IACpE,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAEjE;;;;OAIG;IACG,kBAAkB,CACtB,GAAG,aAAa,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACxD,OAAO,CAAC,IAAI,CAAC;IAChB;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIxE;;;;OAIG;IACG,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CACvE"}
|
|
@@ -1,2 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientCache = void 0;
|
|
4
|
+
const index_js_1 = require("../../ckb/index.js");
|
|
5
|
+
class ClientCache {
|
|
6
|
+
async markTransactions(...transactionLike) {
|
|
7
|
+
await Promise.all([
|
|
8
|
+
this.recordTransactions(...transactionLike),
|
|
9
|
+
...transactionLike.flat().map((transactionLike) => {
|
|
10
|
+
const tx = index_js_1.Transaction.from(transactionLike);
|
|
11
|
+
const txHash = tx.hash();
|
|
12
|
+
return Promise.all([
|
|
13
|
+
...tx.inputs.map((i) => this.markUnusable(i.previousOutput)),
|
|
14
|
+
...tx.outputs.map((o, i) => this.markUsable({
|
|
15
|
+
cellOutput: o,
|
|
16
|
+
outputData: tx.outputsData[i],
|
|
17
|
+
outPoint: {
|
|
18
|
+
txHash,
|
|
19
|
+
index: i,
|
|
20
|
+
},
|
|
21
|
+
})),
|
|
22
|
+
]);
|
|
23
|
+
}),
|
|
24
|
+
]);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Record known transactions
|
|
28
|
+
* Implement this method to enable transactions query caching
|
|
29
|
+
* @param _transactions
|
|
30
|
+
*/
|
|
31
|
+
async recordTransactions(..._transactions) { }
|
|
32
|
+
/**
|
|
33
|
+
* Get a known transaction by hash
|
|
34
|
+
* Implement this method to enable transactions query caching
|
|
35
|
+
* @param _txHash
|
|
36
|
+
*/
|
|
37
|
+
async getTransaction(_txHash) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Record known cells
|
|
42
|
+
* Implement this method to enable cells query caching
|
|
43
|
+
* @param _cells
|
|
44
|
+
*/
|
|
45
|
+
async recordCells(..._cells) { }
|
|
46
|
+
}
|
|
47
|
+
exports.ClientCache = ClientCache;
|
|
@@ -2,19 +2,23 @@ import { Cell, CellLike, OutPointLike, Transaction, TransactionLike } from "../.
|
|
|
2
2
|
import { HexLike } from "../../hex/index.js";
|
|
3
3
|
import { ClientCollectableSearchKeyLike } from "../clientTypes.advanced.js";
|
|
4
4
|
import { ClientCache } from "./cache.js";
|
|
5
|
-
export declare class ClientCacheMemory
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export declare class ClientCacheMemory extends ClientCache {
|
|
6
|
+
/**
|
|
7
|
+
* OutPoint => [isLive, Cell | OutPoint]
|
|
8
|
+
*/
|
|
9
|
+
private readonly cells;
|
|
10
|
+
/**
|
|
11
|
+
* TX Hash => Transaction
|
|
12
|
+
*/
|
|
8
13
|
private readonly knownTransactions;
|
|
9
|
-
private readonly knownCells;
|
|
10
14
|
markUsable(...cellLikes: (CellLike | CellLike[])[]): Promise<void>;
|
|
11
15
|
markUnusable(...outPointLikes: (OutPointLike | OutPointLike[])[]): Promise<void>;
|
|
12
|
-
|
|
16
|
+
clear(): Promise<void>;
|
|
13
17
|
findCells(keyLike: ClientCollectableSearchKeyLike): AsyncGenerator<Cell>;
|
|
18
|
+
getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
|
|
14
19
|
isUnusable(outPointLike: OutPointLike): Promise<boolean>;
|
|
15
20
|
recordTransactions(...transactions: (TransactionLike | TransactionLike[])[]): Promise<void>;
|
|
16
21
|
getTransaction(txHashLike: HexLike): Promise<Transaction | undefined>;
|
|
17
22
|
recordCells(...cells: (CellLike | CellLike[])[]): Promise<void>;
|
|
18
|
-
getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
|
|
19
23
|
}
|
|
20
24
|
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/client/cache/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,QAAQ,EAER,YAAY,EACZ,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,iBAAkB,SAAQ,WAAW;IAChD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CASR;IAEd;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuC;IAEnE,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE,YAAY,CAChB,GAAG,aAAa,EAAE,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC;IAcV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,SAAS,CACd,OAAO,EAAE,8BAA8B,GACtC,cAAc,CAAC,IAAI,CAAC;IAYjB,OAAO,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAS9D,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxD,kBAAkB,CACtB,GAAG,YAAY,EAAE,CAAC,eAAe,GAAG,eAAe,EAAE,CAAC,EAAE,GACvD,OAAO,CAAC,IAAI,CAAC;IAMV,cAAc,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAKrE,WAAW,CAAC,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAWtE"}
|
|
@@ -3,75 +3,85 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ClientCacheMemory = void 0;
|
|
4
4
|
const index_js_1 = require("../../ckb/index.js");
|
|
5
5
|
const index_js_2 = require("../../hex/index.js");
|
|
6
|
+
const cache_js_1 = require("./cache.js");
|
|
6
7
|
const memory_advanced_js_1 = require("./memory.advanced.js");
|
|
7
|
-
class ClientCacheMemory {
|
|
8
|
+
class ClientCacheMemory extends cache_js_1.ClientCache {
|
|
8
9
|
constructor() {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
super(...arguments);
|
|
11
|
+
/**
|
|
12
|
+
* OutPoint => [isLive, Cell | OutPoint]
|
|
13
|
+
*/
|
|
14
|
+
this.cells = new Map();
|
|
15
|
+
/**
|
|
16
|
+
* TX Hash => Transaction
|
|
17
|
+
*/
|
|
18
|
+
this.knownTransactions = new Map();
|
|
13
19
|
}
|
|
14
20
|
async markUsable(...cellLikes) {
|
|
15
21
|
cellLikes.flat().forEach((cellLike) => {
|
|
16
22
|
const cell = index_js_1.Cell.from(cellLike).clone();
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
-
const index = this.unusableOutPoints.findIndex((o) => cell.outPoint.eq(o));
|
|
20
|
-
if (index !== -1) {
|
|
21
|
-
this.unusableOutPoints.splice(index, 1);
|
|
22
|
-
}
|
|
23
|
+
const outPointStr = (0, index_js_2.hexFrom)(cell.outPoint.toBytes());
|
|
24
|
+
this.cells.set(outPointStr, [true, cell]);
|
|
23
25
|
});
|
|
24
26
|
}
|
|
25
27
|
async markUnusable(...outPointLikes) {
|
|
26
28
|
outPointLikes.flat().forEach((outPointLike) => {
|
|
27
29
|
const outPoint = index_js_1.OutPoint.from(outPointLike);
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
if (
|
|
31
|
-
|
|
30
|
+
const outPointStr = (0, index_js_2.hexFrom)(outPoint.toBytes());
|
|
31
|
+
const existed = this.cells.get(outPointStr);
|
|
32
|
+
if (existed) {
|
|
33
|
+
existed[0] = false;
|
|
34
|
+
return;
|
|
32
35
|
}
|
|
36
|
+
this.cells.set(outPointStr, [false, { outPoint }]);
|
|
33
37
|
});
|
|
34
38
|
}
|
|
35
|
-
async
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
await Promise.all(tx.inputs.map((i) => this.markUnusable(i.previousOutput)));
|
|
40
|
-
await Promise.all(tx.outputs.map((o, i) => this.markUsable({
|
|
41
|
-
cellOutput: o,
|
|
42
|
-
outputData: tx.outputsData[i],
|
|
43
|
-
outPoint: {
|
|
44
|
-
txHash,
|
|
45
|
-
index: i,
|
|
46
|
-
},
|
|
47
|
-
})));
|
|
48
|
-
}));
|
|
39
|
+
async clear() {
|
|
40
|
+
for (const val of this.cells.values()) {
|
|
41
|
+
val[0] = undefined;
|
|
42
|
+
}
|
|
49
43
|
}
|
|
50
44
|
async *findCells(keyLike) {
|
|
51
|
-
for (const cell of this.
|
|
45
|
+
for (const [isLive, cell] of this.cells.values()) {
|
|
46
|
+
if (!isLive) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
52
49
|
if (!(0, memory_advanced_js_1.filterCell)(keyLike, cell)) {
|
|
53
50
|
continue;
|
|
54
51
|
}
|
|
55
|
-
yield cell;
|
|
52
|
+
yield cell.clone();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async getCell(outPointLike) {
|
|
56
|
+
const outPoint = index_js_1.OutPoint.from(outPointLike);
|
|
57
|
+
const cell = this.cells.get((0, index_js_2.hexFrom)(outPoint.toBytes()))?.[1];
|
|
58
|
+
if (cell && cell.cellOutput && cell.outputData) {
|
|
59
|
+
return index_js_1.Cell.from(cell.clone());
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
62
|
async isUnusable(outPointLike) {
|
|
59
63
|
const outPoint = index_js_1.OutPoint.from(outPointLike);
|
|
60
|
-
return this.
|
|
64
|
+
return !(this.cells.get((0, index_js_2.hexFrom)(outPoint.toBytes()))?.[0] ?? true);
|
|
61
65
|
}
|
|
62
66
|
async recordTransactions(...transactions) {
|
|
63
|
-
|
|
67
|
+
transactions.flat().map((txLike) => {
|
|
68
|
+
const tx = index_js_1.Transaction.from(txLike);
|
|
69
|
+
this.knownTransactions.set(tx.hash(), tx);
|
|
70
|
+
});
|
|
64
71
|
}
|
|
65
72
|
async getTransaction(txHashLike) {
|
|
66
73
|
const txHash = (0, index_js_2.hexFrom)(txHashLike);
|
|
67
|
-
return this.knownTransactions.
|
|
74
|
+
return this.knownTransactions.get(txHash)?.clone();
|
|
68
75
|
}
|
|
69
76
|
async recordCells(...cells) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
cells.flat().map((cellLike) => {
|
|
78
|
+
const cell = index_js_1.Cell.from(cellLike);
|
|
79
|
+
const outPointStr = (0, index_js_2.hexFrom)(cell.outPoint.toBytes());
|
|
80
|
+
if (this.cells.get(outPointStr)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this.cells.set(outPointStr, [undefined, cell]);
|
|
84
|
+
});
|
|
75
85
|
}
|
|
76
86
|
}
|
|
77
87
|
exports.ClientCacheMemory = ClientCacheMemory;
|
|
@@ -3,7 +3,7 @@ import { Hex, HexLike } from "../hex/index.js";
|
|
|
3
3
|
import { Num, NumLike } from "../num/index.js";
|
|
4
4
|
import { ClientCache } from "./cache/index.js";
|
|
5
5
|
import { ClientCollectableSearchKeyLike } from "./clientTypes.advanced.js";
|
|
6
|
-
import { ClientBlock, ClientFindCellsResponse, ClientFindTransactionsGroupedResponse, ClientFindTransactionsResponse, ClientIndexerSearchKeyLike, ClientIndexerSearchKeyTransactionLike, ClientTransactionResponse, OutputsValidator } from "./clientTypes.js";
|
|
6
|
+
import { ClientBlock, ClientBlockHeader, ClientFindCellsResponse, ClientFindTransactionsGroupedResponse, ClientFindTransactionsResponse, ClientIndexerSearchKeyLike, ClientIndexerSearchKeyTransactionLike, ClientTransactionResponse, OutputsValidator } from "./clientTypes.js";
|
|
7
7
|
/**
|
|
8
8
|
* @public
|
|
9
9
|
*/
|
|
@@ -20,7 +20,8 @@ export declare enum KnownScript {
|
|
|
20
20
|
NostrLock = "NostrLock",
|
|
21
21
|
UniqueType = "UniqueType",
|
|
22
22
|
SingleUseLock = "SingleUseLock",
|
|
23
|
-
OutputTypeProxyLock = "OutputTypeProxyLock"
|
|
23
|
+
OutputTypeProxyLock = "OutputTypeProxyLock",
|
|
24
|
+
NervosDao = "NervosDao"
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* @public
|
|
@@ -52,21 +53,26 @@ export declare abstract class Client {
|
|
|
52
53
|
cellDeps: CellDepInfo[];
|
|
53
54
|
}>;
|
|
54
55
|
abstract getTip(): Promise<Num>;
|
|
56
|
+
abstract getTipHeader(verbosity?: number | null): Promise<ClientBlockHeader>;
|
|
55
57
|
abstract getBlockByNumber(blockNumber: NumLike, verbosity?: number | null, withCycles?: boolean | null): Promise<ClientBlock | undefined>;
|
|
56
58
|
abstract getBlockByHash(blockHash: HexLike, verbosity?: number | null, withCycles?: boolean | null): Promise<ClientBlock | undefined>;
|
|
59
|
+
abstract getHeaderByNumber(blockNumber: NumLike, verbosity?: number | null): Promise<ClientBlockHeader | undefined>;
|
|
60
|
+
abstract getHeaderByHash(blockHash: HexLike, verbosity?: number | null): Promise<ClientBlockHeader | undefined>;
|
|
61
|
+
abstract estimateCycles(transaction: TransactionLike): Promise<Num>;
|
|
62
|
+
abstract sendTransactionDry(transaction: TransactionLike, validator?: OutputsValidator): Promise<Num>;
|
|
57
63
|
abstract sendTransactionNoCache(transaction: TransactionLike, validator?: OutputsValidator): Promise<Hex>;
|
|
58
64
|
abstract getTransactionNoCache(txHash: HexLike): Promise<ClientTransactionResponse | undefined>;
|
|
59
65
|
getCell(outPointLike: OutPointLike): Promise<Cell | undefined>;
|
|
60
66
|
abstract findCellsPagedNoCache(key: ClientIndexerSearchKeyLike, order?: "asc" | "desc", limit?: NumLike, after?: string): Promise<ClientFindCellsResponse>;
|
|
61
67
|
findCellsPaged(key: ClientIndexerSearchKeyLike, order?: "asc" | "desc", limit?: NumLike, after?: string): Promise<ClientFindCellsResponse>;
|
|
62
|
-
|
|
68
|
+
findCellsOnChin(key: ClientIndexerSearchKeyLike, order?: "asc" | "desc", limit?: number): AsyncGenerator<Cell>;
|
|
63
69
|
/**
|
|
64
70
|
* Find cells by search key designed for collectable cells.
|
|
65
71
|
*
|
|
66
72
|
* @param keyLike - The search key.
|
|
67
73
|
* @returns A async generator for yielding cells.
|
|
68
74
|
*/
|
|
69
|
-
|
|
75
|
+
findCells(keyLike: ClientCollectableSearchKeyLike, order?: "asc" | "desc", limit?: number): AsyncGenerator<Cell>;
|
|
70
76
|
findCellsByLock(lock: ScriptLike, type?: ScriptLike | null, withData?: boolean, order?: "asc" | "desc", limit?: number): AsyncGenerator<Cell>;
|
|
71
77
|
findCellsByType(type: ScriptLike, withData?: boolean, order?: "asc" | "desc", limit?: number): AsyncGenerator<Cell>;
|
|
72
78
|
findSingletonCellByType(type: ScriptLike, withData?: boolean): Promise<Cell | undefined>;
|