@bsv/wallet-toolbox 2.1.25 → 3.0.0-alpha.0
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/docs/CREATEACTION_BLOCKERS.md +391 -0
- package/docs/CUTOVER_RUNBOOK.md +95 -0
- package/docs/REQUIREMENTS_COMPLIANCE.md +157 -0
- package/docs/ROLLOUT_PLAN.md +273 -0
- package/docs/SESSION_HANDOFF.md +298 -0
- package/docs/STORAGE_METHOD_WIRING.md +176 -0
- package/docs/client.md +3765 -1325
- package/docs/monitor.md +255 -33
- package/docs/services.md +304 -280
- package/docs/setup.md +24 -24
- package/docs/storage.md +2783 -251
- package/docs/v3-upgrade/index.html +911 -0
- package/docs/wallet.md +4956 -9455
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletLogger.d.ts.map +1 -1
- package/out/src/WalletLogger.js.map +1 -1
- package/out/src/__tests/CWIStyleWalletManager.test.js.map +1 -1
- package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts.map +1 -1
- package/out/src/__tests/WalletPermissionsManager.fixtures.js.map +1 -1
- package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
- package/out/src/entropy/EntropyCollector.js.map +1 -1
- package/out/src/monitor/LeasedMonitorTask.d.ts +43 -0
- package/out/src/monitor/LeasedMonitorTask.d.ts.map +1 -0
- package/out/src/monitor/LeasedMonitorTask.js +89 -0
- package/out/src/monitor/LeasedMonitorTask.js.map +1 -0
- package/out/src/monitor/Monitor.d.ts +7 -0
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +7 -0
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js.map +1 -1
- package/out/src/monitor/V7LeasedTask.d.ts +43 -0
- package/out/src/monitor/V7LeasedTask.d.ts.map +1 -0
- package/out/src/monitor/V7LeasedTask.js +89 -0
- package/out/src/monitor/V7LeasedTask.js.map +1 -0
- package/out/src/monitor/index.all.d.ts +1 -0
- package/out/src/monitor/index.all.d.ts.map +1 -1
- package/out/src/monitor/index.all.js +1 -0
- package/out/src/monitor/index.all.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +2 -0
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +55 -0
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +59 -59
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/sdk/types.d.ts +32 -0
- package/out/src/sdk/types.d.ts.map +1 -1
- package/out/src/sdk/types.js +50 -1
- package/out/src/sdk/types.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js.map +1 -1
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +10 -5
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +133 -3
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +691 -94
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +114 -1
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +164 -4
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/idbHelpers.d.ts +5 -0
- package/out/src/storage/idbHelpers.d.ts.map +1 -1
- package/out/src/storage/idbHelpers.js +42 -0
- package/out/src/storage/idbHelpers.js.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +116 -4
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +22 -5
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +172 -5
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/listActionsKnex.d.ts +49 -0
- package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsKnex.js +179 -69
- package/out/src/storage/methods/listActionsKnex.js.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.js +51 -4
- package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +82 -14
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/methods/purgeData.d.ts.map +1 -1
- package/out/src/storage/methods/purgeData.js +22 -14
- package/out/src/storage/methods/purgeData.js.map +1 -1
- package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
- package/out/src/storage/methods/reviewStatus.js +18 -9
- package/out/src/storage/methods/reviewStatus.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +134 -0
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts +43 -2
- package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
- package/out/src/storage/schema/__tests/backfill.runner.test.d.ts +2 -0
- package/out/src/storage/schema/__tests/backfill.runner.test.d.ts.map +1 -0
- package/out/src/storage/schema/__tests/backfill.runner.test.js +148 -0
- package/out/src/storage/schema/__tests/backfill.runner.test.js.map +1 -0
- package/out/src/storage/schema/__tests/backfill.test.d.ts +2 -0
- package/out/src/storage/schema/__tests/backfill.test.d.ts.map +1 -0
- package/out/src/storage/schema/__tests/backfill.test.js +96 -0
- package/out/src/storage/schema/__tests/backfill.test.js.map +1 -0
- package/out/src/storage/schema/__tests/processingFsm.test.d.ts +2 -0
- package/out/src/storage/schema/__tests/processingFsm.test.d.ts.map +1 -0
- package/out/src/storage/schema/__tests/processingFsm.test.js +42 -0
- package/out/src/storage/schema/__tests/processingFsm.test.js.map +1 -0
- package/out/src/storage/schema/__tests/processingFsmLegacyMapping.test.d.ts +2 -0
- package/out/src/storage/schema/__tests/processingFsmLegacyMapping.test.d.ts.map +1 -0
- package/out/src/storage/schema/__tests/processingFsmLegacyMapping.test.js +82 -0
- package/out/src/storage/schema/__tests/processingFsmLegacyMapping.test.js.map +1 -0
- package/out/src/storage/schema/__tests/spendabilityRule.test.d.ts +2 -0
- package/out/src/storage/schema/__tests/spendabilityRule.test.d.ts.map +1 -0
- package/out/src/storage/schema/__tests/spendabilityRule.test.js +29 -0
- package/out/src/storage/schema/__tests/spendabilityRule.test.js.map +1 -0
- package/out/src/storage/schema/__tests/v7FsmLegacyMapping.test.d.ts +2 -0
- package/out/src/storage/schema/__tests/v7FsmLegacyMapping.test.d.ts.map +1 -0
- package/out/src/storage/schema/__tests/v7FsmLegacyMapping.test.js +77 -0
- package/out/src/storage/schema/__tests/v7FsmLegacyMapping.test.js.map +1 -0
- package/out/src/storage/schema/backfill.d.ts +35 -0
- package/out/src/storage/schema/backfill.d.ts.map +1 -0
- package/out/src/storage/schema/backfill.idb.d.ts +32 -0
- package/out/src/storage/schema/backfill.idb.d.ts.map +1 -0
- package/out/src/storage/schema/backfill.idb.js +95 -0
- package/out/src/storage/schema/backfill.idb.js.map +1 -0
- package/out/src/storage/schema/backfill.js +150 -0
- package/out/src/storage/schema/backfill.js.map +1 -0
- package/out/src/storage/schema/backfill.knex.d.ts +32 -0
- package/out/src/storage/schema/backfill.knex.d.ts.map +1 -0
- package/out/src/storage/schema/backfill.knex.js +240 -0
- package/out/src/storage/schema/backfill.knex.js.map +1 -0
- package/out/src/storage/schema/backfill.runner.d.ts +63 -0
- package/out/src/storage/schema/backfill.runner.d.ts.map +1 -0
- package/out/src/storage/schema/backfill.runner.js +64 -0
- package/out/src/storage/schema/backfill.runner.js.map +1 -0
- package/out/src/storage/schema/coinbaseMaturityBackfill.d.ts +25 -0
- package/out/src/storage/schema/coinbaseMaturityBackfill.d.ts.map +1 -0
- package/out/src/storage/schema/coinbaseMaturityBackfill.js +75 -0
- package/out/src/storage/schema/coinbaseMaturityBackfill.js.map +1 -0
- package/out/src/storage/schema/monitorLease.d.ts +57 -0
- package/out/src/storage/schema/monitorLease.d.ts.map +1 -0
- package/out/src/storage/schema/monitorLease.js +101 -0
- package/out/src/storage/schema/monitorLease.js.map +1 -0
- package/out/src/storage/schema/processingFsm.d.ts +27 -0
- package/out/src/storage/schema/processingFsm.d.ts.map +1 -0
- package/out/src/storage/schema/processingFsm.js +132 -0
- package/out/src/storage/schema/processingFsm.js.map +1 -0
- package/out/src/storage/schema/schemaCutover.d.ts +34 -0
- package/out/src/storage/schema/schemaCutover.d.ts.map +1 -0
- package/out/src/storage/schema/schemaCutover.js +230 -0
- package/out/src/storage/schema/schemaCutover.js.map +1 -0
- package/out/src/storage/schema/schemaCutoverIdb.d.ts +26 -0
- package/out/src/storage/schema/schemaCutoverIdb.d.ts.map +1 -0
- package/out/src/storage/schema/schemaCutoverIdb.js +90 -0
- package/out/src/storage/schema/schemaCutoverIdb.js.map +1 -0
- package/out/src/storage/schema/spendabilityRefresh.d.ts +49 -0
- package/out/src/storage/schema/spendabilityRefresh.d.ts.map +1 -0
- package/out/src/storage/schema/spendabilityRefresh.js +120 -0
- package/out/src/storage/schema/spendabilityRefresh.js.map +1 -0
- package/out/src/storage/schema/spendabilityRule.d.ts +45 -0
- package/out/src/storage/schema/spendabilityRule.d.ts.map +1 -0
- package/out/src/storage/schema/spendabilityRule.js +52 -0
- package/out/src/storage/schema/spendabilityRule.js.map +1 -0
- package/out/src/storage/schema/tables/TableAction.d.ts +3 -3
- package/out/src/storage/schema/tables/TableAction.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableChainTip.d.ts +1 -1
- package/out/src/storage/schema/tables/TableMonitorLease.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutput.d.ts +7 -0
- package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutput.js.map +1 -1
- package/out/src/storage/schema/tables/TableTransactionNew.d.ts +50 -0
- package/out/src/storage/schema/tables/TableTransactionNew.d.ts.map +1 -0
- package/out/src/storage/schema/tables/TableTransactionNew.js +3 -0
- package/out/src/storage/schema/tables/TableTransactionNew.js.map +1 -0
- package/out/src/storage/schema/tables/TableTxAudit.d.ts +1 -1
- package/out/src/storage/schema/tables/index.d.ts +5 -0
- package/out/src/storage/schema/tables/index.d.ts.map +1 -1
- package/out/src/storage/schema/tables/index.js +5 -0
- package/out/src/storage/schema/tables/index.js.map +1 -1
- package/out/src/storage/schema/transactionCrud.d.ts +41 -0
- package/out/src/storage/schema/transactionCrud.d.ts.map +1 -0
- package/out/src/storage/schema/transactionCrud.js +205 -0
- package/out/src/storage/schema/transactionCrud.js.map +1 -0
- package/out/src/storage/schema/transactionService.d.ts +315 -0
- package/out/src/storage/schema/transactionService.d.ts.map +1 -0
- package/out/src/storage/schema/transactionService.js +783 -0
- package/out/src/storage/schema/transactionService.js.map +1 -0
- package/out/src/storage/schema/txAudit.d.ts +33 -0
- package/out/src/storage/schema/txAudit.d.ts.map +1 -0
- package/out/src/storage/schema/txAudit.js +64 -0
- package/out/src/storage/schema/txAudit.js.map +1 -0
- package/out/src/storage/schema/v7Backfill.d.ts.map +1 -1
- package/out/src/storage/schema/v7Backfill.js +4 -1
- package/out/src/storage/schema/v7Backfill.js.map +1 -1
- package/out/src/storage/schema/v7Backfill.runner.d.ts.map +1 -1
- package/out/src/storage/schema/v7Backfill.runner.js +3 -1
- package/out/src/storage/schema/v7Backfill.runner.js.map +1 -1
- package/out/src/storage/schema/v7CoinbaseMaturityBackfill.d.ts +25 -0
- package/out/src/storage/schema/v7CoinbaseMaturityBackfill.d.ts.map +1 -0
- package/out/src/storage/schema/v7CoinbaseMaturityBackfill.js +75 -0
- package/out/src/storage/schema/v7CoinbaseMaturityBackfill.js.map +1 -0
- package/out/src/storage/schema/v7Crud.d.ts +5 -3
- package/out/src/storage/schema/v7Crud.d.ts.map +1 -1
- package/out/src/storage/schema/v7Crud.js +11 -9
- package/out/src/storage/schema/v7Crud.js.map +1 -1
- package/out/src/storage/schema/v7Cutover.d.ts +34 -0
- package/out/src/storage/schema/v7Cutover.d.ts.map +1 -0
- package/out/src/storage/schema/v7Cutover.js +223 -0
- package/out/src/storage/schema/v7Cutover.js.map +1 -0
- package/out/src/storage/schema/v7CutoverIdb.d.ts +26 -0
- package/out/src/storage/schema/v7CutoverIdb.d.ts.map +1 -0
- package/out/src/storage/schema/v7CutoverIdb.js +90 -0
- package/out/src/storage/schema/v7CutoverIdb.js.map +1 -0
- package/out/src/storage/schema/v7Fsm.d.ts.map +1 -1
- package/out/src/storage/schema/v7Fsm.js +22 -6
- package/out/src/storage/schema/v7Fsm.js.map +1 -1
- package/out/src/storage/schema/v7Service.d.ts +305 -0
- package/out/src/storage/schema/v7Service.d.ts.map +1 -0
- package/out/src/storage/schema/v7Service.js +757 -0
- package/out/src/storage/schema/v7Service.js.map +1 -0
- package/out/src/storage/schema/v7SpendabilityRefresh.d.ts +49 -0
- package/out/src/storage/schema/v7SpendabilityRefresh.d.ts.map +1 -0
- package/out/src/storage/schema/v7SpendabilityRefresh.js +111 -0
- package/out/src/storage/schema/v7SpendabilityRefresh.js.map +1 -0
- package/out/src/storage/storageProviderHelpers.js +1 -1
- package/out/src/storage/storageProviderHelpers.js.map +1 -1
- package/out/src/utility/Format.js.map +1 -1
- package/package.json +7 -4
|
@@ -12,6 +12,7 @@ const WERR_errors_1 = require("../../sdk/WERR_errors");
|
|
|
12
12
|
const parseTxScriptOffsets_1 = require("../../utility/parseTxScriptOffsets");
|
|
13
13
|
const utilityHelpers_noBuffer_1 = require("../../utility/utilityHelpers.noBuffer");
|
|
14
14
|
async function processAction(storage, auth, args) {
|
|
15
|
+
var _a, _b;
|
|
15
16
|
const logger = args.logger;
|
|
16
17
|
logger === null || logger === void 0 ? void 0 : logger.group('storage processAction');
|
|
17
18
|
const userId = (0, utilityHelpers_1.verifyId)(auth.userId);
|
|
@@ -27,6 +28,50 @@ async function processAction(storage, auth, args) {
|
|
|
27
28
|
logger === null || logger === void 0 ? void 0 : logger.log('committed new tx updates to storage ');
|
|
28
29
|
if (!req)
|
|
29
30
|
throw new WERR_errors_1.WERR_INTERNAL();
|
|
31
|
+
// new-schema additive wiring — Option B (defer to processAction).
|
|
32
|
+
// Now that the real txid is known, create the new transactions row + actions
|
|
33
|
+
// row and repoint any tx_labels_map rows from the legacy transactionId to
|
|
34
|
+
// the new new actionId. Wrapped in try/catch so pre-cutover test databases
|
|
35
|
+
// (which lack the new transactions tables) continue to pass without modification.
|
|
36
|
+
// See docs/CREATEACTION_BLOCKERS.md §3 Option B.
|
|
37
|
+
const txSvc = storage.getTransactionService();
|
|
38
|
+
if (txSvc != null) {
|
|
39
|
+
try {
|
|
40
|
+
const processing = vargs.isNoSend ? 'nosend' : 'queued';
|
|
41
|
+
const { action, transaction } = await txSvc.findOrCreateActionForTxid({
|
|
42
|
+
userId,
|
|
43
|
+
txid: vargs.txid,
|
|
44
|
+
isOutgoing: vargs.transaction.isOutgoing,
|
|
45
|
+
description: (_a = vargs.transaction.description) !== null && _a !== void 0 ? _a : '',
|
|
46
|
+
satoshisDelta: (_b = vargs.transaction.satoshis) !== null && _b !== void 0 ? _b : 0,
|
|
47
|
+
reference: vargs.reference,
|
|
48
|
+
rawTx: vargs.rawTx,
|
|
49
|
+
inputBeef: (0, utilityHelpers_noBuffer_1.asArray)(vargs.beef.toBinary()),
|
|
50
|
+
processing
|
|
51
|
+
});
|
|
52
|
+
// Repoint tx_labels_map rows written by createAction (which used the
|
|
53
|
+
// legacy transactionId) to the new actions.actionId.
|
|
54
|
+
await txSvc.repointLabelsToActionId(vargs.transactionId, action.actionId);
|
|
55
|
+
logger === null || logger === void 0 ? void 0 : logger.log(`new action created: actionId=${action.actionId}`);
|
|
56
|
+
// Repoint outputs/commissions written during bridge period (transactionId
|
|
57
|
+
// = legacyTransactionId) to the real new transactionId so that
|
|
58
|
+
// listActionsKnex can find them.
|
|
59
|
+
await txSvc.repointOutputsToNewTransactionId(vargs.transactionId, transaction.transactionId);
|
|
60
|
+
logger === null || logger === void 0 ? void 0 : logger.log(`new outputs repointed: legacyId=${vargs.transactionId} → newId=${transaction.transactionId}`);
|
|
61
|
+
}
|
|
62
|
+
catch (txErr) {
|
|
63
|
+
// Tolerate pre-cutover databases where the new transactions tables may not yet exist.
|
|
64
|
+
const msg = txErr instanceof Error ? txErr.message : String(txErr);
|
|
65
|
+
if (msg.includes('no such table') ||
|
|
66
|
+
msg.includes("Table") ||
|
|
67
|
+
msg.includes('SQLITE_ERROR')) {
|
|
68
|
+
logger === null || logger === void 0 ? void 0 : logger.log(`new-schema wiring skipped (pre-cutover DB): ${msg}`);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
throw txErr;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
30
75
|
// Add the new txid to sendWith unless there are no others to send and the noSend option is set.
|
|
31
76
|
if (args.isNoSend && !args.isSendWith) {
|
|
32
77
|
logger === null || logger === void 0 ? void 0 : logger.log(`noSend txid ${req.txid}`);
|
|
@@ -93,7 +138,10 @@ async function shareReqsWithWorld(storage, userId, txids, isDelayed, r, logger)
|
|
|
93
138
|
if (readyToSendReqIds.length > 0) {
|
|
94
139
|
await storage.transaction(async (trx) => {
|
|
95
140
|
await storage.updateProvenTxReq(readyToSendReqIds, { status: 'unsent', batch }, trx);
|
|
96
|
-
|
|
141
|
+
// Post-cutover: notify.transactionIds are legacy IDs that live in
|
|
142
|
+
// transactions_legacy. Use updateLegacyTransaction to target correct table.
|
|
143
|
+
// Mapping §2: legacy `unprocessed` → `sending` transition.
|
|
144
|
+
await storage.updateLegacyTransaction(transactionIds, { status: 'sending' }, trx);
|
|
97
145
|
});
|
|
98
146
|
}
|
|
99
147
|
return { swr, ndr };
|
|
@@ -168,7 +216,12 @@ async function validateCommitNewTxToStorageArgs(storage, userId, params) {
|
|
|
168
216
|
which can be found at https://wiki.bitcoinsv.io/index.php/NLocktime_and_nSequence`);
|
|
169
217
|
}
|
|
170
218
|
const txScriptOffsets = (0, parseTxScriptOffsets_1.parseTxScriptOffsets)(params.rawTx);
|
|
171
|
-
|
|
219
|
+
// Post-cutover: unsigned/unprocessed rows live in `transactions_legacy`, not
|
|
220
|
+
// in new `transactions` (which has `processing` not `status` and requires a real
|
|
221
|
+
// txid at insert time). Use findLegacyTransactions to target the correct table.
|
|
222
|
+
// Pre-cutover: findLegacyTransactions falls back to findTransactions transparently.
|
|
223
|
+
// Mapping §2: legacy `unsigned` → no equivalent in new schema; must query transactions_legacy.
|
|
224
|
+
const transaction = (0, utilityHelpers_1.verifyOne)(await storage.findLegacyTransactions({
|
|
172
225
|
partial: { userId, reference: params.reference }
|
|
173
226
|
}));
|
|
174
227
|
if (!transaction.isOutgoing)
|
|
@@ -251,18 +304,33 @@ async function commitNewTxToStorage(storage, userId, vargs) {
|
|
|
251
304
|
let log = vargs.log;
|
|
252
305
|
log = (0, stampLog_1.stampLog)(log, 'start storage commitNewTxToStorage');
|
|
253
306
|
let req;
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
307
|
+
// Post-cutover SQLite: `proven_tx_reqs_legacy` has a FK to `proven_txs`
|
|
308
|
+
// (renamed to `proven_txs_legacy` after cutover). PRAGMA changes inside SQLite
|
|
309
|
+
// transactions are no-ops, so we must disable FK before opening the transaction.
|
|
310
|
+
// Pre-cutover or non-SQLite: disableForeignKeys() is a no-op.
|
|
311
|
+
await storage.disableForeignKeys();
|
|
312
|
+
try {
|
|
313
|
+
await storage.transaction(async (trx) => {
|
|
314
|
+
log = (0, stampLog_1.stampLog)(log, '... storage commitNewTxToStorage storage transaction start');
|
|
315
|
+
// Create initial 'nosend' proven_tx_req record to store signed, valid rawTx and input beef
|
|
316
|
+
req = await vargs.req.insertOrMerge(storage, trx);
|
|
317
|
+
log = (0, stampLog_1.stampLog)(log, '... storage commitNewTxToStorage req inserted');
|
|
318
|
+
for (const ou of vargs.outputUpdates) {
|
|
319
|
+
await storage.updateOutput(ou.id, ou.update, trx);
|
|
320
|
+
}
|
|
321
|
+
log = (0, stampLog_1.stampLog)(log, '... storage commitNewTxToStorage outputs updated');
|
|
322
|
+
// Post-cutover: the unsigned transaction row lives in `transactions_legacy`.
|
|
323
|
+
// Use updateLegacyTransaction so the txid + status write-back goes to the
|
|
324
|
+
// correct table. Pre-cutover: falls back to updateTransaction transparently.
|
|
325
|
+
// Mapping §2: legacy `unsigned` → `unprocessed`/`nosend` write-back must
|
|
326
|
+
// target `transactions_legacy` post-cutover, not new `transactions`.
|
|
327
|
+
await storage.updateLegacyTransaction(vargs.transactionId, vargs.transactionUpdate, trx);
|
|
328
|
+
log = (0, stampLog_1.stampLog)(log, '... storage commitNewTxToStorage storage transaction end');
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
finally {
|
|
332
|
+
await storage.enableForeignKeys();
|
|
333
|
+
}
|
|
266
334
|
log = (0, stampLog_1.stampLog)(log, '... storage commitNewTxToStorage storage transaction await done');
|
|
267
335
|
const r = {
|
|
268
336
|
req: (0, utilityHelpers_1.verifyTruthy)(req),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAction.js","sourceRoot":"","sources":["../../../../src/storage/methods/processAction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processAction.js","sourceRoot":"","sources":["../../../../src/storage/methods/processAction.ts"],"names":[],"mappings":";;AAoCA,sCA4FC;AA8ED,gDAgDC;AA9PD,6DAA6D;AAC7D,kCAMiB;AACjB,qEAAuE;AAQvE,qDAAiD;AACjD,iEAOqC;AACrC,4EAAwE;AACxE,uDAA6E;AAI7E,6EAA0F;AAI1F,mFAAyE;AAElE,KAAK,UAAU,aAAa,CACjC,OAAwB,EACxB,IAAY,EACZ,IAA8B;;IAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAEtC,MAAM,MAAM,GAAG,IAAA,yBAAQ,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,CAAC,GAAgC;QACrC,eAAe,EAAE,SAAS;KAC3B,CAAA;IAED,IAAI,GAAkC,CAAA;IACtC,MAAM,2BAA2B,GAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEhE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,gCAAgC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAC3E,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,qCAAqC,CAAC,CACjD;QAAA,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,sCAAsC,CAAC,CAAA;QACnD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,2BAAa,EAAE,CAAA;QAEnC,kEAAkE;QAClE,6EAA6E;QAC7E,0EAA0E;QAC1E,2EAA2E;QAC3E,kFAAkF;QAClF,iDAAiD;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;QAC7C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAiB,CAAC,CAAC,CAAC,QAAiB,CAAA;gBACzE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC;oBACpE,MAAM;oBACN,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU;oBACxC,WAAW,EAAE,MAAA,KAAK,CAAC,WAAW,CAAC,WAAW,mCAAI,EAAE;oBAChD,aAAa,EAAE,MAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,mCAAI,CAAC;oBAC9C,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,SAAS,EAAE,IAAA,iCAAO,EAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACzC,UAAU;iBACX,CAAC,CAAA;gBACF,qEAAqE;gBACrE,qDAAqD;gBACrD,MAAM,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACzE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,gCAAgC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC9D,0EAA0E;gBAC1E,+DAA+D;gBAC/D,iCAAiC;gBACjC,MAAM,KAAK,CAAC,gCAAgC,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;gBAC5F,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,mCAAmC,KAAK,CAAC,aAAa,YAAY,WAAW,CAAC,aAAa,EAAE,CAAC,CAAA;YAC5G,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,sFAAsF;gBACtF,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAClE,IACE,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC;oBAC7B,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACrB,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAC5B,CAAC;oBACD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,+CAA+C,GAAG,EAAE,CAAC,CAAA;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QAED,gGAAgG;QAChG,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,eAAe,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC1C,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,gBAAgB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,kBAAkB,CAC3C,OAAO,EACP,MAAM,EACN,2BAA2B,EAC3B,IAAI,CAAC,SAAS,EACd,SAAS,EACT,MAAM,CACP,CAAA;IAED,CAAC,CAAC,eAAe,GAAG,GAAG,CAAA;IACvB,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAA;IAEzB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,CAAA;IAElB,OAAO,CAAC,CAAA;AACV,CAAC;AAmCD;;;;;;;;;;GAUG;AACH,SAAS,kBAAkB,CACzB,OAA+B,EAC/B,GAAqB,EACrB,eAAoC;IAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAyB,QAAQ,CAAA;QAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACpC,MAAM,GAAG,UAAU,CAAA;QACrB,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC3C,MAAM,GAAG,SAAS,CAAA;YAClB,eAAe,CAAC,IAAI,CAAC,IAAI,qCAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACzD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACzC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,OAAwB,EACxB,CAAuB,EACvB,eAAoC,EACpC,MAA8B;IAE9B,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC,CAAA;IACtF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAC3D,MAAM,IAAI,2BAAa,CAAC,gCAAgC,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,eAAe,CAAC,CAAA;AAC9B,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,OAAwB,EACxB,MAAc,EACd,KAAe,EACf,SAAkB,EAClB,CAAwB,EACxB,MAA8B;IAE9B,MAAM,GAAG,GAAqB,EAAE,CAAA;IAChC,MAAM,GAAG,GAAqC,SAAS,CAAA;IAEvD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IAExD,CAAC,KAAD,CAAC,GAAK,MAAM,OAAO,CAAC,8BAA8B,CAAC,KAAK,EAAE,EAAE,CAAC,EAAA;IAE7D,MAAM,eAAe,GAAwB,EAAE,CAAA;IAC/C,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,eAAe,CAAC,CAAA;IAEnD,MAAM,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACxD,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAErF,2FAA2F;IAC3F,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAA;IAE3D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,kCAAiB,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;gBACpC,MAAM,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAA;gBACpF,kEAAkE;gBAClE,4EAA4E;gBAC5E,2DAA2D;gBAC3D,MAAM,OAAO,CAAC,uBAAuB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,CAAA;YACnF,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IAErD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,GAAG,IAAI,eAAe;YAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;QACpD,MAAM,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,0BAA0B,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IACzF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,yCAAsB,EAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC7E,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAClC,CAAC;AAOD,SAAS,oBAAoB,CAC3B,MAA+E;IAE/E,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;IACpH,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;IACxH,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO;YACL,MAAM,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE;YACjD,UAAU,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE;SAC/C,CAAA;IACH,CAAC;IACD,MAAM,IAAI,2BAAa,CAAC,aAAa,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAwB,EACxB,EAAkB,EAClB,KAAoC;IAEpC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAA,8BAAa,EAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,WAAW,GAAG,IAAA,kCAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAC7F,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,WAAW,KAAK,IAAA,kCAAQ,EAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,oCAAsB,CAC9B,wCAAwC,IAAI,uCAAuC,CACpF,CAAA;QACH,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,WAAW,EAAE,CAAC;YAC3D,MAAM,IAAI,oCAAsB,CAC9B,qDAAqD,IAAI,uCAAuC,CACjG,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAyB;YACnC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,IAAI,EAAE,uFAAuF;YACxG,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,YAAY,EAAE,MAAM,CAAC,MAAM;SAC5B,CAAA;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,eAAe;QACzD,oHAAoH;QACpH,CAAC;YAAC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAA;QAAC,CAAC;QACpC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AA8BD,KAAK,UAAU,gCAAgC,CAC7C,OAAwB,EACxB,MAAc,EACd,MAAgC;IAEhC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,oCAAsB,CAAC,4CAA4C,CAAC,CAAA;IAAC,CAAC;IACnJ,IAAI,EAAkB,CAAA;IACtB,IAAI,CAAC;QACH,EAAE,GAAG,iBAAc,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;IAAC,OAAO,WAAoB,EAAE,CAAC;QAC9B,MAAM,IAAI,oCAAsB,CAAC,wCAAwC,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,oCAAsB,CAAC,6DAA6D,CAAC,CAAA;IAAC,CAAC;IACrI,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IACtC,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,oCAAsB,CAAC;;2FAEsD,CAAC,CAAA;IAC1F,CAAC;IACD,MAAM,eAAe,GAAG,IAAA,2CAAoB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1D,6EAA6E;IAC7E,iFAAiF;IACjF,gFAAgF;IAChF,oFAAoF;IACpF,+FAA+F;IAC/F,MAAM,WAAW,GAAG,IAAA,0BAAS,EAC3B,MAAM,OAAO,CAAC,sBAAsB,CAAC;QACnC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;KACjD,CAAC,CACH,CAAA;IACD,IAAI,CAAC,WAAW,CAAC,UAAU;QAAE,MAAM,IAAI,oCAAsB,CAAC,wBAAwB,CAAC,CAAA;IACvF,IAAI,WAAW,CAAC,SAAS,IAAI,IAAI;QAAE,MAAM,IAAI,oCAAsB,EAAE,CAAA;IACrE,MAAM,IAAI,GAAG,UAAI,CAAC,UAAU,CAAC,IAAA,iCAAO,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5D,mDAAmD;IACnD,uDAAuD;IACvD,IAAI,WAAW,CAAC,MAAM,KAAK,UAAU,IAAI,WAAW,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAAC,MAAM,IAAI,oCAAsB,CAAC,8BAA8B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;IAAC,CAAC;IACvK,MAAM,aAAa,GAAG,IAAA,yBAAQ,EAAC,WAAW,CAAC,aAAa,CAAC,CAAA;IACzD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;QAC9C,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;KACnC,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;QAC7C,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE;KAC5C,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAA,gCAAe,EAAC,MAAM,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IACzG,IAAI,OAAO,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;QACnC,8BAA8B;QAC9B,IAAI,UAAU,IAAI,IAAI;YAAE,MAAM,IAAI,2BAAa,EAAE,CAAA;QACjD,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,IAAA,kCAAQ,EAAC,UAAU,CAAC,aAAa,CAAC,CAC1G,CAAA;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YAAC,MAAM,IAAI,oCAAsB,CAAC,6DAA6D,CAAC,CAAA;QAAC,CAAC;IAC3H,CAAC;IAED,MAAM,GAAG,GAAG,qCAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IACxF,GAAG,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAA;IAEzC,sEAAsE;IACtE,oFAAoF;IACpF,+CAA+C;IAC/C,0CAA0C;IAC1C,qEAAqE;IACrE,EAAE;IACF,2FAA2F;IAC3F,gGAAgG;IAChG,oFAAoF;IACpF,+CAA+C;IAC/C,oDAAoD;IACpD,qJAAqJ;IACrJ,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAE3D,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;IACvB,MAAM,KAAK,GAAkC;QAC3C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC3D,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,kDAAkD;QAClD,EAAE;QACF,eAAe;QACf,aAAa;QACb,WAAW;QACX,YAAY;QACZ,aAAa;QACb,UAAU;QACV,IAAI;QACJ,GAAG;QACH,aAAa,EAAE,EAAE;QACjB,0EAA0E;QAC1E,iBAAiB,EAAE;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,MAAM,CAAC,EAAE;SAClB;QACD,UAAU;KACX,CAAA;IAED,oGAAoG;IACpG,gHAAgH;IAChH,qEAAqE;IACrE,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;IAEtC,OAAO,KAAK,CAAA;AACd,CAAC;AAOD,KAAK,UAAU,oBAAoB,CACjC,OAAwB,EACxB,MAAc,EACd,KAAoC;IAEpC,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;IAEnB,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,oCAAoC,CAAC,CAAA;IAEzD,IAAI,GAAkC,CAAA;IAEtC,wEAAwE;IACxE,+EAA+E;IAC/E,iFAAiF;IACjF,8DAA8D;IAC9D,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAA;IAClC,IAAI,CAAC;QACL,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;YACpC,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,4DAA4D,CAAC,CAAA;YAEjF,2FAA2F;YAC3F,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAEjD,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,+CAA+C,CAAC,CAAA;YAEpE,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACrC,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACnD,CAAC;YAED,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,kDAAkD,CAAC,CAAA;YAEvE,6EAA6E;YAC7E,0EAA0E;YAC1E,6EAA6E;YAC7E,yEAAyE;YACzE,qEAAqE;YACrE,MAAM,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;YAExF,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,0DAA0D,CAAC,CAAA;QACjF,CAAC,CAAC,CAAA;IACF,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAA;IACnC,CAAC;IAED,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,iEAAiE,CAAC,CAAA;IAEtF,MAAM,CAAC,GAAuB;QAC5B,GAAG,EAAE,IAAA,6BAAY,EAAC,GAAG,CAAC;QACtB,GAAG;KACJ,CAAA;IAED,GAAG,GAAG,IAAA,mBAAQ,EAAC,GAAG,EAAE,kCAAkC,CAAC,CAAA;IAEvD,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purgeData.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/purgeData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAyB,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ/G,wBAAsB,SAAS,CAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"purgeData.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/purgeData.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAyB,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ/G,wBAAsB,SAAS,CAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAwPjH"}
|
|
@@ -21,6 +21,13 @@ async function purgeData(storage, params, trx) {
|
|
|
21
21
|
throw error_;
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
|
+
// Post-cutover: `proven_txs`, `proven_tx_reqs`, and the legacy-shaped
|
|
25
|
+
// `transactions` table (with `status` column) are all renamed to `*_legacy`.
|
|
26
|
+
// Resolve canonical table names once and reuse throughout.
|
|
27
|
+
const txTable = await storage.provenTxsTableName(); // proven_txs or proven_txs_legacy
|
|
28
|
+
const reqTable = await storage.provenTxReqsTableName(); // proven_tx_reqs or proven_tx_reqs_legacy
|
|
29
|
+
// `transactions` with `status` column → `transactions_legacy` post-cutover.
|
|
30
|
+
const txnsTable = txTable === 'proven_txs_legacy' ? 'transactions_legacy' : 'transactions';
|
|
24
31
|
if (params.purgeCompleted) {
|
|
25
32
|
const age = params.purgeCompletedAge || defaultAge;
|
|
26
33
|
const before = toSqlWhereDate(new Date(Date.now() - age));
|
|
@@ -30,7 +37,7 @@ async function purgeData(storage, params, trx) {
|
|
|
30
37
|
qs.push({
|
|
31
38
|
log: 'conpleted transactions purged of transient data',
|
|
32
39
|
q: storage
|
|
33
|
-
.toDb(trx)(
|
|
40
|
+
.toDb(trx)(txnsTable)
|
|
34
41
|
.update({
|
|
35
42
|
inputBEEF: null,
|
|
36
43
|
rawTx: null
|
|
@@ -44,7 +51,7 @@ async function purgeData(storage, params, trx) {
|
|
|
44
51
|
})
|
|
45
52
|
});
|
|
46
53
|
const completedReqs = await storage
|
|
47
|
-
.toDb(trx)(
|
|
54
|
+
.toDb(trx)(reqTable)
|
|
48
55
|
.select('provenTxReqId')
|
|
49
56
|
.where('updated_at', '<', before)
|
|
50
57
|
.where('status', 'completed')
|
|
@@ -54,7 +61,7 @@ async function purgeData(storage, params, trx) {
|
|
|
54
61
|
if (completedReqIds.length > 0) {
|
|
55
62
|
qs.push({
|
|
56
63
|
log: 'completed proven_tx_reqs deleted',
|
|
57
|
-
q: storage.toDb(trx)(
|
|
64
|
+
q: storage.toDb(trx)(reqTable).whereIn('provenTxReqId', completedReqIds).delete()
|
|
58
65
|
});
|
|
59
66
|
}
|
|
60
67
|
for (const q of qs)
|
|
@@ -65,7 +72,7 @@ async function purgeData(storage, params, trx) {
|
|
|
65
72
|
const before = toSqlWhereDate(new Date(Date.now() - age));
|
|
66
73
|
const qs = [];
|
|
67
74
|
const failedTxsQ = storage
|
|
68
|
-
.toDb(trx)(
|
|
75
|
+
.toDb(trx)(txnsTable)
|
|
69
76
|
.select('transactionId')
|
|
70
77
|
.where('updated_at', '<', before)
|
|
71
78
|
.where('status', 'failed');
|
|
@@ -73,7 +80,7 @@ async function purgeData(storage, params, trx) {
|
|
|
73
80
|
const failedTxIds = txs.map(tx => tx.transactionId);
|
|
74
81
|
await deleteTransactions(failedTxIds, qs, 'failed', true);
|
|
75
82
|
const invalidReqs = await storage
|
|
76
|
-
.toDb(trx)(
|
|
83
|
+
.toDb(trx)(reqTable)
|
|
77
84
|
.select('provenTxReqId')
|
|
78
85
|
.where('updated_at', '<', before)
|
|
79
86
|
.where('status', 'invalid');
|
|
@@ -81,11 +88,11 @@ async function purgeData(storage, params, trx) {
|
|
|
81
88
|
if (invalidReqIds.length > 0) {
|
|
82
89
|
qs.push({
|
|
83
90
|
log: 'invalid proven_tx_reqs deleted',
|
|
84
|
-
q: storage.toDb(trx)(
|
|
91
|
+
q: storage.toDb(trx)(reqTable).whereIn('provenTxReqId', invalidReqIds).delete()
|
|
85
92
|
});
|
|
86
93
|
}
|
|
87
94
|
const doubleSpendReqs = await storage
|
|
88
|
-
.toDb(trx)(
|
|
95
|
+
.toDb(trx)(reqTable)
|
|
89
96
|
.select('provenTxReqId')
|
|
90
97
|
.where('updated_at', '<', before)
|
|
91
98
|
.where('status', 'doubleSpend');
|
|
@@ -93,7 +100,7 @@ async function purgeData(storage, params, trx) {
|
|
|
93
100
|
if (doubleSpendReqIds.length > 0) {
|
|
94
101
|
qs.push({
|
|
95
102
|
log: 'doubleSpend proven_tx_reqs deleted',
|
|
96
|
-
q: storage.toDb(trx)(
|
|
103
|
+
q: storage.toDb(trx)(reqTable).whereIn('provenTxReqId', doubleSpendReqIds).delete()
|
|
97
104
|
});
|
|
98
105
|
}
|
|
99
106
|
for (const q of qs)
|
|
@@ -130,10 +137,10 @@ async function purgeData(storage, params, trx) {
|
|
|
130
137
|
proofTxids[btx.txid] = true;
|
|
131
138
|
const qs = [];
|
|
132
139
|
const spentTxsQ = storage
|
|
133
|
-
.toDb(trx)(
|
|
140
|
+
.toDb(trx)(txnsTable)
|
|
134
141
|
.where('updated_at', '<', before)
|
|
135
142
|
.where('status', 'completed')
|
|
136
|
-
.whereRaw(
|
|
143
|
+
.whereRaw(`not exists(select outputId from outputs as o where o.transactionId = ${txnsTable}.transactionId and o.spendable = 1)`);
|
|
137
144
|
const txs = await spentTxsQ;
|
|
138
145
|
// Save any spent txid still needed to prove a utxo:
|
|
139
146
|
const nptxs = txs.filter(t => !proofTxids[t.txid || '']);
|
|
@@ -156,13 +163,14 @@ async function purgeData(storage, params, trx) {
|
|
|
156
163
|
}
|
|
157
164
|
}
|
|
158
165
|
// Delete proven_txs no longer referenced by remaining transactions.
|
|
166
|
+
// Use canonical table names for post-cutover correctness.
|
|
159
167
|
const qs = [];
|
|
160
168
|
qs.push({
|
|
161
169
|
log: 'orphan proven_txs deleted',
|
|
162
170
|
q: storage
|
|
163
|
-
.toDb(trx)(
|
|
164
|
-
.whereRaw(
|
|
165
|
-
.whereRaw(
|
|
171
|
+
.toDb(trx)(txTable)
|
|
172
|
+
.whereRaw(`not exists(select * from ${txnsTable} as t where t.txid = ${txTable}.txid or t.provenTxId = ${txTable}.provenTxId)`)
|
|
173
|
+
.whereRaw(`not exists(select * from ${reqTable} as r where r.txid = ${txTable}.txid or r.provenTxId = ${txTable}.provenTxId)`)
|
|
166
174
|
.delete()
|
|
167
175
|
});
|
|
168
176
|
for (const q of qs)
|
|
@@ -202,7 +210,7 @@ async function purgeData(storage, params, trx) {
|
|
|
202
210
|
}
|
|
203
211
|
qs.push({
|
|
204
212
|
log: `${reason} transactions deleted`,
|
|
205
|
-
q: storage.toDb(trx)(
|
|
213
|
+
q: storage.toDb(trx)(txnsTable).whereIn('transactionId', transactionIds).delete()
|
|
206
214
|
});
|
|
207
215
|
}
|
|
208
216
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purgeData.js","sourceRoot":"","sources":["../../../../src/storage/methods/purgeData.ts"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"purgeData.js","sourceRoot":"","sources":["../../../../src/storage/methods/purgeData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewStatus.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ7D;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,GACxC,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"reviewStatus.d.ts","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ7D;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,GACxC,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA4F1B"}
|
|
@@ -31,6 +31,15 @@ async function reviewStatus(storage, args) {
|
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
const k = storage.toDb(args.trx);
|
|
34
|
+
// Post-cutover: `proven_txs` → `proven_txs_legacy`, `proven_tx_reqs` →
|
|
35
|
+
// `proven_tx_reqs_legacy`, and `transactions` (legacy-shaped with `status`
|
|
36
|
+
// column) → `transactions_legacy`. Pre-cutover: the original table names.
|
|
37
|
+
const txTable = await storage.provenTxsTableName(); // proven_txs or proven_txs_legacy
|
|
38
|
+
const reqTable = await storage.provenTxReqsTableName(); // proven_tx_reqs or proven_tx_reqs_legacy
|
|
39
|
+
// The legacy-shaped `transactions` table (with status, satoshis, etc. columns).
|
|
40
|
+
// Post-cutover that table is renamed to `transactions_legacy`; the new
|
|
41
|
+
// `transactions` table has `processing` instead of `status`.
|
|
42
|
+
const txnsTable = txTable === 'proven_txs_legacy' ? 'transactions_legacy' : 'transactions';
|
|
34
43
|
const qs = [];
|
|
35
44
|
qs.push({
|
|
36
45
|
log: 'transactions updated to status of \'failed\' where provenTxReq with matching txid is \'invalid\'',
|
|
@@ -38,13 +47,13 @@ async function reviewStatus(storage, args) {
|
|
|
38
47
|
UPDATE transactions SET status = 'failed'
|
|
39
48
|
WHERE exists(select 1 from proven_tx_reqs as r where transactions.txid = r.txid and r.status = 'invalid')
|
|
40
49
|
*/
|
|
41
|
-
q: k(
|
|
50
|
+
q: k(txnsTable)
|
|
42
51
|
.update({ status: 'failed' })
|
|
43
52
|
.whereNot({ status: 'failed' })
|
|
44
53
|
.whereExists(function () {
|
|
45
54
|
this.select(k.raw(1))
|
|
46
|
-
.from(
|
|
47
|
-
.whereRaw(
|
|
55
|
+
.from(`${reqTable} as r`)
|
|
56
|
+
.whereRaw(`${txnsTable}.txid = r.txid and r.status = 'invalid'`);
|
|
48
57
|
})
|
|
49
58
|
}, {
|
|
50
59
|
log: 'outputs updated to spendable where spentBy is a failed transaction with no blocking ProvenTxReq',
|
|
@@ -57,13 +66,13 @@ async function reviewStatus(storage, args) {
|
|
|
57
66
|
.update({ spentBy: null, spendable: true })
|
|
58
67
|
.whereExists(function () {
|
|
59
68
|
this.select(k.raw(1))
|
|
60
|
-
.from(
|
|
61
|
-
.whereRaw(
|
|
69
|
+
.from(`${txnsTable} as t`)
|
|
70
|
+
.whereRaw(`outputs.spentBy = t.transactionId and t.status = 'failed'`)
|
|
62
71
|
.whereNotExists(function () {
|
|
63
72
|
// A failed transaction can still be reconciled from active or valid reqs.
|
|
64
73
|
// Only terminal failure reqs are safe for input restoration.
|
|
65
74
|
this.select(k.raw(1))
|
|
66
|
-
.from(
|
|
75
|
+
.from(`${reqTable} as r`)
|
|
67
76
|
.whereRaw('r.txid = t.txid')
|
|
68
77
|
.whereNotIn('r.status', provenTxReqStatusesSafeForInputRestore);
|
|
69
78
|
});
|
|
@@ -75,14 +84,14 @@ async function reviewStatus(storage, args) {
|
|
|
75
84
|
FROM proven_txs p
|
|
76
85
|
WHERE transactions.txid = p.txid AND transactions.provenTxId IS NULL
|
|
77
86
|
*/
|
|
78
|
-
q: k(
|
|
87
|
+
q: k(txnsTable)
|
|
79
88
|
.update({
|
|
80
89
|
status: 'completed',
|
|
81
|
-
provenTxId: k.raw(
|
|
90
|
+
provenTxId: k.raw(`(SELECT provenTxId FROM ${txTable} AS p WHERE ${txnsTable}.txid = p.txid)`)
|
|
82
91
|
})
|
|
83
92
|
.whereNull('provenTxId')
|
|
84
93
|
.whereExists(function () {
|
|
85
|
-
this.select(k.raw(1)).from(
|
|
94
|
+
this.select(k.raw(1)).from(`${txTable} as p`).whereRaw(`${txnsTable}.txid = p.txid`);
|
|
86
95
|
})
|
|
87
96
|
});
|
|
88
97
|
for (const q of qs)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviewStatus.js","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":";;AAqBA,
|
|
1
|
+
{"version":3,"file":"reviewStatus.js","sourceRoot":"","sources":["../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnexMigrations.d.ts","sourceRoot":"","sources":["../../../../src/storage/schema/KnexMigrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAKvC,UAAU,SAAS;IACjB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,eAAe,CAAC,cAAc;IACtC,aAAa,EAAE,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/E,gBAAgB,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,MAAM,CAAA;IACvD,YAAY,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CAChE;AAED,qBAAa,cAAe,YAAW,eAAe,CAAC,MAAM,CAAC;IASnD,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,MAAM;IACnB,kBAAkB,EAAE,MAAM;IAC1B,qBAAqB,EAAE,MAAM;IAXtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAK;IAE1C;;;;OAIG;gBAEM,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,MAAM;IAKhC,aAAa,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC,gBAAgB,CAAE,SAAS,EAAE,MAAM;IAI7B,YAAY,CAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIpD,kBAAkB,IAAK,OAAO,CAAC,MAAM,CAAC;WAK/B,eAAe,IAAK,OAAO,CAAC,MAAM,CAAC;IAKhD,eAAe,CACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,MAAM,GAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"KnexMigrations.d.ts","sourceRoot":"","sources":["../../../../src/storage/schema/KnexMigrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAKvC,UAAU,SAAS;IACjB,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,eAAe,CAAC,cAAc;IACtC,aAAa,EAAE,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/E,gBAAgB,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,MAAM,CAAA;IACvD,YAAY,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;CAChE;AAED,qBAAa,cAAe,YAAW,eAAe,CAAC,MAAM,CAAC;IASnD,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,MAAM;IACnB,kBAAkB,EAAE,MAAM;IAC1B,qBAAqB,EAAE,MAAM;IAXtC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAK;IAE1C;;;;OAIG;gBAEM,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,MAAM;IAKhC,aAAa,IAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC,gBAAgB,CAAE,SAAS,EAAE,MAAM;IAI7B,YAAY,CAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIpD,kBAAkB,IAAK,OAAO,CAAC,MAAM,CAAC;WAK/B,eAAe,IAAK,OAAO,CAAC,MAAM,CAAC;IAKhD,eAAe,CACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,MAAM,GAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;CA0lB7B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB9E"}
|
|
@@ -48,6 +48,140 @@ class KnexMigrations {
|
|
|
48
48
|
table.timestamp('updated_at', { precision: 3 }).defaultTo(knex.fn.now()).notNullable();
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
|
+
migrations['2026-05-13-001 add outputs.matures_at_height for coinbase maturity'] = {
|
|
52
|
+
async up(knex) {
|
|
53
|
+
await knex.schema.alterTable('outputs', table => {
|
|
54
|
+
table.integer('matures_at_height').unsigned().nullable();
|
|
55
|
+
table.index(['matures_at_height'], 'idx_outputs_matures_at_height');
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
async down(knex) {
|
|
59
|
+
await knex.schema.alterTable('outputs', table => {
|
|
60
|
+
table.dropIndex(['matures_at_height'], 'idx_outputs_matures_at_height');
|
|
61
|
+
table.dropColumn('matures_at_height');
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
migrations['2026-05-11-001 add refactor schema (actions, transactions_new, chain_tip, tx_audit, monitor_lease)'] = {
|
|
66
|
+
async up(knex) {
|
|
67
|
+
const dbtype = await determineDBType(knex);
|
|
68
|
+
// Per-txid canonical record. Source of truth for broadcast + proof state.
|
|
69
|
+
await knex.schema.createTable('transactions_new', table => {
|
|
70
|
+
addTimeStamps(knex, table, dbtype);
|
|
71
|
+
table.increments('transactionId');
|
|
72
|
+
table.string('txid', 64).notNullable().unique();
|
|
73
|
+
table.string('processing', 16).notNullable().defaultTo('queued');
|
|
74
|
+
table.timestamp('processing_changed_at', { precision: 3 }).defaultTo(knex.fn.now()).notNullable();
|
|
75
|
+
table.timestamp('next_action_at', { precision: 3 }).nullable();
|
|
76
|
+
table.integer('attempts').unsigned().notNullable().defaultTo(0);
|
|
77
|
+
table.integer('rebroadcast_cycles').unsigned().notNullable().defaultTo(0);
|
|
78
|
+
table.boolean('was_broadcast').notNullable().defaultTo(false);
|
|
79
|
+
table.string('idempotency_key', 128).nullable().unique();
|
|
80
|
+
table.string('batch', 64).nullable();
|
|
81
|
+
table.binary('raw_tx').nullable();
|
|
82
|
+
table.binary('input_beef').nullable();
|
|
83
|
+
table.integer('height').unsigned().nullable();
|
|
84
|
+
table.integer('merkle_index').unsigned().nullable();
|
|
85
|
+
table.binary('merkle_path').nullable();
|
|
86
|
+
table.string('merkle_root', 64).nullable();
|
|
87
|
+
table.string('block_hash', 64).nullable();
|
|
88
|
+
table.boolean('is_coinbase').notNullable().defaultTo(false);
|
|
89
|
+
table.string('last_provider', 64).nullable();
|
|
90
|
+
table.string('last_provider_status', 64).nullable();
|
|
91
|
+
table.string('frozen_reason', 255).nullable();
|
|
92
|
+
table.integer('row_version').unsigned().notNullable().defaultTo(0);
|
|
93
|
+
table.index('processing');
|
|
94
|
+
table.index('batch');
|
|
95
|
+
table.index(['processing', 'next_action_at'], 'idx_tx_new_processing_next');
|
|
96
|
+
});
|
|
97
|
+
// Per-user view of a transactions_new row.
|
|
98
|
+
await knex.schema.createTable('actions', table => {
|
|
99
|
+
addTimeStamps(knex, table, dbtype);
|
|
100
|
+
table.increments('actionId');
|
|
101
|
+
table.integer('userId').unsigned().references('userId').inTable('users').notNullable();
|
|
102
|
+
table
|
|
103
|
+
.integer('transactionId')
|
|
104
|
+
.unsigned()
|
|
105
|
+
.references('transactionId')
|
|
106
|
+
.inTable('transactions_new')
|
|
107
|
+
.notNullable();
|
|
108
|
+
table.string('reference', 64).notNullable();
|
|
109
|
+
table.string('description', 2000).notNullable();
|
|
110
|
+
table.boolean('isOutgoing').notNullable();
|
|
111
|
+
table.bigint('satoshis_delta').notNullable().defaultTo(0);
|
|
112
|
+
table.boolean('user_nosend').notNullable().defaultTo(false);
|
|
113
|
+
table.boolean('hidden').notNullable().defaultTo(false);
|
|
114
|
+
table.boolean('user_aborted').notNullable().defaultTo(false);
|
|
115
|
+
table.text('notify_json', 'longtext').nullable();
|
|
116
|
+
table.integer('row_version').unsigned().notNullable().defaultTo(0);
|
|
117
|
+
table.unique(['userId', 'transactionId']);
|
|
118
|
+
table.unique(['userId', 'reference']);
|
|
119
|
+
table.index(['userId', 'hidden'], 'idx_actions_user_hidden');
|
|
120
|
+
});
|
|
121
|
+
// Singleton chain tip cache.
|
|
122
|
+
await knex.schema.createTable('chain_tip', table => {
|
|
123
|
+
addTimeStamps(knex, table, dbtype);
|
|
124
|
+
table.integer('id').notNullable().primary();
|
|
125
|
+
table.integer('height').unsigned().notNullable();
|
|
126
|
+
table.string('block_hash', 64).notNullable();
|
|
127
|
+
table.string('merkle_root', 64).nullable();
|
|
128
|
+
table.timestamp('observed_at', { precision: 3 }).defaultTo(knex.fn.now()).notNullable();
|
|
129
|
+
});
|
|
130
|
+
// Append-only audit log keyed by transactionId and/or actionId.
|
|
131
|
+
await knex.schema.createTable('tx_audit', table => {
|
|
132
|
+
addTimeStamps(knex, table, dbtype);
|
|
133
|
+
table.increments('auditId');
|
|
134
|
+
table
|
|
135
|
+
.integer('transactionId')
|
|
136
|
+
.unsigned()
|
|
137
|
+
.references('transactionId')
|
|
138
|
+
.inTable('transactions_new')
|
|
139
|
+
.nullable();
|
|
140
|
+
table
|
|
141
|
+
.integer('actionId')
|
|
142
|
+
.unsigned()
|
|
143
|
+
.references('actionId')
|
|
144
|
+
.inTable('actions')
|
|
145
|
+
.nullable();
|
|
146
|
+
table.string('event', 64).notNullable();
|
|
147
|
+
table.string('from_state', 16).nullable();
|
|
148
|
+
table.string('to_state', 16).nullable();
|
|
149
|
+
table.text('details_json', 'longtext').nullable();
|
|
150
|
+
table.index('event');
|
|
151
|
+
table.index('transactionId');
|
|
152
|
+
table.index('actionId');
|
|
153
|
+
});
|
|
154
|
+
// Monitor task leases.
|
|
155
|
+
await knex.schema.createTable('monitor_lease', table => {
|
|
156
|
+
addTimeStamps(knex, table, dbtype);
|
|
157
|
+
table.string('task_name', 64).notNullable().primary();
|
|
158
|
+
table.string('owner_id', 64).notNullable();
|
|
159
|
+
table.timestamp('expires_at', { precision: 3 }).notNullable();
|
|
160
|
+
table.integer('renew_count').unsigned().notNullable().defaultTo(0);
|
|
161
|
+
table.string('note', 255).nullable();
|
|
162
|
+
table.index('expires_at');
|
|
163
|
+
});
|
|
164
|
+
if (dbtype === 'MySQL') {
|
|
165
|
+
await knex.raw('ALTER TABLE transactions_new MODIFY COLUMN raw_tx LONGBLOB');
|
|
166
|
+
await knex.raw('ALTER TABLE transactions_new MODIFY COLUMN input_beef LONGBLOB');
|
|
167
|
+
await knex.raw('ALTER TABLE transactions_new MODIFY COLUMN merkle_path LONGBLOB');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
await knex.schema.alterTable('transactions_new', table => {
|
|
171
|
+
table.binary('raw_tx', 10000000).alter();
|
|
172
|
+
table.binary('input_beef', 10000000).alter();
|
|
173
|
+
table.binary('merkle_path', 10000000).alter();
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
async down(knex) {
|
|
178
|
+
await knex.schema.dropTableIfExists('monitor_lease');
|
|
179
|
+
await knex.schema.dropTableIfExists('tx_audit');
|
|
180
|
+
await knex.schema.dropTableIfExists('chain_tip');
|
|
181
|
+
await knex.schema.dropTableIfExists('actions');
|
|
182
|
+
await knex.schema.dropTableIfExists('transactions_new');
|
|
183
|
+
}
|
|
184
|
+
};
|
|
51
185
|
migrations['2026-04-30-001 add wasBroadcast and rebroadcastAttempts to proven_tx_reqs'] = {
|
|
52
186
|
async up(knex) {
|
|
53
187
|
await knex.schema.alterTable('proven_tx_reqs', table => {
|