@bsv/wallet-toolbox 1.6.22 → 1.6.24
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 +11 -0
- package/docs/client.md +300 -167
- package/docs/monitor.md +126 -23
- package/docs/services.md +86 -37
- package/docs/wallet.md +300 -167
- package/mobile/out/src/CWIStyleWalletManager.d.ts +1 -0
- package/mobile/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/mobile/out/src/CWIStyleWalletManager.js +4 -2
- package/mobile/out/src/CWIStyleWalletManager.js.map +1 -1
- package/mobile/out/src/index.mobile.d.ts +1 -1
- package/mobile/out/src/index.mobile.js +1 -1
- package/mobile/out/src/monitor/Monitor.d.ts +32 -8
- package/mobile/out/src/monitor/Monitor.d.ts.map +1 -1
- package/mobile/out/src/monitor/Monitor.js +59 -28
- package/mobile/out/src/monitor/Monitor.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js +2 -1
- package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskClock.js +3 -2
- package/mobile/out/src/monitor/tasks/TaskClock.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskMonitorCallHistory.js +2 -1
- package/mobile/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskNewHeader.js +2 -1
- package/mobile/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskReorg.d.ts +47 -0
- package/mobile/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -0
- package/mobile/out/src/monitor/tasks/TaskReorg.js +135 -0
- package/mobile/out/src/monitor/tasks/TaskReorg.js.map +1 -0
- package/mobile/out/src/monitor/tasks/TaskSendWaiting.js +2 -1
- package/mobile/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskUnFail.js +2 -1
- package/mobile/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +4 -0
- package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.js +3 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +4 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +3 -1
- package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +5 -0
- package/mobile/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +68 -0
- package/mobile/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -1
- package/mobile/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +59 -15
- package/mobile/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +4 -61
- package/mobile/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +13 -0
- package/mobile/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +27 -0
- package/mobile/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/index.client.d.ts +2 -28
- package/mobile/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/index.client.js +2 -50
- package/mobile/out/src/services/chaintracker/chaintracks/index.client.js.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +30 -0
- package/mobile/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/index.mobile.js +68 -0
- package/mobile/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -0
- package/mobile/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +11 -11
- package/mobile/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
- package/mobile/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/mobile/out/src/storage/methods/createAction.js.map +1 -1
- package/mobile/package-lock.json +7 -6
- package/mobile/package.json +2 -2
- package/out/src/CWIStyleWalletManager.d.ts +1 -0
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +4 -2
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/index.mobile.d.ts +1 -1
- package/out/src/index.mobile.js +1 -1
- package/out/src/monitor/Monitor.d.ts +32 -8
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +59 -28
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/MonitorDaemon.d.ts +2 -0
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js +3 -1
- package/out/src/monitor/MonitorDaemon.js.map +1 -1
- package/out/src/monitor/__test/MonitorDaemon.man.test.js +30 -39
- package/out/src/monitor/__test/MonitorDaemon.man.test.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +2 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/out/src/monitor/tasks/TaskClock.js +3 -2
- package/out/src/monitor/tasks/TaskClock.js.map +1 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js +2 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +2 -1
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts +47 -0
- package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -0
- package/out/src/monitor/tasks/TaskReorg.js +135 -0
- package/out/src/monitor/tasks/TaskReorg.js.map +1 -0
- package/out/src/monitor/tasks/TaskSendWaiting.js +2 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.js +2 -1
- package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +3 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +4 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.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 +3 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +3 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +1 -1
- package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +5 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +68 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +66 -22
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +59 -15
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +4 -61
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts +14 -0
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +27 -0
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +13 -0
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +27 -0
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/index.all.d.ts +1 -0
- package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.all.js +1 -0
- package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.client.d.ts +2 -28
- package/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.client.js +2 -50
- package/out/src/services/chaintracker/chaintracks/index.client.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +30 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.js +68 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +11 -11
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
- package/out/src/services/chaintracker/index.mobile.d.ts +4 -0
- package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -0
- package/out/src/services/chaintracker/index.mobile.js +20 -0
- package/out/src/services/chaintracker/index.mobile.js.map +1 -0
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +12 -0
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/test/monitor/Monitor.test.js +32 -29
- package/out/test/monitor/Monitor.test.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/src/CWIStyleWalletManager.ts +14 -4
- package/src/index.mobile.ts +1 -1
- package/src/monitor/Monitor.ts +94 -29
- package/src/monitor/MonitorDaemon.ts +9 -1
- package/src/monitor/__test/MonitorDaemon.man.test.ts +35 -7
- package/src/monitor/tasks/TaskCheckNoSends.ts +1 -1
- package/src/monitor/tasks/TaskClock.ts +2 -2
- package/src/monitor/tasks/TaskMonitorCallHistory.ts +1 -1
- package/src/monitor/tasks/TaskNewHeader.ts +1 -1
- package/src/monitor/tasks/TaskReorg.ts +139 -0
- package/src/monitor/tasks/TaskSendWaiting.ts +3 -3
- package/src/monitor/tasks/TaskUnFail.ts +1 -1
- package/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.ts +6 -1
- package/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.ts +4 -0
- package/src/services/chaintracker/chaintracks/Chaintracks.ts +3 -1
- package/src/services/chaintracker/chaintracks/ChaintracksService.ts +2 -2
- package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.ts +4 -1
- package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.ts +4 -12
- package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.ts +3 -1
- package/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.ts +2 -2
- package/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.ts +92 -0
- package/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.ts +84 -25
- package/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.ts +79 -17
- package/src/services/chaintracker/chaintracks/createIdbChaintracks.ts +11 -64
- package/src/services/chaintracker/chaintracks/createKnexChaintracks.ts +65 -0
- package/src/services/chaintracker/chaintracks/createNoDbChaintracks.ts +60 -0
- package/src/services/chaintracker/chaintracks/index.all.ts +1 -0
- package/src/services/chaintracker/chaintracks/index.client.ts +2 -35
- package/src/services/chaintracker/chaintracks/index.mobile.ts +37 -0
- package/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.ts +11 -11
- package/src/services/chaintracker/index.mobile.ts +4 -0
- package/src/storage/methods/createAction.ts +6 -1
- package/src/storage/schema/KnexMigrations.ts +13 -0
- package/syncVersions.js +71 -0
- package/test/monitor/Monitor.test.ts +21 -16
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Chain } from '../../../sdk'
|
|
2
|
+
import { Chaintracks } from './Chaintracks'
|
|
3
|
+
import { ChaintracksFetch } from './util/ChaintracksFetch'
|
|
4
|
+
import { ChaintracksFetchApi } from './Api/ChaintracksFetchApi'
|
|
5
|
+
import { ChaintracksStorageNoDb } from './Storage/ChaintracksStorageNoDb'
|
|
6
|
+
import { createDefaultNoDbChaintracksOptions } from './createDefaultNoDbChaintracksOptions'
|
|
7
|
+
|
|
8
|
+
export async function createNoDbChaintracks(
|
|
9
|
+
chain: Chain,
|
|
10
|
+
whatsonchainApiKey: string = '',
|
|
11
|
+
maxPerFile: number = 100000,
|
|
12
|
+
maxRetained: number = 2,
|
|
13
|
+
fetch?: ChaintracksFetchApi,
|
|
14
|
+
cdnUrl: string = 'https://cdn.projectbabbage.com/blockheaders/',
|
|
15
|
+
liveHeightThreshold: number = 2000,
|
|
16
|
+
reorgHeightThreshold: number = 400,
|
|
17
|
+
bulkMigrationChunkSize: number = 500,
|
|
18
|
+
batchInsertLimit: number = 400,
|
|
19
|
+
addLiveRecursionLimit: number = 36
|
|
20
|
+
): Promise<{
|
|
21
|
+
chain: Chain
|
|
22
|
+
maxPerFile: number
|
|
23
|
+
fetch: ChaintracksFetchApi
|
|
24
|
+
storage: ChaintracksStorageNoDb
|
|
25
|
+
chaintracks: Chaintracks
|
|
26
|
+
available: Promise<void>
|
|
27
|
+
}> {
|
|
28
|
+
try {
|
|
29
|
+
fetch ||= new ChaintracksFetch()
|
|
30
|
+
|
|
31
|
+
const co = createDefaultNoDbChaintracksOptions(
|
|
32
|
+
chain,
|
|
33
|
+
whatsonchainApiKey,
|
|
34
|
+
maxPerFile,
|
|
35
|
+
maxRetained,
|
|
36
|
+
fetch,
|
|
37
|
+
cdnUrl,
|
|
38
|
+
liveHeightThreshold,
|
|
39
|
+
reorgHeightThreshold,
|
|
40
|
+
bulkMigrationChunkSize,
|
|
41
|
+
batchInsertLimit,
|
|
42
|
+
addLiveRecursionLimit
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
const chaintracks = new Chaintracks(co)
|
|
46
|
+
const available = chaintracks.makeAvailable()
|
|
47
|
+
|
|
48
|
+
return {
|
|
49
|
+
chain,
|
|
50
|
+
fetch,
|
|
51
|
+
maxPerFile,
|
|
52
|
+
storage: co.storage as ChaintracksStorageNoDb,
|
|
53
|
+
chaintracks,
|
|
54
|
+
available
|
|
55
|
+
}
|
|
56
|
+
} catch (error) {
|
|
57
|
+
console.error('Error setting up Chaintracks with NoDb Storage:', error)
|
|
58
|
+
throw error
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -5,6 +5,7 @@ export * from './Storage/ChaintracksStorageKnex'
|
|
|
5
5
|
export * from './Storage/ChaintracksStorageMemory'
|
|
6
6
|
|
|
7
7
|
export * from './createDefaultKnexChaintracksOptions'
|
|
8
|
+
export * from './createKnexChaintracks'
|
|
8
9
|
|
|
9
10
|
export * from './ChaintracksService'
|
|
10
11
|
export * from './Ingest/BulkIngestorWhatsOnChainWs'
|
|
@@ -1,37 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './index.mobile'
|
|
2
2
|
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './Api/ChaintracksFsApi'
|
|
5
|
-
export * from './Api/ChaintracksFetchApi'
|
|
6
|
-
export * from './Api/ChaintracksStorageApi'
|
|
7
|
-
export * from './Api/BulkStorageApi'
|
|
8
|
-
export * from './Api/BulkIngestorApi'
|
|
9
|
-
export * from './Api/LiveIngestorApi'
|
|
10
|
-
export * from './Api/BlockHeaderApi'
|
|
11
|
-
|
|
12
|
-
export * from './Chaintracks'
|
|
13
|
-
export * from './ChaintracksServiceClient'
|
|
14
|
-
|
|
15
|
-
export * from './Ingest/BulkIngestorBase'
|
|
16
|
-
export * from './Ingest/LiveIngestorBase'
|
|
17
|
-
|
|
18
|
-
export * from './Ingest/BulkIngestorCDN'
|
|
19
|
-
export * from './Ingest/BulkIngestorCDNBabbage'
|
|
20
|
-
export * from './Ingest/BulkIngestorWhatsOnChainCdn'
|
|
21
|
-
export * from './Ingest/LiveIngestorWhatsOnChainPoll'
|
|
22
|
-
export * from './Ingest/WhatsOnChainServices'
|
|
23
|
-
|
|
24
|
-
export * from './Storage/BulkStorageBase'
|
|
25
|
-
export * from './Storage/ChaintracksStorageBase'
|
|
26
|
-
export * from './Storage/ChaintracksStorageNoDb'
|
|
27
|
-
export * from './Storage/ChaintracksStorageIdb'
|
|
28
|
-
|
|
29
|
-
export * from './createDefaultNoDbChaintracksOptions'
|
|
3
|
+
export * from './createDefaultIdbChaintracksOptions'
|
|
30
4
|
export * from './createIdbChaintracks'
|
|
31
|
-
|
|
32
|
-
export * from './util/BulkFilesReader'
|
|
33
|
-
export * from './util/HeightRange'
|
|
34
|
-
export * from './util/BulkFileDataManager'
|
|
35
|
-
export * from './util/ChaintracksFetch'
|
|
36
|
-
|
|
37
|
-
export * as utils from './util/blockHeaderUtilities'
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export { Chain } from '../../../sdk/types'
|
|
2
|
+
|
|
3
|
+
export * from './Api/ChaintracksApi'
|
|
4
|
+
export * from './Api/ChaintracksFsApi'
|
|
5
|
+
export * from './Api/ChaintracksFetchApi'
|
|
6
|
+
export * from './Api/ChaintracksStorageApi'
|
|
7
|
+
export * from './Api/BulkStorageApi'
|
|
8
|
+
export * from './Api/BulkIngestorApi'
|
|
9
|
+
export * from './Api/LiveIngestorApi'
|
|
10
|
+
export * from './Api/BlockHeaderApi'
|
|
11
|
+
|
|
12
|
+
export * from './Chaintracks'
|
|
13
|
+
export * from './ChaintracksServiceClient'
|
|
14
|
+
|
|
15
|
+
export * from './Ingest/BulkIngestorBase'
|
|
16
|
+
export * from './Ingest/LiveIngestorBase'
|
|
17
|
+
|
|
18
|
+
export * from './Ingest/BulkIngestorCDN'
|
|
19
|
+
export * from './Ingest/BulkIngestorCDNBabbage'
|
|
20
|
+
export * from './Ingest/BulkIngestorWhatsOnChainCdn'
|
|
21
|
+
export * from './Ingest/LiveIngestorWhatsOnChainPoll'
|
|
22
|
+
export * from './Ingest/WhatsOnChainServices'
|
|
23
|
+
|
|
24
|
+
export * from './Storage/BulkStorageBase'
|
|
25
|
+
export * from './Storage/ChaintracksStorageBase'
|
|
26
|
+
export * from './Storage/ChaintracksStorageNoDb'
|
|
27
|
+
export * from './Storage/ChaintracksStorageIdb'
|
|
28
|
+
|
|
29
|
+
export * from './createDefaultNoDbChaintracksOptions'
|
|
30
|
+
export * from './createNoDbChaintracks'
|
|
31
|
+
|
|
32
|
+
export * from './util/BulkFilesReader'
|
|
33
|
+
export * from './util/HeightRange'
|
|
34
|
+
export * from './util/BulkFileDataManager'
|
|
35
|
+
export * from './util/ChaintracksFetch'
|
|
36
|
+
|
|
37
|
+
export * as utils from './util/blockHeaderUtilities'
|
|
@@ -274,16 +274,16 @@ export const validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
274
274
|
validated: true
|
|
275
275
|
},
|
|
276
276
|
{
|
|
277
|
-
|
|
277
|
+
chain: 'test',
|
|
278
|
+
count: 95262,
|
|
279
|
+
fileHash: 'BvNO9eeMwCaN1Xsx8PQLMJ+YiqF9FrNe+9WnnEo9B44=',
|
|
278
280
|
fileName: 'testNet_16.headers',
|
|
279
281
|
firstHeight: 1600000,
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
lastHash: '0000000035ba2558f604ff73909944235b8094f07c0efa9c91f59b62b4920516',
|
|
283
|
-
fileHash: 'jw+ItRm5zjngLuuClRZONclYWCC66wPovV3XPF585KU=',
|
|
284
|
-
lastChainWork: '00000000000000000000000000000000000000000000015814b79f747a43902a',
|
|
282
|
+
lastChainWork: '00000000000000000000000000000000000000000000015814b84c3f9834ef93',
|
|
283
|
+
lastHash: '000000000ca922c841cb7fedd8f012ebc27b17991c9b00a8fb7ca4b1b2b648d3',
|
|
285
284
|
prevChainWork: '000000000000000000000000000000000000000000000156c3b84396da4e60b9',
|
|
286
|
-
|
|
285
|
+
prevHash: '00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1',
|
|
286
|
+
sourceUrl: 'https://cdn.projectbabbage.com/blockheaders',
|
|
287
287
|
validated: true
|
|
288
288
|
},
|
|
289
289
|
{
|
|
@@ -418,12 +418,12 @@ export const validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
418
418
|
},
|
|
419
419
|
{
|
|
420
420
|
chain: 'main',
|
|
421
|
-
count:
|
|
422
|
-
fileHash: '
|
|
421
|
+
count: 15512,
|
|
422
|
+
fileHash: 'sbLY7ZiEWkdvgAbZlWxYJfd/CLxeYPtuwHrc4WZ0aL4=',
|
|
423
423
|
fileName: 'mainNet_9.headers',
|
|
424
424
|
firstHeight: 900000,
|
|
425
|
-
lastChainWork: '
|
|
426
|
-
lastHash: '
|
|
425
|
+
lastChainWork: '00000000000000000000000000000000000000000168d586f9048fd69f17e1ca',
|
|
426
|
+
lastHash: '000000000000000004c5e39626c72e67d669135a7c004ee86f7191e3ed01cdee',
|
|
427
427
|
prevChainWork: '000000000000000000000000000000000000000001664db1f2d50327928007e0',
|
|
428
428
|
prevHash: '00000000000000000e7dcc27c06ee353bd37260b2e7e664314c204f0324a5087',
|
|
429
429
|
sourceUrl: 'https://cdn.projectbabbage.com/blockheaders',
|
|
@@ -27,7 +27,12 @@ import {
|
|
|
27
27
|
StorageGetBeefOptions,
|
|
28
28
|
StorageProvidedBy
|
|
29
29
|
} from '../../sdk/WalletStorage.interfaces'
|
|
30
|
-
import {
|
|
30
|
+
import {
|
|
31
|
+
ValidCreateActionArgs,
|
|
32
|
+
ValidCreateActionInput,
|
|
33
|
+
ValidCreateActionOutput,
|
|
34
|
+
validateSatoshis
|
|
35
|
+
} from '../../sdk/validationHelpers'
|
|
31
36
|
import { WERR_INTERNAL, WERR_INVALID_PARAMETER } from '../../sdk/WERR_errors'
|
|
32
37
|
import {
|
|
33
38
|
randomBytesBase64,
|
|
@@ -73,6 +73,19 @@ export class KnexMigrations implements MigrationSource<string> {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
migrations['2025-09-06-001 add proven txs blockHash index'] = {
|
|
77
|
+
async up(knex) {
|
|
78
|
+
await knex.schema.alterTable('proven_txs', table => {
|
|
79
|
+
table.index('blockHash')
|
|
80
|
+
})
|
|
81
|
+
},
|
|
82
|
+
async down(knex) {
|
|
83
|
+
await knex.schema.alterTable('proven_txs', table => {
|
|
84
|
+
table.dropIndex('blockHash')
|
|
85
|
+
})
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
76
89
|
migrations['2025-05-13-001 add monitor events event index'] = {
|
|
77
90
|
async up(knex) {
|
|
78
91
|
await knex.schema.alterTable('monitor_events', table => {
|
package/syncVersions.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const { execSync } = require('child_process');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Synchronizes version numbers from root package.json to mobile and client package.json files
|
|
7
|
+
* and updates package-lock.json files by running npm install
|
|
8
|
+
*/
|
|
9
|
+
function syncVersions() {
|
|
10
|
+
try {
|
|
11
|
+
// Read the root package.json
|
|
12
|
+
const rootPackagePath = path.join(__dirname, 'package.json');
|
|
13
|
+
const rootPackage = JSON.parse(fs.readFileSync(rootPackagePath, 'utf8'));
|
|
14
|
+
const version = rootPackage.version;
|
|
15
|
+
|
|
16
|
+
console.log(`Root package version: ${version}`);
|
|
17
|
+
|
|
18
|
+
// Directories to update
|
|
19
|
+
const directoriesToUpdate = [
|
|
20
|
+
{ packagePath: './mobile/package.json', dir: './mobile' },
|
|
21
|
+
{ packagePath: './client/package.json', dir: './client' }
|
|
22
|
+
];
|
|
23
|
+
|
|
24
|
+
// Update each package.json file and run npm install
|
|
25
|
+
directoriesToUpdate.forEach(({ packagePath, dir }) => {
|
|
26
|
+
const fullPath = path.join(__dirname, packagePath);
|
|
27
|
+
const fullDirPath = path.join(__dirname, dir);
|
|
28
|
+
|
|
29
|
+
if (fs.existsSync(fullPath)) {
|
|
30
|
+
const packageData = JSON.parse(fs.readFileSync(fullPath, 'utf8'));
|
|
31
|
+
const oldVersion = packageData.version;
|
|
32
|
+
|
|
33
|
+
packageData.version = version;
|
|
34
|
+
fs.writeFileSync(fullPath, JSON.stringify(packageData, null, 2) + '\n');
|
|
35
|
+
|
|
36
|
+
console.log(`Updated ${packagePath}: ${oldVersion} → ${version}`);
|
|
37
|
+
|
|
38
|
+
// Run npm install to update package-lock.json
|
|
39
|
+
if (fs.existsSync(fullDirPath)) {
|
|
40
|
+
console.log(`Running npm install in ${dir}...`);
|
|
41
|
+
try {
|
|
42
|
+
execSync('npm install', {
|
|
43
|
+
cwd: fullDirPath,
|
|
44
|
+
stdio: 'inherit',
|
|
45
|
+
timeout: 60000 // 60 second timeout
|
|
46
|
+
});
|
|
47
|
+
console.log(`✓ npm install completed in ${dir}`);
|
|
48
|
+
} catch (installError) {
|
|
49
|
+
console.error(`✗ npm install failed in ${dir}:`, installError.message);
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
console.warn(`Warning: Directory ${dir} not found`);
|
|
53
|
+
}
|
|
54
|
+
} else {
|
|
55
|
+
console.warn(`Warning: ${packagePath} not found`);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
console.log('Version synchronization completed successfully!');
|
|
60
|
+
} catch (error) {
|
|
61
|
+
console.error('Error synchronizing versions:', error.message);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Run the function if this script is executed directly
|
|
67
|
+
if (require.main === module) {
|
|
68
|
+
syncVersions();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
module.exports = syncVersions;
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { Beef, MerklePath } from '@bsv/sdk'
|
|
2
|
-
import { asArray, EntityProvenTxReq, sdk, verifyOne, verifyTruthy, wait } from '../../src/index.client'
|
|
3
2
|
import { TaskCheckForProofs } from '../../src/monitor/tasks/TaskCheckForProofs'
|
|
4
3
|
import { TaskClock } from '../../src/monitor/tasks/TaskClock'
|
|
5
4
|
import { TaskNewHeader } from '../../src/monitor/tasks/TaskNewHeader'
|
|
6
5
|
import { TaskPurge } from '../../src/monitor/tasks/TaskPurge'
|
|
7
6
|
import { TaskSendWaiting } from '../../src/monitor/tasks/TaskSendWaiting'
|
|
8
7
|
import { _tu, TestSetup1Wallet, TestWallet } from '../utils/TestUtilsWalletStorage'
|
|
9
|
-
import exp from 'constants'
|
|
10
8
|
import { TaskReviewStatus } from '../../src/monitor/tasks/TaskReviewStatus'
|
|
9
|
+
import { WERR_INTERNAL } from '../../src/sdk/WERR_errors'
|
|
10
|
+
import { Monitor } from '../../src/monitor/Monitor'
|
|
11
|
+
import { verifyOne, verifyTruthy, wait } from '../../src/utility/utilityHelpers'
|
|
12
|
+
import { EntityProvenTxReq } from '../../src/storage/schema/entities/EntityProvenTxReq'
|
|
13
|
+
import { GetMerklePathResult } from '../../src/sdk/WalletServices.interfaces'
|
|
14
|
+
import { ProvenTransactionStatus } from '../../src/sdk/types'
|
|
15
|
+
import { ReviewActionResult } from '../../src/sdk/WalletStorage.interfaces'
|
|
11
16
|
|
|
12
17
|
describe('Monitor tests', () => {
|
|
13
18
|
jest.setTimeout(99999999)
|
|
@@ -37,7 +42,7 @@ describe('Monitor tests', () => {
|
|
|
37
42
|
|
|
38
43
|
// This test takes a bit over a minute to run... un-skip it to work on it.
|
|
39
44
|
for (const { chain, wallet, services, monitor } of ctxs) {
|
|
40
|
-
if (!monitor) throw new
|
|
45
|
+
if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
|
|
41
46
|
|
|
42
47
|
{
|
|
43
48
|
// The clock attempts to update nextMinute to msecs for each minute.
|
|
@@ -47,10 +52,10 @@ describe('Monitor tests', () => {
|
|
|
47
52
|
monitor._tasks.push(task)
|
|
48
53
|
const msecsFirst = task.nextMinute
|
|
49
54
|
const startTasksPromise = monitor.startTasks()
|
|
50
|
-
await wait(
|
|
55
|
+
await wait(Monitor.oneMinute * 1.1)
|
|
51
56
|
const msecsNext = task.nextMinute
|
|
52
57
|
monitor.stopTasks()
|
|
53
|
-
const elapsed = (msecsNext - msecsFirst) /
|
|
58
|
+
const elapsed = (msecsNext - msecsFirst) / Monitor.oneMinute
|
|
54
59
|
expect(elapsed === 1 || elapsed === 2).toBe(true)
|
|
55
60
|
await startTasksPromise
|
|
56
61
|
}
|
|
@@ -62,7 +67,7 @@ describe('Monitor tests', () => {
|
|
|
62
67
|
|
|
63
68
|
// This test takes 10+ seconds to run... un-skip it to work on it.
|
|
64
69
|
for (const { chain, wallet, services, monitor } of ctxs) {
|
|
65
|
-
if (!monitor) throw new
|
|
70
|
+
if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
|
|
66
71
|
|
|
67
72
|
{
|
|
68
73
|
// The new header task polls chaintracks for latest header and if new sets flag to check for proofs.
|
|
@@ -71,7 +76,7 @@ describe('Monitor tests', () => {
|
|
|
71
76
|
monitor._tasks.push(task)
|
|
72
77
|
expect(TaskCheckForProofs.checkNow).toBe(false)
|
|
73
78
|
const startTasksPromise = monitor.startTasks()
|
|
74
|
-
await wait(
|
|
79
|
+
await wait(Monitor.oneSecond * 10)
|
|
75
80
|
expect(task.header).toBeTruthy()
|
|
76
81
|
expect(TaskCheckForProofs.checkNow).toBe(true)
|
|
77
82
|
monitor.stopTasks()
|
|
@@ -91,7 +96,7 @@ describe('Monitor tests', () => {
|
|
|
91
96
|
*/
|
|
92
97
|
|
|
93
98
|
for (const { chain, wallet, services, monitor } of ctxs) {
|
|
94
|
-
if (!monitor) throw new
|
|
99
|
+
if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
|
|
95
100
|
|
|
96
101
|
{
|
|
97
102
|
const task = new TaskPurge(monitor, {
|
|
@@ -141,7 +146,7 @@ describe('Monitor tests', () => {
|
|
|
141
146
|
})
|
|
142
147
|
|
|
143
148
|
for (const { activeStorage: storage, monitor } of ctxs) {
|
|
144
|
-
if (!monitor) throw new
|
|
149
|
+
if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
|
|
145
150
|
|
|
146
151
|
monitor.lastNewHeader = {
|
|
147
152
|
height: 999999999,
|
|
@@ -203,7 +208,7 @@ describe('Monitor tests', () => {
|
|
|
203
208
|
})
|
|
204
209
|
|
|
205
210
|
for (const { activeStorage: storage, monitor } of ctxs) {
|
|
206
|
-
if (!monitor) throw new
|
|
211
|
+
if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
|
|
207
212
|
|
|
208
213
|
{
|
|
209
214
|
const attempts: number[] = []
|
|
@@ -238,7 +243,7 @@ describe('Monitor tests', () => {
|
|
|
238
243
|
}
|
|
239
244
|
})
|
|
240
245
|
|
|
241
|
-
const mockGetMerklePathResults:
|
|
246
|
+
const mockGetMerklePathResults: GetMerklePathResult[] = [
|
|
242
247
|
{
|
|
243
248
|
name: 'WoCTsc',
|
|
244
249
|
merklePath: new MerklePath(1652142, [
|
|
@@ -411,7 +416,7 @@ describe('Monitor tests', () => {
|
|
|
411
416
|
})
|
|
412
417
|
|
|
413
418
|
for (const { activeStorage: storage, monitor } of ctxs) {
|
|
414
|
-
if (!monitor) throw new
|
|
419
|
+
if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
|
|
415
420
|
|
|
416
421
|
{
|
|
417
422
|
const task = new TaskSendWaiting(monitor, 1, 1)
|
|
@@ -512,7 +517,7 @@ describe('Monitor tests', () => {
|
|
|
512
517
|
})
|
|
513
518
|
|
|
514
519
|
for (const { activeStorage: storage, monitor } of ctxs) {
|
|
515
|
-
if (!monitor) throw new
|
|
520
|
+
if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
|
|
516
521
|
|
|
517
522
|
monitor.lastNewHeader = {
|
|
518
523
|
height: 999999999,
|
|
@@ -525,7 +530,7 @@ describe('Monitor tests', () => {
|
|
|
525
530
|
nonce: 0
|
|
526
531
|
}
|
|
527
532
|
|
|
528
|
-
monitor.onTransactionProven = async (txStatus:
|
|
533
|
+
monitor.onTransactionProven = async (txStatus: ProvenTransactionStatus) => {
|
|
529
534
|
expect(txStatus.txid).toBeTruthy()
|
|
530
535
|
expect(txStatus.blockHash).toBeTruthy()
|
|
531
536
|
expect(txStatus.blockHeight).toBeTruthy()
|
|
@@ -581,14 +586,14 @@ describe('Monitor tests', () => {
|
|
|
581
586
|
})
|
|
582
587
|
|
|
583
588
|
for (const { activeStorage: storage, monitor } of ctxs) {
|
|
584
|
-
if (!monitor) throw new
|
|
589
|
+
if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
|
|
585
590
|
|
|
586
591
|
for (const txid of expectedTxids) {
|
|
587
592
|
const req = verifyTruthy(await EntityProvenTxReq.fromStorageTxid(storage, txid))
|
|
588
593
|
expect(req.status).toBe('unsent')
|
|
589
594
|
}
|
|
590
595
|
|
|
591
|
-
monitor.onTransactionBroadcasted = async (broadcastResult:
|
|
596
|
+
monitor.onTransactionBroadcasted = async (broadcastResult: ReviewActionResult) => {
|
|
592
597
|
expect(broadcastResult.status).toBe('success')
|
|
593
598
|
expect(expectedTxids).toContain(broadcastResult.txid)
|
|
594
599
|
updatesReceived++
|