@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,793 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setDisableDoubleSpendCheckForTest = setDisableDoubleSpendCheckForTest;
|
|
4
|
-
exports.createAction = createAction;
|
|
5
|
-
const sdk_1 = require("@bsv/sdk");
|
|
6
|
-
const generateChange_1 = require("./generateChange");
|
|
7
|
-
const StorageProvider_1 = require("../StorageProvider");
|
|
8
|
-
const WERR_errors_1 = require("../../sdk/WERR_errors");
|
|
9
|
-
const utilityHelpers_1 = require("../../utility/utilityHelpers");
|
|
10
|
-
const utilityHelpers_noBuffer_1 = require("../../utility/utilityHelpers.noBuffer");
|
|
11
|
-
const EntityProvenTx_1 = require("../schema/entities/EntityProvenTx");
|
|
12
|
-
const Wallet_1 = require("../../Wallet");
|
|
13
|
-
const offsetKey_1 = require("./offsetKey");
|
|
14
|
-
const utils_1 = require("./utils");
|
|
15
|
-
const sdk_2 = require("../../sdk");
|
|
16
|
-
const managedChange_1 = require("./managedChange");
|
|
17
|
-
let disableDoubleSpendCheckForTest = true;
|
|
18
|
-
function setDisableDoubleSpendCheckForTest(v) {
|
|
19
|
-
disableDoubleSpendCheckForTest = v;
|
|
20
|
-
}
|
|
21
|
-
async function createAction(storage, auth, vargs, originator) {
|
|
22
|
-
const logger = vargs.logger;
|
|
23
|
-
logger?.group('storage createAction');
|
|
24
|
-
// stampLog(vargs, `start storage createTransactionSdk`)
|
|
25
|
-
if (vargs.isTestWerrReviewActions)
|
|
26
|
-
(0, Wallet_1.throwDummyReviewActions)();
|
|
27
|
-
if (!vargs.isNewTx)
|
|
28
|
-
// The purpose of this function is to create the initial storage records associated
|
|
29
|
-
// with a new transaction. It's an error if we have no new inputs or outputs...
|
|
30
|
-
{
|
|
31
|
-
throw new WERR_errors_1.WERR_INTERNAL();
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Steps to create a transaction:
|
|
35
|
-
* - Verify that all inputs either have proof in vargs.inputBEEF or that options.trustSelf === 'known' and input txid.vout are known valid to storage.
|
|
36
|
-
* - Create a new transaction record with status 'unsigned' as the anchor for construction work and to new outputs.
|
|
37
|
-
* - Create all transaction labels.
|
|
38
|
-
* - Add new commission output
|
|
39
|
-
* - Attempt to fund the transaction by allocating change outputs:
|
|
40
|
-
* - As each change output is selected it is simultaneously locked.
|
|
41
|
-
* - Create all new output, basket, tag records
|
|
42
|
-
* - If requested, create result Beef with complete proofs for all inputs used
|
|
43
|
-
* - Create result inputs with source locking scripts
|
|
44
|
-
* - Create result outputs with new locking scripts.
|
|
45
|
-
* - Create and return result.
|
|
46
|
-
*/
|
|
47
|
-
const userId = auth.userId;
|
|
48
|
-
const { storageBeef, beef, xinputs } = await validateRequiredInputs(storage, userId, vargs);
|
|
49
|
-
logger?.log('validated required inputs');
|
|
50
|
-
const xoutputs = validateRequiredOutputs(storage, userId, vargs);
|
|
51
|
-
logger?.log('validated required outputs');
|
|
52
|
-
const changeBasketName = 'default';
|
|
53
|
-
const changeBasket = (0, utilityHelpers_1.verifyOne)(await storage.findOutputBaskets({
|
|
54
|
-
partial: { userId, name: changeBasketName }
|
|
55
|
-
}), `Invalid outputGeneration basket "${changeBasketName}"`);
|
|
56
|
-
logger?.log('found change basket');
|
|
57
|
-
const noSendChangeIn = await validateNoSendChange(storage, userId, vargs, changeBasket);
|
|
58
|
-
logger?.log('validated noSendChange');
|
|
59
|
-
const availableChangeCount = await storage.countChangeInputs(userId, changeBasket.basketId, !vargs.isDelayed);
|
|
60
|
-
logger?.log(`counted change inputs ${availableChangeCount}`);
|
|
61
|
-
const feeModel = (0, StorageProvider_1.validateStorageFeeModel)(storage.feeModel);
|
|
62
|
-
logger?.log(`validated fee model ${JSON.stringify(feeModel)}`);
|
|
63
|
-
await preflightInsufficientFundsFastPath(vargs, xinputs, xoutputs, noSendChangeIn, availableChangeCount, feeModel);
|
|
64
|
-
logger?.log('passed insufficient-funds preflight');
|
|
65
|
-
let newTx;
|
|
66
|
-
try {
|
|
67
|
-
newTx = await createNewTxRecord(storage, userId, vargs, storageBeef);
|
|
68
|
-
logger?.log('created new transaction record');
|
|
69
|
-
const ctx = {
|
|
70
|
-
xinputs,
|
|
71
|
-
xoutputs,
|
|
72
|
-
changeBasket,
|
|
73
|
-
noSendChangeIn,
|
|
74
|
-
availableChangeCount,
|
|
75
|
-
feeModel,
|
|
76
|
-
transactionId: newTx.transactionId
|
|
77
|
-
};
|
|
78
|
-
const { allocatedChange, changeOutputs, derivationPrefix, maxPossibleSatoshisAdjustment } = await fundNewTransactionSdk(storage, userId, vargs, ctx);
|
|
79
|
-
logger?.log('funded new transaction');
|
|
80
|
-
if (maxPossibleSatoshisAdjustment != null) {
|
|
81
|
-
const a = maxPossibleSatoshisAdjustment;
|
|
82
|
-
if (ctx.xoutputs[a.fixedOutputIndex].satoshis !== generateChange_1.maxPossibleSatoshis)
|
|
83
|
-
throw new WERR_errors_1.WERR_INTERNAL();
|
|
84
|
-
ctx.xoutputs[a.fixedOutputIndex].satoshis = a.satoshis;
|
|
85
|
-
logger?.log('adjusted change outputs to max possible');
|
|
86
|
-
}
|
|
87
|
-
// The satoshis of the transaction is the satoshis we get back in change minus the satoshis we spend.
|
|
88
|
-
const satoshis = changeOutputs.reduce((a, e) => a + e.satoshis, 0) - allocatedChange.reduce((a, e) => a + e.satoshis, 0);
|
|
89
|
-
await storage.updateTransaction(newTx.transactionId, { satoshis });
|
|
90
|
-
const { outputs, changeVouts } = await createNewOutputs(storage, userId, vargs, ctx, changeOutputs);
|
|
91
|
-
logger?.log('created new output records');
|
|
92
|
-
const inputBeef = await mergeAllocatedChangeBeefs(storage, userId, vargs, allocatedChange, beef);
|
|
93
|
-
logger?.log('merged allocated change beefs');
|
|
94
|
-
const inputs = await createNewInputs(storage, userId, vargs, ctx, allocatedChange);
|
|
95
|
-
logger?.log('created new inputs');
|
|
96
|
-
const r = {
|
|
97
|
-
reference: newTx.reference,
|
|
98
|
-
version: newTx.version,
|
|
99
|
-
lockTime: newTx.lockTime,
|
|
100
|
-
inputs,
|
|
101
|
-
outputs,
|
|
102
|
-
derivationPrefix,
|
|
103
|
-
inputBeef,
|
|
104
|
-
noSendChangeOutputVouts: vargs.isNoSend ? changeVouts : undefined
|
|
105
|
-
};
|
|
106
|
-
logger?.groupEnd();
|
|
107
|
-
return r;
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
if (newTx?.transactionId != null) {
|
|
111
|
-
try {
|
|
112
|
-
await storage.updateTransactionStatus('failed', newTx.transactionId);
|
|
113
|
-
logger?.log(`marked failed createAction transaction ${newTx.transactionId} after construction error`);
|
|
114
|
-
}
|
|
115
|
-
catch (cleanupError) {
|
|
116
|
-
logger?.log(`failed to clean up createAction transaction ${newTx.transactionId}: ${String(cleanupError)}`);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
logger?.groupEnd();
|
|
120
|
-
throw error;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
function makeDefaultOutput(userId, transactionId, satoshis, vout) {
|
|
124
|
-
const now = new Date();
|
|
125
|
-
const output = {
|
|
126
|
-
created_at: now,
|
|
127
|
-
updated_at: now,
|
|
128
|
-
outputId: 0,
|
|
129
|
-
userId,
|
|
130
|
-
transactionId,
|
|
131
|
-
satoshis,
|
|
132
|
-
vout,
|
|
133
|
-
basketId: undefined,
|
|
134
|
-
change: false,
|
|
135
|
-
customInstructions: undefined,
|
|
136
|
-
derivationPrefix: undefined,
|
|
137
|
-
derivationSuffix: undefined,
|
|
138
|
-
outputDescription: '',
|
|
139
|
-
lockingScript: undefined,
|
|
140
|
-
providedBy: 'you',
|
|
141
|
-
purpose: '',
|
|
142
|
-
senderIdentityKey: undefined,
|
|
143
|
-
spendable: true,
|
|
144
|
-
spendingDescription: undefined,
|
|
145
|
-
spentBy: undefined,
|
|
146
|
-
txid: undefined,
|
|
147
|
-
type: ''
|
|
148
|
-
};
|
|
149
|
-
return output;
|
|
150
|
-
}
|
|
151
|
-
/** Check known outputs for double-spend, mark them spent, return competing txid if found. */
|
|
152
|
-
async function markKnownInputsSpent(storage, knownInputRows, transactionId) {
|
|
153
|
-
let doubleSpendTxid;
|
|
154
|
-
await storage.transaction(async (trx) => {
|
|
155
|
-
const outputIds = knownInputRows.map(ni => (0, utilityHelpers_1.verifyId)(ni.o.outputId));
|
|
156
|
-
const knownOutputsById = await storage.findOutputsByIds(outputIds, trx);
|
|
157
|
-
for (const ni of knownInputRows) {
|
|
158
|
-
const { i, o } = ni;
|
|
159
|
-
const o2 = knownOutputsById[(0, utilityHelpers_1.verifyId)(o.outputId)];
|
|
160
|
-
if (!o2)
|
|
161
|
-
throw new WERR_errors_1.WERR_INTERNAL(`missing outputId ${o.outputId}`);
|
|
162
|
-
if (o2.spentBy !== undefined && o2.spentBy !== null) {
|
|
163
|
-
const spendingTx = await storage.findTransactionById((0, utilityHelpers_1.verifyId)(o2.spentBy), trx);
|
|
164
|
-
if (spendingTx?.txid) {
|
|
165
|
-
doubleSpendTxid = spendingTx.txid;
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (!o2.spendable) {
|
|
170
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER(`inputs[${i.vin}]`, `spendable output. output ${o.txid}:${o.vout} appears to have been spent (spendable=${o2.spendable}).`);
|
|
171
|
-
}
|
|
172
|
-
await storage.updateOutput((0, utilityHelpers_1.verifyId)(o.outputId), { spendable: false, spentBy: transactionId, spendingDescription: i.inputDescription }, trx);
|
|
173
|
-
o.spendable = false;
|
|
174
|
-
o.spentBy = transactionId;
|
|
175
|
-
o.spendingDescription = i.inputDescription;
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
return doubleSpendTxid;
|
|
179
|
-
}
|
|
180
|
-
/** Build an SDK input record for a new-input row that has a backing output. */
|
|
181
|
-
async function buildSdkInputFromOutput(storage, vargs, vin, i, o, unlockLen) {
|
|
182
|
-
if ((i == null) && !unlockLen)
|
|
183
|
-
throw new WERR_errors_1.WERR_INTERNAL(`vin ${vin} non-fixedInput without unlockLen`);
|
|
184
|
-
const sourceTransaction = vargs.includeAllSourceTransactions && vargs.isSignAction
|
|
185
|
-
? await storage.getRawTxOfKnownValidTransaction(o.txid)
|
|
186
|
-
: undefined;
|
|
187
|
-
return {
|
|
188
|
-
vin,
|
|
189
|
-
sourceTxid: o.txid,
|
|
190
|
-
sourceVout: o.vout,
|
|
191
|
-
sourceSatoshis: o.satoshis,
|
|
192
|
-
sourceLockingScript: (0, utilityHelpers_noBuffer_1.asString)(o.lockingScript),
|
|
193
|
-
sourceTransaction,
|
|
194
|
-
unlockingScriptLength: unlockLen || i.unlockingScriptLength,
|
|
195
|
-
providedBy: (i != null) && o.providedBy === 'storage' ? 'you-and-storage' : o.providedBy,
|
|
196
|
-
type: o.type,
|
|
197
|
-
spendingDescription: o.spendingDescription || undefined,
|
|
198
|
-
derivationPrefix: o.derivationPrefix || undefined,
|
|
199
|
-
derivationSuffix: o.derivationSuffix || undefined,
|
|
200
|
-
senderIdentityKey: o.senderIdentityKey || undefined
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
/** Build an SDK input record for a user-specified input with no corresponding stored output. */
|
|
204
|
-
function buildSdkInputFromXInput(vin, i) {
|
|
205
|
-
return {
|
|
206
|
-
vin,
|
|
207
|
-
sourceTxid: i.outpoint.txid,
|
|
208
|
-
sourceVout: i.outpoint.vout,
|
|
209
|
-
sourceSatoshis: i.satoshis,
|
|
210
|
-
sourceLockingScript: i.lockingScript.toHex(),
|
|
211
|
-
unlockingScriptLength: i.unlockingScriptLength,
|
|
212
|
-
providedBy: 'you',
|
|
213
|
-
type: 'custom',
|
|
214
|
-
spendingDescription: undefined,
|
|
215
|
-
derivationPrefix: undefined,
|
|
216
|
-
derivationSuffix: undefined,
|
|
217
|
-
senderIdentityKey: undefined
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
async function createNewInputs(storage, userId, vargs, ctx, allocatedChange) {
|
|
221
|
-
const r = [];
|
|
222
|
-
const newInputs = [];
|
|
223
|
-
for (const i of ctx.xinputs)
|
|
224
|
-
newInputs.push({ i, o: i.output });
|
|
225
|
-
const knownInputRows = newInputs.filter((ni) => ni.i != null && ni.o != null);
|
|
226
|
-
if (knownInputRows.length > 0) {
|
|
227
|
-
const doubleSpendTxid = await markKnownInputsSpent(storage, knownInputRows, ctx.transactionId);
|
|
228
|
-
if (doubleSpendTxid) {
|
|
229
|
-
const beef = await getCompetingBeefForReview(storage, doubleSpendTxid);
|
|
230
|
-
throw new WERR_errors_1.WERR_REVIEW_ACTIONS([{ txid: '', status: 'doubleSpend', competingTxs: [doubleSpendTxid], competingBeef: beef.toBinary() }], []);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
for (const o of allocatedChange)
|
|
234
|
-
newInputs.push({ o, unlockLen: 107 });
|
|
235
|
-
let vin = -1;
|
|
236
|
-
for (const { i, o, unlockLen } of newInputs) {
|
|
237
|
-
vin++;
|
|
238
|
-
if (o != null) {
|
|
239
|
-
r.push(await buildSdkInputFromOutput(storage, vargs, vin, i, o, unlockLen));
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
if (i == null)
|
|
243
|
-
throw new WERR_errors_1.WERR_INTERNAL(`vin ${vin} without output or xinput`);
|
|
244
|
-
r.push(buildSdkInputFromXInput(vin, i));
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
return r;
|
|
248
|
-
}
|
|
249
|
-
async function getCompetingBeefForReview(storage, txid) {
|
|
250
|
-
try {
|
|
251
|
-
return await storage.getBeefForTransaction(txid, {});
|
|
252
|
-
}
|
|
253
|
-
catch (e) {
|
|
254
|
-
const walletError = sdk_2.WalletError.fromUnknown(e);
|
|
255
|
-
if (walletError instanceof WERR_errors_1.WERR_INVALID_PARAMETER || walletError.code === 'WERR_INVALID_PARAMETER') {
|
|
256
|
-
const beef = new sdk_1.Beef();
|
|
257
|
-
beef.mergeTxidOnly(txid);
|
|
258
|
-
return beef;
|
|
259
|
-
}
|
|
260
|
-
throw e;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
/** Randomly reassign vout values across newOutputs using either the provided randomVals or crypto-random bytes. */
|
|
264
|
-
function randomizeOutputVouts(newOutputs, randomVals) {
|
|
265
|
-
const vals = [...(randomVals || [])];
|
|
266
|
-
const nextRandom = () => {
|
|
267
|
-
if (vals.length > 0) {
|
|
268
|
-
const v = vals.shift();
|
|
269
|
-
vals.push(v);
|
|
270
|
-
return v;
|
|
271
|
-
}
|
|
272
|
-
const bytes = (0, sdk_1.Random)(4);
|
|
273
|
-
return (((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0) / 0x100000000;
|
|
274
|
-
};
|
|
275
|
-
const newVouts = Array.from({ length: newOutputs.length }, (_, i) => i);
|
|
276
|
-
for (let cur = newVouts.length; cur > 0; cur--) {
|
|
277
|
-
const rnd = Math.floor(nextRandom() * cur);
|
|
278
|
-
[newVouts[cur - 1], newVouts[rnd]] = [newVouts[rnd], newVouts[cur - 1]];
|
|
279
|
-
}
|
|
280
|
-
let vout = -1;
|
|
281
|
-
for (const no of newOutputs) {
|
|
282
|
-
vout++;
|
|
283
|
-
if (no.o.vout !== vout)
|
|
284
|
-
throw new WERR_errors_1.WERR_INTERNAL(`new output ${vout} has out of order vout ${no.o.vout}`);
|
|
285
|
-
no.o.vout = newVouts[vout];
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
/** Insert the output and attach its tags; return the SDK output descriptor. */
|
|
289
|
-
async function persistNewOutput(storage, o, tags, txTags, txBaskets) {
|
|
290
|
-
o.outputId = await storage.insertOutput(o);
|
|
291
|
-
const changeVout = (o.change && o.purpose === 'change' && o.providedBy === 'storage') ? o.vout : undefined;
|
|
292
|
-
for (const tagName of new Set(tags)) {
|
|
293
|
-
const tag = txTags[tagName];
|
|
294
|
-
await storage.insertOutputTagMap({
|
|
295
|
-
outputId: (0, utilityHelpers_1.verifyId)(o.outputId),
|
|
296
|
-
outputTagId: (0, utilityHelpers_1.verifyId)(tag.outputTagId),
|
|
297
|
-
created_at: new Date(),
|
|
298
|
-
updated_at: new Date(),
|
|
299
|
-
isDeleted: false
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
const ro = {
|
|
303
|
-
vout: (0, utilityHelpers_1.verifyInteger)(o.vout),
|
|
304
|
-
satoshis: sdk_1.Validation.validateSatoshis(o.satoshis, 'o.satoshis'),
|
|
305
|
-
lockingScript: (o.lockingScript == null) ? '' : (0, utilityHelpers_noBuffer_1.asString)(o.lockingScript),
|
|
306
|
-
providedBy: (0, utilityHelpers_1.verifyTruthy)(o.providedBy),
|
|
307
|
-
purpose: o.purpose || undefined,
|
|
308
|
-
basket: Object.values(txBaskets).find(b => b.basketId === o.basketId)?.name,
|
|
309
|
-
tags,
|
|
310
|
-
outputDescription: o.outputDescription,
|
|
311
|
-
derivationSuffix: o.derivationSuffix,
|
|
312
|
-
customInstructions: o.customInstructions
|
|
313
|
-
};
|
|
314
|
-
return { changeVout, ro };
|
|
315
|
-
}
|
|
316
|
-
async function createNewOutputs(storage, userId, vargs, ctx, changeOutputs) {
|
|
317
|
-
const txBaskets = {};
|
|
318
|
-
const basketNames = [...new Set(ctx.xoutputs.map(x => x.basket).filter((v) => !!v))];
|
|
319
|
-
Object.assign(txBaskets, await storage.findOrInsertOutputBasketsBulk(userId, basketNames));
|
|
320
|
-
const txTags = {};
|
|
321
|
-
const tagNames = [...new Set(ctx.xoutputs.flatMap(x => x.tags))];
|
|
322
|
-
Object.assign(txTags, await storage.findOrInsertOutputTagsBulk(userId, tagNames));
|
|
323
|
-
const newOutputs = [];
|
|
324
|
-
for (const xo of ctx.xoutputs) {
|
|
325
|
-
const lockingScript = (0, utilityHelpers_noBuffer_1.asArray)(xo.lockingScript);
|
|
326
|
-
if (xo.purpose === 'service-charge') {
|
|
327
|
-
const now = new Date();
|
|
328
|
-
await storage.insertCommission({ userId, transactionId: ctx.transactionId, lockingScript, satoshis: xo.satoshis, isRedeemed: false, keyOffset: (0, utilityHelpers_1.verifyTruthy)(xo.keyOffset), created_at: now, updated_at: now, commissionId: 0 });
|
|
329
|
-
const o = makeDefaultOutput(userId, ctx.transactionId, xo.satoshis, xo.vout);
|
|
330
|
-
o.lockingScript = lockingScript;
|
|
331
|
-
o.providedBy = 'storage';
|
|
332
|
-
o.purpose = 'storage-commission';
|
|
333
|
-
o.type = 'custom';
|
|
334
|
-
o.spendable = false;
|
|
335
|
-
newOutputs.push({ o, tags: [] });
|
|
336
|
-
}
|
|
337
|
-
else {
|
|
338
|
-
const o = makeDefaultOutput(userId, ctx.transactionId, xo.satoshis, xo.vout);
|
|
339
|
-
o.lockingScript = lockingScript;
|
|
340
|
-
o.basketId = xo.basket ? txBaskets[xo.basket].basketId : undefined;
|
|
341
|
-
o.customInstructions = xo.customInstructions;
|
|
342
|
-
o.outputDescription = xo.outputDescription;
|
|
343
|
-
o.providedBy = xo.providedBy;
|
|
344
|
-
o.purpose = xo.purpose || '';
|
|
345
|
-
o.type = 'custom';
|
|
346
|
-
newOutputs.push({ o, tags: xo.tags });
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
for (const o of changeOutputs) {
|
|
350
|
-
o.spendable = true;
|
|
351
|
-
newOutputs.push({ o, tags: [] });
|
|
352
|
-
}
|
|
353
|
-
if (vargs.options.randomizeOutputs)
|
|
354
|
-
randomizeOutputVouts(newOutputs, vargs.randomVals);
|
|
355
|
-
const outputs = [];
|
|
356
|
-
const changeVouts = [];
|
|
357
|
-
for (const { o, tags } of newOutputs) {
|
|
358
|
-
const { changeVout, ro } = await persistNewOutput(storage, o, tags, txTags, txBaskets);
|
|
359
|
-
if (changeVout !== undefined)
|
|
360
|
-
changeVouts.push(changeVout);
|
|
361
|
-
outputs.push(ro);
|
|
362
|
-
}
|
|
363
|
-
return { outputs, changeVouts };
|
|
364
|
-
}
|
|
365
|
-
async function createNewTxRecord(storage, userId, vargs, storageBeef) {
|
|
366
|
-
const now = new Date();
|
|
367
|
-
const newTx = {
|
|
368
|
-
created_at: now,
|
|
369
|
-
updated_at: now,
|
|
370
|
-
transactionId: 0,
|
|
371
|
-
version: vargs.version,
|
|
372
|
-
lockTime: vargs.lockTime,
|
|
373
|
-
status: 'unsigned',
|
|
374
|
-
reference: (0, utilityHelpers_1.randomBytesBase64)(12),
|
|
375
|
-
satoshis: 0, // updated after fundingTransaction
|
|
376
|
-
userId,
|
|
377
|
-
isOutgoing: true,
|
|
378
|
-
inputBEEF: storageBeef.toBinary(),
|
|
379
|
-
description: vargs.description,
|
|
380
|
-
txid: undefined,
|
|
381
|
-
rawTx: undefined
|
|
382
|
-
};
|
|
383
|
-
newTx.transactionId = await storage.insertTransaction(newTx);
|
|
384
|
-
for (const label of vargs.labels) {
|
|
385
|
-
const txLabel = await storage.findOrInsertTxLabel(userId, label);
|
|
386
|
-
await storage.findOrInsertTxLabelMap((0, utilityHelpers_1.verifyId)(newTx.transactionId), (0, utilityHelpers_1.verifyId)(txLabel.txLabelId));
|
|
387
|
-
}
|
|
388
|
-
return newTx;
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Convert vargs.outputs:
|
|
392
|
-
*
|
|
393
|
-
* lockingScript: HexString
|
|
394
|
-
* satoshis: SatoshiValue
|
|
395
|
-
* outputDescription: DescriptionString5to50Bytes
|
|
396
|
-
* basket?: BasketStringUnder300Bytes
|
|
397
|
-
* customInstructions?: string
|
|
398
|
-
* tags: BasketStringUnderBytes[]
|
|
399
|
-
*
|
|
400
|
-
* to XValidCreateActionOutput (which aims for StorageCreateTransactionSdkOutput)
|
|
401
|
-
*
|
|
402
|
-
* adds:
|
|
403
|
-
* vout: number
|
|
404
|
-
* providedBy: StorageProvidedBy
|
|
405
|
-
* purpose?: string
|
|
406
|
-
* derivationSuffix?: string
|
|
407
|
-
* keyOffset?: string
|
|
408
|
-
*
|
|
409
|
-
* @param vargs
|
|
410
|
-
* @returns xoutputs
|
|
411
|
-
*/
|
|
412
|
-
function validateRequiredOutputs(storage, userId, vargs) {
|
|
413
|
-
const xoutputs = [];
|
|
414
|
-
let vout = -1;
|
|
415
|
-
for (const output of vargs.outputs) {
|
|
416
|
-
vout++;
|
|
417
|
-
const xo = {
|
|
418
|
-
...output,
|
|
419
|
-
vout,
|
|
420
|
-
providedBy: 'you',
|
|
421
|
-
purpose: undefined,
|
|
422
|
-
derivationSuffix: undefined,
|
|
423
|
-
keyOffset: undefined
|
|
424
|
-
};
|
|
425
|
-
xoutputs.push(xo);
|
|
426
|
-
}
|
|
427
|
-
if (storage.commissionSatoshis > 0 && storage.commissionPubKeyHex) {
|
|
428
|
-
vout++;
|
|
429
|
-
const { script, keyOffset } = (0, offsetKey_1.createStorageServiceChargeScript)(storage.commissionPubKeyHex);
|
|
430
|
-
xoutputs.push({
|
|
431
|
-
lockingScript: script,
|
|
432
|
-
satoshis: storage.commissionSatoshis,
|
|
433
|
-
outputDescription: 'Storage Service Charge',
|
|
434
|
-
basket: undefined,
|
|
435
|
-
tags: [],
|
|
436
|
-
vout,
|
|
437
|
-
providedBy: 'storage',
|
|
438
|
-
purpose: 'service-charge',
|
|
439
|
-
keyOffset
|
|
440
|
-
});
|
|
441
|
-
}
|
|
442
|
-
return xoutputs;
|
|
443
|
-
}
|
|
444
|
-
/**
|
|
445
|
-
* Verify that we are in posession of validity proof data for any inputs being proposed for a new transaction.
|
|
446
|
-
*
|
|
447
|
-
* `vargs.inputs` is the source of inputs.
|
|
448
|
-
* `vargs.inputBEEF` may include new user supplied validity data.
|
|
449
|
-
* 'vargs.options.trustSelf === 'known'` indicates whether we can rely on the storage database records.
|
|
450
|
-
*
|
|
451
|
-
* If there are no inputs, returns an empty `Beef`.
|
|
452
|
-
*
|
|
453
|
-
* Always pulls rawTx data into first level of validity chains so that parsed transaction data is available
|
|
454
|
-
* and checks input sourceSatoshis as well as filling in input sourceLockingScript.
|
|
455
|
-
*
|
|
456
|
-
* This data may be pruned again before being returned to the user based on `vargs.options.knownTxids`.
|
|
457
|
-
*
|
|
458
|
-
* @param storage
|
|
459
|
-
* @param userId
|
|
460
|
-
* @param vargs
|
|
461
|
-
* @returns {storageBeef} containing only validity proof data for only unknown required inputs.
|
|
462
|
-
* @returns {beef} containing verified validity proof data for all required inputs.
|
|
463
|
-
* @returns {xinputs} extended validated required inputs.
|
|
464
|
-
*/
|
|
465
|
-
async function validateRequiredInputs(storage, userId, vargs) {
|
|
466
|
-
// stampLog(vargs, `start storage verifyInputBeef`)
|
|
467
|
-
const beef = new sdk_1.Beef();
|
|
468
|
-
if (vargs.inputs.length === 0)
|
|
469
|
-
return { storageBeef: beef, beef, xinputs: [] };
|
|
470
|
-
if (vargs.inputBEEF != null)
|
|
471
|
-
beef.mergeBeef(vargs.inputBEEF);
|
|
472
|
-
const xinputs = vargs.inputs.map((input, vin) => ({
|
|
473
|
-
...input,
|
|
474
|
-
vin,
|
|
475
|
-
satoshis: -1,
|
|
476
|
-
lockingScript: new sdk_1.Script(),
|
|
477
|
-
output: undefined
|
|
478
|
-
}));
|
|
479
|
-
const trustSelf = vargs.options.trustSelf === 'known';
|
|
480
|
-
const preloadedOutputsByOutpoint = await storage.findOutputsByOutpoints(userId, xinputs.map(i => ({ txid: i.outpoint.txid, vout: i.outpoint.vout })));
|
|
481
|
-
const inputsByTxid = {};
|
|
482
|
-
for (const input of xinputs) {
|
|
483
|
-
inputsByTxid[input.outpoint.txid] ||= [];
|
|
484
|
-
inputsByTxid[input.outpoint.txid].push(input);
|
|
485
|
-
}
|
|
486
|
-
const localKnownInputTxids = {};
|
|
487
|
-
for (const [txid, txInputs] of Object.entries(inputsByTxid)) {
|
|
488
|
-
localKnownInputTxids[txid] = txInputs.every(input => {
|
|
489
|
-
const output = preloadedOutputsByOutpoint[`${input.outpoint.txid}.${input.outpoint.vout}`];
|
|
490
|
-
return output?.lockingScript !== undefined && Number.isInteger(output?.satoshis);
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
await validateBeefTxidOnlyEntries(beef, inputsByTxid, trustSelf, storage);
|
|
494
|
-
await ensureBeefContainsAllInputTxids(beef, inputsByTxid, localKnownInputTxids, trustSelf, storage);
|
|
495
|
-
if (!(await beef.verify(await storage.getServices().getChainTracker(), true))) {
|
|
496
|
-
console.log(`verifyInputBeef failed, inputBEEF failed to verify.\n${beef.toLogString()}\n`);
|
|
497
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', 'valid Beef when factoring options.trustSelf');
|
|
498
|
-
}
|
|
499
|
-
const storageBeef = beef.clone();
|
|
500
|
-
for (const input of xinputs) {
|
|
501
|
-
await resolveInputScript(storage, userId, vargs, input, beef, preloadedOutputsByOutpoint);
|
|
502
|
-
}
|
|
503
|
-
return { beef, storageBeef, xinputs };
|
|
504
|
-
}
|
|
505
|
-
/** Check all txidOnly entries in beef: require either trustSelf vouch or throw. */
|
|
506
|
-
async function validateBeefTxidOnlyEntries(beef, inputsByTxid, trustSelf, storage) {
|
|
507
|
-
for (const btx of beef.txs) {
|
|
508
|
-
if (!btx.isTxidOnly)
|
|
509
|
-
continue;
|
|
510
|
-
if (!trustSelf)
|
|
511
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain complete proof data for ${btx.txid}`);
|
|
512
|
-
if (inputsByTxid[btx.txid] == null) {
|
|
513
|
-
const isKnown = await storage.verifyKnownValidTransaction(btx.txid);
|
|
514
|
-
if (!isKnown)
|
|
515
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain complete proof data for unknown ${btx.txid}`);
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
/** Ensure beef has an entry (or txidOnly) for every input txid. */
|
|
520
|
-
async function ensureBeefContainsAllInputTxids(beef, inputsByTxid, localKnownInputTxids, trustSelf, storage) {
|
|
521
|
-
for (const txid of Object.keys(inputsByTxid)) {
|
|
522
|
-
let btx = beef.findTxid(txid);
|
|
523
|
-
if (btx == null && localKnownInputTxids[txid])
|
|
524
|
-
continue;
|
|
525
|
-
if (btx == null && trustSelf) {
|
|
526
|
-
if (await storage.verifyKnownValidTransaction(txid))
|
|
527
|
-
btx = beef.mergeTxidOnly(txid);
|
|
528
|
-
}
|
|
529
|
-
if (btx == null) {
|
|
530
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain proof data for possibly known ${txid}, beef ${beef.toLogString()}`);
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
/** Resolve satoshis and lockingScript for one xinput from either storage or the beef. */
|
|
535
|
-
async function resolveInputScript(storage, userId, vargs, input, beef, preloadedOutputsByOutpoint) {
|
|
536
|
-
const { txid, vout } = input.outpoint;
|
|
537
|
-
let output = preloadedOutputsByOutpoint[`${txid}.${vout}`];
|
|
538
|
-
output ??= (0, utilityHelpers_1.verifyOneOrNone)(await storage.findOutputs({ partial: { userId, txid, vout } }));
|
|
539
|
-
if (output != null) {
|
|
540
|
-
if (output.change)
|
|
541
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER(`inputs[${input.vin}]`, 'an unmanaged input. Change outputs are managed by your wallet.');
|
|
542
|
-
input.output = output;
|
|
543
|
-
if (output.lockingScript === undefined || !Number.isInteger(output.satoshis)) {
|
|
544
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'output with valid lockingScript and satoshis');
|
|
545
|
-
}
|
|
546
|
-
if (!disableDoubleSpendCheckForTest && !output.spendable && !vargs.isNoSend) {
|
|
547
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'spendable output unless noSend is true');
|
|
548
|
-
}
|
|
549
|
-
input.satoshis = sdk_1.Validation.validateSatoshis(output.satoshis, 'output.satoshis');
|
|
550
|
-
input.lockingScript = sdk_1.Script.fromBinary((0, utilityHelpers_noBuffer_1.asArray)(output.lockingScript));
|
|
551
|
-
}
|
|
552
|
-
else {
|
|
553
|
-
let btx = beef.findTxid(txid);
|
|
554
|
-
if (btx.isTxidOnly) {
|
|
555
|
-
const { rawTx, proven } = await storage.getProvenOrRawTx(txid);
|
|
556
|
-
if (rawTx == null)
|
|
557
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('inputBEEF', `valid and contain proof data for ${txid}`);
|
|
558
|
-
btx = beef.mergeRawTx((0, utilityHelpers_noBuffer_1.asArray)(rawTx));
|
|
559
|
-
if (proven != null)
|
|
560
|
-
beef.mergeBump(new EntityProvenTx_1.EntityProvenTx(proven).getMerklePath());
|
|
561
|
-
}
|
|
562
|
-
if (vout >= btx.tx.outputs.length)
|
|
563
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER(`${txid}.${vout}`, 'valid outpoint');
|
|
564
|
-
const so = btx.tx.outputs[vout];
|
|
565
|
-
input.satoshis = sdk_1.Validation.validateSatoshis(so.satoshis, 'so.satoshis');
|
|
566
|
-
input.lockingScript = so.lockingScript;
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
async function validateNoSendChange(storage, userId, vargs, changeBasket) {
|
|
570
|
-
const r = [];
|
|
571
|
-
if (!vargs.isNoSend)
|
|
572
|
-
return [];
|
|
573
|
-
const noSendChange = vargs.options.noSendChange;
|
|
574
|
-
if (noSendChange && noSendChange.length > 0) {
|
|
575
|
-
for (const op of noSendChange) {
|
|
576
|
-
const output = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findOutputs({
|
|
577
|
-
partial: { userId, txid: op.txid, vout: op.vout }
|
|
578
|
-
}));
|
|
579
|
-
// noSendChange is signed through the same BRC-29 path as allocated change.
|
|
580
|
-
// It must satisfy the full managed-change policy, not merely share the
|
|
581
|
-
// default basket or have a P2PKH-shaped locking script.
|
|
582
|
-
if (!(0, managedChange_1.isAutoSpendableChangeOutput)(output) ||
|
|
583
|
-
!(0, utilityHelpers_1.verifyNumber)(output.satoshis) ||
|
|
584
|
-
output.basketId !== changeBasket.basketId) {
|
|
585
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('noSendChange outpoint', 'wallet-managed BRC-29 change');
|
|
586
|
-
}
|
|
587
|
-
if (r.some(o => o.outputId === output.outputId))
|
|
588
|
-
// noSendChange duplicate OutPoints are not allowed.
|
|
589
|
-
{
|
|
590
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('noSendChange outpoint', 'unique. Duplicates are not allowed.');
|
|
591
|
-
}
|
|
592
|
-
r.push(output);
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
return r;
|
|
596
|
-
}
|
|
597
|
-
async function preflightInsufficientFundsFastPath(vargs, xinputs, xoutputs, noSendChangeIn, availableChangeCount, feeModel) {
|
|
598
|
-
if (feeModel.model !== 'sat/kb' || !feeModel.value)
|
|
599
|
-
return;
|
|
600
|
-
const fixedInputSatoshis = xinputs.reduce((a, e) => a + e.satoshis, 0);
|
|
601
|
-
const noSendSatoshis = noSendChangeIn.reduce((a, e) => a + Number(e.satoshis || 0), 0);
|
|
602
|
-
const spending = xoutputs.reduce((a, e) => a + e.satoshis, 0);
|
|
603
|
-
const minSize = (0, utils_1.transactionSize)(xinputs.map(i => i.unlockingScriptLength || 0), xoutputs.map(o => Math.floor(o.lockingScript.length / 2)));
|
|
604
|
-
const minFee = Math.ceil((minSize / 1000) * feeModel.value);
|
|
605
|
-
const minRequired = spending + minFee;
|
|
606
|
-
const fixedAvailable = fixedInputSatoshis + noSendSatoshis;
|
|
607
|
-
if (fixedAvailable >= minRequired)
|
|
608
|
-
return;
|
|
609
|
-
// Keep common successful path cheap:
|
|
610
|
-
// - If there are zero change candidates, failure is certain.
|
|
611
|
-
// Otherwise, defer to the main funding allocator.
|
|
612
|
-
const deficit = minRequired - fixedAvailable;
|
|
613
|
-
if (availableChangeCount <= 0) {
|
|
614
|
-
throw new WERR_errors_1.WERR_INSUFFICIENT_FUNDS(minRequired, deficit);
|
|
615
|
-
}
|
|
616
|
-
}
|
|
617
|
-
async function fundNewTransactionSdk(storage, userId, vargs, ctx) {
|
|
618
|
-
const params = {
|
|
619
|
-
fixedInputs: ctx.xinputs.map(xi => ({
|
|
620
|
-
satoshis: xi.satoshis,
|
|
621
|
-
unlockingScriptLength: xi.unlockingScriptLength
|
|
622
|
-
})),
|
|
623
|
-
fixedOutputs: ctx.xoutputs.map(xo => ({
|
|
624
|
-
satoshis: xo.satoshis,
|
|
625
|
-
lockingScriptLength: xo.lockingScript.length / 2
|
|
626
|
-
})),
|
|
627
|
-
feeModel: ctx.feeModel,
|
|
628
|
-
changeInitialSatoshis: Math.max(1, ctx.changeBasket.minimumDesiredUTXOValue),
|
|
629
|
-
changeFirstSatoshis: Math.max(1, Math.round(ctx.changeBasket.minimumDesiredUTXOValue / 4)),
|
|
630
|
-
changeLockingScriptLength: 25,
|
|
631
|
-
changeUnlockingScriptLength: 107,
|
|
632
|
-
targetNetCount: ctx.changeBasket.numberOfDesiredUTXOs - ctx.availableChangeCount,
|
|
633
|
-
randomVals: vargs.randomVals
|
|
634
|
-
};
|
|
635
|
-
const noSendChange = [...ctx.noSendChangeIn];
|
|
636
|
-
const outputs = {};
|
|
637
|
-
const allocateChangeInput = async (targetSatoshis, exactSatoshis) => {
|
|
638
|
-
// noSendChange gets allocated first...typically only one input...just allocate in order...
|
|
639
|
-
if (noSendChange.length > 0) {
|
|
640
|
-
const o = noSendChange.pop();
|
|
641
|
-
outputs[o.outputId] = o;
|
|
642
|
-
// allocate the output in storage, noSendChange is by definition spendable false and part of noSpend transaction batch.
|
|
643
|
-
await storage.updateOutput(o.outputId, {
|
|
644
|
-
spendable: false,
|
|
645
|
-
spentBy: ctx.transactionId
|
|
646
|
-
});
|
|
647
|
-
o.spendable = false;
|
|
648
|
-
o.spentBy = ctx.transactionId;
|
|
649
|
-
const r = {
|
|
650
|
-
outputId: o.outputId,
|
|
651
|
-
satoshis: o.satoshis
|
|
652
|
-
};
|
|
653
|
-
return r;
|
|
654
|
-
}
|
|
655
|
-
const basketId = ctx.changeBasket.basketId;
|
|
656
|
-
const o = await storage.allocateChangeInput(userId, basketId, targetSatoshis, exactSatoshis, !vargs.isDelayed, ctx.transactionId);
|
|
657
|
-
if (o == null)
|
|
658
|
-
return undefined;
|
|
659
|
-
outputs[o.outputId] = o;
|
|
660
|
-
const r = {
|
|
661
|
-
outputId: o.outputId,
|
|
662
|
-
satoshis: o.satoshis
|
|
663
|
-
};
|
|
664
|
-
return r;
|
|
665
|
-
};
|
|
666
|
-
const releaseChangeInput = async (outputId) => {
|
|
667
|
-
const nsco = ctx.noSendChangeIn.find(o => o.outputId === outputId);
|
|
668
|
-
if (nsco != null) {
|
|
669
|
-
noSendChange.push(nsco);
|
|
670
|
-
return;
|
|
671
|
-
}
|
|
672
|
-
await storage.updateOutput(outputId, {
|
|
673
|
-
spendable: true,
|
|
674
|
-
spentBy: undefined
|
|
675
|
-
});
|
|
676
|
-
};
|
|
677
|
-
const gcr = await (0, generateChange_1.generateChangeSdk)(params, allocateChangeInput, releaseChangeInput, vargs.logger);
|
|
678
|
-
const nextRandomVal = () => {
|
|
679
|
-
let val = 0;
|
|
680
|
-
if ((vargs.randomVals == null) || vargs.randomVals.length === 0) {
|
|
681
|
-
const bytes = (0, sdk_1.Random)(4);
|
|
682
|
-
val = (((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0) / 0x100000000;
|
|
683
|
-
}
|
|
684
|
-
else {
|
|
685
|
-
val = vargs.randomVals.shift() || 0;
|
|
686
|
-
vargs.randomVals.push(val);
|
|
687
|
-
}
|
|
688
|
-
return val;
|
|
689
|
-
};
|
|
690
|
-
/**
|
|
691
|
-
* @returns a random integer betweenn min and max, inclussive.
|
|
692
|
-
*/
|
|
693
|
-
const rand = (min, max) => {
|
|
694
|
-
if (max < min)
|
|
695
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('max', `less than min (${min}). max is (${max})`);
|
|
696
|
-
return Math.floor(nextRandomVal() * (max - min + 1) + min);
|
|
697
|
-
};
|
|
698
|
-
const randomDerivation = (count) => {
|
|
699
|
-
let val = [];
|
|
700
|
-
if ((vargs.randomVals == null) || vargs.randomVals.length === 0) {
|
|
701
|
-
val = (0, sdk_1.Random)(count);
|
|
702
|
-
}
|
|
703
|
-
else {
|
|
704
|
-
for (let i = 0; i < count; i++)
|
|
705
|
-
val.push(rand(0, 255));
|
|
706
|
-
}
|
|
707
|
-
return sdk_1.Utils.toBase64(val);
|
|
708
|
-
};
|
|
709
|
-
// Generate a derivation prefix for the payment
|
|
710
|
-
const derivationPrefix = randomDerivation(16);
|
|
711
|
-
const r = {
|
|
712
|
-
maxPossibleSatoshisAdjustment: gcr.maxPossibleSatoshisAdjustment,
|
|
713
|
-
allocatedChange: gcr.allocatedChangeInputs.map(i => outputs[i.outputId]),
|
|
714
|
-
changeOutputs: gcr.changeOutputs.map((o, i) => ({
|
|
715
|
-
// what we knnow now and can insert into the database for this new transaction's change output
|
|
716
|
-
created_at: new Date(),
|
|
717
|
-
updated_at: new Date(),
|
|
718
|
-
outputId: 0,
|
|
719
|
-
userId,
|
|
720
|
-
transactionId: ctx.transactionId,
|
|
721
|
-
vout: params.fixedOutputs.length + i,
|
|
722
|
-
satoshis: o.satoshis,
|
|
723
|
-
basketId: ctx.changeBasket.basketId,
|
|
724
|
-
spendable: false,
|
|
725
|
-
change: true,
|
|
726
|
-
type: 'P2PKH',
|
|
727
|
-
derivationPrefix,
|
|
728
|
-
derivationSuffix: randomDerivation(16),
|
|
729
|
-
providedBy: 'storage',
|
|
730
|
-
purpose: 'change',
|
|
731
|
-
customInstructions: undefined,
|
|
732
|
-
senderIdentityKey: undefined,
|
|
733
|
-
outputDescription: '',
|
|
734
|
-
// what will be known when transaction is signed
|
|
735
|
-
txid: undefined,
|
|
736
|
-
lockingScript: undefined,
|
|
737
|
-
// when this output gets spent
|
|
738
|
-
spentBy: undefined,
|
|
739
|
-
spendingDescription: undefined
|
|
740
|
-
})),
|
|
741
|
-
derivationPrefix
|
|
742
|
-
};
|
|
743
|
-
return r;
|
|
744
|
-
}
|
|
745
|
-
/**
|
|
746
|
-
* Avoid returning any known raw transaction data by converting any known transaction
|
|
747
|
-
* in the `beef` to txidOnly.
|
|
748
|
-
* @returns undefined if `vargs.options.returnTXIDOnly` or trimmed `Beef`
|
|
749
|
-
*/
|
|
750
|
-
function trimInputBeef(beef, vargs) {
|
|
751
|
-
if (vargs.options.returnTXIDOnly)
|
|
752
|
-
return undefined;
|
|
753
|
-
const knownTxids = {};
|
|
754
|
-
for (const txid of vargs.options.knownTxids || [])
|
|
755
|
-
knownTxids[txid] = true;
|
|
756
|
-
for (const txid of beef.txs.map(btx => btx.txid))
|
|
757
|
-
if (knownTxids[txid])
|
|
758
|
-
beef.makeTxidOnly(txid);
|
|
759
|
-
return beef.toUint8Array();
|
|
760
|
-
}
|
|
761
|
-
async function mergeAllocatedChangeBeefs(storage, userId, vargs, allocatedChange, beef) {
|
|
762
|
-
const options = {
|
|
763
|
-
trustSelf: undefined,
|
|
764
|
-
knownTxids: vargs.options.knownTxids,
|
|
765
|
-
mergeToBeef: beef,
|
|
766
|
-
ignoreStorage: false,
|
|
767
|
-
ignoreServices: true,
|
|
768
|
-
ignoreNewProven: false,
|
|
769
|
-
minProofLevel: undefined
|
|
770
|
-
};
|
|
771
|
-
if (vargs.options.returnTXIDOnly)
|
|
772
|
-
return undefined;
|
|
773
|
-
const known = new Set(vargs.options.knownTxids ?? []);
|
|
774
|
-
const missing = Array.from(new Set(allocatedChange
|
|
775
|
-
.map(o => o.txid)
|
|
776
|
-
.filter(txid => beef.findTxid(txid) == null && !known.has(txid))));
|
|
777
|
-
const fetched = new Array(missing.length);
|
|
778
|
-
const concurrency = Math.min(8, Math.max(1, missing.length));
|
|
779
|
-
let cursor = 0;
|
|
780
|
-
await Promise.all(Array.from({ length: concurrency }, async () => {
|
|
781
|
-
while (cursor < missing.length) {
|
|
782
|
-
const index = cursor++;
|
|
783
|
-
fetched[index] = await storage.getBeefForTransaction(missing[index], { ...options, mergeToBeef: undefined });
|
|
784
|
-
}
|
|
785
|
-
}));
|
|
786
|
-
for (const fetchedBeef of fetched) {
|
|
787
|
-
if (fetchedBeef == null)
|
|
788
|
-
continue;
|
|
789
|
-
beef.mergeBeef(fetchedBeef);
|
|
790
|
-
}
|
|
791
|
-
return trimInputBeef(beef, vargs);
|
|
792
|
-
}
|
|
793
|
-
//# sourceMappingURL=createAction.js.map
|