@bsv/wallet-toolbox-client 2.4.3 → 2.4.20
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/LICENSE.txt +58 -0
- package/README.md +43 -22
- package/out/index.client.cjs +33583 -0
- package/out/index.client.cjs.map +1 -0
- package/out/index.client.d.cts +10768 -0
- package/out/index.client.d.cts.map +1 -0
- package/out/index.client.d.mts +10767 -0
- package/out/index.client.d.mts.map +1 -0
- package/out/index.client.mjs +33377 -0
- package/out/index.client.mjs.map +1 -0
- package/out/rolldown-runtime-D7D4PA-g.mjs +13 -0
- package/package.json +59 -7
- package/out/src/CWIStyleWalletManager.d.ts +0 -517
- package/out/src/CWIStyleWalletManager.d.ts.map +0 -1
- package/out/src/CWIStyleWalletManager.js +0 -1594
- package/out/src/CWIStyleWalletManager.js.map +0 -1
- package/out/src/SetupClient.d.ts +0 -135
- package/out/src/SetupClient.d.ts.map +0 -1
- package/out/src/SetupClient.js +0 -226
- package/out/src/SetupClient.js.map +0 -1
- package/out/src/SetupWallet.d.ts +0 -103
- package/out/src/SetupWallet.d.ts.map +0 -1
- package/out/src/SetupWallet.js +0 -3
- package/out/src/SetupWallet.js.map +0 -1
- package/out/src/SimpleWalletManager.d.ts +0 -179
- package/out/src/SimpleWalletManager.d.ts.map +0 -1
- package/out/src/SimpleWalletManager.js +0 -360
- package/out/src/SimpleWalletManager.js.map +0 -1
- package/out/src/Wallet.d.ts +0 -254
- package/out/src/Wallet.d.ts.map +0 -1
- package/out/src/Wallet.js +0 -909
- package/out/src/Wallet.js.map +0 -1
- package/out/src/WalletAuthenticationManager.d.ts +0 -33
- package/out/src/WalletAuthenticationManager.d.ts.map +0 -1
- package/out/src/WalletAuthenticationManager.js +0 -126
- package/out/src/WalletAuthenticationManager.js.map +0 -1
- package/out/src/WalletLogger.d.ts +0 -65
- package/out/src/WalletLogger.d.ts.map +0 -1
- package/out/src/WalletLogger.js +0 -177
- package/out/src/WalletLogger.js.map +0 -1
- package/out/src/WalletPermissionsManager.d.ts +0 -981
- package/out/src/WalletPermissionsManager.d.ts.map +0 -1
- package/out/src/WalletPermissionsManager.js +0 -3744
- package/out/src/WalletPermissionsManager.js.map +0 -1
- package/out/src/WalletSettingsManager.d.ts +0 -53
- package/out/src/WalletSettingsManager.d.ts.map +0 -1
- package/out/src/WalletSettingsManager.js +0 -86
- package/out/src/WalletSettingsManager.js.map +0 -1
- package/out/src/fundWalletP2PKH.d.ts +0 -48
- package/out/src/fundWalletP2PKH.d.ts.map +0 -1
- package/out/src/fundWalletP2PKH.js +0 -239
- package/out/src/fundWalletP2PKH.js.map +0 -1
- package/out/src/index.client.d.ts +0 -23
- package/out/src/index.client.d.ts.map +0 -1
- package/out/src/index.client.js +0 -62
- package/out/src/index.client.js.map +0 -1
- package/out/src/mockchain/MockChainMigrations.d.ts +0 -20
- package/out/src/mockchain/MockChainMigrations.d.ts.map +0 -1
- package/out/src/mockchain/MockChainMigrations.js +0 -67
- package/out/src/mockchain/MockChainMigrations.js.map +0 -1
- package/out/src/mockchain/MockChainStorage.d.ts +0 -58
- package/out/src/mockchain/MockChainStorage.d.ts.map +0 -1
- package/out/src/mockchain/MockChainStorage.js +0 -102
- package/out/src/mockchain/MockChainStorage.js.map +0 -1
- package/out/src/mockchain/MockChainTracker.d.ts +0 -28
- package/out/src/mockchain/MockChainTracker.d.ts.map +0 -1
- package/out/src/mockchain/MockChainTracker.js +0 -97
- package/out/src/mockchain/MockChainTracker.js.map +0 -1
- package/out/src/mockchain/MockMiner.d.ts +0 -16
- package/out/src/mockchain/MockMiner.d.ts.map +0 -1
- package/out/src/mockchain/MockMiner.js +0 -137
- package/out/src/mockchain/MockMiner.js.map +0 -1
- package/out/src/mockchain/MockServices.d.ts +0 -53
- package/out/src/mockchain/MockServices.d.ts.map +0 -1
- package/out/src/mockchain/MockServices.js +0 -459
- package/out/src/mockchain/MockServices.js.map +0 -1
- package/out/src/mockchain/merkleTree.d.ts +0 -13
- package/out/src/mockchain/merkleTree.d.ts.map +0 -1
- package/out/src/mockchain/merkleTree.js +0 -122
- package/out/src/mockchain/merkleTree.js.map +0 -1
- package/out/src/monitor/Monitor.d.ts +0 -189
- package/out/src/monitor/Monitor.d.ts.map +0 -1
- package/out/src/monitor/Monitor.js +0 -386
- package/out/src/monitor/Monitor.js.map +0 -1
- package/out/src/monitor/tasks/TaskArcSSE.d.ts +0 -29
- package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskArcSSE.js +0 -259
- package/out/src/monitor/tasks/TaskArcSSE.js.map +0 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +0 -53
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +0 -224
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +0 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +0 -91
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +0 -159
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +0 -1
- package/out/src/monitor/tasks/TaskClock.d.ts +0 -14
- package/out/src/monitor/tasks/TaskClock.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskClock.js +0 -29
- package/out/src/monitor/tasks/TaskClock.js.map +0 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts +0 -20
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js +0 -53
- package/out/src/monitor/tasks/TaskFailAbandoned.js.map +0 -1
- package/out/src/monitor/tasks/TaskMineBlock.d.ts +0 -13
- package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskMineBlock.js +0 -30
- package/out/src/monitor/tasks/TaskMineBlock.js.map +0 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts +0 -12
- package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js +0 -25
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +0 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts +0 -50
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +0 -97
- package/out/src/monitor/tasks/TaskNewHeader.js.map +0 -1
- package/out/src/monitor/tasks/TaskPurge.d.ts +0 -45
- package/out/src/monitor/tasks/TaskPurge.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskPurge.js +0 -36
- package/out/src/monitor/tasks/TaskPurge.js.map +0 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts +0 -43
- package/out/src/monitor/tasks/TaskReorg.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskReorg.js +0 -84
- package/out/src/monitor/tasks/TaskReorg.js.map +0 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +0 -26
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +0 -127
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +0 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +0 -34
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js +0 -136
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +0 -1
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts +0 -26
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskReviewStatus.js +0 -50
- package/out/src/monitor/tasks/TaskReviewStatus.js.map +0 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +0 -23
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js +0 -75
- package/out/src/monitor/tasks/TaskReviewUtxos.js.map +0 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts +0 -48
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js +0 -202
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +0 -1
- package/out/src/monitor/tasks/TaskUnFail.d.ts +0 -41
- package/out/src/monitor/tasks/TaskUnFail.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskUnFail.js +0 -89
- package/out/src/monitor/tasks/TaskUnFail.js.map +0 -1
- package/out/src/monitor/tasks/WalletMonitorTask.d.ts +0 -40
- package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +0 -1
- package/out/src/monitor/tasks/WalletMonitorTask.js +0 -42
- package/out/src/monitor/tasks/WalletMonitorTask.js.map +0 -1
- package/out/src/sdk/CertOpsWallet.d.ts +0 -7
- package/out/src/sdk/CertOpsWallet.d.ts.map +0 -1
- package/out/src/sdk/CertOpsWallet.js +0 -3
- package/out/src/sdk/CertOpsWallet.js.map +0 -1
- package/out/src/sdk/PrivilegedKeyManager.d.ts +0 -125
- package/out/src/sdk/PrivilegedKeyManager.d.ts.map +0 -1
- package/out/src/sdk/PrivilegedKeyManager.js +0 -320
- package/out/src/sdk/PrivilegedKeyManager.js.map +0 -1
- package/out/src/sdk/WERR_errors.d.ts +0 -136
- package/out/src/sdk/WERR_errors.d.ts.map +0 -1
- package/out/src/sdk/WERR_errors.js +0 -233
- package/out/src/sdk/WERR_errors.js.map +0 -1
- package/out/src/sdk/WalletError.d.ts +0 -63
- package/out/src/sdk/WalletError.d.ts.map +0 -1
- package/out/src/sdk/WalletError.js +0 -177
- package/out/src/sdk/WalletError.js.map +0 -1
- package/out/src/sdk/WalletErrorFromJson.d.ts +0 -12
- package/out/src/sdk/WalletErrorFromJson.d.ts.map +0 -1
- package/out/src/sdk/WalletErrorFromJson.js +0 -67
- package/out/src/sdk/WalletErrorFromJson.js.map +0 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +0 -643
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +0 -1
- package/out/src/sdk/WalletServices.interfaces.js +0 -3
- package/out/src/sdk/WalletServices.interfaces.js.map +0 -1
- package/out/src/sdk/WalletSigner.interfaces.d.ts +0 -10
- package/out/src/sdk/WalletSigner.interfaces.d.ts.map +0 -1
- package/out/src/sdk/WalletSigner.interfaces.js +0 -3
- package/out/src/sdk/WalletSigner.interfaces.js.map +0 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +0 -539
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +0 -1
- package/out/src/sdk/WalletStorage.interfaces.js +0 -3
- package/out/src/sdk/WalletStorage.interfaces.js.map +0 -1
- package/out/src/sdk/index.d.ts +0 -11
- package/out/src/sdk/index.d.ts.map +0 -1
- package/out/src/sdk/index.js +0 -29
- package/out/src/sdk/index.js.map +0 -1
- package/out/src/sdk/types.d.ts +0 -178
- package/out/src/sdk/types.d.ts.map +0 -1
- package/out/src/sdk/types.js +0 -104
- package/out/src/sdk/types.js.map +0 -1
- package/out/src/services/ServiceCollection.d.ts +0 -79
- package/out/src/services/ServiceCollection.d.ts.map +0 -1
- package/out/src/services/ServiceCollection.js +0 -197
- package/out/src/services/ServiceCollection.js.map +0 -1
- package/out/src/services/Services.d.ts +0 -97
- package/out/src/services/Services.d.ts.map +0 -1
- package/out/src/services/Services.js +0 -729
- package/out/src/services/Services.js.map +0 -1
- package/out/src/services/chaintracker/BHServiceClient.d.ts +0 -39
- package/out/src/services/chaintracker/BHServiceClient.d.ts.map +0 -1
- package/out/src/services/chaintracker/BHServiceClient.js +0 -180
- package/out/src/services/chaintracker/BHServiceClient.js.map +0 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +0 -16
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +0 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +0 -59
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +0 -57
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +0 -38
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +0 -70
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts +0 -81
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +0 -54
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +0 -163
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +0 -18
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts +0 -55
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +0 -338
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts +0 -19
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +0 -113
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +0 -607
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +0 -38
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +0 -149
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +0 -52
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +0 -232
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts +0 -60
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +0 -126
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +0 -75
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +0 -121
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts +0 -13
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js +0 -20
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +0 -62
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +0 -61
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts +0 -62
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +0 -44
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +0 -24
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +0 -55
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +0 -64
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +0 -95
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +0 -171
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +0 -487
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +0 -89
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +0 -142
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts +0 -23
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +0 -63
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +0 -68
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +0 -311
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +0 -92
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +0 -467
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +0 -37
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +0 -261
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +0 -22
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +0 -54
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +0 -5
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +0 -29
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +0 -5
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +0 -29
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +0 -13
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +0 -27
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +0 -13
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +0 -27
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.client.d.ts +0 -4
- package/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.client.js +0 -20
- package/out/src/services/chaintracker/chaintracks/index.client.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +0 -32
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.js +0 -70
- package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +0 -142
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +0 -821
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts +0 -22
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +0 -65
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts +0 -78
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +0 -284
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +0 -129
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +0 -168
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +0 -21
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +0 -108
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts +0 -90
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +0 -150
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +0 -14
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +0 -86
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +0 -159
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +0 -530
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts +0 -20
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +0 -31
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts +0 -37
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +0 -429
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +0 -1
- package/out/src/services/chaintracker/index.client.d.ts +0 -4
- package/out/src/services/chaintracker/index.client.d.ts.map +0 -1
- package/out/src/services/chaintracker/index.client.js +0 -20
- package/out/src/services/chaintracker/index.client.js.map +0 -1
- package/out/src/services/createDefaultWalletServicesOptions.d.ts +0 -25
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +0 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +0 -143
- package/out/src/services/createDefaultWalletServicesOptions.js.map +0 -1
- package/out/src/services/networkConfig.d.ts +0 -29
- package/out/src/services/networkConfig.d.ts.map +0 -1
- package/out/src/services/networkConfig.js +0 -54
- package/out/src/services/networkConfig.js.map +0 -1
- package/out/src/services/providers/ARC.d.ts +0 -96
- package/out/src/services/providers/ARC.d.ts.map +0 -1
- package/out/src/services/providers/ARC.js +0 -332
- package/out/src/services/providers/ARC.js.map +0 -1
- package/out/src/services/providers/ArcSSEClient.d.ts +0 -58
- package/out/src/services/providers/ArcSSEClient.d.ts.map +0 -1
- package/out/src/services/providers/ArcSSEClient.js +0 -115
- package/out/src/services/providers/ArcSSEClient.js.map +0 -1
- package/out/src/services/providers/Arcade.d.ts +0 -73
- package/out/src/services/providers/Arcade.d.ts.map +0 -1
- package/out/src/services/providers/Arcade.js +0 -330
- package/out/src/services/providers/Arcade.js.map +0 -1
- package/out/src/services/providers/Bitails.d.ts +0 -50
- package/out/src/services/providers/Bitails.d.ts.map +0 -1
- package/out/src/services/providers/Bitails.js +0 -237
- package/out/src/services/providers/Bitails.js.map +0 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts +0 -21
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +0 -1
- package/out/src/services/providers/SdkWhatsOnChain.js +0 -82
- package/out/src/services/providers/SdkWhatsOnChain.js.map +0 -1
- package/out/src/services/providers/WhatsOnChain.d.ts +0 -132
- package/out/src/services/providers/WhatsOnChain.d.ts.map +0 -1
- package/out/src/services/providers/WhatsOnChain.js +0 -558
- package/out/src/services/providers/WhatsOnChain.js.map +0 -1
- package/out/src/services/providers/exchangeRates.d.ts +0 -12
- package/out/src/services/providers/exchangeRates.d.ts.map +0 -1
- package/out/src/services/providers/exchangeRates.js +0 -244
- package/out/src/services/providers/exchangeRates.js.map +0 -1
- package/out/src/services/providers/getBeefForTxid.d.ts +0 -4
- package/out/src/services/providers/getBeefForTxid.d.ts.map +0 -1
- package/out/src/services/providers/getBeefForTxid.js +0 -287
- package/out/src/services/providers/getBeefForTxid.js.map +0 -1
- package/out/src/services/providers/whatsOnChainHelpers.d.ts +0 -68
- package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +0 -1
- package/out/src/services/providers/whatsOnChainHelpers.js +0 -147
- package/out/src/services/providers/whatsOnChainHelpers.js.map +0 -1
- package/out/src/signer/WalletSigner.d.ts +0 -11
- package/out/src/signer/WalletSigner.d.ts.map +0 -1
- package/out/src/signer/WalletSigner.js +0 -16
- package/out/src/signer/WalletSigner.js.map +0 -1
- package/out/src/signer/methods/acquireDirectCertificate.d.ts +0 -5
- package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +0 -1
- package/out/src/signer/methods/acquireDirectCertificate.js +0 -44
- package/out/src/signer/methods/acquireDirectCertificate.js.map +0 -1
- package/out/src/signer/methods/buildSignableTransaction.d.ts +0 -69
- package/out/src/signer/methods/buildSignableTransaction.d.ts.map +0 -1
- package/out/src/signer/methods/buildSignableTransaction.js +0 -267
- package/out/src/signer/methods/buildSignableTransaction.js.map +0 -1
- package/out/src/signer/methods/completeSignedTransaction.d.ts +0 -10
- package/out/src/signer/methods/completeSignedTransaction.d.ts.map +0 -1
- package/out/src/signer/methods/completeSignedTransaction.js +0 -106
- package/out/src/signer/methods/completeSignedTransaction.js.map +0 -1
- package/out/src/signer/methods/createAction.d.ts +0 -14
- package/out/src/signer/methods/createAction.d.ts.map +0 -1
- package/out/src/signer/methods/createAction.js +0 -123
- package/out/src/signer/methods/createAction.js.map +0 -1
- package/out/src/signer/methods/internalizeAction.d.ts +0 -43
- package/out/src/signer/methods/internalizeAction.d.ts.map +0 -1
- package/out/src/signer/methods/internalizeAction.js +0 -109
- package/out/src/signer/methods/internalizeAction.js.map +0 -1
- package/out/src/signer/methods/proveCertificate.d.ts +0 -5
- package/out/src/signer/methods/proveCertificate.d.ts.map +0 -1
- package/out/src/signer/methods/proveCertificate.js +0 -29
- package/out/src/signer/methods/proveCertificate.js.map +0 -1
- package/out/src/signer/methods/resultBeef.d.ts +0 -4
- package/out/src/signer/methods/resultBeef.d.ts.map +0 -1
- package/out/src/signer/methods/resultBeef.js +0 -12
- package/out/src/signer/methods/resultBeef.js.map +0 -1
- package/out/src/signer/methods/signAction.d.ts +0 -11
- package/out/src/signer/methods/signAction.d.ts.map +0 -1
- package/out/src/signer/methods/signAction.js +0 -43
- package/out/src/signer/methods/signAction.js.map +0 -1
- package/out/src/storage/StorageIdb.d.ts +0 -234
- package/out/src/storage/StorageIdb.d.ts.map +0 -1
- package/out/src/storage/StorageIdb.js +0 -1701
- package/out/src/storage/StorageIdb.js.map +0 -1
- package/out/src/storage/StorageProvider.d.ts +0 -281
- package/out/src/storage/StorageProvider.d.ts.map +0 -1
- package/out/src/storage/StorageProvider.js +0 -924
- package/out/src/storage/StorageProvider.js.map +0 -1
- package/out/src/storage/StorageReader.d.ts +0 -77
- package/out/src/storage/StorageReader.d.ts.map +0 -1
- package/out/src/storage/StorageReader.js +0 -166
- package/out/src/storage/StorageReader.js.map +0 -1
- package/out/src/storage/StorageReaderWriter.d.ts +0 -102
- package/out/src/storage/StorageReaderWriter.d.ts.map +0 -1
- package/out/src/storage/StorageReaderWriter.js +0 -335
- package/out/src/storage/StorageReaderWriter.js.map +0 -1
- package/out/src/storage/StorageSyncReader.d.ts +0 -18
- package/out/src/storage/StorageSyncReader.d.ts.map +0 -1
- package/out/src/storage/StorageSyncReader.js +0 -73
- package/out/src/storage/StorageSyncReader.js.map +0 -1
- package/out/src/storage/WalletStorageManager.d.ts +0 -217
- package/out/src/storage/WalletStorageManager.d.ts.map +0 -1
- package/out/src/storage/WalletStorageManager.js +0 -830
- package/out/src/storage/WalletStorageManager.js.map +0 -1
- package/out/src/storage/idbHelpers.d.ts +0 -42
- package/out/src/storage/idbHelpers.d.ts.map +0 -1
- package/out/src/storage/idbHelpers.js +0 -374
- package/out/src/storage/idbHelpers.js.map +0 -1
- package/out/src/storage/index.client.d.ts +0 -12
- package/out/src/storage/index.client.d.ts.map +0 -1
- package/out/src/storage/index.client.js +0 -28
- package/out/src/storage/index.client.js.map +0 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts +0 -23
- package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +0 -1
- package/out/src/storage/methods/ListActionsSpecOp.js +0 -129
- package/out/src/storage/methods/ListActionsSpecOp.js.map +0 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts +0 -42
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +0 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +0 -154
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +0 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +0 -124
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +0 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +0 -490
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +0 -1
- package/out/src/storage/methods/createAction.d.ts +0 -13
- package/out/src/storage/methods/createAction.d.ts.map +0 -1
- package/out/src/storage/methods/createAction.js +0 -793
- package/out/src/storage/methods/createAction.js.map +0 -1
- package/out/src/storage/methods/generateChange.d.ts +0 -121
- package/out/src/storage/methods/generateChange.d.ts.map +0 -1
- package/out/src/storage/methods/generateChange.js +0 -496
- package/out/src/storage/methods/generateChange.js.map +0 -1
- package/out/src/storage/methods/getBeefForTransaction.d.ts +0 -23
- package/out/src/storage/methods/getBeefForTransaction.d.ts.map +0 -1
- package/out/src/storage/methods/getBeefForTransaction.js +0 -132
- package/out/src/storage/methods/getBeefForTransaction.js.map +0 -1
- package/out/src/storage/methods/getSyncChunk.d.ts +0 -10
- package/out/src/storage/methods/getSyncChunk.d.ts.map +0 -1
- package/out/src/storage/methods/getSyncChunk.js +0 -273
- package/out/src/storage/methods/getSyncChunk.js.map +0 -1
- package/out/src/storage/methods/internalizeAction.d.ts +0 -102
- package/out/src/storage/methods/internalizeAction.d.ts.map +0 -1
- package/out/src/storage/methods/internalizeAction.js +0 -670
- package/out/src/storage/methods/internalizeAction.js.map +0 -1
- package/out/src/storage/methods/listActionsIdb.d.ts +0 -5
- package/out/src/storage/methods/listActionsIdb.d.ts.map +0 -1
- package/out/src/storage/methods/listActionsIdb.js +0 -142
- package/out/src/storage/methods/listActionsIdb.js.map +0 -1
- package/out/src/storage/methods/listCertificates.d.ts +0 -5
- package/out/src/storage/methods/listCertificates.d.ts.map +0 -1
- package/out/src/storage/methods/listCertificates.js +0 -68
- package/out/src/storage/methods/listCertificates.js.map +0 -1
- package/out/src/storage/methods/listOutputsIdb.d.ts +0 -5
- package/out/src/storage/methods/listOutputsIdb.d.ts.map +0 -1
- package/out/src/storage/methods/listOutputsIdb.js +0 -195
- package/out/src/storage/methods/listOutputsIdb.js.map +0 -1
- package/out/src/storage/methods/managedChange.d.ts +0 -26
- package/out/src/storage/methods/managedChange.d.ts.map +0 -1
- package/out/src/storage/methods/managedChange.js +0 -43
- package/out/src/storage/methods/managedChange.js.map +0 -1
- package/out/src/storage/methods/offsetKey.d.ts +0 -24
- package/out/src/storage/methods/offsetKey.d.ts.map +0 -1
- package/out/src/storage/methods/offsetKey.js +0 -65
- package/out/src/storage/methods/offsetKey.js.map +0 -1
- package/out/src/storage/methods/processAction.d.ts +0 -43
- package/out/src/storage/methods/processAction.d.ts.map +0 -1
- package/out/src/storage/methods/processAction.js +0 -313
- package/out/src/storage/methods/processAction.js.map +0 -1
- package/out/src/storage/methods/purgeDataIdb.d.ts +0 -4
- package/out/src/storage/methods/purgeDataIdb.d.ts.map +0 -1
- package/out/src/storage/methods/purgeDataIdb.js +0 -9
- package/out/src/storage/methods/purgeDataIdb.js.map +0 -1
- package/out/src/storage/methods/reviewStatusIdb.d.ts +0 -20
- package/out/src/storage/methods/reviewStatusIdb.d.ts.map +0 -1
- package/out/src/storage/methods/reviewStatusIdb.js +0 -76
- package/out/src/storage/methods/reviewStatusIdb.js.map +0 -1
- package/out/src/storage/methods/utils.d.ts +0 -25
- package/out/src/storage/methods/utils.d.ts.map +0 -1
- package/out/src/storage/methods/utils.js +0 -59
- package/out/src/storage/methods/utils.js.map +0 -1
- package/out/src/storage/portable/index.d.ts +0 -55
- package/out/src/storage/portable/index.d.ts.map +0 -1
- package/out/src/storage/portable/index.js +0 -872
- package/out/src/storage/portable/index.js.map +0 -1
- package/out/src/storage/remoting/BinaryJson.d.ts +0 -10
- package/out/src/storage/remoting/BinaryJson.d.ts.map +0 -1
- package/out/src/storage/remoting/BinaryJson.js +0 -172
- package/out/src/storage/remoting/BinaryJson.js.map +0 -1
- package/out/src/storage/remoting/StorageClient.d.ts +0 -26
- package/out/src/storage/remoting/StorageClient.d.ts.map +0 -1
- package/out/src/storage/remoting/StorageClient.js +0 -98
- package/out/src/storage/remoting/StorageClient.js.map +0 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts +0 -299
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +0 -1
- package/out/src/storage/remoting/StorageClientBase.js +0 -381
- package/out/src/storage/remoting/StorageClientBase.js.map +0 -1
- package/out/src/storage/remoting/entityValidationHelpers.d.ts +0 -29
- package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +0 -1
- package/out/src/storage/remoting/entityValidationHelpers.js +0 -91
- package/out/src/storage/remoting/entityValidationHelpers.js.map +0 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts +0 -133
- package/out/src/storage/schema/StorageIdbSchema.d.ts.map +0 -1
- package/out/src/storage/schema/StorageIdbSchema.js +0 -3
- package/out/src/storage/schema/StorageIdbSchema.js.map +0 -1
- package/out/src/storage/schema/entities/EntityBase.d.ts +0 -106
- package/out/src/storage/schema/entities/EntityBase.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityBase.js +0 -101
- package/out/src/storage/schema/entities/EntityBase.js.map +0 -1
- package/out/src/storage/schema/entities/EntityCertificate.d.ts +0 -44
- package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityCertificate.js +0 -163
- package/out/src/storage/schema/entities/EntityCertificate.js.map +0 -1
- package/out/src/storage/schema/entities/EntityCertificateField.d.ts +0 -33
- package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityCertificateField.js +0 -110
- package/out/src/storage/schema/entities/EntityCertificateField.js.map +0 -1
- package/out/src/storage/schema/entities/EntityCommission.d.ts +0 -38
- package/out/src/storage/schema/entities/EntityCommission.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityCommission.js +0 -125
- package/out/src/storage/schema/entities/EntityCommission.js.map +0 -1
- package/out/src/storage/schema/entities/EntityOutput.d.ts +0 -68
- package/out/src/storage/schema/entities/EntityOutput.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityOutput.js +0 -261
- package/out/src/storage/schema/entities/EntityOutput.js.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.d.ts +0 -36
- package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.js +0 -133
- package/out/src/storage/schema/entities/EntityOutputBasket.js.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputTag.d.ts +0 -32
- package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputTag.js +0 -104
- package/out/src/storage/schema/entities/EntityOutputTag.js.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts +0 -29
- package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.js +0 -96
- package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +0 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +0 -87
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +0 -276
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +0 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +0 -148
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +0 -570
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +0 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts +0 -69
- package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +0 -338
- package/out/src/storage/schema/entities/EntitySyncState.js.map +0 -1
- package/out/src/storage/schema/entities/EntityTransaction.d.ts +0 -71
- package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityTransaction.js +0 -265
- package/out/src/storage/schema/entities/EntityTransaction.js.map +0 -1
- package/out/src/storage/schema/entities/EntityTxLabel.d.ts +0 -32
- package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityTxLabel.js +0 -104
- package/out/src/storage/schema/entities/EntityTxLabel.js.map +0 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts +0 -29
- package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.js +0 -96
- package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +0 -1
- package/out/src/storage/schema/entities/EntityUser.d.ts +0 -30
- package/out/src/storage/schema/entities/EntityUser.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityUser.js +0 -99
- package/out/src/storage/schema/entities/EntityUser.js.map +0 -1
- package/out/src/storage/schema/entities/MergeEntity.d.ts +0 -34
- package/out/src/storage/schema/entities/MergeEntity.d.ts.map +0 -1
- package/out/src/storage/schema/entities/MergeEntity.js +0 -67
- package/out/src/storage/schema/entities/MergeEntity.js.map +0 -1
- package/out/src/storage/schema/entities/index.d.ts +0 -17
- package/out/src/storage/schema/entities/index.d.ts.map +0 -1
- package/out/src/storage/schema/entities/index.js +0 -33
- package/out/src/storage/schema/entities/index.js.map +0 -1
- package/out/src/storage/schema/tables/TableAuthSession.d.ts +0 -20
- package/out/src/storage/schema/tables/TableAuthSession.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableAuthSession.js +0 -15
- package/out/src/storage/schema/tables/TableAuthSession.js.map +0 -1
- package/out/src/storage/schema/tables/TableCertificate.d.ts +0 -21
- package/out/src/storage/schema/tables/TableCertificate.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableCertificate.js +0 -3
- package/out/src/storage/schema/tables/TableCertificate.js.map +0 -1
- package/out/src/storage/schema/tables/TableCertificateField.d.ts +0 -12
- package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableCertificateField.js +0 -3
- package/out/src/storage/schema/tables/TableCertificateField.js.map +0 -1
- package/out/src/storage/schema/tables/TableCommission.d.ts +0 -13
- package/out/src/storage/schema/tables/TableCommission.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableCommission.js +0 -3
- package/out/src/storage/schema/tables/TableCommission.js.map +0 -1
- package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +0 -9
- package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableMonitorEvent.js +0 -3
- package/out/src/storage/schema/tables/TableMonitorEvent.js.map +0 -1
- package/out/src/storage/schema/tables/TableOutput.d.ts +0 -37
- package/out/src/storage/schema/tables/TableOutput.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableOutput.js +0 -31
- package/out/src/storage/schema/tables/TableOutput.js.map +0 -1
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts +0 -12
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableOutputBasket.js +0 -3
- package/out/src/storage/schema/tables/TableOutputBasket.js.map +0 -1
- package/out/src/storage/schema/tables/TableOutputTag.d.ts +0 -10
- package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableOutputTag.js +0 -3
- package/out/src/storage/schema/tables/TableOutputTag.js.map +0 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +0 -9
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.js +0 -3
- package/out/src/storage/schema/tables/TableOutputTagMap.js.map +0 -1
- package/out/src/storage/schema/tables/TableProvenTx.d.ts +0 -14
- package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableProvenTx.js +0 -3
- package/out/src/storage/schema/tables/TableProvenTx.js.map +0 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +0 -87
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.js +0 -3
- package/out/src/storage/schema/tables/TableProvenTxReq.js.map +0 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts +0 -17
- package/out/src/storage/schema/tables/TableSettings.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableSettings.js +0 -3
- package/out/src/storage/schema/tables/TableSettings.js.map +0 -1
- package/out/src/storage/schema/tables/TableSyncState.d.ts +0 -18
- package/out/src/storage/schema/tables/TableSyncState.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableSyncState.js +0 -3
- package/out/src/storage/schema/tables/TableSyncState.js.map +0 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts +0 -37
- package/out/src/storage/schema/tables/TableTransaction.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableTransaction.js +0 -21
- package/out/src/storage/schema/tables/TableTransaction.js.map +0 -1
- package/out/src/storage/schema/tables/TableTxLabel.d.ts +0 -10
- package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableTxLabel.js +0 -3
- package/out/src/storage/schema/tables/TableTxLabel.js.map +0 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +0 -9
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.js +0 -3
- package/out/src/storage/schema/tables/TableTxLabelMap.js.map +0 -1
- package/out/src/storage/schema/tables/TableUser.d.ts +0 -16
- package/out/src/storage/schema/tables/TableUser.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableUser.js +0 -3
- package/out/src/storage/schema/tables/TableUser.js.map +0 -1
- package/out/src/storage/schema/tables/index.d.ts +0 -18
- package/out/src/storage/schema/tables/index.d.ts.map +0 -1
- package/out/src/storage/schema/tables/index.js +0 -34
- package/out/src/storage/schema/tables/index.js.map +0 -1
- package/out/src/storage/storageProviderHelpers.d.ts +0 -35
- package/out/src/storage/storageProviderHelpers.d.ts.map +0 -1
- package/out/src/storage/storageProviderHelpers.js +0 -100
- package/out/src/storage/storageProviderHelpers.js.map +0 -1
- package/out/src/utility/ScriptTemplateBRC29.d.ts +0 -25
- package/out/src/utility/ScriptTemplateBRC29.d.ts.map +0 -1
- package/out/src/utility/ScriptTemplateBRC29.js +0 -51
- package/out/src/utility/ScriptTemplateBRC29.js.map +0 -1
- package/out/src/utility/aggregateResults.d.ts +0 -8
- package/out/src/utility/aggregateResults.d.ts.map +0 -1
- package/out/src/utility/aggregateResults.js +0 -59
- package/out/src/utility/aggregateResults.js.map +0 -1
- package/out/src/utility/brc114ActionTimeLabels.d.ts +0 -9
- package/out/src/utility/brc114ActionTimeLabels.d.ts.map +0 -1
- package/out/src/utility/brc114ActionTimeLabels.js +0 -58
- package/out/src/utility/brc114ActionTimeLabels.js.map +0 -1
- package/out/src/utility/identityUtils.d.ts +0 -37
- package/out/src/utility/identityUtils.d.ts.map +0 -1
- package/out/src/utility/identityUtils.js +0 -162
- package/out/src/utility/identityUtils.js.map +0 -1
- package/out/src/utility/index.client.d.ts +0 -8
- package/out/src/utility/index.client.d.ts.map +0 -1
- package/out/src/utility/index.client.js +0 -24
- package/out/src/utility/index.client.js.map +0 -1
- package/out/src/utility/parseTxScriptOffsets.d.ts +0 -14
- package/out/src/utility/parseTxScriptOffsets.d.ts.map +0 -1
- package/out/src/utility/parseTxScriptOffsets.js +0 -26
- package/out/src/utility/parseTxScriptOffsets.js.map +0 -1
- package/out/src/utility/stampLog.d.ts +0 -18
- package/out/src/utility/stampLog.d.ts.map +0 -1
- package/out/src/utility/stampLog.js +0 -74
- package/out/src/utility/stampLog.js.map +0 -1
- package/out/src/utility/tscProofToMerklePath.d.ts +0 -8
- package/out/src/utility/tscProofToMerklePath.d.ts.map +0 -1
- package/out/src/utility/tscProofToMerklePath.js +0 -41
- package/out/src/utility/tscProofToMerklePath.js.map +0 -1
- package/out/src/utility/utilityHelpers.d.ts +0 -142
- package/out/src/utility/utilityHelpers.d.ts.map +0 -1
- package/out/src/utility/utilityHelpers.js +0 -319
- package/out/src/utility/utilityHelpers.js.map +0 -1
- package/out/src/utility/utilityHelpers.noBuffer.d.ts +0 -30
- package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +0 -1
- package/out/src/utility/utilityHelpers.noBuffer.js +0 -64
- package/out/src/utility/utilityHelpers.noBuffer.js.map +0 -1
- package/out/src/wab-client/WABClient.d.ts +0 -114
- package/out/src/wab-client/WABClient.d.ts.map +0 -1
- package/out/src/wab-client/WABClient.js +0 -188
- package/out/src/wab-client/WABClient.js.map +0 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +0 -41
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +0 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +0 -49
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +0 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts +0 -11
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts.map +0 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +0 -15
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +0 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +0 -5
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +0 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +0 -9
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +0 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +0 -10
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +0 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +0 -14
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +0 -1
- package/out/tsconfig.client.tsbuildinfo +0 -1
|
@@ -1,924 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StorageProvider = void 0;
|
|
4
|
-
exports.validateStorageFeeModel = validateStorageFeeModel;
|
|
5
|
-
const sdk_1 = require("@bsv/sdk");
|
|
6
|
-
const storageProviderHelpers_1 = require("./storageProviderHelpers");
|
|
7
|
-
const getBeefForTransaction_1 = require("./methods/getBeefForTransaction");
|
|
8
|
-
const processAction_1 = require("./methods/processAction");
|
|
9
|
-
const attemptToPostReqsToNetwork_1 = require("./methods/attemptToPostReqsToNetwork");
|
|
10
|
-
const listCertificates_1 = require("./methods/listCertificates");
|
|
11
|
-
const createAction_1 = require("./methods/createAction");
|
|
12
|
-
const internalizeAction_1 = require("./methods/internalizeAction");
|
|
13
|
-
const StorageReaderWriter_1 = require("./StorageReaderWriter");
|
|
14
|
-
const entities_1 = require("./schema/entities");
|
|
15
|
-
const WERR_errors_1 = require("../sdk/WERR_errors");
|
|
16
|
-
const utilityHelpers_1 = require("../utility/utilityHelpers");
|
|
17
|
-
const WalletError_1 = require("../sdk/WalletError");
|
|
18
|
-
const utilityHelpers_noBuffer_1 = require("../utility/utilityHelpers.noBuffer");
|
|
19
|
-
class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
20
|
-
isDirty = false;
|
|
21
|
-
_services;
|
|
22
|
-
feeModel;
|
|
23
|
-
commissionSatoshis;
|
|
24
|
-
commissionPubKeyHex;
|
|
25
|
-
maxRecursionDepth;
|
|
26
|
-
static defaultOptions() {
|
|
27
|
-
const opts = {
|
|
28
|
-
feeModel: { model: 'sat/kb', value: 100 },
|
|
29
|
-
commissionSatoshis: 0,
|
|
30
|
-
commissionPubKeyHex: undefined
|
|
31
|
-
};
|
|
32
|
-
return opts;
|
|
33
|
-
}
|
|
34
|
-
static createStorageBaseOptions(chain) {
|
|
35
|
-
const options = {
|
|
36
|
-
...StorageProvider.defaultOptions(),
|
|
37
|
-
chain
|
|
38
|
-
};
|
|
39
|
-
return options;
|
|
40
|
-
}
|
|
41
|
-
constructor(options) {
|
|
42
|
-
super(options);
|
|
43
|
-
this.feeModel = options.feeModel;
|
|
44
|
-
this.commissionPubKeyHex = options.commissionPubKeyHex;
|
|
45
|
-
this.commissionSatoshis = options.commissionSatoshis;
|
|
46
|
-
this.maxRecursionDepth = 12;
|
|
47
|
-
}
|
|
48
|
-
async findOutputsByIds(outputIds, trx) {
|
|
49
|
-
const byId = {};
|
|
50
|
-
for (const outputId of outputIds) {
|
|
51
|
-
const o = (0, utilityHelpers_1.verifyOneOrNone)(await this.findOutputs({ partial: { outputId }, trx }));
|
|
52
|
-
if (o?.outputId !== undefined)
|
|
53
|
-
byId[o.outputId] = o;
|
|
54
|
-
}
|
|
55
|
-
return byId;
|
|
56
|
-
}
|
|
57
|
-
async findStaleMerkleRoots(args) {
|
|
58
|
-
let provenTxs = await this.findProvenTxs({ partial: { height: args.height } });
|
|
59
|
-
provenTxs = provenTxs.filter(ptx => ptx.merkleRoot !== args.merkleRoot);
|
|
60
|
-
const roots = Array.from(new Set(provenTxs.map(ptx => ptx.merkleRoot)));
|
|
61
|
-
return roots;
|
|
62
|
-
}
|
|
63
|
-
async findOutputsByOutpoints(userId, outpoints, trx) {
|
|
64
|
-
const byOutpoint = {};
|
|
65
|
-
for (const { txid, vout } of outpoints) {
|
|
66
|
-
const o = (0, utilityHelpers_1.verifyOneOrNone)(await this.findOutputs({ partial: { userId, txid, vout }, trx }));
|
|
67
|
-
if (o?.txid !== undefined && o.vout !== undefined)
|
|
68
|
-
byOutpoint[`${o.txid}.${o.vout}`] = o;
|
|
69
|
-
}
|
|
70
|
-
return byOutpoint;
|
|
71
|
-
}
|
|
72
|
-
async findOrInsertOutputBasketsBulk(userId, names, trx) {
|
|
73
|
-
const byName = {};
|
|
74
|
-
for (const name of names)
|
|
75
|
-
byName[name] = await this.findOrInsertOutputBasket(userId, name, trx);
|
|
76
|
-
return byName;
|
|
77
|
-
}
|
|
78
|
-
async findOrInsertOutputTagsBulk(userId, tags, trx) {
|
|
79
|
-
const byTag = {};
|
|
80
|
-
for (const tag of tags)
|
|
81
|
-
byTag[tag] = await this.findOrInsertOutputTag(userId, tag, trx);
|
|
82
|
-
return byTag;
|
|
83
|
-
}
|
|
84
|
-
async sumSpendableSatoshisInBasket(userId, basketId, excludeSending, trx) {
|
|
85
|
-
const status = ['completed', 'unproven'];
|
|
86
|
-
if (!excludeSending)
|
|
87
|
-
status.push('sending');
|
|
88
|
-
const rows = await this.findOutputs({
|
|
89
|
-
partial: { userId, spendable: true, basketId },
|
|
90
|
-
txStatus: status,
|
|
91
|
-
noScript: true,
|
|
92
|
-
trx
|
|
93
|
-
});
|
|
94
|
-
return rows.filter(r => r.spentBy == null).reduce((a, r) => a + (r.satoshis ?? 0), 0);
|
|
95
|
-
}
|
|
96
|
-
async recentlyActiveUsers(limit = 50, trx) {
|
|
97
|
-
const outputs = await this.findOutputs({
|
|
98
|
-
partial: {},
|
|
99
|
-
noScript: true,
|
|
100
|
-
trx
|
|
101
|
-
});
|
|
102
|
-
const latestByUserId = new Map();
|
|
103
|
-
for (const output of outputs) {
|
|
104
|
-
if (output.userId === undefined)
|
|
105
|
-
continue;
|
|
106
|
-
const createdAt = this.validateDate(output.created_at);
|
|
107
|
-
const prior = latestByUserId.get(output.userId);
|
|
108
|
-
if ((prior == null) || createdAt > prior) {
|
|
109
|
-
latestByUserId.set(output.userId, createdAt);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
const sortedUserIds = Array.from(latestByUserId.entries())
|
|
113
|
-
.sort((a, b) => b[1].getTime() - a[1].getTime())
|
|
114
|
-
.slice(0, limit)
|
|
115
|
-
.map(([userId]) => userId);
|
|
116
|
-
const users = await Promise.all(sortedUserIds.map(async (userId) => await this.findUserById(userId, trx)));
|
|
117
|
-
return users.filter((user) => user != null);
|
|
118
|
-
}
|
|
119
|
-
isStorageProvider() {
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
setServices(v) {
|
|
123
|
-
this._services = v;
|
|
124
|
-
}
|
|
125
|
-
getServices() {
|
|
126
|
-
if (this._services == null)
|
|
127
|
-
throw new WERR_errors_1.WERR_INVALID_OPERATION('Must setServices first.');
|
|
128
|
-
return this._services;
|
|
129
|
-
}
|
|
130
|
-
async abortAction(auth, args) {
|
|
131
|
-
if (auth.userId == null)
|
|
132
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('auth.userId', 'valid');
|
|
133
|
-
const userId = auth.userId;
|
|
134
|
-
let reference = args.reference;
|
|
135
|
-
let txid;
|
|
136
|
-
const r = await this.transaction(async (trx) => {
|
|
137
|
-
let tx = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
|
|
138
|
-
partial: { reference, userId },
|
|
139
|
-
noRawTx: true,
|
|
140
|
-
trx
|
|
141
|
-
}));
|
|
142
|
-
if ((tx == null) && args.reference.length === 64) {
|
|
143
|
-
// reference may also be a txid
|
|
144
|
-
txid = reference;
|
|
145
|
-
reference = undefined;
|
|
146
|
-
tx = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
|
|
147
|
-
partial: { txid, userId },
|
|
148
|
-
noRawTx: true,
|
|
149
|
-
trx
|
|
150
|
-
}));
|
|
151
|
-
}
|
|
152
|
-
const unAbortableStatus = ['completed', 'failed', 'sending', 'unproven'];
|
|
153
|
-
if ((tx == null) || !tx.isOutgoing || unAbortableStatus.findIndex(s => s === tx.status) > -1) {
|
|
154
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('reference', 'an inprocess, outgoing action that has not been signed and shared to the network.');
|
|
155
|
-
}
|
|
156
|
-
// Chain-status protection for signed nosend txs.
|
|
157
|
-
//
|
|
158
|
-
// Background: a nosend tx (created via createAction({noSend:true}))
|
|
159
|
-
// can be externally broadcast by the caller and reach 'mined' or
|
|
160
|
-
// mempool-'known' status before any internalizeAction or Monitor
|
|
161
|
-
// cycle has retired its 'nosend' status in storage. If abortAction
|
|
162
|
-
// is invoked on it in that window, the destructive transitions
|
|
163
|
-
// below (transactions.status='failed' + proven_tx_reqs.status='invalid')
|
|
164
|
-
// orphan every output the tx produced — including auto-fund change
|
|
165
|
-
// outputs the wallet itself emitted — because listOutputs filters
|
|
166
|
-
// them out of the spendable set on parent-tx 'failed' status.
|
|
167
|
-
//
|
|
168
|
-
// Protection: if the tx has a txid AND status is 'nosend', ask
|
|
169
|
-
// the network whether it already knows about the tx before
|
|
170
|
-
// invalidating. getStatusForTxids returns 'mined' | 'known' |
|
|
171
|
-
// 'unknown' per StatusForTxidResult (WalletServices.interfaces.ts).
|
|
172
|
-
// Refuse the abort for 'mined' OR 'known' — a tx that's broadcast
|
|
173
|
-
// and propagating in mempool returns 'known' (depth===0) and
|
|
174
|
-
// protecting it avoids orphaning during the propagation window.
|
|
175
|
-
//
|
|
176
|
-
// Service-unreachable handling: proceed with abort. Refusal is
|
|
177
|
-
// reserved for positive on-chain confirmation. When the network
|
|
178
|
-
// confirmation pathway is itself unavailable (services throw or
|
|
179
|
-
// gracefully return r.status !== 'success'), confirmation is not
|
|
180
|
-
// possible — and per the BRC-100 contract callers retain the
|
|
181
|
-
// ability to abort offline. The fallback writes a forensic
|
|
182
|
-
// history note ('abortAction-offline-fallback') so an operator
|
|
183
|
-
// can grep for aborts that proceeded under uncertainty. This
|
|
184
|
-
// hole can never be 100% closed against externally-broadcast
|
|
185
|
-
// chain-confirmed txs while offline; the audit trail makes it
|
|
186
|
-
// recoverable.
|
|
187
|
-
let serviceUnreachable = false;
|
|
188
|
-
if (tx.txid != null && tx.txid !== '' && tx.status === 'nosend') {
|
|
189
|
-
const services = this.getServices();
|
|
190
|
-
let chainStatus;
|
|
191
|
-
try {
|
|
192
|
-
const r = await services.getStatusForTxids([tx.txid]);
|
|
193
|
-
if (r.status !== 'success') {
|
|
194
|
-
serviceUnreachable = true;
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
chainStatus = r.results.find(x => x.txid === tx.txid)?.status;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
catch {
|
|
201
|
-
serviceUnreachable = true;
|
|
202
|
-
}
|
|
203
|
-
if (chainStatus === 'mined' || chainStatus === 'known') {
|
|
204
|
-
const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
|
|
205
|
-
if (req != null) {
|
|
206
|
-
req.addHistoryNote({
|
|
207
|
-
what: 'abortAction-skipped-onchain',
|
|
208
|
-
reference: args.reference,
|
|
209
|
-
chainStatus
|
|
210
|
-
});
|
|
211
|
-
await req.updateStorageDynamicProperties(this, trx);
|
|
212
|
-
}
|
|
213
|
-
// Surface the refusal via a sentinel so the surrounding
|
|
214
|
-
// transaction commits the history note BEFORE returning
|
|
215
|
-
// the aborted:false result. Returning directly from inside
|
|
216
|
-
// the transaction would still work, but the sentinel keeps
|
|
217
|
-
// the audit-write / result-shape decision on the same
|
|
218
|
-
// commit-then-return path that existed when this surface
|
|
219
|
-
// threw, minimizing diff churn.
|
|
220
|
-
return { __abortAction: 'skipped-onchain', chainStatus };
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
await this.updateTransactionStatus('failed', tx.transactionId, userId, reference, trx);
|
|
224
|
-
if (tx.txid != null && tx.txid !== '') {
|
|
225
|
-
const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
|
|
226
|
-
if (req != null) {
|
|
227
|
-
req.addHistoryNote(serviceUnreachable
|
|
228
|
-
? { what: 'abortAction-offline-fallback', reference: args.reference }
|
|
229
|
-
: { what: 'abortAction', reference: args.reference });
|
|
230
|
-
req.status = 'invalid';
|
|
231
|
-
await req.updateStorageDynamicProperties(this, trx);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
const r = {
|
|
235
|
-
aborted: true
|
|
236
|
-
};
|
|
237
|
-
return r;
|
|
238
|
-
});
|
|
239
|
-
if ('__abortAction' in r) {
|
|
240
|
-
// Tone Engel review feedback (PR #122 comment 4444566147 item 3):
|
|
241
|
-
// do not throw on chain-confirmed refusal — surface it via the
|
|
242
|
-
// return value so callers can branch on it. Refusal is positive
|
|
243
|
-
// chain confirmation only; service-unreachable proceeds with
|
|
244
|
-
// abort and returns aborted:true with an audit-trail note.
|
|
245
|
-
return { aborted: false };
|
|
246
|
-
}
|
|
247
|
-
return r;
|
|
248
|
-
}
|
|
249
|
-
async internalizeAction(auth, args) {
|
|
250
|
-
return await (0, internalizeAction_1.internalizeAction)(this, auth, args);
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Given an array of transaction txids with current ProvenTxReq ready-to-share status,
|
|
254
|
-
* lookup their ProvenTxReqApi req records.
|
|
255
|
-
* For the txids with reqs and status still ready to send construct a single merged beef.
|
|
256
|
-
*
|
|
257
|
-
* @param txids
|
|
258
|
-
* @param knownTxids
|
|
259
|
-
* @param trx
|
|
260
|
-
*/
|
|
261
|
-
async getReqsAndBeefToShareWithWorld(txids, knownTxids, trx) {
|
|
262
|
-
const r = {
|
|
263
|
-
beef: new sdk_1.Beef(),
|
|
264
|
-
details: []
|
|
265
|
-
};
|
|
266
|
-
for (const txid of txids) {
|
|
267
|
-
const d = {
|
|
268
|
-
txid,
|
|
269
|
-
// status: 'readyToSend' | 'alreadySent' | 'error' | 'unknown'
|
|
270
|
-
status: 'unknown'
|
|
271
|
-
// req?: TableProvenTxReq
|
|
272
|
-
// proven?: TableProvenTx
|
|
273
|
-
// error?: string
|
|
274
|
-
};
|
|
275
|
-
r.details.push(d);
|
|
276
|
-
try {
|
|
277
|
-
d.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
|
|
278
|
-
if (d.proven != null) {
|
|
279
|
-
d.status = 'alreadySent';
|
|
280
|
-
continue;
|
|
281
|
-
}
|
|
282
|
-
d.req = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxReqs({ partial: { txid }, trx }));
|
|
283
|
-
if (d.req == null) {
|
|
284
|
-
d.status = 'error';
|
|
285
|
-
d.error = `ERR_UNKNOWN_TXID: ${txid} was not found.`;
|
|
286
|
-
}
|
|
287
|
-
else {
|
|
288
|
-
(0, storageProviderHelpers_1.classifyReqStatus)(d, d.req);
|
|
289
|
-
}
|
|
290
|
-
if (d.status === 'readyToSend') {
|
|
291
|
-
await this.mergeReqToBeefToShareExternally(d.req, r.beef, knownTxids, trx);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
catch (error_) {
|
|
295
|
-
const e = WalletError_1.WalletError.fromUnknown(error_);
|
|
296
|
-
d.error = `${e.name}: ${e.message}`;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
return r;
|
|
300
|
-
}
|
|
301
|
-
async mergeReqToBeefToShareExternally(req, mergeToBeef, knownTxids, trx) {
|
|
302
|
-
const { rawTx, inputBEEF: beef } = req;
|
|
303
|
-
if (rawTx == null || beef == null)
|
|
304
|
-
throw new WERR_errors_1.WERR_INTERNAL('req rawTx and beef must be valid.');
|
|
305
|
-
mergeToBeef.mergeRawTx((0, utilityHelpers_noBuffer_1.asArray)(rawTx));
|
|
306
|
-
mergeToBeef.mergeBeef((0, utilityHelpers_noBuffer_1.asArray)(beef));
|
|
307
|
-
await (0, storageProviderHelpers_1.mergeInputsIntoBeef)((0, utilityHelpers_noBuffer_1.asArray)(rawTx), mergeToBeef, knownTxids, trx, async (txid, beef, _trust, knownTxids, trx) => { await this.getValidBeefForKnownTxid(txid, beef, undefined, knownTxids, trx); });
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Checks if txid is a known valid ProvenTx and returns it if found.
|
|
311
|
-
* Next checks if txid is a current ProvenTxReq and returns that if found.
|
|
312
|
-
* If `newReq` is provided and an existing ProvenTxReq isn't found,
|
|
313
|
-
* use `newReq` to create a new ProvenTxReq.
|
|
314
|
-
*
|
|
315
|
-
* This is safe "findOrInsert" operation using retry if unique index constraint
|
|
316
|
-
* is violated by a race condition insert.
|
|
317
|
-
*
|
|
318
|
-
* @param txid
|
|
319
|
-
* @param newReq
|
|
320
|
-
* @param trx
|
|
321
|
-
* @returns
|
|
322
|
-
*/
|
|
323
|
-
async upsertProvenTxReq(txid, newReq, trx) {
|
|
324
|
-
const existing = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxReqs({ partial: { txid }, trx }));
|
|
325
|
-
if (existing == null && newReq == null)
|
|
326
|
-
return undefined;
|
|
327
|
-
if (existing == null) {
|
|
328
|
-
await this.insertProvenTxReq(newReq, trx);
|
|
329
|
-
return newReq;
|
|
330
|
-
}
|
|
331
|
-
if (newReq != null) {
|
|
332
|
-
const req1 = new entities_1.EntityProvenTxReq(existing);
|
|
333
|
-
req1.mergeHistory(newReq, undefined, true);
|
|
334
|
-
req1.mergeNotifyTransactionIds(newReq);
|
|
335
|
-
await req1.updateStorageDynamicProperties(this, trx);
|
|
336
|
-
}
|
|
337
|
-
return existing;
|
|
338
|
-
}
|
|
339
|
-
async getProvenOrReq(txid, newReq, trx) {
|
|
340
|
-
if ((newReq != null) && txid !== newReq.txid)
|
|
341
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('newReq', 'same txid');
|
|
342
|
-
const r = { proven: undefined, req: undefined };
|
|
343
|
-
r.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
|
|
344
|
-
if (r.proven != null)
|
|
345
|
-
return r;
|
|
346
|
-
for (let retry = 0;; retry++) {
|
|
347
|
-
try {
|
|
348
|
-
r.req = await this.upsertProvenTxReq(txid, newReq, trx);
|
|
349
|
-
break;
|
|
350
|
-
}
|
|
351
|
-
catch (error_) {
|
|
352
|
-
if (retry > 0)
|
|
353
|
-
throw error_;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
return r;
|
|
357
|
-
}
|
|
358
|
-
async updateTransactionsStatus(transactionIds, status, trx) {
|
|
359
|
-
await this.transaction(async (trx) => {
|
|
360
|
-
for (const id of transactionIds) {
|
|
361
|
-
await this.updateTransactionStatus(status, id, undefined, undefined, trx);
|
|
362
|
-
}
|
|
363
|
-
}, trx);
|
|
364
|
-
}
|
|
365
|
-
async releaseInputsAllocatedToFailedTransaction(tx, trx) {
|
|
366
|
-
const t = new entities_1.EntityTransaction(tx);
|
|
367
|
-
const inputs = await t.getInputs(this, trx);
|
|
368
|
-
for (const input of inputs) {
|
|
369
|
-
// input is a prior output belonging to userId that references this transaction either by `spentBy`
|
|
370
|
-
// or by txid and vout.
|
|
371
|
-
await this.updateOutput((0, utilityHelpers_1.verifyId)(input.outputId), { spendable: true, spentBy: undefined }, trx);
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
async markFailedTransactionOutputsNotSpendable(tx, trx) {
|
|
375
|
-
const outputs = await this.findOutputs({
|
|
376
|
-
partial: { transactionId: (0, utilityHelpers_1.verifyId)(tx.transactionId) },
|
|
377
|
-
trx
|
|
378
|
-
});
|
|
379
|
-
for (const output of outputs) {
|
|
380
|
-
if (!output.spendable && output.spentBy == null)
|
|
381
|
-
continue;
|
|
382
|
-
await this.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false, spentBy: undefined }, trx);
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
/**
|
|
386
|
-
* For all `status` values besides 'failed', just updates the transaction records status property.
|
|
387
|
-
*
|
|
388
|
-
* For 'status' of 'failed', attempts to make outputs previously allocated as inputs to this transaction usable again
|
|
389
|
-
* and makes outputs generated by this transaction non-spendable.
|
|
390
|
-
*
|
|
391
|
-
* @param status
|
|
392
|
-
* @param transactionId
|
|
393
|
-
* @param userId
|
|
394
|
-
* @param reference
|
|
395
|
-
* @param trx
|
|
396
|
-
*/
|
|
397
|
-
async updateTransactionStatus(status, transactionId, userId, reference, trx) {
|
|
398
|
-
if (transactionId == null && !(userId != null && reference != null && reference !== '')) {
|
|
399
|
-
throw new WERR_errors_1.WERR_MISSING_PARAMETER('either transactionId or userId and reference');
|
|
400
|
-
}
|
|
401
|
-
await this.transaction(async (trx) => {
|
|
402
|
-
const where = {};
|
|
403
|
-
if (transactionId != null)
|
|
404
|
-
where.transactionId = transactionId;
|
|
405
|
-
if (userId != null)
|
|
406
|
-
where.userId = userId;
|
|
407
|
-
if (reference != null && reference !== '')
|
|
408
|
-
where.reference = reference;
|
|
409
|
-
const tx = (0, utilityHelpers_1.verifyOne)(await this.findTransactions({ partial: where, noRawTx: true, trx }));
|
|
410
|
-
// if (tx.status === status)
|
|
411
|
-
// no change required. Assume inputs and outputs spendable and spentBy are valid for status.
|
|
412
|
-
// return
|
|
413
|
-
// Once completed, this method cannot be used to "uncomplete" transaction.
|
|
414
|
-
if ((status !== 'completed' && tx.status === 'completed') || tx.provenTxId != null) {
|
|
415
|
-
throw new WERR_errors_1.WERR_INVALID_OPERATION('The status of a "completed" transaction cannot be changed.');
|
|
416
|
-
}
|
|
417
|
-
// It is not possible to un-fail a transaction. Information is lost and not recoverable.
|
|
418
|
-
if (status !== 'failed' && tx.status === 'failed') {
|
|
419
|
-
throw new WERR_errors_1.WERR_INVALID_OPERATION('A "failed" transaction may not be un-failed by this method.');
|
|
420
|
-
}
|
|
421
|
-
switch (status) {
|
|
422
|
-
case 'failed':
|
|
423
|
-
await this.releaseInputsAllocatedToFailedTransaction(tx, trx);
|
|
424
|
-
await this.markFailedTransactionOutputsNotSpendable(tx, trx);
|
|
425
|
-
break;
|
|
426
|
-
case 'nosend':
|
|
427
|
-
case 'unsigned':
|
|
428
|
-
case 'unprocessed':
|
|
429
|
-
case 'sending':
|
|
430
|
-
case 'unproven':
|
|
431
|
-
case 'completed':
|
|
432
|
-
break;
|
|
433
|
-
default:
|
|
434
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('status', `not be ${status}`);
|
|
435
|
-
}
|
|
436
|
-
await this.updateTransaction(tx.transactionId, { status }, trx);
|
|
437
|
-
}, trx);
|
|
438
|
-
}
|
|
439
|
-
async createAction(auth, args) {
|
|
440
|
-
if (auth.userId == null)
|
|
441
|
-
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
442
|
-
return await (0, createAction_1.createAction)(this, auth, args);
|
|
443
|
-
}
|
|
444
|
-
async processAction(auth, args) {
|
|
445
|
-
if (auth.userId == null)
|
|
446
|
-
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
447
|
-
return await (0, processAction_1.processAction)(this, auth, args);
|
|
448
|
-
}
|
|
449
|
-
async attemptToPostReqsToNetwork(reqs, trx, logger) {
|
|
450
|
-
return await (0, attemptToPostReqsToNetwork_1.attemptToPostReqsToNetwork)(this, reqs, trx, logger);
|
|
451
|
-
}
|
|
452
|
-
async listCertificates(auth, args) {
|
|
453
|
-
return await (0, listCertificates_1.listCertificates)(this, auth, args);
|
|
454
|
-
}
|
|
455
|
-
async verifyKnownValidTransaction(txid, trx) {
|
|
456
|
-
const { proven, rawTx } = await this.getProvenOrRawTx(txid, trx);
|
|
457
|
-
return proven !== undefined || rawTx !== undefined;
|
|
458
|
-
}
|
|
459
|
-
/**
|
|
460
|
-
* Pulls data from storage to build a valid beef for a txid.
|
|
461
|
-
*
|
|
462
|
-
* Optionally merges the data into an existing beef.
|
|
463
|
-
* Optionally requires a minimum number of proof levels.
|
|
464
|
-
*
|
|
465
|
-
* @param txid
|
|
466
|
-
* @param mergeToBeef
|
|
467
|
-
* @param trustSelf
|
|
468
|
-
* @param knownTxids
|
|
469
|
-
* @param trx
|
|
470
|
-
* @param requiredLevels
|
|
471
|
-
* @returns
|
|
472
|
-
*/
|
|
473
|
-
async getValidBeefForKnownTxid(txid, mergeToBeef, trustSelf, knownTxids, trx, requiredLevels) {
|
|
474
|
-
const beef = await this.getValidBeefForTxid(txid, mergeToBeef, trustSelf, knownTxids, trx, requiredLevels);
|
|
475
|
-
if (beef == null)
|
|
476
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('txid', `known to storage. ${txid} is not known.`);
|
|
477
|
-
return beef;
|
|
478
|
-
}
|
|
479
|
-
/**
|
|
480
|
-
* Handles the proven-tx branch of getValidBeefForTxid.
|
|
481
|
-
*
|
|
482
|
-
* Returns the beef if the proof was merged and we can stop, or `undefined` to
|
|
483
|
-
* signal that the caller should fall through to the rawTx path. May also
|
|
484
|
-
* populate `r.rawTx` so the rawTx path can proceed without re-fetching.
|
|
485
|
-
*/
|
|
486
|
-
async handleProvenTxBranch(txid, r, beef, trustSelf, requiredLevels, chainTracker, skipInvalidProofs) {
|
|
487
|
-
const proven = r.proven;
|
|
488
|
-
if (proven == null)
|
|
489
|
-
return undefined;
|
|
490
|
-
if ((requiredLevels ?? 0) > 0) {
|
|
491
|
-
// Need more levels — caller should proceed via rawTx path
|
|
492
|
-
r.rawTx = proven.rawTx;
|
|
493
|
-
return undefined;
|
|
494
|
-
}
|
|
495
|
-
if (trustSelf === 'known') {
|
|
496
|
-
beef.mergeTxidOnly(txid);
|
|
497
|
-
return beef;
|
|
498
|
-
}
|
|
499
|
-
const mp = new entities_1.EntityProvenTx(proven).getMerklePath();
|
|
500
|
-
if (chainTracker != null) {
|
|
501
|
-
const root = mp.computeRoot();
|
|
502
|
-
const isValid = await chainTracker.isValidRootForHeight(root, proven.height);
|
|
503
|
-
if (!isValid) {
|
|
504
|
-
if (skipInvalidProofs !== true)
|
|
505
|
-
throw new WERR_errors_1.WERR_INVALID_MERKLE_ROOT(proven.blockHash, proven.height, root, txid);
|
|
506
|
-
// Proof is currently invalid — recurse deeper via rawTx path
|
|
507
|
-
r.rawTx = proven.rawTx;
|
|
508
|
-
r.proven = undefined;
|
|
509
|
-
return undefined;
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
// Proof is good — merge and return
|
|
513
|
-
beef.mergeRawTx(proven.rawTx);
|
|
514
|
-
beef.mergeBump(mp);
|
|
515
|
-
return beef;
|
|
516
|
-
}
|
|
517
|
-
async getValidBeefForTxid(txid, mergeToBeef, trustSelf, knownTxids, trx, requiredLevels, chainTracker, skipInvalidProofs) {
|
|
518
|
-
const beef = mergeToBeef ?? new sdk_1.Beef();
|
|
519
|
-
const r = await this.getProvenOrRawTx(txid, trx);
|
|
520
|
-
// --- proven-tx path ---
|
|
521
|
-
if (r.proven != null) {
|
|
522
|
-
const result = await this.handleProvenTxBranch(txid, r, beef, trustSelf, requiredLevels, chainTracker, skipInvalidProofs);
|
|
523
|
-
if (result != null || r.rawTx == null)
|
|
524
|
-
return result;
|
|
525
|
-
}
|
|
526
|
-
// --- rawTx path ---
|
|
527
|
-
if (r.rawTx == null)
|
|
528
|
-
return undefined;
|
|
529
|
-
if (trustSelf === 'known') {
|
|
530
|
-
beef.mergeTxidOnly(txid);
|
|
531
|
-
}
|
|
532
|
-
else {
|
|
533
|
-
beef.mergeRawTx(r.rawTx);
|
|
534
|
-
if (r.inputBEEF != null)
|
|
535
|
-
beef.mergeBeef(r.inputBEEF);
|
|
536
|
-
if ((requiredLevels ?? 0) > 0)
|
|
537
|
-
requiredLevels = requiredLevels - 1;
|
|
538
|
-
await (0, storageProviderHelpers_1.mergeInputBeefs)(r.rawTx, beef, trustSelf, knownTxids, trx, requiredLevels, async (sourceTXID, beef, trustSelf, knownTxids, trx, requiredLevels) => {
|
|
539
|
-
await this.getValidBeefForKnownTxid(sourceTXID, beef, trustSelf, knownTxids, trx, requiredLevels);
|
|
540
|
-
});
|
|
541
|
-
}
|
|
542
|
-
return beef;
|
|
543
|
-
}
|
|
544
|
-
async getBeefForTransaction(txid, options) {
|
|
545
|
-
const beef = await (0, getBeefForTransaction_1.getBeefForTransaction)(this, txid, options);
|
|
546
|
-
return beef;
|
|
547
|
-
}
|
|
548
|
-
async findMonitorEventById(id, trx) {
|
|
549
|
-
return (0, utilityHelpers_1.verifyOneOrNone)(await this.findMonitorEvents({ partial: { id }, trx }));
|
|
550
|
-
}
|
|
551
|
-
async relinquishCertificate(auth, args) {
|
|
552
|
-
const vargs = sdk_1.Validation.validateRelinquishCertificateArgs(args);
|
|
553
|
-
const cert = (0, utilityHelpers_1.verifyOne)(await this.findCertificates({
|
|
554
|
-
partial: {
|
|
555
|
-
certifier: vargs.certifier,
|
|
556
|
-
serialNumber: vargs.serialNumber,
|
|
557
|
-
type: vargs.type
|
|
558
|
-
}
|
|
559
|
-
}));
|
|
560
|
-
return await this.updateCertificate(cert.certificateId, {
|
|
561
|
-
isDeleted: true
|
|
562
|
-
});
|
|
563
|
-
}
|
|
564
|
-
async relinquishOutput(auth, args) {
|
|
565
|
-
const vargs = sdk_1.Validation.validateRelinquishOutputArgs(args);
|
|
566
|
-
const { txid, vout } = sdk_1.Validation.parseWalletOutpoint(vargs.output);
|
|
567
|
-
const output = (0, utilityHelpers_1.verifyOne)(await this.findOutputs({ partial: { userId: auth.userId, txid, vout } }));
|
|
568
|
-
return await this.updateOutput(output.outputId, { basketId: undefined });
|
|
569
|
-
}
|
|
570
|
-
async processSyncChunk(args, chunk) {
|
|
571
|
-
const user = (0, utilityHelpers_1.verifyTruthy)(await this.findUserByIdentityKey(args.identityKey));
|
|
572
|
-
const ss = new entities_1.EntitySyncState((0, utilityHelpers_1.verifyOne)(await this.findSyncStates({
|
|
573
|
-
partial: {
|
|
574
|
-
storageIdentityKey: args.fromStorageIdentityKey,
|
|
575
|
-
userId: user.userId
|
|
576
|
-
}
|
|
577
|
-
})));
|
|
578
|
-
const r = await ss.processSyncChunk(this, args, chunk);
|
|
579
|
-
return r;
|
|
580
|
-
}
|
|
581
|
-
/**
|
|
582
|
-
* Handles storage changes when a valid MerklePath and mined block header are found for a ProvenTxReq txid.
|
|
583
|
-
*
|
|
584
|
-
* Performs the following storage updates (typically):
|
|
585
|
-
* 1. Lookup the exising `ProvenTxReq` record for its rawTx
|
|
586
|
-
* 2. Insert a new ProvenTx record using properties from `args` and rawTx, yielding a new provenTxId
|
|
587
|
-
* 3. Update ProvenTxReq record with status 'completed' and new provenTxId value (and history of status changed)
|
|
588
|
-
* 4. Unpack notify transactionIds from req and update each transaction's status to 'completed', provenTxId value.
|
|
589
|
-
* 5. Update ProvenTxReq history again to record that transactions have been notified.
|
|
590
|
-
* 6. Return results...
|
|
591
|
-
*
|
|
592
|
-
* Alterations of "typically" to handle:
|
|
593
|
-
*/
|
|
594
|
-
async updateProvenTxReqWithNewProvenTx(args) {
|
|
595
|
-
const req = await entities_1.EntityProvenTxReq.fromStorageId(this, args.provenTxReqId);
|
|
596
|
-
let proven;
|
|
597
|
-
if (req.provenTxId != null && req.provenTxId > 0) {
|
|
598
|
-
// Someone beat us to it, grab what we need for results...
|
|
599
|
-
proven = new entities_1.EntityProvenTx((0, utilityHelpers_1.verifyOne)(await this.findProvenTxs({ partial: { txid: args.txid } })));
|
|
600
|
-
if (req.status !== 'completed' || req.provenTxId !== proven.provenTxId) {
|
|
601
|
-
req.status = 'completed';
|
|
602
|
-
req.provenTxId = proven.provenTxId;
|
|
603
|
-
await req.updateStorageDynamicProperties(this);
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
else {
|
|
607
|
-
proven = await this.transaction(async (trx) => {
|
|
608
|
-
const { proven: api } = await this.findOrInsertProvenTx({
|
|
609
|
-
created_at: new Date(),
|
|
610
|
-
updated_at: new Date(),
|
|
611
|
-
provenTxId: 0,
|
|
612
|
-
txid: args.txid,
|
|
613
|
-
height: args.height,
|
|
614
|
-
index: args.index,
|
|
615
|
-
merklePath: args.merklePath,
|
|
616
|
-
rawTx: req.rawTx,
|
|
617
|
-
blockHash: args.blockHash,
|
|
618
|
-
merkleRoot: args.merkleRoot
|
|
619
|
-
}, trx);
|
|
620
|
-
const found = new entities_1.EntityProvenTx(api);
|
|
621
|
-
if (req.status !== 'completed' || req.provenTxId !== found.provenTxId) {
|
|
622
|
-
req.status = 'completed';
|
|
623
|
-
req.provenTxId = found.provenTxId;
|
|
624
|
-
await req.updateStorageDynamicProperties(this, trx);
|
|
625
|
-
}
|
|
626
|
-
return found;
|
|
627
|
-
});
|
|
628
|
-
}
|
|
629
|
-
await this.reconcileProvenTxReqTransactions(req, proven);
|
|
630
|
-
const r = {
|
|
631
|
-
status: req.status,
|
|
632
|
-
history: req.apiHistory,
|
|
633
|
-
provenTxId: proven.provenTxId,
|
|
634
|
-
notified: req.notified,
|
|
635
|
-
notify: req.apiNotify
|
|
636
|
-
};
|
|
637
|
-
return r;
|
|
638
|
-
}
|
|
639
|
-
/**
|
|
640
|
-
* Reconcile completed proof requests whose transaction fan-out previously
|
|
641
|
-
* failed or whose durable notification state drifted.
|
|
642
|
-
*
|
|
643
|
-
* This is called by TaskReviewStatus so a completed request with
|
|
644
|
-
* `notified = false` is retried and can become eligible for normal purge.
|
|
645
|
-
*/
|
|
646
|
-
async reconcileCompletedProvenTxReqs() {
|
|
647
|
-
let log = '';
|
|
648
|
-
const reqs = await this.findProvenTxReqs({
|
|
649
|
-
partial: { status: 'completed', notified: false }
|
|
650
|
-
});
|
|
651
|
-
for (const reqApi of reqs) {
|
|
652
|
-
const req = new entities_1.EntityProvenTxReq(reqApi);
|
|
653
|
-
if (req.provenTxId == null || req.provenTxId <= 0) {
|
|
654
|
-
log += `completed req ${req.id} cannot reconcile without provenTxId\n`;
|
|
655
|
-
continue;
|
|
656
|
-
}
|
|
657
|
-
const provenApi = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({
|
|
658
|
-
partial: { provenTxId: req.provenTxId }
|
|
659
|
-
}));
|
|
660
|
-
if (provenApi == null) {
|
|
661
|
-
log += `completed req ${req.id} cannot reconcile missing provenTx ${req.provenTxId}\n`;
|
|
662
|
-
continue;
|
|
663
|
-
}
|
|
664
|
-
await this.reconcileProvenTxReqTransactions(req, new entities_1.EntityProvenTx(provenApi));
|
|
665
|
-
if (req.notified)
|
|
666
|
-
log += `completed req ${req.id} transaction notifications reconciled\n`;
|
|
667
|
-
}
|
|
668
|
-
return { log };
|
|
669
|
-
}
|
|
670
|
-
/**
|
|
671
|
-
* Restore every failed local copy of a transaction before proof completion.
|
|
672
|
-
* Also heals the request's notification set from the authoritative txid
|
|
673
|
-
* lookup so TaskUnFail cannot omit a local copy after notification drift.
|
|
674
|
-
*/
|
|
675
|
-
async unfailTransactionsForProof(req, indent = 0, requestUpdate) {
|
|
676
|
-
const transactions = await this.findTransactions({
|
|
677
|
-
partial: { txid: req.txid },
|
|
678
|
-
noRawTx: true
|
|
679
|
-
});
|
|
680
|
-
const transactionsToRepair = transactions.filter(transaction => requestUpdate != null || transaction.status === 'failed');
|
|
681
|
-
// Proof completion is the hot path. If no failed transaction needs repair,
|
|
682
|
-
// notification reconciliation below will perform the required atomic work;
|
|
683
|
-
// avoid an otherwise empty refresh/write transaction here.
|
|
684
|
-
if (transactionsToRepair.length === 0 && requestUpdate == null)
|
|
685
|
-
return '';
|
|
686
|
-
// Refresh only after deciding recovery is required, while the caller has
|
|
687
|
-
// not yet applied an intended request transition. TaskUnFail passes that
|
|
688
|
-
// transition separately so it is persisted atomically with bookkeeping.
|
|
689
|
-
await req.refreshFromStorage(this);
|
|
690
|
-
const preparedTransactionIds = new Set(transactionsToRepair.map(transaction => transaction.transactionId));
|
|
691
|
-
const outputVerdicts = new Map();
|
|
692
|
-
const bsvtx = transactionsToRepair.length > 0 ? sdk_1.Transaction.fromBinary(req.rawTx) : undefined;
|
|
693
|
-
// UTXO checks can call external services. Complete every check before
|
|
694
|
-
// opening the write transaction so network latency never holds DB locks.
|
|
695
|
-
if (transactionsToRepair.length > 0) {
|
|
696
|
-
const services = this.getServices();
|
|
697
|
-
for (const transaction of transactionsToRepair) {
|
|
698
|
-
const outputs = await this.findOutputs({
|
|
699
|
-
partial: { userId: transaction.userId, transactionId: transaction.transactionId }
|
|
700
|
-
});
|
|
701
|
-
for (const output of outputs) {
|
|
702
|
-
const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
|
|
703
|
-
await this.validateOutputScript(output);
|
|
704
|
-
outputVerdicts.set(outputId, output.lockingScript == null ? undefined : await services.isUtxo(output));
|
|
705
|
-
}
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
return await this.transaction(async (trx) => {
|
|
709
|
-
let log = '';
|
|
710
|
-
await req.refreshFromStorage(this, trx);
|
|
711
|
-
const currentTransactions = await this.findTransactions({
|
|
712
|
-
partial: { txid: req.txid },
|
|
713
|
-
noRawTx: true,
|
|
714
|
-
trx
|
|
715
|
-
});
|
|
716
|
-
const knownNotificationIds = new Set(req.notify.transactionIds ?? []);
|
|
717
|
-
if (requestUpdate != null) {
|
|
718
|
-
req.status = requestUpdate.status;
|
|
719
|
-
req.attempts = requestUpdate.attempts;
|
|
720
|
-
}
|
|
721
|
-
for (const tx of currentTransactions) {
|
|
722
|
-
if (!knownNotificationIds.has(tx.transactionId)) {
|
|
723
|
-
req.addNotifyTransactionId(tx.transactionId);
|
|
724
|
-
knownNotificationIds.add(tx.transactionId);
|
|
725
|
-
}
|
|
726
|
-
const shouldRepair = requestUpdate != null || tx.status === 'failed';
|
|
727
|
-
if (!shouldRepair)
|
|
728
|
-
continue;
|
|
729
|
-
if (bsvtx == null || !preparedTransactionIds.has(tx.transactionId)) {
|
|
730
|
-
throw new WERR_errors_1.WERR_INTERNAL(`Transaction ${tx.transactionId} changed while preparing proof recovery.`);
|
|
731
|
-
}
|
|
732
|
-
await this.updateTransaction(tx.transactionId, { status: 'unproven' }, trx);
|
|
733
|
-
log += ' '.repeat(indent) + `transaction ${tx.transactionId} status is now 'unproven'\n`;
|
|
734
|
-
let vin = -1;
|
|
735
|
-
for (const input of bsvtx.inputs) {
|
|
736
|
-
vin++;
|
|
737
|
-
const sourceTXID = input.sourceTXID;
|
|
738
|
-
if (sourceTXID == null) {
|
|
739
|
-
log += ' '.repeat(indent + 2) + `input ${vin} has no source transaction id\n`;
|
|
740
|
-
continue;
|
|
741
|
-
}
|
|
742
|
-
const outputs = await this.findOutputs({
|
|
743
|
-
partial: {
|
|
744
|
-
userId: tx.userId,
|
|
745
|
-
txid: sourceTXID,
|
|
746
|
-
vout: input.sourceOutputIndex
|
|
747
|
-
},
|
|
748
|
-
trx
|
|
749
|
-
});
|
|
750
|
-
if (outputs.length === 1) {
|
|
751
|
-
const output = outputs[0];
|
|
752
|
-
log += ' '.repeat(indent + 2) +
|
|
753
|
-
`input ${vin} matched to output ${output.outputId} updated spentBy ${tx.transactionId}\n`;
|
|
754
|
-
await this.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false, spentBy: tx.transactionId }, trx);
|
|
755
|
-
}
|
|
756
|
-
else {
|
|
757
|
-
log += ' '.repeat(indent + 2) + `input ${vin} not matched to user's outputs\n`;
|
|
758
|
-
}
|
|
759
|
-
}
|
|
760
|
-
const outputs = await this.findOutputs({
|
|
761
|
-
partial: { userId: tx.userId, transactionId: tx.transactionId },
|
|
762
|
-
trx
|
|
763
|
-
});
|
|
764
|
-
for (const output of outputs) {
|
|
765
|
-
const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
|
|
766
|
-
if (!outputVerdicts.has(outputId)) {
|
|
767
|
-
throw new WERR_errors_1.WERR_INTERNAL(`Output ${outputId} changed while preparing proof recovery.`);
|
|
768
|
-
}
|
|
769
|
-
const isUtxo = outputVerdicts.get(outputId);
|
|
770
|
-
if (isUtxo == null) {
|
|
771
|
-
log += ' '.repeat(indent + 2) + `output ${output.outputId} does not have a valid locking script\n`;
|
|
772
|
-
}
|
|
773
|
-
else if (isUtxo === output.spendable) {
|
|
774
|
-
log += ' '.repeat(indent + 2) + `output ${output.outputId} unchanged\n`;
|
|
775
|
-
}
|
|
776
|
-
else {
|
|
777
|
-
log += ' '.repeat(indent + 2) +
|
|
778
|
-
`output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
|
|
779
|
-
await this.updateOutput(outputId, { spendable: isUtxo }, trx);
|
|
780
|
-
}
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
await req.updateStorageDynamicProperties(this, trx);
|
|
784
|
-
return log;
|
|
785
|
-
});
|
|
786
|
-
}
|
|
787
|
-
async reconcileProvenTxReqTransactions(req, proven) {
|
|
788
|
-
// A transaction can be internalized concurrently by several users. Their
|
|
789
|
-
// transaction rows share a txid but race while merging the JSON notify
|
|
790
|
-
// list, so a last-writer-wins update can omit one local copy. A valid proof
|
|
791
|
-
// is authoritative for every local transaction with this txid: discover
|
|
792
|
-
// them from the indexed transaction table and atomically heal both the
|
|
793
|
-
// durable notify set and any row that missed the original completion.
|
|
794
|
-
// Keep the clean proof-completion path identical to the normal notification
|
|
795
|
-
// transaction. Only leave it when failed rows require external UTXO checks,
|
|
796
|
-
// which must run without an open transaction.
|
|
797
|
-
let repairAttempts = 0;
|
|
798
|
-
for (;;) {
|
|
799
|
-
const needsRepair = await this.transaction(async (trx) => {
|
|
800
|
-
await req.refreshFromStorage(this, trx);
|
|
801
|
-
const transactions = await this.findTransactions({ partial: { txid: req.txid }, trx });
|
|
802
|
-
if (transactions.some(transaction => transaction.status === 'failed'))
|
|
803
|
-
return true;
|
|
804
|
-
const knownNotificationIds = new Set(req.notify.transactionIds ?? []);
|
|
805
|
-
for (const transaction of transactions) {
|
|
806
|
-
if (!knownNotificationIds.has(transaction.transactionId)) {
|
|
807
|
-
req.addNotifyTransactionId(transaction.transactionId);
|
|
808
|
-
knownNotificationIds.add(transaction.transactionId);
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
const transactionIdsNeedingProof = transactions
|
|
812
|
-
.filter(transaction => transaction.status !== 'completed' || transaction.provenTxId !== proven.provenTxId)
|
|
813
|
-
.map(transaction => transaction.transactionId);
|
|
814
|
-
const updatesSucceeded = await (0, storageProviderHelpers_1.notifyTransactionsOfProof)(transactionIdsNeedingProof, proven.provenTxId, note => req.addHistoryNote(note), async (id, update) => { await this.updateTransaction(id, update, trx); });
|
|
815
|
-
const completedTransactions = await this.findTransactions({ partial: { txid: req.txid }, trx });
|
|
816
|
-
req.notified = updatesSucceeded && completedTransactions.every(transaction => transaction.status === 'completed' && transaction.provenTxId === proven.provenTxId);
|
|
817
|
-
await req.updateStorageDynamicProperties(this, trx);
|
|
818
|
-
return false;
|
|
819
|
-
});
|
|
820
|
-
if (!needsRepair)
|
|
821
|
-
return;
|
|
822
|
-
if (repairAttempts >= 2) {
|
|
823
|
-
throw new WERR_errors_1.WERR_INTERNAL(`Transactions for ${req.txid} repeatedly changed to failed during proof recovery.`);
|
|
824
|
-
}
|
|
825
|
-
repairAttempts++;
|
|
826
|
-
await this.unfailTransactionsForProof(req);
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
|
-
/**
|
|
830
|
-
* For each spendable output in the 'default' basket of the authenticated user,
|
|
831
|
-
* verify that the output script, satoshis, vout and txid match that of an output
|
|
832
|
-
* still in the mempool of at least one service provider.
|
|
833
|
-
*
|
|
834
|
-
* @returns object with invalidSpendableOutputs array. A good result is an empty array.
|
|
835
|
-
*/
|
|
836
|
-
async confirmSpendableOutputs() {
|
|
837
|
-
const invalidSpendableOutputs = [];
|
|
838
|
-
const users = await this.findUsers({ partial: {} });
|
|
839
|
-
const services = this.getServices();
|
|
840
|
-
for (const { userId } of users) {
|
|
841
|
-
const defaultBasket = (0, utilityHelpers_1.verifyOne)(await this.findOutputBaskets({ partial: { userId, name: 'default' } }));
|
|
842
|
-
const outputs = await this.findOutputs({
|
|
843
|
-
partial: { userId, basketId: defaultBasket.basketId, spendable: true }
|
|
844
|
-
});
|
|
845
|
-
for (const o of outputs) {
|
|
846
|
-
if (!o.spendable)
|
|
847
|
-
continue;
|
|
848
|
-
const isUtxo = await this.checkOutputIsUtxo(o, services);
|
|
849
|
-
if (!isUtxo)
|
|
850
|
-
invalidSpendableOutputs.push(o);
|
|
851
|
-
}
|
|
852
|
-
}
|
|
853
|
-
return { invalidSpendableOutputs };
|
|
854
|
-
}
|
|
855
|
-
async checkOutputIsUtxo(o, services) {
|
|
856
|
-
if ((o.lockingScript == null) || o.lockingScript.length === 0)
|
|
857
|
-
return false;
|
|
858
|
-
const hash = services.hashOutputScript((0, utilityHelpers_noBuffer_1.asString)(o.lockingScript));
|
|
859
|
-
const r = await services.getUtxoStatus(hash, undefined, `${o.txid ?? ''}.${o.vout ?? ''}`);
|
|
860
|
-
return r.isUtxo === true;
|
|
861
|
-
}
|
|
862
|
-
async updateProvenTxReqDynamics(id, update, trx) {
|
|
863
|
-
const partial = {};
|
|
864
|
-
if (update.updated_at != null)
|
|
865
|
-
partial.updated_at = update.updated_at;
|
|
866
|
-
if (update.provenTxId != null && update.provenTxId > 0)
|
|
867
|
-
partial.provenTxId = update.provenTxId;
|
|
868
|
-
if (update.status != null)
|
|
869
|
-
partial.status = update.status;
|
|
870
|
-
if (Number.isInteger(update.attempts))
|
|
871
|
-
partial.attempts = update.attempts;
|
|
872
|
-
if (update.notified !== undefined)
|
|
873
|
-
partial.notified = update.notified;
|
|
874
|
-
if (update.batch != null && update.batch !== '')
|
|
875
|
-
partial.batch = update.batch;
|
|
876
|
-
if (update.history != null && update.history !== '')
|
|
877
|
-
partial.history = update.history;
|
|
878
|
-
if (update.notify != null && update.notify !== '')
|
|
879
|
-
partial.notify = update.notify;
|
|
880
|
-
if (update.wasBroadcast !== undefined)
|
|
881
|
-
partial.wasBroadcast = update.wasBroadcast ?? false;
|
|
882
|
-
if (Number.isInteger(update.rebroadcastAttempts))
|
|
883
|
-
partial.rebroadcastAttempts = update.rebroadcastAttempts ?? 0;
|
|
884
|
-
return await this.updateProvenTxReq(id, partial, trx);
|
|
885
|
-
}
|
|
886
|
-
async extendOutput(o, includeBasket = false, includeTags = false, trx) {
|
|
887
|
-
const ox = o;
|
|
888
|
-
if (includeBasket && ox.basketId != null && ox.basketId > 0)
|
|
889
|
-
ox.basket = await this.findOutputBasketById(o.basketId, trx);
|
|
890
|
-
if (includeTags) {
|
|
891
|
-
ox.tags = await this.getTagsForOutputId(o.outputId);
|
|
892
|
-
}
|
|
893
|
-
return o;
|
|
894
|
-
}
|
|
895
|
-
async validateOutputScript(o, trx) {
|
|
896
|
-
// without offset and length values return what we have (make no changes)
|
|
897
|
-
if (o.scriptLength == null || o.scriptLength === 0 || o.scriptOffset == null || o.scriptOffset === 0 || o.txid == null || o.txid === '')
|
|
898
|
-
return;
|
|
899
|
-
// if there is an outputScript and its length is the expected length return what we have.
|
|
900
|
-
if (o.lockingScript?.length === o.scriptLength)
|
|
901
|
-
return;
|
|
902
|
-
// outputScript is missing or has incorrect length...
|
|
903
|
-
const script = await this.getRawTxOfKnownValidTransaction(o.txid, o.scriptOffset, o.scriptLength, trx);
|
|
904
|
-
if (script == null)
|
|
905
|
-
return;
|
|
906
|
-
o.lockingScript = script;
|
|
907
|
-
}
|
|
908
|
-
}
|
|
909
|
-
exports.StorageProvider = StorageProvider;
|
|
910
|
-
function validateStorageFeeModel(v) {
|
|
911
|
-
const r = {
|
|
912
|
-
model: 'sat/kb',
|
|
913
|
-
value: 100
|
|
914
|
-
};
|
|
915
|
-
if (typeof v === 'object') {
|
|
916
|
-
if (v.model !== 'sat/kb')
|
|
917
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('StorageFeeModel.model', '"sat/kb"');
|
|
918
|
-
if (typeof v.value === 'number') {
|
|
919
|
-
r.value = v.value;
|
|
920
|
-
}
|
|
921
|
-
}
|
|
922
|
-
return r;
|
|
923
|
-
}
|
|
924
|
-
//# sourceMappingURL=StorageProvider.js.map
|