@bsv/overlay 2.3.0 → 2.6.1
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/LICENSES/Open-BSV-License-4-standard-pre-2026.txt +28 -0
- package/README.md +171 -1
- package/THIRD_PARTY_NOTICES.md +49 -0
- package/dist/cjs/mod.d.ts +4 -1
- package/dist/cjs/mod.d.ts.map +1 -1
- package/dist/cjs/mod.js +8 -1
- package/dist/cjs/mod.js.map +1 -1
- package/dist/cjs/package.json +13 -5
- package/dist/cjs/src/BASM.d.ts +6 -0
- package/dist/cjs/src/BASM.d.ts.map +1 -1
- package/dist/cjs/src/BASM.js +21 -8
- package/dist/cjs/src/BASM.js.map +1 -1
- package/dist/cjs/src/BASMRemote.d.ts +8 -1
- package/dist/cjs/src/BASMRemote.d.ts.map +1 -1
- package/dist/cjs/src/BASMRemote.js +179 -13
- package/dist/cjs/src/BASMRemote.js.map +1 -1
- package/dist/cjs/src/BASMValidation.d.ts +27 -0
- package/dist/cjs/src/BASMValidation.d.ts.map +1 -0
- package/dist/cjs/src/BASMValidation.js +108 -0
- package/dist/cjs/src/BASMValidation.js.map +1 -0
- package/dist/cjs/src/DiscoveryAdvertisementValidation.d.ts +11 -0
- package/dist/cjs/src/DiscoveryAdvertisementValidation.d.ts.map +1 -0
- package/dist/cjs/src/DiscoveryAdvertisementValidation.js +60 -0
- package/dist/cjs/src/DiscoveryAdvertisementValidation.js.map +1 -0
- package/dist/cjs/src/Engine.d.ts +38 -13
- package/dist/cjs/src/Engine.d.ts.map +1 -1
- package/dist/cjs/src/Engine.js +1735 -336
- package/dist/cjs/src/Engine.js.map +1 -1
- package/dist/cjs/src/EngineAdmission.d.ts +70 -0
- package/dist/cjs/src/EngineAdmission.d.ts.map +1 -0
- package/dist/cjs/src/EngineAdmission.js +297 -0
- package/dist/cjs/src/EngineAdmission.js.map +1 -0
- package/dist/cjs/src/GASP/OverlayGASPRemote.d.ts +4 -3
- package/dist/cjs/src/GASP/OverlayGASPRemote.d.ts.map +1 -1
- package/dist/cjs/src/GASP/OverlayGASPRemote.js +27 -43
- package/dist/cjs/src/GASP/OverlayGASPRemote.js.map +1 -1
- package/dist/cjs/src/GASP/OverlayGASPStorage.d.ts +22 -16
- package/dist/cjs/src/GASP/OverlayGASPStorage.d.ts.map +1 -1
- package/dist/cjs/src/GASP/OverlayGASPStorage.js +206 -57
- package/dist/cjs/src/GASP/OverlayGASPStorage.js.map +1 -1
- package/dist/cjs/src/RemoteSecurity.d.ts +50 -0
- package/dist/cjs/src/RemoteSecurity.d.ts.map +1 -0
- package/dist/cjs/src/RemoteSecurity.js +301 -0
- package/dist/cjs/src/RemoteSecurity.js.map +1 -0
- package/dist/cjs/src/TopicManager.d.ts +13 -3
- package/dist/cjs/src/TopicManager.d.ts.map +1 -1
- package/dist/cjs/src/storage/AdmissionStorage.d.ts +185 -0
- package/dist/cjs/src/storage/AdmissionStorage.d.ts.map +1 -0
- package/dist/cjs/src/storage/AdmissionStorage.js +93 -0
- package/dist/cjs/src/storage/AdmissionStorage.js.map +1 -0
- package/dist/cjs/src/storage/RecoveryContract.d.ts +50 -0
- package/dist/cjs/src/storage/RecoveryContract.d.ts.map +1 -0
- package/dist/cjs/src/storage/RecoveryContract.js +35 -0
- package/dist/cjs/src/storage/RecoveryContract.js.map +1 -0
- package/dist/cjs/src/storage/Storage.d.ts +32 -19
- package/dist/cjs/src/storage/Storage.d.ts.map +1 -1
- package/dist/cjs/src/storage/Storage.js +5 -0
- package/dist/cjs/src/storage/Storage.js.map +1 -1
- package/dist/cjs/src/storage/knex/KnexStorage.d.ts +8 -8
- package/dist/cjs/src/storage/knex/KnexStorage.d.ts.map +1 -1
- package/dist/cjs/src/storage/knex/KnexStorage.js +98 -61
- package/dist/cjs/src/storage/knex/KnexStorage.js.map +1 -1
- package/dist/cjs/src/storage/knex/all-migrations.d.ts.map +1 -1
- package/dist/cjs/src/storage/knex/all-migrations.js +5 -1
- package/dist/cjs/src/storage/knex/all-migrations.js.map +1 -1
- package/dist/cjs/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.d.ts +4 -0
- package/dist/cjs/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.d.ts.map +1 -0
- package/dist/cjs/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.js +36 -0
- package/dist/cjs/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.js.map +1 -0
- package/dist/cjs/src/storage/knex/migrations/2026-09-20-001-spent-by.d.ts +5 -0
- package/dist/cjs/src/storage/knex/migrations/2026-09-20-001-spent-by.d.ts.map +1 -0
- package/dist/cjs/src/storage/knex/migrations/2026-09-20-001-spent-by.js +16 -0
- package/dist/cjs/src/storage/knex/migrations/2026-09-20-001-spent-by.js.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoAdmissionPlan.d.ts +18 -0
- package/dist/cjs/src/storage/mongo/MongoAdmissionPlan.d.ts.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoAdmissionPlan.js +229 -0
- package/dist/cjs/src/storage/mongo/MongoAdmissionPlan.js.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoAdmissionStorage.d.ts +112 -0
- package/dist/cjs/src/storage/mongo/MongoAdmissionStorage.d.ts.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoAdmissionStorage.js +675 -0
- package/dist/cjs/src/storage/mongo/MongoAdmissionStorage.js.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoOverlayStorage.d.ts +71 -0
- package/dist/cjs/src/storage/mongo/MongoOverlayStorage.d.ts.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoOverlayStorage.js +453 -0
- package/dist/cjs/src/storage/mongo/MongoOverlayStorage.js.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoPayloadStore.d.ts +134 -0
- package/dist/cjs/src/storage/mongo/MongoPayloadStore.d.ts.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoPayloadStore.js +756 -0
- package/dist/cjs/src/storage/mongo/MongoPayloadStore.js.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoReadGuards.d.ts +44 -0
- package/dist/cjs/src/storage/mongo/MongoReadGuards.d.ts.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoReadGuards.js +135 -0
- package/dist/cjs/src/storage/mongo/MongoReadGuards.js.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoSchema.d.ts +67 -0
- package/dist/cjs/src/storage/mongo/MongoSchema.d.ts.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoSchema.js +743 -0
- package/dist/cjs/src/storage/mongo/MongoSchema.js.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoTransactionRunner.d.ts +69 -0
- package/dist/cjs/src/storage/mongo/MongoTransactionRunner.d.ts.map +1 -0
- package/dist/cjs/src/storage/mongo/MongoTransactionRunner.js +368 -0
- package/dist/cjs/src/storage/mongo/MongoTransactionRunner.js.map +1 -0
- package/dist/cjs/src/storage/mongo.d.ts +9 -0
- package/dist/cjs/src/storage/mongo.d.ts.map +1 -0
- package/dist/cjs/src/storage/mongo.js +25 -0
- package/dist/cjs/src/storage/mongo.js.map +1 -0
- package/dist/esm/mod.js +3 -0
- package/dist/esm/mod.js.map +1 -1
- package/dist/esm/src/BASM.js +21 -8
- package/dist/esm/src/BASM.js.map +1 -1
- package/dist/esm/src/BASMRemote.js +176 -12
- package/dist/esm/src/BASMRemote.js.map +1 -1
- package/dist/esm/src/BASMValidation.js +95 -0
- package/dist/esm/src/BASMValidation.js.map +1 -0
- package/dist/esm/src/DiscoveryAdvertisementValidation.js +57 -0
- package/dist/esm/src/DiscoveryAdvertisementValidation.js.map +1 -0
- package/dist/esm/src/Engine.js +1720 -326
- package/dist/esm/src/Engine.js.map +1 -1
- package/dist/esm/src/EngineAdmission.js +280 -0
- package/dist/esm/src/EngineAdmission.js.map +1 -0
- package/dist/esm/src/GASP/OverlayGASPRemote.js +27 -43
- package/dist/esm/src/GASP/OverlayGASPRemote.js.map +1 -1
- package/dist/esm/src/GASP/OverlayGASPStorage.js +200 -56
- package/dist/esm/src/GASP/OverlayGASPStorage.js.map +1 -1
- package/dist/esm/src/RemoteSecurity.js +279 -0
- package/dist/esm/src/RemoteSecurity.js.map +1 -0
- package/dist/esm/src/storage/AdmissionStorage.js +85 -0
- package/dist/esm/src/storage/AdmissionStorage.js.map +1 -0
- package/dist/esm/src/storage/RecoveryContract.js +31 -0
- package/dist/esm/src/storage/RecoveryContract.js.map +1 -0
- package/dist/esm/src/storage/Storage.js +4 -1
- package/dist/esm/src/storage/Storage.js.map +1 -1
- package/dist/esm/src/storage/knex/KnexStorage.js +98 -61
- package/dist/esm/src/storage/knex/KnexStorage.js.map +1 -1
- package/dist/esm/src/storage/knex/all-migrations.js +5 -1
- package/dist/esm/src/storage/knex/all-migrations.js.map +1 -1
- package/dist/esm/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.js +32 -0
- package/dist/esm/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.js.map +1 -0
- package/dist/esm/src/storage/knex/migrations/2026-09-20-001-spent-by.js +12 -0
- package/dist/esm/src/storage/knex/migrations/2026-09-20-001-spent-by.js.map +1 -0
- package/dist/esm/src/storage/mongo/MongoAdmissionPlan.js +217 -0
- package/dist/esm/src/storage/mongo/MongoAdmissionPlan.js.map +1 -0
- package/dist/esm/src/storage/mongo/MongoAdmissionStorage.js +673 -0
- package/dist/esm/src/storage/mongo/MongoAdmissionStorage.js.map +1 -0
- package/dist/esm/src/storage/mongo/MongoOverlayStorage.js +451 -0
- package/dist/esm/src/storage/mongo/MongoOverlayStorage.js.map +1 -0
- package/dist/esm/src/storage/mongo/MongoPayloadStore.js +747 -0
- package/dist/esm/src/storage/mongo/MongoPayloadStore.js.map +1 -0
- package/dist/esm/src/storage/mongo/MongoReadGuards.js +129 -0
- package/dist/esm/src/storage/mongo/MongoReadGuards.js.map +1 -0
- package/dist/esm/src/storage/mongo/MongoSchema.js +730 -0
- package/dist/esm/src/storage/mongo/MongoSchema.js.map +1 -0
- package/dist/esm/src/storage/mongo/MongoTransactionRunner.js +371 -0
- package/dist/esm/src/storage/mongo/MongoTransactionRunner.js.map +1 -0
- package/dist/esm/src/storage/mongo.js +9 -0
- package/dist/esm/src/storage/mongo.js.map +1 -0
- package/dist/types/mod.d.ts +4 -1
- package/dist/types/mod.d.ts.map +1 -1
- package/dist/types/src/BASM.d.ts +6 -0
- package/dist/types/src/BASM.d.ts.map +1 -1
- package/dist/types/src/BASMRemote.d.ts +8 -1
- package/dist/types/src/BASMRemote.d.ts.map +1 -1
- package/dist/types/src/BASMValidation.d.ts +27 -0
- package/dist/types/src/BASMValidation.d.ts.map +1 -0
- package/dist/types/src/DiscoveryAdvertisementValidation.d.ts +11 -0
- package/dist/types/src/DiscoveryAdvertisementValidation.d.ts.map +1 -0
- package/dist/types/src/Engine.d.ts +38 -13
- package/dist/types/src/Engine.d.ts.map +1 -1
- package/dist/types/src/EngineAdmission.d.ts +70 -0
- package/dist/types/src/EngineAdmission.d.ts.map +1 -0
- package/dist/types/src/GASP/OverlayGASPRemote.d.ts +4 -3
- package/dist/types/src/GASP/OverlayGASPRemote.d.ts.map +1 -1
- package/dist/types/src/GASP/OverlayGASPStorage.d.ts +22 -16
- package/dist/types/src/GASP/OverlayGASPStorage.d.ts.map +1 -1
- package/dist/types/src/RemoteSecurity.d.ts +50 -0
- package/dist/types/src/RemoteSecurity.d.ts.map +1 -0
- package/dist/types/src/TopicManager.d.ts +13 -3
- package/dist/types/src/TopicManager.d.ts.map +1 -1
- package/dist/types/src/storage/AdmissionStorage.d.ts +185 -0
- package/dist/types/src/storage/AdmissionStorage.d.ts.map +1 -0
- package/dist/types/src/storage/RecoveryContract.d.ts +50 -0
- package/dist/types/src/storage/RecoveryContract.d.ts.map +1 -0
- package/dist/types/src/storage/Storage.d.ts +32 -19
- package/dist/types/src/storage/Storage.d.ts.map +1 -1
- package/dist/types/src/storage/knex/KnexStorage.d.ts +8 -8
- package/dist/types/src/storage/knex/KnexStorage.d.ts.map +1 -1
- package/dist/types/src/storage/knex/all-migrations.d.ts.map +1 -1
- package/dist/types/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.d.ts +4 -0
- package/dist/types/src/storage/knex/migrations/2026-09-17-001-topical-uniqueness.d.ts.map +1 -0
- package/dist/types/src/storage/knex/migrations/2026-09-20-001-spent-by.d.ts +5 -0
- package/dist/types/src/storage/knex/migrations/2026-09-20-001-spent-by.d.ts.map +1 -0
- package/dist/types/src/storage/mongo/MongoAdmissionPlan.d.ts +18 -0
- package/dist/types/src/storage/mongo/MongoAdmissionPlan.d.ts.map +1 -0
- package/dist/types/src/storage/mongo/MongoAdmissionStorage.d.ts +112 -0
- package/dist/types/src/storage/mongo/MongoAdmissionStorage.d.ts.map +1 -0
- package/dist/types/src/storage/mongo/MongoOverlayStorage.d.ts +71 -0
- package/dist/types/src/storage/mongo/MongoOverlayStorage.d.ts.map +1 -0
- package/dist/types/src/storage/mongo/MongoPayloadStore.d.ts +134 -0
- package/dist/types/src/storage/mongo/MongoPayloadStore.d.ts.map +1 -0
- package/dist/types/src/storage/mongo/MongoReadGuards.d.ts +44 -0
- package/dist/types/src/storage/mongo/MongoReadGuards.d.ts.map +1 -0
- package/dist/types/src/storage/mongo/MongoSchema.d.ts +67 -0
- package/dist/types/src/storage/mongo/MongoSchema.d.ts.map +1 -0
- package/dist/types/src/storage/mongo/MongoTransactionRunner.d.ts +69 -0
- package/dist/types/src/storage/mongo/MongoTransactionRunner.d.ts.map +1 -0
- package/dist/types/src/storage/mongo.d.ts +9 -0
- package/dist/types/src/storage/mongo.d.ts.map +1 -0
- package/package.json +14 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdmissionStorage.js","sourceRoot":"","sources":["../../../../src/storage/AdmissionStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type HistoryFence, type StorageScope, type StorageUint64 } from './AdmissionStorage.js';
|
|
2
|
+
export interface RecoveryLease extends HistoryFence {
|
|
3
|
+
scope: StorageScope;
|
|
4
|
+
topic: string;
|
|
5
|
+
peerId: string;
|
|
6
|
+
jobId: string;
|
|
7
|
+
leaseToken: StorageUint64;
|
|
8
|
+
expiresAtMs: StorageUint64;
|
|
9
|
+
}
|
|
10
|
+
/** Use database time and this predicate INSIDE the checkpoint/publication CAS. */
|
|
11
|
+
export declare function isRecoveryLeaseCurrent(expected: RecoveryLease, current: RecoveryLease, nowMs: StorageUint64): boolean;
|
|
12
|
+
/** A repair's own revision/checkpoint must move together; other workers rewind. */
|
|
13
|
+
export interface HistoryRevisionHandoff {
|
|
14
|
+
expected: RecoveryLease;
|
|
15
|
+
checkpoint: string;
|
|
16
|
+
}
|
|
17
|
+
/** Immutable history; a current pointer must CAS both revisions and the header. */
|
|
18
|
+
export interface TopicAnchorRevision extends HistoryFence {
|
|
19
|
+
scope: StorageScope;
|
|
20
|
+
topic: string;
|
|
21
|
+
height: StorageUint64;
|
|
22
|
+
blockHash: string;
|
|
23
|
+
basmRoot: string;
|
|
24
|
+
admittedCount: StorageUint64;
|
|
25
|
+
tac: string;
|
|
26
|
+
previousTac: string;
|
|
27
|
+
policyId: string;
|
|
28
|
+
}
|
|
29
|
+
/** A local tuple does not negotiate a remote protocol. Evidence comes from S06. */
|
|
30
|
+
export type GaspCursorEvidence = {
|
|
31
|
+
mode: 'negotiated-tuple';
|
|
32
|
+
negotiated: boolean;
|
|
33
|
+
pageFinalized: boolean;
|
|
34
|
+
} | {
|
|
35
|
+
mode: 'inclusive-since';
|
|
36
|
+
inclusiveSemanticsProven: boolean;
|
|
37
|
+
equalScoreDrained: boolean;
|
|
38
|
+
pageFinalized: boolean;
|
|
39
|
+
} | {
|
|
40
|
+
mode: 'full-resync';
|
|
41
|
+
noSkipSemanticsProven: boolean;
|
|
42
|
+
resyncCompleted: boolean;
|
|
43
|
+
pageFinalized: boolean;
|
|
44
|
+
} | {
|
|
45
|
+
mode: 'unsupported';
|
|
46
|
+
pageFinalized: boolean;
|
|
47
|
+
};
|
|
48
|
+
/** Gate for a durable finalization/cursor transaction; never advances a cursor. */
|
|
49
|
+
export declare function canAdvanceGaspCursor(evidence: GaspCursorEvidence): boolean;
|
|
50
|
+
//# sourceMappingURL=RecoveryContract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecoveryContract.d.ts","sourceRoot":"","sources":["../../../../src/storage/RecoveryContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,aAAa,CAAA;IACzB,WAAW,EAAE,aAAa,CAAA;CAC3B;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,aAAa,GACnB,OAAO,CAcT;AAED,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GACzE;IACE,IAAI,EAAE,iBAAiB,CAAA;IACvB,wBAAwB,EAAE,OAAO,CAAA;IACjC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;CACvB,GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;CACvB,GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAAA;AAEnD,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAY1E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isRecoveryLeaseCurrent = isRecoveryLeaseCurrent;
|
|
4
|
+
exports.canAdvanceGaspCursor = canAdvanceGaspCursor;
|
|
5
|
+
const AdmissionStorage_js_1 = require("./AdmissionStorage.js");
|
|
6
|
+
/** Use database time and this predicate INSIDE the checkpoint/publication CAS. */
|
|
7
|
+
function isRecoveryLeaseCurrent(expected, current, nowMs) {
|
|
8
|
+
return (expected.scope.network === current.scope.network &&
|
|
9
|
+
expected.scope.genesisHash === current.scope.genesisHash &&
|
|
10
|
+
expected.scope.nodeId === current.scope.nodeId &&
|
|
11
|
+
expected.topic === current.topic &&
|
|
12
|
+
expected.peerId === current.peerId &&
|
|
13
|
+
expected.jobId === current.jobId &&
|
|
14
|
+
(0, AdmissionStorage_js_1.parseStorageUint64)(expected.chainEpoch) === (0, AdmissionStorage_js_1.parseStorageUint64)(current.chainEpoch) &&
|
|
15
|
+
(0, AdmissionStorage_js_1.parseStorageUint64)(expected.topicHistoryGeneration) ===
|
|
16
|
+
(0, AdmissionStorage_js_1.parseStorageUint64)(current.topicHistoryGeneration) &&
|
|
17
|
+
(0, AdmissionStorage_js_1.parseStorageUint64)(expected.leaseToken) === (0, AdmissionStorage_js_1.parseStorageUint64)(current.leaseToken) &&
|
|
18
|
+
(0, AdmissionStorage_js_1.parseStorageUint64)(current.expiresAtMs) > (0, AdmissionStorage_js_1.parseStorageUint64)(nowMs));
|
|
19
|
+
}
|
|
20
|
+
/** Gate for a durable finalization/cursor transaction; never advances a cursor. */
|
|
21
|
+
function canAdvanceGaspCursor(evidence) {
|
|
22
|
+
if (!evidence.pageFinalized)
|
|
23
|
+
return false;
|
|
24
|
+
switch (evidence.mode) {
|
|
25
|
+
case 'negotiated-tuple':
|
|
26
|
+
return evidence.negotiated;
|
|
27
|
+
case 'inclusive-since':
|
|
28
|
+
return evidence.inclusiveSemanticsProven && evidence.equalScoreDrained;
|
|
29
|
+
case 'full-resync':
|
|
30
|
+
return evidence.noSkipSemanticsProven && evidence.resyncCompleted;
|
|
31
|
+
default:
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=RecoveryContract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecoveryContract.js","sourceRoot":"","sources":["../../../../src/storage/RecoveryContract.ts"],"names":[],"mappings":";;;;AAAA,+DAK8B;AAW9B,kFAAkF;AAClF,gCACE,QAAuB,EACvB,OAAsB,EACtB,KAAoB;IAEpB,OAAO,CACL,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO;QAChD,QAAQ,CAAC,KAAK,CAAC,WAAW,KAAK,OAAO,CAAC,KAAK,CAAC,WAAW;QACxD,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,MAAM;QAC9C,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAChC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAClC,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAChC,IAAA,wCAAkB,EAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAA,wCAAkB,EAAC,OAAO,CAAC,UAAU,CAAC;QAClF,IAAA,wCAAkB,EAAC,QAAQ,CAAC,sBAAsB,CAAC;YACjD,IAAA,wCAAkB,EAAC,OAAO,CAAC,sBAAsB,CAAC;QACpD,IAAA,wCAAkB,EAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAA,wCAAkB,EAAC,OAAO,CAAC,UAAU,CAAC;QAClF,IAAA,wCAAkB,EAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAA,wCAAkB,EAAC,KAAK,CAAC,CACpE,CAAA;AACH,CAAC;AAsCD,mFAAmF;AACnF,8BAAqC,QAA4B;IAC/D,IAAI,CAAC,QAAQ,CAAC,aAAa;QAAE,OAAO,KAAK,CAAA;IACzC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,kBAAkB;YACrB,OAAO,QAAQ,CAAC,UAAU,CAAA;QAC5B,KAAK,iBAAiB;YACpB,OAAO,QAAQ,CAAC,wBAAwB,IAAI,QAAQ,CAAC,iBAAiB,CAAA;QACxE,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC,qBAAqB,IAAI,QAAQ,CAAC,eAAe,CAAA;QACnE;YACE,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Output } from '../Output.js';
|
|
2
|
+
import type { AdmissionStorage } from './AdmissionStorage.js';
|
|
2
3
|
import type { AdmittedTxRef, RawTransactionRecord, TopicAnchorTip, TopicBlockAnchor } from '../BASM.js';
|
|
3
4
|
/**
|
|
4
5
|
* Represents a transaction that has been applied to a topic.
|
|
@@ -48,10 +49,16 @@ export interface UnprovenAppliedTransactionCandidate {
|
|
|
48
49
|
outputIndex: number;
|
|
49
50
|
}>;
|
|
50
51
|
}
|
|
52
|
+
export interface UnprovenQueryLimits {
|
|
53
|
+
maxCandidates: number;
|
|
54
|
+
maxOutputs: number;
|
|
55
|
+
}
|
|
51
56
|
/**
|
|
52
57
|
* Defines the Storage Engine interface used internally by the Overlay Services Engine.
|
|
53
58
|
*/
|
|
54
59
|
export interface Storage {
|
|
60
|
+
/** Optional whole-admission contract. Legacy CRUD does not imply this capability. */
|
|
61
|
+
readonly admission?: AdmissionStorage;
|
|
55
62
|
/**
|
|
56
63
|
* Adds a new output to storage
|
|
57
64
|
* @param utxo — The output to add
|
|
@@ -81,7 +88,7 @@ export interface Storage {
|
|
|
81
88
|
* @param txid — TXID of the outputs to find
|
|
82
89
|
* @param includeBEEF — Whether to include the BEEF data for the outputs (optional)
|
|
83
90
|
*/
|
|
84
|
-
findOutputsForTransaction: (txid: string, includeBEEF?: boolean) => Promise<Output[]>;
|
|
91
|
+
findOutputsForTransaction: (txid: string, includeBEEF?: boolean, limit?: number) => Promise<Output[]>;
|
|
85
92
|
/**
|
|
86
93
|
* Finds current UTXOs that have been admitted into a given topic
|
|
87
94
|
* @param topic - The topic for which we want to find Unspent Transaction Outputs (UTXOs).
|
|
@@ -99,19 +106,23 @@ export interface Storage {
|
|
|
99
106
|
*/
|
|
100
107
|
deleteOutput: (txid: string, outputIndex: number, topic: string) => Promise<void>;
|
|
101
108
|
/**
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
* Updates a UTXO as spent
|
|
110
|
+
* @param txid — TXID of the output to update
|
|
111
|
+
* @param outputIndex — Index of the output to update
|
|
112
|
+
* @param topic — Topic in which the output should be updated
|
|
113
|
+
* @param spendingTxid — Optional transaction claiming the spend. Repeating
|
|
114
|
+
* the same claim is idempotent; a different spender must still fail.
|
|
115
|
+
* @throws If the topical output does not exist or was spent by a different
|
|
116
|
+
* transaction. Storage implementations must make this check and update atomic.
|
|
117
|
+
*/
|
|
118
|
+
markUTXOAsSpent: (txid: string, outputIndex: number, topic: string, spendingTxid?: string) => Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Updates which outputs are consumed by this output
|
|
121
|
+
* @param txid — TXID of the output to update
|
|
122
|
+
* @param outputIndex — Index of the output to update
|
|
123
|
+
* @param topic — Topic in which the output should be updated
|
|
124
|
+
* @param consumedBy — The new set of outputs consumed by this output
|
|
125
|
+
*/
|
|
115
126
|
updateConsumedBy: (txid: string, outputIndex: number, topic: string, consumedBy: Array<{
|
|
116
127
|
txid: string;
|
|
117
128
|
outputIndex: number;
|
|
@@ -153,7 +164,7 @@ export interface Storage {
|
|
|
153
164
|
/**
|
|
154
165
|
* Returns proven topic transactions admitted in one block, in canonical block order.
|
|
155
166
|
*/
|
|
156
|
-
findAdmittedTransactionsForBlock?: (topic: string, blockHeight: number, blockHash?: string) => Promise<AdmittedTxRef[]>;
|
|
167
|
+
findAdmittedTransactionsForBlock?: (topic: string, blockHeight: number, blockHash?: string, limit?: number) => Promise<AdmittedTxRef[]>;
|
|
157
168
|
/**
|
|
158
169
|
* Persists or replaces a topic block anchor for one height.
|
|
159
170
|
*/
|
|
@@ -165,7 +176,7 @@ export interface Storage {
|
|
|
165
176
|
/**
|
|
166
177
|
* Returns topic block anchors across a closed height range.
|
|
167
178
|
*/
|
|
168
|
-
findTopicBlockAnchors?: (topic: string, fromHeight: number, toHeight: number) => Promise<TopicBlockAnchor[]>;
|
|
179
|
+
findTopicBlockAnchors?: (topic: string, fromHeight: number, toHeight: number, limit?: number) => Promise<TopicBlockAnchor[]>;
|
|
169
180
|
/**
|
|
170
181
|
* Returns the latest known topic anchor tip.
|
|
171
182
|
*/
|
|
@@ -188,7 +199,7 @@ export interface Storage {
|
|
|
188
199
|
/**
|
|
189
200
|
* Finds topic-applied transactions with no direct proof old enough to evict.
|
|
190
201
|
*/
|
|
191
|
-
findUnprovenAppliedTransactions?: (cutoffHeight: number, topic?: string) => Promise<UnprovenAppliedTransactionCandidate[]>;
|
|
202
|
+
findUnprovenAppliedTransactions?: (cutoffHeight: number, topic?: string, limits?: UnprovenQueryLimits) => Promise<UnprovenAppliedTransactionCandidate[]>;
|
|
192
203
|
/**
|
|
193
204
|
* Deletes a topic-applied transaction record.
|
|
194
205
|
*/
|
|
@@ -197,7 +208,7 @@ export interface Storage {
|
|
|
197
208
|
* Returns proven topic-applied transactions whose proof anchors to the given
|
|
198
209
|
* block hash. Used to demote admissions when that block is reorged out.
|
|
199
210
|
*/
|
|
200
|
-
findProvenAppliedTransactionsByBlockHash?: (blockHash: string) => Promise<Array<{
|
|
211
|
+
findProvenAppliedTransactionsByBlockHash?: (blockHash: string, limit?: number) => Promise<Array<{
|
|
201
212
|
txid: string;
|
|
202
213
|
topic: string;
|
|
203
214
|
blockHeight: number;
|
|
@@ -206,7 +217,7 @@ export interface Storage {
|
|
|
206
217
|
* Returns proven topic-applied transactions in a closed block-height range,
|
|
207
218
|
* including the proof's block hash and merkle root for revalidation sweeps.
|
|
208
219
|
*/
|
|
209
|
-
findProvenAppliedTransactionsInRange?: (fromHeight: number, toHeight: number, topic?: string) => Promise<Array<{
|
|
220
|
+
findProvenAppliedTransactionsInRange?: (fromHeight: number, toHeight: number, topic?: string, limit?: number) => Promise<Array<{
|
|
210
221
|
txid: string;
|
|
211
222
|
topic: string;
|
|
212
223
|
blockHeight: number;
|
|
@@ -234,4 +245,6 @@ export interface Storage {
|
|
|
234
245
|
*/
|
|
235
246
|
getLastInteraction: (host: string, topic: string) => Promise<number>;
|
|
236
247
|
}
|
|
248
|
+
/** True when the optional admission field is present. Protocol detection is separate. */
|
|
249
|
+
export declare function storageHasAdmission(storage: Storage): boolean;
|
|
237
250
|
//# sourceMappingURL=Storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7C;;;;;;;OAOG;IACH,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.storageHasAdmission = storageHasAdmission;
|
|
4
|
+
/** True when the optional admission field is present. Protocol detection is separate. */
|
|
5
|
+
function storageHasAdmission(storage) {
|
|
6
|
+
return storage.admission !== undefined;
|
|
7
|
+
}
|
|
3
8
|
//# sourceMappingURL=Storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../src/storage/Storage.ts"],"names":[],"mappings":";;;AAoVA,yFAAyF;AACzF,6BAAoC,OAAgB;IAClD,OAAO,OAAO,CAAC,SAAS,KAAK,SAAS,CAAA;AACxC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Storage, type AppliedTransaction, type AppliedTransactionProofUpdate, type StoredTransactionRecord, type UnprovenAppliedTransactionCandidate } from '../Storage.js';
|
|
1
|
+
import { Storage, type AppliedTransaction, type AppliedTransactionProofUpdate, type StoredTransactionRecord, type UnprovenAppliedTransactionCandidate, type UnprovenQueryLimits } from '../Storage.js';
|
|
2
2
|
import { Knex } from 'knex';
|
|
3
3
|
import type { Output } from '../../Output.js';
|
|
4
4
|
import { type AdmittedTxRef, type RawTransactionRecord, type TopicAnchorTip, type TopicBlockAnchor } from '../../BASM.js';
|
|
@@ -16,11 +16,11 @@ export declare class KnexStorage implements Storage {
|
|
|
16
16
|
txid: string;
|
|
17
17
|
outputIndex: number;
|
|
18
18
|
}>, includeBEEF?: boolean): Promise<Output[]>;
|
|
19
|
-
findOutputsForTransaction(txid: string, includeBEEF?: boolean): Promise<Output[]>;
|
|
19
|
+
findOutputsForTransaction(txid: string, includeBEEF?: boolean, limit?: number): Promise<Output[]>;
|
|
20
20
|
findUTXOsForTopic(topic: string, since?: number, limit?: number, includeBEEF?: boolean): Promise<Output[]>;
|
|
21
21
|
deleteOutput(txid: string, outputIndex: number, topic: string): Promise<void>;
|
|
22
22
|
insertOutput(output: Output): Promise<void>;
|
|
23
|
-
markUTXOAsSpent(txid: string, outputIndex: number, topic?: string): Promise<void>;
|
|
23
|
+
markUTXOAsSpent(txid: string, outputIndex: number, topic: string, spendingTxid?: string): Promise<void>;
|
|
24
24
|
updateConsumedBy(txid: string, outputIndex: number, topic: string, consumedBy: Array<{
|
|
25
25
|
txid: string;
|
|
26
26
|
outputIndex: number;
|
|
@@ -36,10 +36,10 @@ export declare class KnexStorage implements Storage {
|
|
|
36
36
|
}): Promise<boolean>;
|
|
37
37
|
updateLastInteraction(host: string, topic: string, since: number): Promise<void>;
|
|
38
38
|
getLastInteraction(host: string, topic: string): Promise<number>;
|
|
39
|
-
findAdmittedTransactionsForBlock(topic: string, blockHeight: number, blockHash?: string): Promise<AdmittedTxRef[]>;
|
|
39
|
+
findAdmittedTransactionsForBlock(topic: string, blockHeight: number, blockHash?: string, limit?: number): Promise<AdmittedTxRef[]>;
|
|
40
40
|
upsertTopicBlockAnchor(anchor: TopicBlockAnchor): Promise<void>;
|
|
41
41
|
findTopicBlockAnchor(topic: string, blockHeight: number, blockHash?: string): Promise<TopicBlockAnchor | undefined>;
|
|
42
|
-
findTopicBlockAnchors(topic: string, fromHeight: number, toHeight: number): Promise<TopicBlockAnchor[]>;
|
|
42
|
+
findTopicBlockAnchors(topic: string, fromHeight: number, toHeight: number, limit?: number): Promise<TopicBlockAnchor[]>;
|
|
43
43
|
findTopicAnchorTip(topic: string): Promise<TopicAnchorTip | undefined>;
|
|
44
44
|
findRawTransactions(txids: string[]): Promise<RawTransactionRecord[]>;
|
|
45
45
|
findTransactionMerklePaths(txids: string[]): Promise<Array<{
|
|
@@ -50,14 +50,14 @@ export declare class KnexStorage implements Storage {
|
|
|
50
50
|
blockIndex?: number;
|
|
51
51
|
merkleRoot?: string;
|
|
52
52
|
}>>;
|
|
53
|
-
findUnprovenAppliedTransactions(cutoffHeight: number, topic?: string): Promise<UnprovenAppliedTransactionCandidate[]>;
|
|
53
|
+
findUnprovenAppliedTransactions(cutoffHeight: number, topic?: string, limits?: UnprovenQueryLimits): Promise<UnprovenAppliedTransactionCandidate[]>;
|
|
54
54
|
deleteAppliedTransaction(txid: string, topic: string): Promise<void>;
|
|
55
|
-
findProvenAppliedTransactionsByBlockHash(blockHash: string): Promise<Array<{
|
|
55
|
+
findProvenAppliedTransactionsByBlockHash(blockHash: string, limit?: number): Promise<Array<{
|
|
56
56
|
txid: string;
|
|
57
57
|
topic: string;
|
|
58
58
|
blockHeight: number;
|
|
59
59
|
}>>;
|
|
60
|
-
findProvenAppliedTransactionsInRange(fromHeight: number, toHeight: number, topic?: string): Promise<Array<{
|
|
60
|
+
findProvenAppliedTransactionsInRange(fromHeight: number, toHeight: number, topic?: string, limit?: number): Promise<Array<{
|
|
61
61
|
txid: string;
|
|
62
62
|
topic: string;
|
|
63
63
|
blockHeight: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnexStorage.d.ts","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,mCAAmC,
|
|
1
|
+
{"version":3,"file":"KnexStorage.d.ts","sourceRoot":"","sources":["../../../../../src/storage/knex/KnexStorage.ts"],"names":[],"mappings":"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"}
|