@bopen-io/wallet-toolbox 2.15.0-bopen.1 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +183 -45
- package/README.md +134 -98
- package/docs/client.md +2947 -3080
- package/docs/monitor.md +154 -165
- package/docs/no-send-expiry.md +7 -2
- package/docs/services.md +822 -885
- package/docs/setup.md +1 -46
- package/docs/storage.md +1636 -1654
- package/docs/wallet.md +1975 -2132
- package/out/src/CWIStyleWalletManager.d.ts +36 -5
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +356 -60
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/Setup.d.ts +0 -10
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +0 -24
- package/out/src/Setup.js.map +1 -1
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +8 -3
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletAuthenticationManager.d.ts +3 -0
- package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
- package/out/src/WalletAuthenticationManager.js +86 -3
- package/out/src/WalletAuthenticationManager.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts +63 -9
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +213 -49
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/monitor/Monitor.js +1 -1
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/MonitorDaemon.d.ts +0 -2
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js +1 -9
- package/out/src/monitor/MonitorDaemon.js.map +1 -1
- package/out/src/monitor/monitorValidation.d.ts +2 -1
- package/out/src/monitor/monitorValidation.d.ts.map +1 -1
- package/out/src/monitor/monitorValidation.js +2 -2
- package/out/src/monitor/monitorValidation.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js +2 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
- package/out/src/sdk/WERR_errors.d.ts +4 -0
- package/out/src/sdk/WERR_errors.d.ts.map +1 -1
- package/out/src/sdk/WERR_errors.js +4 -0
- package/out/src/sdk/WERR_errors.js.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.js +23 -2
- package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +11 -0
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/sdk/types.d.ts +12 -1
- package/out/src/sdk/types.d.ts.map +1 -1
- package/out/src/sdk/types.js +19 -2
- package/out/src/sdk/types.js.map +1 -1
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +5 -3
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.js +2 -2
- package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +2 -2
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +3 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +3 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +2 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +2 -2
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +6 -6
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +2 -2
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +0 -5
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +5 -13
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +1 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +11 -3
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +13 -9
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +2 -2
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +2 -2
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +23 -5
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +58 -16
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.d.ts +6 -3
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +18 -6
- package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/out/src/services/networkConfig.d.ts +7 -0
- package/out/src/services/networkConfig.d.ts.map +1 -1
- package/out/src/services/networkConfig.js +25 -2
- package/out/src/services/networkConfig.js.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.js +17 -6
- package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
- package/out/src/services/validateMerklePathResult.d.ts +4 -3
- package/out/src/services/validateMerklePathResult.d.ts.map +1 -1
- package/out/src/services/validateMerklePathResult.js +6 -6
- package/out/src/services/validateMerklePathResult.js.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js +3 -2
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
- package/out/src/signer/methods/createAction.d.ts +32 -1
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +56 -1
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/internalizeAction.js +1 -1
- package/out/src/signer/methods/internalizeAction.js.map +1 -1
- package/out/src/signer/methods/signAction.js +8 -1
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/storage/StorageIdb.js +4 -4
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +6 -5
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +321 -115
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +5 -0
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
- package/out/src/storage/adminServer/adminServer.js +41 -3
- package/out/src/storage/adminServer/adminServer.js.map +1 -1
- package/out/src/storage/index.all.d.ts +0 -1
- package/out/src/storage/index.all.d.ts.map +1 -1
- package/out/src/storage/index.all.js +0 -1
- package/out/src/storage/index.all.js.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +84 -0
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +7 -3
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts +5 -0
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +13 -6
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts +6 -0
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +10 -3
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts +8 -1
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +106 -42
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsKnex.js +1 -0
- package/out/src/storage/methods/listActionsKnex.js.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.js +2 -1
- package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
- package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -1
- package/out/src/storage/methods/noSendExpiry.js +14 -4
- package/out/src/storage/methods/noSendExpiry.js.map +1 -1
- package/out/src/storage/methods/purgeData.d.ts.map +1 -1
- package/out/src/storage/methods/purgeData.js +3 -0
- package/out/src/storage/methods/purgeData.js.map +1 -1
- package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
- package/out/src/storage/methods/reviewStatus.js +3 -0
- package/out/src/storage/methods/reviewStatus.js.map +1 -1
- package/out/src/storage/portable/index.js +12 -38
- package/out/src/storage/portable/index.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +15 -5
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts +4 -17
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +25 -23
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/remoting/syncChunkBinary.d.ts +10 -0
- package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -1
- package/out/src/storage/remoting/syncChunkBinary.js +15 -11
- package/out/src/storage/remoting/syncChunkBinary.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts +3 -7
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +86 -166
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/sync/liveSyncGuards.d.ts +11 -0
- package/out/src/storage/sync/liveSyncGuards.d.ts.map +1 -0
- package/out/src/storage/sync/liveSyncGuards.js +22 -0
- package/out/src/storage/sync/liveSyncGuards.js.map +1 -0
- package/out/src/utility/actionOutputAuthorizations.d.ts +10 -0
- package/out/src/utility/actionOutputAuthorizations.d.ts.map +1 -0
- package/out/src/utility/actionOutputAuthorizations.js +25 -0
- package/out/src/utility/actionOutputAuthorizations.js.map +1 -0
- package/out/src/utility/index.all.d.ts +1 -0
- package/out/src/utility/index.all.d.ts.map +1 -1
- package/out/src/utility/index.all.js +1 -0
- package/out/src/utility/index.all.js.map +1 -1
- package/out/src/utility/index.client.d.ts +1 -0
- package/out/src/utility/index.client.d.ts.map +1 -1
- package/out/src/utility/index.client.js +1 -0
- package/out/src/utility/index.client.js.map +1 -1
- package/out/src/utility/numericTotalOutputs.d.ts +7 -0
- package/out/src/utility/numericTotalOutputs.d.ts.map +1 -0
- package/out/src/utility/numericTotalOutputs.js +15 -0
- package/out/src/utility/numericTotalOutputs.js.map +1 -0
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +2 -0
- package/out/src/utility/utilityHelpers.js.map +1 -1
- package/package.json +19 -24
- package/out/src/storage/adminServer/reqReviewQuery.d.ts +0 -41
- package/out/src/storage/adminServer/reqReviewQuery.d.ts.map +0 -1
- package/out/src/storage/adminServer/reqReviewQuery.js +0 -67
- package/out/src/storage/adminServer/reqReviewQuery.js.map +0 -1
- package/out/src/storage/knexPostgres.d.ts +0 -16
- package/out/src/storage/knexPostgres.d.ts.map +0 -1
- package/out/src/storage/knexPostgres.js +0 -34
- package/out/src/storage/knexPostgres.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ValidCreateActionArgs, type ValidProcessActionArgs } from '@bsv/sdk/wallet/validationHelpers';
|
|
2
|
-
import { AtomicBEEF, CreateActionResult, OutpointString, SendWithResult, SignableTransaction, TXIDHexString } from '@bsv/sdk';
|
|
2
|
+
import { AtomicBEEF, Beef, CreateActionResult, OutpointString, SendWithResult, SignableTransaction, TXIDHexString } from '@bsv/sdk';
|
|
3
3
|
import { AuthId, ReviewActionResult, StorageProcessActionResults } from '../../sdk/WalletStorage.interfaces';
|
|
4
4
|
import { PendingSignAction, Wallet } from '../../Wallet';
|
|
5
5
|
export interface CreateActionResultX extends CreateActionResult {
|
|
@@ -11,5 +11,36 @@ export interface CreateActionResultX extends CreateActionResult {
|
|
|
11
11
|
notDelayedResults?: ReviewActionResult[];
|
|
12
12
|
}
|
|
13
13
|
export declare function createAction(wallet: Wallet, auth: AuthId, vargs: ValidCreateActionArgs): Promise<CreateActionResultX>;
|
|
14
|
+
/**
|
|
15
|
+
* Serialize the result BEEF, re-applying `options.knownTxids` on the way out.
|
|
16
|
+
*
|
|
17
|
+
* THE INVARIANT THIS PROTECTS: a declared ancestor may be omitted, but it must never be carried
|
|
18
|
+
* in full with its own ancestry missing. A recipient can skip an absent or txid-only ancestor and
|
|
19
|
+
* restore it from its own records; it can verify one carried complete. It can do neither with a
|
|
20
|
+
* transaction that is present, unproven, and whose input sources are gone -- that is neither
|
|
21
|
+
* provable nor marked as omitted.
|
|
22
|
+
*
|
|
23
|
+
* That third shape is reachable because the result BEEF is rebuilt after storage has already
|
|
24
|
+
* trimmed it: `result.mergeBeef(inputBeef)` then `result.mergeTransaction(prior.tx)`.
|
|
25
|
+
* `Beef.mergeTransactionGraph` merges every node it walks as a FULL entry, so wherever an input's
|
|
26
|
+
* `sourceTransaction` is populated, a trimmed ancestor is re-materialized whole -- and the walk
|
|
27
|
+
* then stops, because that source transaction does not carry its own sources.
|
|
28
|
+
*
|
|
29
|
+
* `verifyReturnedTxidOnlyAtomicBEEF` does not catch it: it asserts that every txid-only entry WAS
|
|
30
|
+
* declared, not that every declared entry IS omitted.
|
|
31
|
+
*
|
|
32
|
+
* Trimming a CLONE is deliberate. `Wallet.createAction` merges the result BEEF into the wallet's
|
|
33
|
+
* own retained BEEF (`this.beef.mergeBeefFromParty(...)`), which must keep the full ancestry for
|
|
34
|
+
* later actions. `Beef.clone` is shallow, but `makeTxidOnly` replaces the array slot rather than
|
|
35
|
+
* mutating the shared `BeefTx`, so the original is unaffected.
|
|
36
|
+
*
|
|
37
|
+
* Parameters:
|
|
38
|
+
* - `beef`: assembled result BEEF; left untouched
|
|
39
|
+
* - `txid`: subject transaction, the atomic root
|
|
40
|
+
* - `knownTxids`: ancestors the recipient has said it already holds
|
|
41
|
+
*
|
|
42
|
+
* Returns: AtomicBEEF with each declared ancestor reduced to a txid-only entry.
|
|
43
|
+
*/
|
|
44
|
+
export declare function serializeResultBeef(beef: Beef, txid: TXIDHexString, knownTxids?: string[]): AtomicBEEF;
|
|
14
45
|
export declare function processAction(prior: PendingSignAction | undefined, wallet: Wallet, auth: AuthId, vargs: ValidProcessActionArgs): Promise<StorageProcessActionResults>;
|
|
15
46
|
//# sourceMappingURL=createAction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAction.d.ts","sourceRoot":"","sources":["../../../../src/signer/methods/createAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"createAction.d.ts","sourceRoot":"","sources":["../../../../src/signer/methods/createAction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,UAAU,EACV,IAAI,EACJ,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,mBAAmB,EAEnB,aAAa,EAEd,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,MAAM,EACN,kBAAkB,EAElB,2BAA2B,EAC5B,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAMxD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;IAC/B,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CACzC;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CA0B9B;AA4HD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAYtG;AAqED,wBAAsB,aAAa,CACjC,KAAK,EAAE,iBAAiB,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,2BAA2B,CAAC,CAiBtC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createAction = createAction;
|
|
4
|
+
exports.serializeResultBeef = serializeResultBeef;
|
|
4
5
|
exports.processAction = processAction;
|
|
5
6
|
const sdk_1 = require("@bsv/sdk");
|
|
6
7
|
const buildSignableTransaction_1 = require("./buildSignableTransaction");
|
|
@@ -8,6 +9,7 @@ const completeSignedTransaction_1 = require("./completeSignedTransaction");
|
|
|
8
9
|
const WERR_errors_1 = require("../../sdk/WERR_errors");
|
|
9
10
|
const resultBeef_1 = require("./resultBeef");
|
|
10
11
|
const exactActionSpend_1 = require("../../utility/exactActionSpend");
|
|
12
|
+
const actionOutputAuthorizations_1 = require("../../utility/actionOutputAuthorizations");
|
|
11
13
|
async function createAction(wallet, auth, vargs) {
|
|
12
14
|
if (!wallet.telemetry.enabled)
|
|
13
15
|
return await createActionCore(wallet, auth, vargs);
|
|
@@ -65,7 +67,7 @@ async function createActionCore(wallet, auth, vargs, parent) {
|
|
|
65
67
|
beef.atomicTxid = r.txid;
|
|
66
68
|
(0, resultBeef_1.setResultBeef)(r, beef);
|
|
67
69
|
if (!vargs.options.returnTXIDOnly) {
|
|
68
|
-
r.tx = await traceActionStep(wallet, 'wallet.create_action.serialize_result_beef', parent, () => beef
|
|
70
|
+
r.tx = await traceActionStep(wallet, 'wallet.create_action.serialize_result_beef', parent, () => serializeResultBeef(beef, r.txid, vargs.options.knownTxids));
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
const { sendWithResults, notDelayedResults } = await traceActionStep(wallet, 'wallet.create_action.process', parent, async () => await processAction(prior, wallet, auth, vargs));
|
|
@@ -92,6 +94,51 @@ async function createNewTx(wallet, vargs, parent) {
|
|
|
92
94
|
const prior = { reference, dcr, args: vargs, amount, tx, pdi };
|
|
93
95
|
return prior;
|
|
94
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Serialize the result BEEF, re-applying `options.knownTxids` on the way out.
|
|
99
|
+
*
|
|
100
|
+
* THE INVARIANT THIS PROTECTS: a declared ancestor may be omitted, but it must never be carried
|
|
101
|
+
* in full with its own ancestry missing. A recipient can skip an absent or txid-only ancestor and
|
|
102
|
+
* restore it from its own records; it can verify one carried complete. It can do neither with a
|
|
103
|
+
* transaction that is present, unproven, and whose input sources are gone -- that is neither
|
|
104
|
+
* provable nor marked as omitted.
|
|
105
|
+
*
|
|
106
|
+
* That third shape is reachable because the result BEEF is rebuilt after storage has already
|
|
107
|
+
* trimmed it: `result.mergeBeef(inputBeef)` then `result.mergeTransaction(prior.tx)`.
|
|
108
|
+
* `Beef.mergeTransactionGraph` merges every node it walks as a FULL entry, so wherever an input's
|
|
109
|
+
* `sourceTransaction` is populated, a trimmed ancestor is re-materialized whole -- and the walk
|
|
110
|
+
* then stops, because that source transaction does not carry its own sources.
|
|
111
|
+
*
|
|
112
|
+
* `verifyReturnedTxidOnlyAtomicBEEF` does not catch it: it asserts that every txid-only entry WAS
|
|
113
|
+
* declared, not that every declared entry IS omitted.
|
|
114
|
+
*
|
|
115
|
+
* Trimming a CLONE is deliberate. `Wallet.createAction` merges the result BEEF into the wallet's
|
|
116
|
+
* own retained BEEF (`this.beef.mergeBeefFromParty(...)`), which must keep the full ancestry for
|
|
117
|
+
* later actions. `Beef.clone` is shallow, but `makeTxidOnly` replaces the array slot rather than
|
|
118
|
+
* mutating the shared `BeefTx`, so the original is unaffected.
|
|
119
|
+
*
|
|
120
|
+
* Parameters:
|
|
121
|
+
* - `beef`: assembled result BEEF; left untouched
|
|
122
|
+
* - `txid`: subject transaction, the atomic root
|
|
123
|
+
* - `knownTxids`: ancestors the recipient has said it already holds
|
|
124
|
+
*
|
|
125
|
+
* Returns: AtomicBEEF with each declared ancestor reduced to a txid-only entry.
|
|
126
|
+
*/
|
|
127
|
+
function serializeResultBeef(beef, txid, knownTxids) {
|
|
128
|
+
const known = knownTxids ?? [];
|
|
129
|
+
if (known.length === 0)
|
|
130
|
+
return beef.toBinaryAtomic(txid);
|
|
131
|
+
const trimmed = beef.clone();
|
|
132
|
+
trimmed.atomicTxid = beef.atomicTxid;
|
|
133
|
+
for (const knownTxid of known) {
|
|
134
|
+
// Never the subject: it is the transaction the recipient is being asked to verify.
|
|
135
|
+
if (knownTxid === txid)
|
|
136
|
+
continue;
|
|
137
|
+
if (trimmed.findTxid(knownTxid) != null)
|
|
138
|
+
trimmed.makeTxidOnly(knownTxid);
|
|
139
|
+
}
|
|
140
|
+
return trimmed.toBinaryAtomic(txid);
|
|
141
|
+
}
|
|
95
142
|
function makeSignableTransactionResult(prior, wallet, args) {
|
|
96
143
|
if (prior.dcr.inputBeef == null)
|
|
97
144
|
throw new WERR_errors_1.WERR_INTERNAL('prior.dcr.inputBeef must be valid');
|
|
@@ -104,6 +151,14 @@ function makeSignableTransactionResult(prior, wallet, args) {
|
|
|
104
151
|
}
|
|
105
152
|
};
|
|
106
153
|
(0, exactActionSpend_1.setExactActionSpend)(r, prior.amount);
|
|
154
|
+
// buildSignableTransaction has independently validated the requested outputs,
|
|
155
|
+
// bounded commission and client-derived change. Carry that local decision to
|
|
156
|
+
// completion without treating remotely serialized metadata as authority.
|
|
157
|
+
(0, actionOutputAuthorizations_1.setActionOutputAuthorizations)(r, prior.dcr.outputs.slice(args.outputs.length).map(output => ({
|
|
158
|
+
outputIndex: output.vout,
|
|
159
|
+
lockingScript: prior.tx.outputs[output.vout].lockingScript.toHex(),
|
|
160
|
+
satoshis: prior.tx.outputs[output.vout].satoshis
|
|
161
|
+
})));
|
|
107
162
|
wallet.pendingSignActions[r.signableTransaction.reference] = prior;
|
|
108
163
|
return r;
|
|
109
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAction.js","sourceRoot":"","sources":["../../../../src/signer/methods/createAction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createAction.js","sourceRoot":"","sources":["../../../../src/signer/methods/createAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,7 @@ async function internalizeAction(wallet, auth, args) {
|
|
|
64
64
|
}
|
|
65
65
|
const r = await wallet.storage.internalizeAction({
|
|
66
66
|
...args,
|
|
67
|
-
tx: ab.
|
|
67
|
+
tx: ab.toUint8ArrayAtomic(txid)
|
|
68
68
|
});
|
|
69
69
|
return r;
|
|
70
70
|
function setupWalletPaymentForOutput(o, _dargs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalizeAction.js","sourceRoot":"","sources":["../../../../src/signer/methods/internalizeAction.ts"],"names":[],"mappings":";;;AAAA,yEAAkH;AAClH,kCAA0F;AAG1F,uDAA6E;AAC7E,iFAA6E;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACI,KAAK,4BACV,MAAc,EACd,IAAY,EACZ,IAA2B;IAE3B,MAAM,KAAK,GAAG,IAAA,iDAA6B,EAAC,IAAI,CAAC,CAAA;IAEjD,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,EAAE,CAAA;IACnD,MAAM,eAAe,GAAmB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAE3D,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5D,MAAM,IAAI,oCAAsB,CAAC,aAAa,EAAE,sCAAsC,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QAChH,CAAC;QACD,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,kBAAkB;gBACrB,6BAA6B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBACvC,MAAK;YACP,KAAK,gBAAgB;gBACnB,2BAA2B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBACrC,MAAK;YACP;gBACE,MAAM,IAAI,2BAAa,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAmC,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAC/E,GAAG,IAAI;QACP,EAAE,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"internalizeAction.js","sourceRoot":"","sources":["../../../../src/signer/methods/internalizeAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,14 @@ async function signActionCore(wallet, auth, args, parent) {
|
|
|
42
42
|
await traceSignActionStep(wallet, 'wallet.sign_action.verify_unlock_scripts', parent, async () => await (0, completeSignedTransaction_1.verifyUnlockScripts)(txid, beef, wallet.scriptVerifier));
|
|
43
43
|
const r = {
|
|
44
44
|
txid: prior.tx.id('hex'),
|
|
45
|
-
|
|
45
|
+
// knownTxids lives on the ORIGINAL createAction args: mergePriorOptions does not carry it
|
|
46
|
+
// across, and ValidSignActionArgs has no field for it. Without this the declaration is
|
|
47
|
+
// honoured when createAction returns the transaction and silently dropped when signAction
|
|
48
|
+
// does -- and signAction is the path a wallet takes whenever the user approves a payment
|
|
49
|
+
// before it is signed, which is every BRC-105 payment made from an interactive wallet.
|
|
50
|
+
tx: vargs.options.returnTXIDOnly
|
|
51
|
+
? undefined
|
|
52
|
+
: (0, createAction_1.serializeResultBeef)(beef, txid, prior.args.options.knownTxids),
|
|
46
53
|
sendWithResults,
|
|
47
54
|
notDelayedResults
|
|
48
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signAction.js","sourceRoot":"","sources":["../../../../src/signer/methods/signAction.ts"],"names":[],"mappings":";;;AAAA,yEAI0C;AAC1C,kCAQiB;AACjB,
|
|
1
|
+
{"version":3,"file":"signAction.js","sourceRoot":"","sources":["../../../../src/signer/methods/signAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -505,7 +505,7 @@ class StorageIdb extends StorageProvider_1.StorageProvider {
|
|
|
505
505
|
cursor = await store.openCursor();
|
|
506
506
|
}
|
|
507
507
|
await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, async (r) => {
|
|
508
|
-
if (args.tagIds != null && !args.tagIds.includes(r.outputTagId))
|
|
508
|
+
if (args.tagIds != null && args.tagIds.length > 0 && !args.tagIds.includes(r.outputTagId))
|
|
509
509
|
return false;
|
|
510
510
|
if (!(0, idbHelpers_1.matchesOutputTagMapPartial)(r, args.partial))
|
|
511
511
|
return false;
|
|
@@ -1375,9 +1375,9 @@ class StorageIdb extends StorageProvider_1.StorageProvider {
|
|
|
1375
1375
|
const store = dbTrx.objectStore('certificates');
|
|
1376
1376
|
const cursor = await this.openCertificatesCursor(store, args.partial);
|
|
1377
1377
|
await scanCursor(cursor, args.since, args.paged?.offset ?? 0, args.paged?.limit, r => {
|
|
1378
|
-
if (args.certifiers != null && !args.certifiers.includes(r.certifier))
|
|
1378
|
+
if (args.certifiers != null && args.certifiers.length > 0 && !args.certifiers.includes(r.certifier))
|
|
1379
1379
|
return false;
|
|
1380
|
-
if (args.types != null && !args.types.includes(r.type))
|
|
1380
|
+
if (args.types != null && args.types.length > 0 && !args.types.includes(r.type))
|
|
1381
1381
|
return false;
|
|
1382
1382
|
return (0, idbHelpers_1.matchesCertificatePartial)(r, args.partial);
|
|
1383
1383
|
}, filtered);
|
|
@@ -1708,7 +1708,7 @@ class StorageIdb extends StorageProvider_1.StorageProvider {
|
|
|
1708
1708
|
return false;
|
|
1709
1709
|
if (args.to != null && r.created_at.getTime() >= args.to.getTime())
|
|
1710
1710
|
return false;
|
|
1711
|
-
if (args.status != null && !args.status.includes(r.status))
|
|
1711
|
+
if (args.status != null && args.status.length > 0 && !args.status.includes(r.status))
|
|
1712
1712
|
return false;
|
|
1713
1713
|
if (!(0, idbHelpers_1.matchesTransactionPartial)(r, args.partial))
|
|
1714
1714
|
return false;
|