@bsv/wallet-toolbox 1.3.8 → 1.3.9

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.
Files changed (48) hide show
  1. package/docs/client.md +1360 -133
  2. package/docs/storage.md +14 -10
  3. package/docs/wallet.md +1346 -119
  4. package/out/src/Wallet.js.map +1 -1
  5. package/out/src/index.client.d.ts +2 -0
  6. package/out/src/index.client.d.ts.map +1 -1
  7. package/out/src/index.client.js +2 -0
  8. package/out/src/index.client.js.map +1 -1
  9. package/out/src/sdk/WalletStorage.interfaces.d.ts +14 -0
  10. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  11. package/out/src/storage/StorageIdb.d.ts +5 -1
  12. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  13. package/out/src/storage/StorageIdb.js +7 -3
  14. package/out/src/storage/StorageIdb.js.map +1 -1
  15. package/out/src/storage/WalletStorageManager.d.ts +1 -0
  16. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  17. package/out/src/storage/WalletStorageManager.js +40 -0
  18. package/out/src/storage/WalletStorageManager.js.map +1 -1
  19. package/out/src/storage/__test/adminStats.man.test.js.map +1 -1
  20. package/out/src/storage/index.all.d.ts +1 -0
  21. package/out/src/storage/index.all.d.ts.map +1 -1
  22. package/out/src/storage/index.all.js +1 -0
  23. package/out/src/storage/index.all.js.map +1 -1
  24. package/out/src/storage/index.client.d.ts +1 -0
  25. package/out/src/storage/index.client.d.ts.map +1 -1
  26. package/out/src/storage/index.client.js +1 -0
  27. package/out/src/storage/index.client.js.map +1 -1
  28. package/out/test/Wallet/local/localWallet2.man.test.js +58 -38
  29. package/out/test/Wallet/local/localWallet2.man.test.js.map +1 -1
  30. package/out/test/Wallet/support/operations.man.test.js +5 -3
  31. package/out/test/Wallet/support/operations.man.test.js.map +1 -1
  32. package/out/test/utils/localWalletMethods.d.ts +7 -2
  33. package/out/test/utils/localWalletMethods.d.ts.map +1 -1
  34. package/out/test/utils/localWalletMethods.js +19 -0
  35. package/out/test/utils/localWalletMethods.js.map +1 -1
  36. package/out/tsconfig.all.tsbuildinfo +1 -1
  37. package/package.json +1 -1
  38. package/src/Wallet.ts +2 -2
  39. package/src/index.client.ts +2 -0
  40. package/src/sdk/WalletStorage.interfaces.ts +16 -0
  41. package/src/storage/StorageIdb.ts +8 -4
  42. package/src/storage/WalletStorageManager.ts +41 -0
  43. package/src/storage/__test/adminStats.man.test.ts +8 -8
  44. package/src/storage/index.all.ts +1 -0
  45. package/src/storage/index.client.ts +1 -0
  46. package/test/Wallet/local/localWallet2.man.test.ts +66 -42
  47. package/test/Wallet/support/operations.man.test.ts +5 -3
  48. package/test/utils/localWalletMethods.ts +34 -2
package/docs/wallet.md CHANGED
@@ -13,65 +13,69 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
13
13
 
14
14
  | | | |
15
15
  | --- | --- | --- |
16
- | [ArcConfig](#interface-arcconfig) | [Paged](#interface-paged) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
17
- | [ArcMinerGetTxData](#interface-arcminergettxdata) | [PendingSignAction](#interface-pendingsignaction) | [TableSettings](#interface-tablesettings) |
18
- | [AuthId](#interface-authid) | [PendingStorageInput](#interface-pendingstorageinput) | [TableSyncState](#interface-tablesyncstate) |
19
- | [AuthPayload](#interface-authpayload) | [PermissionRequest](#interface-permissionrequest) | [TableTransaction](#interface-tabletransaction) |
20
- | [BaseBlockHeader](#interface-baseblockheader) | [PermissionToken](#interface-permissiontoken) | [TableTxLabel](#interface-tabletxlabel) |
21
- | [BaseBlockHeader](#interface-baseblockheader) | [PermissionsManagerConfig](#interface-permissionsmanagerconfig) | [TableTxLabelMap](#interface-tabletxlabelmap) |
22
- | [BitailsConfig](#interface-bitailsconfig) | [PostBeefResult](#interface-postbeefresult) | [TableUser](#interface-tableuser) |
23
- | [BitailsMerkleProof](#interface-bitailsmerkleproof) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TaskPurgeParams](#interface-taskpurgeparams) |
24
- | [BlockHeader](#interface-blockheader) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TrustSettings](#interface-trustsettings) |
25
- | [BlockHeader](#interface-blockheader) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TrxToken](#interface-trxtoken) |
26
- | [BsvExchangeRate](#interface-bsvexchangerate) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
27
- | [CertOpsWallet](#interface-certopswallet) | [PostTxResultForTxidError](#interface-posttxresultfortxiderror) | [TxScriptOffsets](#interface-txscriptoffsets) |
28
- | [Certifier](#interface-certifier) | [PostTxsResult](#interface-posttxsresult) | [UMPToken](#interface-umptoken) |
29
- | [CommitNewTxResults](#interface-commitnewtxresults) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [UMPTokenInteractor](#interface-umptokeninteractor) |
30
- | [CompleteAuthResponse](#interface-completeauthresponse) | [Profile](#interface-profile) | [UpdateProvenTxReqWithNewProvenTxArgs](#interface-updateproventxreqwithnewproventxargs) |
31
- | [CreateActionResultX](#interface-createactionresultx) | [ProvenOrRawTx](#interface-provenorrawtx) | [UpdateProvenTxReqWithNewProvenTxResult](#interface-updateproventxreqwithnewproventxresult) |
32
- | [EntitySyncMap](#interface-entitysyncmap) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [ValidAbortActionArgs](#interface-validabortactionargs) |
33
- | [EntityTimeStamp](#interface-entitytimestamp) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [ValidAcquireCertificateArgs](#interface-validacquirecertificateargs) |
34
- | [ExchangeRatesIoApi](#interface-exchangeratesioapi) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [ValidAcquireDirectCertificateArgs](#interface-validacquiredirectcertificateargs) |
35
- | [ExtendedVerifiableCertificate](#interface-extendedverifiablecertificate) | [ProvenTxReqNotify](#interface-proventxreqnotify) | [ValidAcquireIssuanceCertificateArgs](#interface-validacquireissuancecertificateargs) |
36
- | [FiatExchangeRates](#interface-fiatexchangerates) | [PurgeParams](#interface-purgeparams) | [ValidBasketInsertion](#interface-validbasketinsertion) |
37
- | [FindCertificateFieldsArgs](#interface-findcertificatefieldsargs) | [PurgeResults](#interface-purgeresults) | [ValidCreateActionArgs](#interface-validcreateactionargs) |
38
- | [FindCertificatesArgs](#interface-findcertificatesargs) | [RequestSyncChunkArgs](#interface-requestsyncchunkargs) | [ValidCreateActionInput](#interface-validcreateactioninput) |
39
- | [FindCommissionsArgs](#interface-findcommissionsargs) | [ReviewActionResult](#interface-reviewactionresult) | [ValidCreateActionOptions](#interface-validcreateactionoptions) |
40
- | [FindForUserSincePagedArgs](#interface-findforusersincepagedargs) | [ScriptTemplateParamsBRC29](#interface-scripttemplateparamsbrc29) | [ValidCreateActionOutput](#interface-validcreateactionoutput) |
41
- | [FindMonitorEventsArgs](#interface-findmonitoreventsargs) | [ScriptTemplateUnlock](#interface-scripttemplateunlock) | [ValidDiscoverByAttributesArgs](#interface-validdiscoverbyattributesargs) |
42
- | [FindOutputBasketsArgs](#interface-findoutputbasketsargs) | [SignActionResultX](#interface-signactionresultx) | [ValidDiscoverByIdentityKeyArgs](#interface-validdiscoverbyidentitykeyargs) |
43
- | [FindOutputTagMapsArgs](#interface-findoutputtagmapsargs) | [StartAuthResponse](#interface-startauthresponse) | [ValidInternalizeActionArgs](#interface-validinternalizeactionargs) |
44
- | [FindOutputTagsArgs](#interface-findoutputtagsargs) | [StatusForTxidResult](#interface-statusfortxidresult) | [ValidInternalizeOutput](#interface-validinternalizeoutput) |
45
- | [FindOutputsArgs](#interface-findoutputsargs) | [StorageAdminStats](#interface-storageadminstats) | [ValidListActionsArgs](#interface-validlistactionsargs) |
46
- | [FindPartialSincePagedArgs](#interface-findpartialsincepagedargs) | [StorageCreateActionResult](#interface-storagecreateactionresult) | [ValidListCertificatesArgs](#interface-validlistcertificatesargs) |
47
- | [FindProvenTxReqsArgs](#interface-findproventxreqsargs) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) | [ValidListOutputsArgs](#interface-validlistoutputsargs) |
48
- | [FindProvenTxsArgs](#interface-findproventxsargs) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) | [ValidProcessActionArgs](#interface-validprocessactionargs) |
49
- | [FindSincePagedArgs](#interface-findsincepagedargs) | [StorageFeeModel](#interface-storagefeemodel) | [ValidProcessActionOptions](#interface-validprocessactionoptions) |
50
- | [FindSyncStatesArgs](#interface-findsyncstatesargs) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) | [ValidProveCertificateArgs](#interface-validprovecertificateargs) |
51
- | [FindTransactionsArgs](#interface-findtransactionsargs) | [StorageIdentity](#interface-storageidentity) | [ValidRelinquishCertificateArgs](#interface-validrelinquishcertificateargs) |
52
- | [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) | [ValidRelinquishOutputArgs](#interface-validrelinquishoutputargs) |
53
- | [FindTxLabelsArgs](#interface-findtxlabelsargs) | [StorageProcessActionArgs](#interface-storageprocessactionargs) | [ValidSignActionArgs](#interface-validsignactionargs) |
54
- | [FindUsersArgs](#interface-findusersargs) | [StorageProcessActionResults](#interface-storageprocessactionresults) | [ValidSignActionOptions](#interface-validsignactionoptions) |
55
- | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageProvenOrReq](#interface-storageprovenorreq) | [ValidWalletPayment](#interface-validwalletpayment) |
56
- | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageProviderOptions](#interface-storageprovideroptions) | [ValidWalletSignerArgs](#interface-validwalletsignerargs) |
57
- | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageReaderOptions](#interface-storagereaderoptions) | [ValidateGenerateChangeSdkParamsResult](#interface-validategeneratechangesdkparamsresult) |
58
- | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) | [WalletArgs](#interface-walletargs) |
59
- | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) | [WalletBalance](#interface-walletbalance) |
60
- | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [SyncChunk](#interface-syncchunk) | [WalletPermissionsManagerCallbacks](#interface-walletpermissionsmanagercallbacks) |
61
- | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [SyncError](#interface-syncerror) | [WalletServices](#interface-walletservices) |
62
- | [GetMerklePathResult](#interface-getmerklepathresult) | [SyncMap](#interface-syncmap) | [WalletServicesOptions](#interface-walletservicesoptions) |
63
- | [GetRawTxResult](#interface-getrawtxresult) | [TableCertificate](#interface-tablecertificate) | [WalletSettings](#interface-walletsettings) |
64
- | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [TableCertificateField](#interface-tablecertificatefield) | [WalletSettingsManagerConfig](#interface-walletsettingsmanagerconfig) |
65
- | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [TableCertificateX](#interface-tablecertificatex) | [WalletSigner](#interface-walletsigner) |
66
- | [GetScriptHashHistory](#interface-getscripthashhistory) | [TableCommission](#interface-tablecommission) | [WalletStorage](#interface-walletstorage) |
67
- | [GetScriptHashHistoryResult](#interface-getscripthashhistoryresult) | [TableMonitorEvent](#interface-tablemonitorevent) | [WalletStorageProvider](#interface-walletstorageprovider) |
68
- | [GetStatusForTxidsResult](#interface-getstatusfortxidsresult) | [TableOutput](#interface-tableoutput) | [WalletStorageReader](#interface-walletstoragereader) |
69
- | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [TableOutputBasket](#interface-tableoutputbasket) | [WalletStorageSync](#interface-walletstoragesync) |
70
- | [GetUtxoStatusResult](#interface-getutxostatusresult) | [TableOutputTag](#interface-tableoutputtag) | [WalletStorageSyncReader](#interface-walletstoragesyncreader) |
71
- | [KeyPair](#interface-keypair) | [TableOutputTagMap](#interface-tableoutputtagmap) | [WalletStorageWriter](#interface-walletstoragewriter) |
72
- | [LiveBlockHeader](#interface-liveblockheader) | [TableOutputX](#interface-tableoutputx) | [WalletTheme](#interface-wallettheme) |
73
- | [MonitorOptions](#interface-monitoroptions) | [TableProvenTx](#interface-tableproventx) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
74
- | [OutPoint](#interface-outpoint) | [TableProvenTxReq](#interface-tableproventxreq) | |
16
+ | [ArcConfig](#interface-arcconfig) | [PendingSignAction](#interface-pendingsignaction) | [TableOutputX](#interface-tableoutputx) |
17
+ | [ArcMinerGetTxData](#interface-arcminergettxdata) | [PendingStorageInput](#interface-pendingstorageinput) | [TableProvenTx](#interface-tableproventx) |
18
+ | [AuthId](#interface-authid) | [PermissionRequest](#interface-permissionrequest) | [TableProvenTxReq](#interface-tableproventxreq) |
19
+ | [AuthPayload](#interface-authpayload) | [PermissionToken](#interface-permissiontoken) | [TableProvenTxReqDynamics](#interface-tableproventxreqdynamics) |
20
+ | [BaseBlockHeader](#interface-baseblockheader) | [PermissionsManagerConfig](#interface-permissionsmanagerconfig) | [TableSettings](#interface-tablesettings) |
21
+ | [BaseBlockHeader](#interface-baseblockheader) | [PostBeefResult](#interface-postbeefresult) | [TableSyncState](#interface-tablesyncstate) |
22
+ | [BitailsConfig](#interface-bitailsconfig) | [PostBeefResultForTxidApi](#interface-postbeefresultfortxidapi) | [TableTransaction](#interface-tabletransaction) |
23
+ | [BitailsMerkleProof](#interface-bitailsmerkleproof) | [PostReqsToNetworkDetails](#interface-postreqstonetworkdetails) | [TableTxLabel](#interface-tabletxlabel) |
24
+ | [BlockHeader](#interface-blockheader) | [PostReqsToNetworkResult](#interface-postreqstonetworkresult) | [TableTxLabelMap](#interface-tabletxlabelmap) |
25
+ | [BlockHeader](#interface-blockheader) | [PostTxResultForTxid](#interface-posttxresultfortxid) | [TableUser](#interface-tableuser) |
26
+ | [BsvExchangeRate](#interface-bsvexchangerate) | [PostTxResultForTxidError](#interface-posttxresultfortxiderror) | [TaskPurgeParams](#interface-taskpurgeparams) |
27
+ | [CertOpsWallet](#interface-certopswallet) | [PostTxsResult](#interface-posttxsresult) | [TrustSettings](#interface-trustsettings) |
28
+ | [Certifier](#interface-certifier) | [ProcessSyncChunkResult](#interface-processsyncchunkresult) | [TrxToken](#interface-trxtoken) |
29
+ | [CommitNewTxResults](#interface-commitnewtxresults) | [Profile](#interface-profile) | [TscMerkleProofApi](#interface-tscmerkleproofapi) |
30
+ | [CompleteAuthResponse](#interface-completeauthresponse) | [ProvenOrRawTx](#interface-provenorrawtx) | [TxScriptOffsets](#interface-txscriptoffsets) |
31
+ | [CreateActionResultX](#interface-createactionresultx) | [ProvenTxFromTxidResult](#interface-proventxfromtxidresult) | [UMPToken](#interface-umptoken) |
32
+ | [EntitySyncMap](#interface-entitysyncmap) | [ProvenTxReqHistory](#interface-proventxreqhistory) | [UMPTokenInteractor](#interface-umptokeninteractor) |
33
+ | [EntityTimeStamp](#interface-entitytimestamp) | [ProvenTxReqHistorySummaryApi](#interface-proventxreqhistorysummaryapi) | [UpdateProvenTxReqWithNewProvenTxArgs](#interface-updateproventxreqwithnewproventxargs) |
34
+ | [ExchangeRatesIoApi](#interface-exchangeratesioapi) | [ProvenTxReqNotify](#interface-proventxreqnotify) | [UpdateProvenTxReqWithNewProvenTxResult](#interface-updateproventxreqwithnewproventxresult) |
35
+ | [ExtendedVerifiableCertificate](#interface-extendedverifiablecertificate) | [PurgeParams](#interface-purgeparams) | [ValidAbortActionArgs](#interface-validabortactionargs) |
36
+ | [FiatExchangeRates](#interface-fiatexchangerates) | [PurgeResults](#interface-purgeresults) | [ValidAcquireCertificateArgs](#interface-validacquirecertificateargs) |
37
+ | [FindCertificateFieldsArgs](#interface-findcertificatefieldsargs) | [RequestSyncChunkArgs](#interface-requestsyncchunkargs) | [ValidAcquireDirectCertificateArgs](#interface-validacquiredirectcertificateargs) |
38
+ | [FindCertificatesArgs](#interface-findcertificatesargs) | [ReviewActionResult](#interface-reviewactionresult) | [ValidAcquireIssuanceCertificateArgs](#interface-validacquireissuancecertificateargs) |
39
+ | [FindCommissionsArgs](#interface-findcommissionsargs) | [ScriptTemplateParamsBRC29](#interface-scripttemplateparamsbrc29) | [ValidBasketInsertion](#interface-validbasketinsertion) |
40
+ | [FindForUserSincePagedArgs](#interface-findforusersincepagedargs) | [ScriptTemplateUnlock](#interface-scripttemplateunlock) | [ValidCreateActionArgs](#interface-validcreateactionargs) |
41
+ | [FindMonitorEventsArgs](#interface-findmonitoreventsargs) | [SetupClientWalletArgs](#interface-setupclientwalletargs) | [ValidCreateActionInput](#interface-validcreateactioninput) |
42
+ | [FindOutputBasketsArgs](#interface-findoutputbasketsargs) | [SetupClientWalletClientArgs](#interface-setupclientwalletclientargs) | [ValidCreateActionOptions](#interface-validcreateactionoptions) |
43
+ | [FindOutputTagMapsArgs](#interface-findoutputtagmapsargs) | [SetupWallet](#interface-setupwallet) | [ValidCreateActionOutput](#interface-validcreateactionoutput) |
44
+ | [FindOutputTagsArgs](#interface-findoutputtagsargs) | [SetupWalletClient](#interface-setupwalletclient) | [ValidDiscoverByAttributesArgs](#interface-validdiscoverbyattributesargs) |
45
+ | [FindOutputsArgs](#interface-findoutputsargs) | [SetupWalletIdb](#interface-setupwalletidb) | [ValidDiscoverByIdentityKeyArgs](#interface-validdiscoverbyidentitykeyargs) |
46
+ | [FindPartialSincePagedArgs](#interface-findpartialsincepagedargs) | [SetupWalletIdbArgs](#interface-setupwalletidbargs) | [ValidInternalizeActionArgs](#interface-validinternalizeactionargs) |
47
+ | [FindProvenTxReqsArgs](#interface-findproventxreqsargs) | [SignActionResultX](#interface-signactionresultx) | [ValidInternalizeOutput](#interface-validinternalizeoutput) |
48
+ | [FindProvenTxsArgs](#interface-findproventxsargs) | [StartAuthResponse](#interface-startauthresponse) | [ValidListActionsArgs](#interface-validlistactionsargs) |
49
+ | [FindSincePagedArgs](#interface-findsincepagedargs) | [StatusForTxidResult](#interface-statusfortxidresult) | [ValidListCertificatesArgs](#interface-validlistcertificatesargs) |
50
+ | [FindSyncStatesArgs](#interface-findsyncstatesargs) | [StorageAdminStats](#interface-storageadminstats) | [ValidListOutputsArgs](#interface-validlistoutputsargs) |
51
+ | [FindTransactionsArgs](#interface-findtransactionsargs) | [StorageCreateActionResult](#interface-storagecreateactionresult) | [ValidProcessActionArgs](#interface-validprocessactionargs) |
52
+ | [FindTxLabelMapsArgs](#interface-findtxlabelmapsargs) | [StorageCreateTransactionSdkInput](#interface-storagecreatetransactionsdkinput) | [ValidProcessActionOptions](#interface-validprocessactionoptions) |
53
+ | [FindTxLabelsArgs](#interface-findtxlabelsargs) | [StorageCreateTransactionSdkOutput](#interface-storagecreatetransactionsdkoutput) | [ValidProveCertificateArgs](#interface-validprovecertificateargs) |
54
+ | [FindUsersArgs](#interface-findusersargs) | [StorageFeeModel](#interface-storagefeemodel) | [ValidRelinquishCertificateArgs](#interface-validrelinquishcertificateargs) |
55
+ | [GenerateChangeSdkChangeInput](#interface-generatechangesdkchangeinput) | [StorageGetBeefOptions](#interface-storagegetbeefoptions) | [ValidRelinquishOutputArgs](#interface-validrelinquishoutputargs) |
56
+ | [GenerateChangeSdkChangeOutput](#interface-generatechangesdkchangeoutput) | [StorageIdbOptions](#interface-storageidboptions) | [ValidSignActionArgs](#interface-validsignactionargs) |
57
+ | [GenerateChangeSdkInput](#interface-generatechangesdkinput) | [StorageIdbSchema](#interface-storageidbschema) | [ValidSignActionOptions](#interface-validsignactionoptions) |
58
+ | [GenerateChangeSdkOutput](#interface-generatechangesdkoutput) | [StorageIdentity](#interface-storageidentity) | [ValidWalletPayment](#interface-validwalletpayment) |
59
+ | [GenerateChangeSdkParams](#interface-generatechangesdkparams) | [StorageInternalizeActionResult](#interface-storageinternalizeactionresult) | [ValidWalletSignerArgs](#interface-validwalletsignerargs) |
60
+ | [GenerateChangeSdkResult](#interface-generatechangesdkresult) | [StorageProcessActionArgs](#interface-storageprocessactionargs) | [ValidateGenerateChangeSdkParamsResult](#interface-validategeneratechangesdkparamsresult) |
61
+ | [GenerateChangeSdkStorageChange](#interface-generatechangesdkstoragechange) | [StorageProcessActionResults](#interface-storageprocessactionresults) | [WalletArgs](#interface-walletargs) |
62
+ | [GetMerklePathResult](#interface-getmerklepathresult) | [StorageProvenOrReq](#interface-storageprovenorreq) | [WalletBalance](#interface-walletbalance) |
63
+ | [GetRawTxResult](#interface-getrawtxresult) | [StorageProviderOptions](#interface-storageprovideroptions) | [WalletPermissionsManagerCallbacks](#interface-walletpermissionsmanagercallbacks) |
64
+ | [GetReqsAndBeefDetail](#interface-getreqsandbeefdetail) | [StorageReaderOptions](#interface-storagereaderoptions) | [WalletServices](#interface-walletservices) |
65
+ | [GetReqsAndBeefResult](#interface-getreqsandbeefresult) | [StorageReaderWriterOptions](#interface-storagereaderwriteroptions) | [WalletServicesOptions](#interface-walletservicesoptions) |
66
+ | [GetScriptHashHistory](#interface-getscripthashhistory) | [StorageSyncReaderOptions](#interface-storagesyncreaderoptions) | [WalletSettings](#interface-walletsettings) |
67
+ | [GetScriptHashHistoryResult](#interface-getscripthashhistoryresult) | [SyncChunk](#interface-syncchunk) | [WalletSettingsManagerConfig](#interface-walletsettingsmanagerconfig) |
68
+ | [GetStatusForTxidsResult](#interface-getstatusfortxidsresult) | [SyncError](#interface-syncerror) | [WalletSigner](#interface-walletsigner) |
69
+ | [GetUtxoStatusDetails](#interface-getutxostatusdetails) | [SyncMap](#interface-syncmap) | [WalletStorage](#interface-walletstorage) |
70
+ | [GetUtxoStatusResult](#interface-getutxostatusresult) | [TableCertificate](#interface-tablecertificate) | [WalletStorageInfo](#interface-walletstorageinfo) |
71
+ | [KeyPair](#interface-keypair) | [TableCertificateField](#interface-tablecertificatefield) | [WalletStorageProvider](#interface-walletstorageprovider) |
72
+ | [KeyPairAddress](#interface-keypairaddress) | [TableCertificateX](#interface-tablecertificatex) | [WalletStorageReader](#interface-walletstoragereader) |
73
+ | [ListActionsSpecOp](#interface-listactionsspecop) | [TableCommission](#interface-tablecommission) | [WalletStorageSync](#interface-walletstoragesync) |
74
+ | [ListOutputsSpecOp](#interface-listoutputsspecop) | [TableMonitorEvent](#interface-tablemonitorevent) | [WalletStorageSyncReader](#interface-walletstoragesyncreader) |
75
+ | [LiveBlockHeader](#interface-liveblockheader) | [TableOutput](#interface-tableoutput) | [WalletStorageWriter](#interface-walletstoragewriter) |
76
+ | [MonitorOptions](#interface-monitoroptions) | [TableOutputBasket](#interface-tableoutputbasket) | [WalletTheme](#interface-wallettheme) |
77
+ | [OutPoint](#interface-outpoint) | [TableOutputTag](#interface-tableoutputtag) | [XValidCreateActionOutput](#interface-xvalidcreateactionoutput) |
78
+ | [Paged](#interface-paged) | [TableOutputTagMap](#interface-tableoutputtagmap) | |
75
79
 
76
80
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
77
81
 
@@ -1369,6 +1373,85 @@ export interface KeyPair {
1369
1373
 
1370
1374
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1371
1375
 
1376
+ ---
1377
+ ##### Interface: KeyPairAddress
1378
+
1379
+ ```ts
1380
+ export interface KeyPairAddress {
1381
+ privateKey: PrivateKey;
1382
+ publicKey: PublicKey;
1383
+ address: string;
1384
+ }
1385
+ ```
1386
+
1387
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1388
+
1389
+ ---
1390
+ ##### Interface: ListActionsSpecOp
1391
+
1392
+ ```ts
1393
+ export interface ListActionsSpecOp {
1394
+ name: string;
1395
+ labelsToIntercept?: string[];
1396
+ setStatusFilter?: () => sdk.TransactionStatus[];
1397
+ postProcess?: (s: StorageProvider, auth: sdk.AuthId, vargs: sdk.ValidListActionsArgs, specOpLabels: string[], txs: Partial<TableTransaction>[]) => Promise<void>;
1398
+ }
1399
+ ```
1400
+
1401
+ See also: [AuthId](./client.md#interface-authid), [StorageProvider](./storage.md#class-storageprovider), [TableTransaction](./storage.md#interface-tabletransaction), [TransactionStatus](./client.md#type-transactionstatus), [ValidListActionsArgs](./client.md#interface-validlistactionsargs)
1402
+
1403
+ ###### Property labelsToIntercept
1404
+
1405
+ undefined to intercept no labels from vargs,
1406
+ empty array to intercept all labels,
1407
+ or an explicit array of labels to intercept.
1408
+
1409
+ ```ts
1410
+ labelsToIntercept?: string[]
1411
+ ```
1412
+
1413
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1414
+
1415
+ ---
1416
+ ##### Interface: ListOutputsSpecOp
1417
+
1418
+ ```ts
1419
+ export interface ListOutputsSpecOp {
1420
+ name: string;
1421
+ useBasket?: string;
1422
+ ignoreLimit?: boolean;
1423
+ includeOutputScripts?: boolean;
1424
+ includeSpent?: boolean;
1425
+ resultFromTags?: (s: StorageProvider, auth: sdk.AuthId, vargs: ValidListOutputsArgs, specOpTags: string[]) => Promise<ListOutputsResult>;
1426
+ resultFromOutputs?: (s: StorageProvider, auth: sdk.AuthId, vargs: ValidListOutputsArgs, specOpTags: string[], outputs: TableOutput[]) => Promise<ListOutputsResult>;
1427
+ filterOutputs?: (s: StorageProvider, auth: sdk.AuthId, vargs: ValidListOutputsArgs, specOpTags: string[], outputs: TableOutput[]) => Promise<TableOutput[]>;
1428
+ tagsToIntercept?: string[];
1429
+ tagsParamsCount?: number;
1430
+ }
1431
+ ```
1432
+
1433
+ See also: [AuthId](./client.md#interface-authid), [StorageProvider](./storage.md#class-storageprovider), [TableOutput](./storage.md#interface-tableoutput), [ValidListOutputsArgs](./client.md#interface-validlistoutputsargs)
1434
+
1435
+ ###### Property tagsParamsCount
1436
+
1437
+ How many positional tags to intercept.
1438
+
1439
+ ```ts
1440
+ tagsParamsCount?: number
1441
+ ```
1442
+
1443
+ ###### Property tagsToIntercept
1444
+
1445
+ undefined to intercept no tags from vargs,
1446
+ empty array to intercept all tags,
1447
+ or an explicit array of tags to intercept.
1448
+
1449
+ ```ts
1450
+ tagsToIntercept?: string[]
1451
+ ```
1452
+
1453
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
1454
+
1372
1455
  ---
1373
1456
  ##### Interface: LiveBlockHeader
1374
1457
 
@@ -2516,6 +2599,254 @@ export interface ScriptTemplateUnlock {
2516
2599
 
2517
2600
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2518
2601
 
2602
+ ---
2603
+ ##### Interface: SetupClientWalletArgs
2604
+
2605
+ Arguments used by `createWallet` to construct a `SetupWallet`.
2606
+
2607
+ Extension `SetupWalletClientArgs` used by `createWalletClient` to construct a `SetupWalletClient`.
2608
+
2609
+ Extension `SetupWalletIdbArgs` used by `createWalletIdb` to construct a `SetupWalletIdb`.
2610
+
2611
+ ```ts
2612
+ export interface SetupClientWalletArgs {
2613
+ chain: sdk.Chain;
2614
+ rootKeyHex: string;
2615
+ privilegedKeyGetter?: () => Promise<PrivateKey>;
2616
+ active?: sdk.WalletStorageProvider;
2617
+ backups?: sdk.WalletStorageProvider[];
2618
+ taalApiKey?: string;
2619
+ }
2620
+ ```
2621
+
2622
+ See also: [Chain](./client.md#type-chain), [WalletStorageProvider](./client.md#interface-walletstorageprovider)
2623
+
2624
+ ###### Property active
2625
+
2626
+ Optional. Active wallet storage. Can be added later.
2627
+
2628
+ ```ts
2629
+ active?: sdk.WalletStorageProvider
2630
+ ```
2631
+ See also: [WalletStorageProvider](./client.md#interface-walletstorageprovider)
2632
+
2633
+ ###### Property backups
2634
+
2635
+ Optional. One or more storage providers managed as backup destinations. Can be added later.
2636
+
2637
+ ```ts
2638
+ backups?: sdk.WalletStorageProvider[]
2639
+ ```
2640
+ See also: [WalletStorageProvider](./client.md#interface-walletstorageprovider)
2641
+
2642
+ ###### Property privilegedKeyGetter
2643
+
2644
+ Optional. The privileged private key getter used to initialize the `PrivilegedKeyManager`.
2645
+ Defaults to undefined.
2646
+
2647
+ ```ts
2648
+ privilegedKeyGetter?: () => Promise<PrivateKey>
2649
+ ```
2650
+
2651
+ ###### Property rootKeyHex
2652
+
2653
+ The non-privileged private key used to initialize the `KeyDeriver` and determine the `identityKey`.
2654
+
2655
+ ```ts
2656
+ rootKeyHex: string
2657
+ ```
2658
+
2659
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2660
+
2661
+ ---
2662
+ ##### Interface: SetupClientWalletClientArgs
2663
+
2664
+ Extension `SetupWalletClientArgs` of `SetupWalletArgs` is used by `createWalletClient`
2665
+ to construct a `SetupWalletClient`.
2666
+
2667
+ ```ts
2668
+ export interface SetupClientWalletClientArgs extends SetupClientWalletArgs {
2669
+ endpointUrl?: string;
2670
+ }
2671
+ ```
2672
+
2673
+ See also: [SetupClientWalletArgs](./setup.md#interface-setupclientwalletargs)
2674
+
2675
+ ###### Property endpointUrl
2676
+
2677
+ The endpoint URL of a service hosting the `StorageServer` JSON-RPC service to
2678
+ which a `StorageClient` instance should connect to function as
2679
+ the active storage provider of the newly created wallet.
2680
+
2681
+ ```ts
2682
+ endpointUrl?: string
2683
+ ```
2684
+
2685
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2686
+
2687
+ ---
2688
+ ##### Interface: SetupWallet
2689
+
2690
+ When creating a BRC-100 compatible `Wallet`, many components come into play.
2691
+
2692
+ All of the `createWallet` functions in the `Setup` and `SetupClient` classes return
2693
+ an object with direct access to each component to facilitate experimentation, testing
2694
+ and customization.
2695
+
2696
+ ```ts
2697
+ export interface SetupWallet {
2698
+ rootKey: PrivateKey;
2699
+ identityKey: string;
2700
+ keyDeriver: KeyDeriver;
2701
+ chain: sdk.Chain;
2702
+ storage: WalletStorageManager;
2703
+ services: Services;
2704
+ monitor: Monitor;
2705
+ wallet: Wallet;
2706
+ }
2707
+ ```
2708
+
2709
+ See also: [Chain](./client.md#type-chain), [Monitor](./monitor.md#class-monitor), [Services](./services.md#class-services), [Wallet](./client.md#class-wallet), [WalletStorageManager](./storage.md#class-walletstoragemanager)
2710
+
2711
+ ###### Property chain
2712
+
2713
+ The chain ('main' or 'test') which the wallet accesses.
2714
+
2715
+ ```ts
2716
+ chain: sdk.Chain
2717
+ ```
2718
+ See also: [Chain](./client.md#type-chain)
2719
+
2720
+ ###### Property identityKey
2721
+
2722
+ The pubilc key associated with the `rootKey` which also serves as the wallet's identity.
2723
+
2724
+ ```ts
2725
+ identityKey: string
2726
+ ```
2727
+
2728
+ ###### Property keyDeriver
2729
+
2730
+ The `KeyDeriver` component used by the wallet for key derivation and cryptographic functions.
2731
+
2732
+ ```ts
2733
+ keyDeriver: KeyDeriver
2734
+ ```
2735
+
2736
+ ###### Property monitor
2737
+
2738
+ The background task `Monitor` component available to the wallet to offload tasks
2739
+ that speed up wallet operations and maintain data integrity.
2740
+
2741
+ ```ts
2742
+ monitor: Monitor
2743
+ ```
2744
+ See also: [Monitor](./monitor.md#class-monitor)
2745
+
2746
+ ###### Property rootKey
2747
+
2748
+ The rootKey of the `KeyDeriver`. The private key from which other keys are derived.
2749
+
2750
+ ```ts
2751
+ rootKey: PrivateKey
2752
+ ```
2753
+
2754
+ ###### Property services
2755
+
2756
+ The network `Services` component which provides the wallet with access to external services hosted
2757
+ on the public network.
2758
+
2759
+ ```ts
2760
+ services: Services
2761
+ ```
2762
+ See also: [Services](./services.md#class-services)
2763
+
2764
+ ###### Property storage
2765
+
2766
+ The `WalletStorageManager` that manages all the configured storage providers (active and backups)
2767
+ accessed by the wallet.
2768
+
2769
+ ```ts
2770
+ storage: WalletStorageManager
2771
+ ```
2772
+ See also: [WalletStorageManager](./storage.md#class-walletstoragemanager)
2773
+
2774
+ ###### Property wallet
2775
+
2776
+ The actual BRC-100 `Wallet` to which all the other properties and components contribute.
2777
+
2778
+ Note that internally, the wallet is itself linked to all these properties and components.
2779
+ They are included in this interface to facilitate access after wallet construction for
2780
+ experimentation, testing and customization. Any changes made to the configuration of these
2781
+ components after construction may disrupt the normal operation of the wallet.
2782
+
2783
+ ```ts
2784
+ wallet: Wallet
2785
+ ```
2786
+ See also: [Wallet](./client.md#class-wallet)
2787
+
2788
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2789
+
2790
+ ---
2791
+ ##### Interface: SetupWalletClient
2792
+
2793
+ Extension `SetupWalletClient` of `SetupWallet` is returned by `createWalletClient`
2794
+
2795
+ ```ts
2796
+ export interface SetupWalletClient extends SetupWallet {
2797
+ endpointUrl: string;
2798
+ }
2799
+ ```
2800
+
2801
+ See also: [SetupWallet](./setup.md#interface-setupwallet)
2802
+
2803
+ ###### Property endpointUrl
2804
+
2805
+ The endpoint URL of the service hosting the `StorageServer` JSON-RPC service to
2806
+ which a `StorageClient` instance is connected to function as
2807
+ the active storage provider of the wallet.
2808
+
2809
+ ```ts
2810
+ endpointUrl: string
2811
+ ```
2812
+
2813
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2814
+
2815
+ ---
2816
+ ##### Interface: SetupWalletIdb
2817
+
2818
+ ```ts
2819
+ export interface SetupWalletIdb extends SetupWallet {
2820
+ activeStorage: StorageIdb;
2821
+ userId: number;
2822
+ rootKey: PrivateKey;
2823
+ identityKey: string;
2824
+ keyDeriver: KeyDeriver;
2825
+ chain: sdk.Chain;
2826
+ storage: WalletStorageManager;
2827
+ services: Services;
2828
+ monitor: Monitor;
2829
+ wallet: Wallet;
2830
+ }
2831
+ ```
2832
+
2833
+ See also: [Chain](./client.md#type-chain), [Monitor](./monitor.md#class-monitor), [Services](./services.md#class-services), [SetupWallet](./setup.md#interface-setupwallet), [StorageIdb](./storage.md#class-storageidb), [Wallet](./client.md#class-wallet), [WalletStorageManager](./storage.md#class-walletstoragemanager)
2834
+
2835
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2836
+
2837
+ ---
2838
+ ##### Interface: SetupWalletIdbArgs
2839
+
2840
+ ```ts
2841
+ export interface SetupWalletIdbArgs extends SetupClientWalletArgs {
2842
+ databaseName: string;
2843
+ }
2844
+ ```
2845
+
2846
+ See also: [SetupClientWalletArgs](./setup.md#interface-setupclientwalletargs)
2847
+
2848
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2849
+
2519
2850
  ---
2520
2851
  ##### Interface: SignActionResultX
2521
2852
 
@@ -2819,6 +3150,175 @@ trustSelf?: "known"
2819
3150
 
2820
3151
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
2821
3152
 
3153
+ ---
3154
+ ##### Interface: StorageIdbOptions
3155
+
3156
+ ```ts
3157
+ export interface StorageIdbOptions extends StorageProviderOptions {
3158
+ }
3159
+ ```
3160
+
3161
+ See also: [StorageProviderOptions](./storage.md#interface-storageprovideroptions)
3162
+
3163
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3164
+
3165
+ ---
3166
+ ##### Interface: StorageIdbSchema
3167
+
3168
+ ```ts
3169
+ export interface StorageIdbSchema {
3170
+ certificates: {
3171
+ key: number;
3172
+ value: TableCertificate;
3173
+ indexes: {
3174
+ userId: number;
3175
+ userId_type_certifier_serialNumber: [
3176
+ number,
3177
+ Base64String,
3178
+ PubKeyHex,
3179
+ Base64String
3180
+ ];
3181
+ };
3182
+ };
3183
+ certificateFields: {
3184
+ key: number;
3185
+ value: TableCertificateField;
3186
+ indexes: {
3187
+ userId: number;
3188
+ certificateId: number;
3189
+ };
3190
+ };
3191
+ commissions: {
3192
+ key: number;
3193
+ value: TableCommission;
3194
+ indexes: {
3195
+ userId: number;
3196
+ transactionId: number;
3197
+ };
3198
+ };
3199
+ monitorEvents: {
3200
+ key: number;
3201
+ value: TableMonitorEvent;
3202
+ };
3203
+ outputs: {
3204
+ key: number;
3205
+ value: TableOutput;
3206
+ indexes: {
3207
+ userId: number;
3208
+ transactionId: number;
3209
+ basketId: number;
3210
+ spentBy: string;
3211
+ transactionId_vout_userId: [
3212
+ number,
3213
+ number,
3214
+ number
3215
+ ];
3216
+ };
3217
+ };
3218
+ outputBaskets: {
3219
+ key: number;
3220
+ value: TableOutputBasket;
3221
+ indexes: {
3222
+ userId: number;
3223
+ name_userId: [
3224
+ string,
3225
+ number
3226
+ ];
3227
+ };
3228
+ };
3229
+ outputTags: {
3230
+ key: number;
3231
+ value: TableOutputTag;
3232
+ indexes: {
3233
+ userId: number;
3234
+ tag_userId: [
3235
+ string,
3236
+ number
3237
+ ];
3238
+ };
3239
+ };
3240
+ outputTagMaps: {
3241
+ key: number;
3242
+ value: TableOutputTagMap;
3243
+ indexes: {
3244
+ outputTagId: number;
3245
+ outputId: number;
3246
+ };
3247
+ };
3248
+ provenTxs: {
3249
+ key: number;
3250
+ value: TableProvenTx;
3251
+ indexes: {
3252
+ txid: HexString;
3253
+ };
3254
+ };
3255
+ provenTxReqs: {
3256
+ key: number;
3257
+ value: TableProvenTxReq;
3258
+ indexes: {
3259
+ provenTxId: number;
3260
+ txid: HexString;
3261
+ status: ProvenTxReqStatus;
3262
+ batch: string;
3263
+ };
3264
+ };
3265
+ syncStates: {
3266
+ key: number;
3267
+ value: TableSyncState;
3268
+ indexes: {
3269
+ userId: number;
3270
+ refNum: string;
3271
+ status: SyncStatus;
3272
+ };
3273
+ };
3274
+ settings: {
3275
+ key: number;
3276
+ value: TableSettings;
3277
+ indexes: Record<string, never>;
3278
+ };
3279
+ transactions: {
3280
+ key: number;
3281
+ value: TableTransaction;
3282
+ indexes: {
3283
+ userId: number;
3284
+ provenTxId: number;
3285
+ reference: string;
3286
+ status: TransactionStatus;
3287
+ };
3288
+ };
3289
+ txLabels: {
3290
+ key: number;
3291
+ value: TableTxLabel;
3292
+ indexes: {
3293
+ userId: number;
3294
+ label_userId: [
3295
+ string,
3296
+ number
3297
+ ];
3298
+ };
3299
+ };
3300
+ txLabelMaps: {
3301
+ key: number;
3302
+ value: TableTxLabelMap;
3303
+ indexes: {
3304
+ transactionId: number;
3305
+ txLabelId: number;
3306
+ };
3307
+ };
3308
+ users: {
3309
+ key: number;
3310
+ value: TableUser;
3311
+ indexes: {
3312
+ identityKey: string;
3313
+ };
3314
+ };
3315
+ }
3316
+ ```
3317
+
3318
+ See also: [ProvenTxReqStatus](./client.md#type-proventxreqstatus), [SyncStatus](./client.md#type-syncstatus), [TableCertificate](./storage.md#interface-tablecertificate), [TableCertificateField](./storage.md#interface-tablecertificatefield), [TableCommission](./storage.md#interface-tablecommission), [TableMonitorEvent](./storage.md#interface-tablemonitorevent), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableOutputTag](./storage.md#interface-tableoutputtag), [TableOutputTagMap](./storage.md#interface-tableoutputtagmap), [TableProvenTx](./storage.md#interface-tableproventx), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableSyncState](./storage.md#interface-tablesyncstate), [TableTransaction](./storage.md#interface-tabletransaction), [TableTxLabel](./storage.md#interface-tabletxlabel), [TableTxLabelMap](./storage.md#interface-tabletxlabelmap), [TableUser](./storage.md#interface-tableuser), [TransactionStatus](./client.md#type-transactionstatus)
3319
+
3320
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3321
+
2822
3322
  ---
2823
3323
  ##### Interface: StorageIdentity
2824
3324
 
@@ -4821,10 +5321,11 @@ export interface WalletStorage {
4821
5321
  insertCertificate(certificate: TableCertificateX): Promise<number>;
4822
5322
  relinquishCertificate(args: RelinquishCertificateArgs): Promise<number>;
4823
5323
  relinquishOutput(args: RelinquishOutputArgs): Promise<number>;
5324
+ getStores(): WalletStorageInfo[];
4824
5325
  }
4825
5326
  ```
4826
5327
 
4827
- See also: [AuthId](./client.md#interface-authid), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [StorageCreateActionResult](./client.md#interface-storagecreateactionresult), [StorageProcessActionArgs](./client.md#interface-storageprocessactionargs), [StorageProcessActionResults](./client.md#interface-storageprocessactionresults), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableUser](./storage.md#interface-tableuser), [ValidCreateActionArgs](./client.md#interface-validcreateactionargs), [ValidListCertificatesArgs](./client.md#interface-validlistcertificatesargs), [WalletServices](./client.md#interface-walletservices), [createAction](./storage.md#function-createaction), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [processAction](./storage.md#function-processaction)
5328
+ See also: [AuthId](./client.md#interface-authid), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [StorageCreateActionResult](./client.md#interface-storagecreateactionresult), [StorageProcessActionArgs](./client.md#interface-storageprocessactionargs), [StorageProcessActionResults](./client.md#interface-storageprocessactionresults), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableUser](./storage.md#interface-tableuser), [ValidCreateActionArgs](./client.md#interface-validcreateactionargs), [ValidListCertificatesArgs](./client.md#interface-validlistcertificatesargs), [WalletServices](./client.md#interface-walletservices), [WalletStorageInfo](./client.md#interface-walletstorageinfo), [createAction](./storage.md#function-createaction), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [processAction](./storage.md#function-processaction)
4828
5329
 
4829
5330
  ###### Method isStorageProvider
4830
5331
 
@@ -4838,6 +5339,26 @@ false
4838
5339
 
4839
5340
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
4840
5341
 
5342
+ ---
5343
+ ##### Interface: WalletStorageInfo
5344
+
5345
+ Snapshot of the current state of a storage provider configured for an `WalletStorageManager`.
5346
+
5347
+ ```ts
5348
+ export interface WalletStorageInfo {
5349
+ isActive: boolean;
5350
+ isEnabled: boolean;
5351
+ isBackup: boolean;
5352
+ isConflicting: boolean;
5353
+ userId: number;
5354
+ storageIdentityKey: string;
5355
+ storageName: string;
5356
+ storageClass: string;
5357
+ }
5358
+ ```
5359
+
5360
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5361
+
4841
5362
  ---
4842
5363
  ##### Interface: WalletStorageProvider
4843
5364
 
@@ -4990,29 +5511,30 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
4990
5511
 
4991
5512
  | | | |
4992
5513
  | --- | --- | --- |
4993
- | [ARC](#class-arc) | [PrivilegedKeyManager](#class-privilegedkeymanager) | [WERR_BAD_REQUEST](#class-werr_bad_request) |
4994
- | [AuthMethodInteractor](#class-authmethodinteractor) | [ScriptTemplateBRC29](#class-scripttemplatebrc29) | [WERR_BROADCAST_UNAVAILABLE](#class-werr_broadcast_unavailable) |
4995
- | [Bitails](#class-bitails) | [SdkWhatsOnChain](#class-sdkwhatsonchain) | [WERR_INSUFFICIENT_FUNDS](#class-werr_insufficient_funds) |
4996
- | [CWIStyleWalletManager](#class-cwistylewalletmanager) | [ServiceCollection](#class-servicecollection) | [WERR_INTERNAL](#class-werr_internal) |
4997
- | [EntityBase](#class-entitybase) | [Services](#class-services) | [WERR_INVALID_OPERATION](#class-werr_invalid_operation) |
5514
+ | [ARC](#class-arc) | [ScriptTemplateBRC29](#class-scripttemplatebrc29) | [WERR_BAD_REQUEST](#class-werr_bad_request) |
5515
+ | [AuthMethodInteractor](#class-authmethodinteractor) | [SdkWhatsOnChain](#class-sdkwhatsonchain) | [WERR_BROADCAST_UNAVAILABLE](#class-werr_broadcast_unavailable) |
5516
+ | [Bitails](#class-bitails) | [ServiceCollection](#class-servicecollection) | [WERR_INSUFFICIENT_FUNDS](#class-werr_insufficient_funds) |
5517
+ | [CWIStyleWalletManager](#class-cwistylewalletmanager) | [Services](#class-services) | [WERR_INTERNAL](#class-werr_internal) |
5518
+ | [EntityBase](#class-entitybase) | [SetupClient](#class-setupclient) | [WERR_INVALID_OPERATION](#class-werr_invalid_operation) |
4998
5519
  | [EntityCertificate](#class-entitycertificate) | [SimpleWalletManager](#class-simplewalletmanager) | [WERR_INVALID_PARAMETER](#class-werr_invalid_parameter) |
4999
5520
  | [EntityCertificateField](#class-entitycertificatefield) | [StorageClient](#class-storageclient) | [WERR_INVALID_PUBLIC_KEY](#class-werr_invalid_public_key) |
5000
- | [EntityCommission](#class-entitycommission) | [StorageProvider](#class-storageprovider) | [WERR_MISSING_PARAMETER](#class-werr_missing_parameter) |
5001
- | [EntityOutput](#class-entityoutput) | [StorageReader](#class-storagereader) | [WERR_NETWORK_CHAIN](#class-werr_network_chain) |
5002
- | [EntityOutputBasket](#class-entityoutputbasket) | [StorageReaderWriter](#class-storagereaderwriter) | [WERR_NOT_ACTIVE](#class-werr_not_active) |
5003
- | [EntityOutputTag](#class-entityoutputtag) | [StorageSyncReader](#class-storagesyncreader) | [WERR_NOT_IMPLEMENTED](#class-werr_not_implemented) |
5004
- | [EntityOutputTagMap](#class-entityoutputtagmap) | [TaskCheckForProofs](#class-taskcheckforproofs) | [WERR_REVIEW_ACTIONS](#class-werr_review_actions) |
5005
- | [EntityProvenTx](#class-entityproventx) | [TaskCheckNoSends](#class-taskchecknosends) | [WERR_UNAUTHORIZED](#class-werr_unauthorized) |
5006
- | [EntityProvenTxReq](#class-entityproventxreq) | [TaskClock](#class-taskclock) | [Wallet](#class-wallet) |
5007
- | [EntitySyncState](#class-entitysyncstate) | [TaskFailAbandoned](#class-taskfailabandoned) | [WalletAuthenticationManager](#class-walletauthenticationmanager) |
5008
- | [EntityTransaction](#class-entitytransaction) | [TaskNewHeader](#class-tasknewheader) | [WalletError](#class-walleterror) |
5009
- | [EntityTxLabel](#class-entitytxlabel) | [TaskPurge](#class-taskpurge) | [WalletMonitorTask](#class-walletmonitortask) |
5010
- | [EntityTxLabelMap](#class-entitytxlabelmap) | [TaskReviewStatus](#class-taskreviewstatus) | [WalletPermissionsManager](#class-walletpermissionsmanager) |
5011
- | [EntityUser](#class-entityuser) | [TaskSendWaiting](#class-tasksendwaiting) | [WalletSettingsManager](#class-walletsettingsmanager) |
5012
- | [MergeEntity](#class-mergeentity) | [TaskSyncWhenIdle](#class-tasksyncwhenidle) | [WalletSigner](#class-walletsigner) |
5013
- | [Monitor](#class-monitor) | [TaskUnFail](#class-taskunfail) | [WalletStorageManager](#class-walletstoragemanager) |
5014
- | [OverlayUMPTokenInteractor](#class-overlayumptokeninteractor) | [TwilioPhoneInteractor](#class-twiliophoneinteractor) | [WhatsOnChain](#class-whatsonchain) |
5015
- | [PersonaIDInteractor](#class-personaidinteractor) | [WABClient](#class-wabclient) | |
5521
+ | [EntityCommission](#class-entitycommission) | [StorageIdb](#class-storageidb) | [WERR_MISSING_PARAMETER](#class-werr_missing_parameter) |
5522
+ | [EntityOutput](#class-entityoutput) | [StorageProvider](#class-storageprovider) | [WERR_NETWORK_CHAIN](#class-werr_network_chain) |
5523
+ | [EntityOutputBasket](#class-entityoutputbasket) | [StorageReader](#class-storagereader) | [WERR_NOT_ACTIVE](#class-werr_not_active) |
5524
+ | [EntityOutputTag](#class-entityoutputtag) | [StorageReaderWriter](#class-storagereaderwriter) | [WERR_NOT_IMPLEMENTED](#class-werr_not_implemented) |
5525
+ | [EntityOutputTagMap](#class-entityoutputtagmap) | [StorageSyncReader](#class-storagesyncreader) | [WERR_REVIEW_ACTIONS](#class-werr_review_actions) |
5526
+ | [EntityProvenTx](#class-entityproventx) | [TaskCheckForProofs](#class-taskcheckforproofs) | [WERR_UNAUTHORIZED](#class-werr_unauthorized) |
5527
+ | [EntityProvenTxReq](#class-entityproventxreq) | [TaskCheckNoSends](#class-taskchecknosends) | [Wallet](#class-wallet) |
5528
+ | [EntitySyncState](#class-entitysyncstate) | [TaskClock](#class-taskclock) | [WalletAuthenticationManager](#class-walletauthenticationmanager) |
5529
+ | [EntityTransaction](#class-entitytransaction) | [TaskFailAbandoned](#class-taskfailabandoned) | [WalletError](#class-walleterror) |
5530
+ | [EntityTxLabel](#class-entitytxlabel) | [TaskNewHeader](#class-tasknewheader) | [WalletMonitorTask](#class-walletmonitortask) |
5531
+ | [EntityTxLabelMap](#class-entitytxlabelmap) | [TaskPurge](#class-taskpurge) | [WalletPermissionsManager](#class-walletpermissionsmanager) |
5532
+ | [EntityUser](#class-entityuser) | [TaskReviewStatus](#class-taskreviewstatus) | [WalletSettingsManager](#class-walletsettingsmanager) |
5533
+ | [MergeEntity](#class-mergeentity) | [TaskSendWaiting](#class-tasksendwaiting) | [WalletSigner](#class-walletsigner) |
5534
+ | [Monitor](#class-monitor) | [TaskSyncWhenIdle](#class-tasksyncwhenidle) | [WalletStorageManager](#class-walletstoragemanager) |
5535
+ | [OverlayUMPTokenInteractor](#class-overlayumptokeninteractor) | [TaskUnFail](#class-taskunfail) | [WhatsOnChain](#class-whatsonchain) |
5536
+ | [PersonaIDInteractor](#class-personaidinteractor) | [TwilioPhoneInteractor](#class-twiliophoneinteractor) | |
5537
+ | [PrivilegedKeyManager](#class-privilegedkeymanager) | [WABClient](#class-wabclient) | |
5016
5538
 
5017
5539
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
5018
5540
 
@@ -6931,6 +7453,272 @@ Argument Details
6931
7453
 
6932
7454
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
6933
7455
 
7456
+ ---
7457
+ ##### Class: SetupClient
7458
+
7459
+ The 'Setup` class provides static setup functions to construct BRC-100 compatible
7460
+ wallets in a variety of configurations.
7461
+
7462
+ It serves as a starting point for experimentation and customization.
7463
+
7464
+ ```ts
7465
+ export abstract class SetupClient {
7466
+ static async createWallet(args: SetupClientWalletArgs): Promise<SetupWallet> {
7467
+ const chain = args.chain;
7468
+ const rootKey = PrivateKey.fromHex(args.rootKeyHex);
7469
+ const identityKey = rootKey.toPublicKey().toString();
7470
+ const keyDeriver = new KeyDeriver(rootKey);
7471
+ const storage = new WalletStorageManager(identityKey, args.active, args.backups);
7472
+ if (storage.canMakeAvailable())
7473
+ await storage.makeAvailable();
7474
+ const serviceOptions = Services.createDefaultOptions(chain);
7475
+ serviceOptions.taalApiKey = args.taalApiKey;
7476
+ const services = new Services(serviceOptions);
7477
+ const monopts = Monitor.createDefaultWalletMonitorOptions(chain, storage, services);
7478
+ const monitor = new Monitor(monopts);
7479
+ monitor.addDefaultTasks();
7480
+ const privilegedKeyManager = args.privilegedKeyGetter
7481
+ ? new sdk.PrivilegedKeyManager(args.privilegedKeyGetter)
7482
+ : undefined;
7483
+ const wallet = new Wallet({
7484
+ chain,
7485
+ keyDeriver,
7486
+ storage,
7487
+ services,
7488
+ monitor,
7489
+ privilegedKeyManager
7490
+ });
7491
+ const r: SetupWallet = {
7492
+ rootKey,
7493
+ identityKey,
7494
+ keyDeriver,
7495
+ chain,
7496
+ storage,
7497
+ services,
7498
+ monitor,
7499
+ wallet
7500
+ };
7501
+ return r;
7502
+ }
7503
+ static async createWalletClientNoEnv(args: {
7504
+ chain: sdk.Chain;
7505
+ rootKeyHex: string;
7506
+ storageUrl?: string;
7507
+ privilegedKeyGetter?: () => Promise<PrivateKey>;
7508
+ }): Promise<Wallet>
7509
+ static async createWalletClient(args: SetupClientWalletClientArgs): Promise<SetupWalletClient> {
7510
+ const wo = await SetupClient.createWallet(args);
7511
+ const endpointUrl = args.endpointUrl || `https://${args.chain !== "main" ? "staging-" : ""}storage.babbage.systems`;
7512
+ const client = new StorageClient(wo.wallet, endpointUrl);
7513
+ await wo.storage.addWalletStorageProvider(client);
7514
+ await wo.storage.makeAvailable();
7515
+ return {
7516
+ ...wo,
7517
+ endpointUrl
7518
+ };
7519
+ }
7520
+ static getKeyPair(priv?: string | PrivateKey): KeyPairAddress {
7521
+ if (priv === undefined)
7522
+ priv = PrivateKey.fromRandom();
7523
+ else if (typeof priv === "string")
7524
+ priv = new PrivateKey(priv, "hex");
7525
+ const pub = PublicKey.fromPrivateKey(priv);
7526
+ const address = pub.toAddress();
7527
+ return { privateKey: priv, publicKey: pub, address };
7528
+ }
7529
+ static getLockP2PKH(address: string): LockingScript {
7530
+ const p2pkh = new P2PKH();
7531
+ const lock = p2pkh.lock(address);
7532
+ return lock;
7533
+ }
7534
+ static getUnlockP2PKH(priv: PrivateKey, satoshis: number): sdk.ScriptTemplateUnlock {
7535
+ const p2pkh = new P2PKH();
7536
+ const lock = SetupClient.getLockP2PKH(SetupClient.getKeyPair(priv).address);
7537
+ const unlock = p2pkh.unlock(priv, "all", false, satoshis, lock);
7538
+ return unlock;
7539
+ }
7540
+ static createP2PKHOutputs(outputs: {
7541
+ address: string;
7542
+ satoshis: number;
7543
+ outputDescription?: string;
7544
+ basket?: string;
7545
+ tags?: string[];
7546
+ }[]): CreateActionOutput[] {
7547
+ const os: CreateActionOutput[] = [];
7548
+ const count = outputs.length;
7549
+ for (let i = 0; i < count; i++) {
7550
+ const o = outputs[i];
7551
+ os.push({
7552
+ basket: o.basket,
7553
+ tags: o.tags,
7554
+ satoshis: o.satoshis,
7555
+ lockingScript: SetupClient.getLockP2PKH(o.address).toHex(),
7556
+ outputDescription: o.outputDescription || `p2pkh ${i}`
7557
+ });
7558
+ }
7559
+ return os;
7560
+ }
7561
+ static async createP2PKHOutputsAction(wallet: WalletInterface, outputs: {
7562
+ address: string;
7563
+ satoshis: number;
7564
+ outputDescription?: string;
7565
+ basket?: string;
7566
+ tags?: string[];
7567
+ }[], options?: CreateActionOptions): Promise<{
7568
+ cr: CreateActionResult;
7569
+ outpoints: string[] | undefined;
7570
+ }> {
7571
+ const os = SetupClient.createP2PKHOutputs(outputs);
7572
+ const createArgs: CreateActionArgs = {
7573
+ description: `createP2PKHOutputs`,
7574
+ outputs: os,
7575
+ options: {
7576
+ ...options,
7577
+ randomizeOutputs: false
7578
+ }
7579
+ };
7580
+ const cr = await wallet.createAction(createArgs);
7581
+ let outpoints: string[] | undefined;
7582
+ if (cr.txid) {
7583
+ outpoints = os.map((o, i) => `${cr.txid}.${i}`);
7584
+ }
7585
+ return { cr, outpoints };
7586
+ }
7587
+ static async fundWalletFromP2PKHOutpoints(wallet: WalletInterface, outpoints: string[], p2pkhKey: KeyPairAddress, inputBEEF?: BEEF) {
7588
+ }
7589
+ static async createWalletIdb(args: SetupWalletIdbArgs): Promise<SetupWalletIdb> {
7590
+ const wo = await SetupClient.createWallet(args);
7591
+ const activeStorage = await SetupClient.createStorageIdb(args);
7592
+ await wo.storage.addWalletStorageProvider(activeStorage);
7593
+ const { user, isNew } = await activeStorage.findOrInsertUser(wo.identityKey);
7594
+ const userId = user.userId;
7595
+ const r: SetupWalletIdb = {
7596
+ ...wo,
7597
+ activeStorage,
7598
+ userId
7599
+ };
7600
+ return r;
7601
+ }
7602
+ static async createStorageIdb(args: SetupWalletIdbArgs): Promise<StorageIdb>
7603
+ }
7604
+ ```
7605
+
7606
+ See also: [Chain](./client.md#type-chain), [KeyPairAddress](./setup.md#interface-keypairaddress), [Monitor](./monitor.md#class-monitor), [PrivilegedKeyManager](./client.md#class-privilegedkeymanager), [ScriptTemplateUnlock](./client.md#interface-scripttemplateunlock), [Services](./services.md#class-services), [SetupClientWalletArgs](./setup.md#interface-setupclientwalletargs), [SetupClientWalletClientArgs](./setup.md#interface-setupclientwalletclientargs), [SetupWallet](./setup.md#interface-setupwallet), [SetupWalletClient](./setup.md#interface-setupwalletclient), [SetupWalletIdb](./setup.md#interface-setupwalletidb), [SetupWalletIdbArgs](./setup.md#interface-setupwalletidbargs), [StorageClient](./storage.md#class-storageclient), [StorageIdb](./storage.md#class-storageidb), [Wallet](./client.md#class-wallet), [WalletStorageManager](./storage.md#class-walletstoragemanager), [createAction](./storage.md#function-createaction)
7607
+
7608
+ ###### Method createStorageIdb
7609
+
7610
+ ```ts
7611
+ static async createStorageIdb(args: SetupWalletIdbArgs): Promise<StorageIdb>
7612
+ ```
7613
+ See also: [SetupWalletIdbArgs](./setup.md#interface-setupwalletidbargs), [StorageIdb](./storage.md#class-storageidb)
7614
+
7615
+ Returns
7616
+
7617
+ - `Knex` based storage provider for a wallet. May be used for either active storage or backup storage.
7618
+
7619
+ ###### Method createWallet
7620
+
7621
+ Create a `Wallet`. Storage can optionally be provided or configured later.
7622
+
7623
+ The following components are configured: KeyDeriver, WalletStorageManager, WalletService, WalletStorage.
7624
+ Optionally, PrivilegedKeyManager is also configured.
7625
+
7626
+ ```ts
7627
+ static async createWallet(args: SetupClientWalletArgs): Promise<SetupWallet> {
7628
+ const chain = args.chain;
7629
+ const rootKey = PrivateKey.fromHex(args.rootKeyHex);
7630
+ const identityKey = rootKey.toPublicKey().toString();
7631
+ const keyDeriver = new KeyDeriver(rootKey);
7632
+ const storage = new WalletStorageManager(identityKey, args.active, args.backups);
7633
+ if (storage.canMakeAvailable())
7634
+ await storage.makeAvailable();
7635
+ const serviceOptions = Services.createDefaultOptions(chain);
7636
+ serviceOptions.taalApiKey = args.taalApiKey;
7637
+ const services = new Services(serviceOptions);
7638
+ const monopts = Monitor.createDefaultWalletMonitorOptions(chain, storage, services);
7639
+ const monitor = new Monitor(monopts);
7640
+ monitor.addDefaultTasks();
7641
+ const privilegedKeyManager = args.privilegedKeyGetter
7642
+ ? new sdk.PrivilegedKeyManager(args.privilegedKeyGetter)
7643
+ : undefined;
7644
+ const wallet = new Wallet({
7645
+ chain,
7646
+ keyDeriver,
7647
+ storage,
7648
+ services,
7649
+ monitor,
7650
+ privilegedKeyManager
7651
+ });
7652
+ const r: SetupWallet = {
7653
+ rootKey,
7654
+ identityKey,
7655
+ keyDeriver,
7656
+ chain,
7657
+ storage,
7658
+ services,
7659
+ monitor,
7660
+ wallet
7661
+ };
7662
+ return r;
7663
+ }
7664
+ ```
7665
+ See also: [Monitor](./monitor.md#class-monitor), [PrivilegedKeyManager](./client.md#class-privilegedkeymanager), [Services](./services.md#class-services), [SetupClientWalletArgs](./setup.md#interface-setupclientwalletargs), [SetupWallet](./setup.md#interface-setupwallet), [Wallet](./client.md#class-wallet), [WalletStorageManager](./storage.md#class-walletstoragemanager)
7666
+
7667
+ ###### Method createWalletClientNoEnv
7668
+
7669
+ Setup a new `Wallet` without requiring a .env file.
7670
+
7671
+ ```ts
7672
+ static async createWalletClientNoEnv(args: {
7673
+ chain: sdk.Chain;
7674
+ rootKeyHex: string;
7675
+ storageUrl?: string;
7676
+ privilegedKeyGetter?: () => Promise<PrivateKey>;
7677
+ }): Promise<Wallet>
7678
+ ```
7679
+ See also: [Chain](./client.md#type-chain), [Wallet](./client.md#class-wallet)
7680
+
7681
+ Argument Details
7682
+
7683
+ + **args.chain**
7684
+ + 'main' or 'test'
7685
+ + **args.rootKeyHex**
7686
+ + Root private key for wallet's key deriver.
7687
+ + **args.storageUrl**
7688
+ + Optional. `StorageClient` and `chain` compatible endpoint URL.
7689
+ + **args.privilegedKeyGetter**
7690
+ + Optional. Method that will return the privileged `PrivateKey`, on demand.
7691
+
7692
+ ###### Method createWalletIdb
7693
+
7694
+ Adds `indexedDB` based storage to a `Wallet` configured by `SetupClient.createWalletOnly`
7695
+
7696
+ ```ts
7697
+ static async createWalletIdb(args: SetupWalletIdbArgs): Promise<SetupWalletIdb> {
7698
+ const wo = await SetupClient.createWallet(args);
7699
+ const activeStorage = await SetupClient.createStorageIdb(args);
7700
+ await wo.storage.addWalletStorageProvider(activeStorage);
7701
+ const { user, isNew } = await activeStorage.findOrInsertUser(wo.identityKey);
7702
+ const userId = user.userId;
7703
+ const r: SetupWalletIdb = {
7704
+ ...wo,
7705
+ activeStorage,
7706
+ userId
7707
+ };
7708
+ return r;
7709
+ }
7710
+ ```
7711
+ See also: [SetupClient](./setup.md#class-setupclient), [SetupWalletIdb](./setup.md#interface-setupwalletidb), [SetupWalletIdbArgs](./setup.md#interface-setupwalletidbargs)
7712
+
7713
+ Argument Details
7714
+
7715
+ + **args.databaseName**
7716
+ + Name for this storage. For MySQL, the schema name within the MySQL instance.
7717
+ + **args.chain**
7718
+ + Which chain this wallet is on: 'main' or 'test'. Defaults to 'test'.
7719
+
7720
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
7721
+
6934
7722
  ---
6935
7723
  ##### Class: SimpleWalletManager
6936
7724
 
@@ -7779,6 +8567,268 @@ See also: [EntityTimeStamp](./client.md#interface-entitytimestamp)
7779
8567
 
7780
8568
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
7781
8569
 
8570
+ ---
8571
+ ##### Class: StorageIdb
8572
+
8573
+ This class implements the `StorageProvider` interface using IndexedDB,
8574
+ via the promises wrapper package `idb`.
8575
+
8576
+ ```ts
8577
+ export class StorageIdb extends StorageProvider implements sdk.WalletStorageProvider {
8578
+ dbName: string;
8579
+ db?: IDBPDatabase<StorageIdbSchema>;
8580
+ constructor(options: StorageIdbOptions)
8581
+ async migrate(storageName: string, storageIdentityKey: string): Promise<string>
8582
+ async verifyDB(storageName?: string, storageIdentityKey?: string): Promise<IDBPDatabase<StorageIdbSchema>>
8583
+ toDbTrx(stores: string[], mode: "readonly" | "readwrite", trx?: sdk.TrxToken): IDBPTransaction<StorageIdbSchema, string[], "readwrite" | "readonly">
8584
+ async readSettings(trx?: sdk.TrxToken): Promise<TableSettings>
8585
+ async initDB(storageName?: string, storageIdentityKey?: string): Promise<IDBPDatabase<StorageIdbSchema>>
8586
+ async reviewStatus(args: {
8587
+ agedLimit: Date;
8588
+ trx?: sdk.TrxToken;
8589
+ }): Promise<{
8590
+ log: string;
8591
+ }>
8592
+ async purgeData(params: sdk.PurgeParams, trx?: sdk.TrxToken): Promise<sdk.PurgeResults>
8593
+ async allocateChangeInput(userId: number, basketId: number, targetSatoshis: number, exactSatoshis: number | undefined, excludeSending: boolean, transactionId: number): Promise<TableOutput | undefined>
8594
+ async getProvenOrRawTx(txid: string, trx?: sdk.TrxToken): Promise<sdk.ProvenOrRawTx>
8595
+ async getRawTxOfKnownValidTransaction(txid?: string, offset?: number, length?: number, trx?: sdk.TrxToken): Promise<number[] | undefined>
8596
+ async getLabelsForTransactionId(transactionId?: number, trx?: sdk.TrxToken): Promise<TableTxLabel[]>
8597
+ async getTagsForOutputId(outputId: number, trx?: sdk.TrxToken): Promise<TableOutputTag[]>
8598
+ async listActions(auth: sdk.AuthId, vargs: sdk.ValidListActionsArgs): Promise<ListActionsResult>
8599
+ async listOutputs(auth: sdk.AuthId, vargs: sdk.ValidListOutputsArgs): Promise<ListOutputsResult>
8600
+ async countChangeInputs(userId: number, basketId: number, excludeSending: boolean): Promise<number>
8601
+ async findCertificatesAuth(auth: sdk.AuthId, args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>
8602
+ async findOutputBasketsAuth(auth: sdk.AuthId, args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>
8603
+ async findOutputsAuth(auth: sdk.AuthId, args: sdk.FindOutputsArgs): Promise<TableOutput[]>
8604
+ async insertCertificateAuth(auth: sdk.AuthId, certificate: TableCertificateX): Promise<number>
8605
+ async dropAllData(): Promise<void>
8606
+ async filterOutputTagMaps(args: sdk.FindOutputTagMapsArgs, filtered: (v: TableOutputTagMap) => void, userId?: number): Promise<void>
8607
+ async findOutputTagMaps(args: sdk.FindOutputTagMapsArgs): Promise<TableOutputTagMap[]>
8608
+ async filterProvenTxReqs(args: sdk.FindProvenTxReqsArgs, filtered: (v: TableProvenTxReq) => void, userId?: number): Promise<void>
8609
+ async findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<TableProvenTxReq[]>
8610
+ async filterProvenTxs(args: sdk.FindProvenTxsArgs, filtered: (v: TableProvenTx) => void, userId?: number): Promise<void>
8611
+ async findProvenTxs(args: sdk.FindProvenTxsArgs): Promise<TableProvenTx[]>
8612
+ async filterTxLabelMaps(args: sdk.FindTxLabelMapsArgs, filtered: (v: TableTxLabelMap) => void, userId?: number): Promise<void>
8613
+ async findTxLabelMaps(args: sdk.FindTxLabelMapsArgs): Promise<TableTxLabelMap[]>
8614
+ async countOutputTagMaps(args: sdk.FindOutputTagMapsArgs): Promise<number>
8615
+ async countProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<number>
8616
+ async countProvenTxs(args: sdk.FindProvenTxsArgs): Promise<number>
8617
+ async countTxLabelMaps(args: sdk.FindTxLabelMapsArgs): Promise<number>
8618
+ async insertCertificate(certificate: TableCertificateX, trx?: sdk.TrxToken): Promise<number>
8619
+ async insertCertificateField(certificateField: TableCertificateField, trx?: sdk.TrxToken): Promise<void>
8620
+ async insertCommission(commission: TableCommission, trx?: sdk.TrxToken): Promise<number>
8621
+ async insertMonitorEvent(event: TableMonitorEvent, trx?: sdk.TrxToken): Promise<number>
8622
+ async insertOutput(output: TableOutput, trx?: sdk.TrxToken): Promise<number>
8623
+ async insertOutputBasket(basket: TableOutputBasket, trx?: sdk.TrxToken): Promise<number>
8624
+ async insertOutputTag(tag: TableOutputTag, trx?: sdk.TrxToken): Promise<number>
8625
+ async insertOutputTagMap(tagMap: TableOutputTagMap, trx?: sdk.TrxToken): Promise<void>
8626
+ async insertProvenTx(tx: TableProvenTx, trx?: sdk.TrxToken): Promise<number>
8627
+ async insertProvenTxReq(tx: TableProvenTxReq, trx?: sdk.TrxToken): Promise<number>
8628
+ async insertSyncState(syncState: TableSyncState, trx?: sdk.TrxToken): Promise<number>
8629
+ async insertTransaction(tx: TableTransaction, trx?: sdk.TrxToken): Promise<number>
8630
+ async insertTxLabel(label: TableTxLabel, trx?: sdk.TrxToken): Promise<number>
8631
+ async insertTxLabelMap(labelMap: TableTxLabelMap, trx?: sdk.TrxToken): Promise<void>
8632
+ async insertUser(user: TableUser, trx?: sdk.TrxToken): Promise<number>
8633
+ async updateIdb<T>(id: number | number[], update: Partial<T>, keyProp: string, storeName: string, trx?: sdk.TrxToken): Promise<number>
8634
+ async updateIdbKey<T>(key: (number | string)[], update: Partial<T>, keyProps: string[], storeName: string, trx?: sdk.TrxToken): Promise<number>
8635
+ async updateCertificate(id: number, update: Partial<TableCertificate>, trx?: sdk.TrxToken): Promise<number>
8636
+ async updateCertificateField(certificateId: number, fieldName: string, update: Partial<TableCertificateField>, trx?: sdk.TrxToken): Promise<number>
8637
+ async updateCommission(id: number, update: Partial<TableCommission>, trx?: sdk.TrxToken): Promise<number>
8638
+ async updateMonitorEvent(id: number, update: Partial<TableMonitorEvent>, trx?: sdk.TrxToken): Promise<number>
8639
+ async updateOutput(id: number, update: Partial<TableOutput>, trx?: sdk.TrxToken): Promise<number>
8640
+ async updateOutputBasket(id: number, update: Partial<TableOutputBasket>, trx?: sdk.TrxToken): Promise<number>
8641
+ async updateOutputTag(id: number, update: Partial<TableOutputTag>, trx?: sdk.TrxToken): Promise<number>
8642
+ async updateProvenTx(id: number, update: Partial<TableProvenTx>, trx?: sdk.TrxToken): Promise<number>
8643
+ async updateProvenTxReq(id: number | number[], update: Partial<TableProvenTxReq>, trx?: sdk.TrxToken): Promise<number>
8644
+ async updateSyncState(id: number, update: Partial<TableSyncState>, trx?: sdk.TrxToken): Promise<number>
8645
+ async updateTransaction(id: number | number[], update: Partial<TableTransaction>, trx?: sdk.TrxToken): Promise<number>
8646
+ async updateTxLabel(id: number, update: Partial<TableTxLabel>, trx?: sdk.TrxToken): Promise<number>
8647
+ async updateUser(id: number, update: Partial<TableUser>, trx?: sdk.TrxToken): Promise<number>
8648
+ async updateOutputTagMap(outputId: number, tagId: number, update: Partial<TableOutputTagMap>, trx?: sdk.TrxToken): Promise<number>
8649
+ async updateTxLabelMap(transactionId: number, txLabelId: number, update: Partial<TableTxLabelMap>, trx?: sdk.TrxToken): Promise<number>
8650
+ async destroy(): Promise<void>
8651
+ allStores: string[] = [
8652
+ "certificates",
8653
+ "certificate_fields",
8654
+ "commissions",
8655
+ "monitor_events",
8656
+ "outputs",
8657
+ "output_baskets",
8658
+ "output_tags",
8659
+ "output_tags_map",
8660
+ "proven_txs",
8661
+ "proven_tx_reqs",
8662
+ "sync_states",
8663
+ "transactions",
8664
+ "tx_labels",
8665
+ "tx_labels_map",
8666
+ "users"
8667
+ ];
8668
+ async transaction<T>(scope: (trx: sdk.TrxToken) => Promise<T>, trx?: sdk.TrxToken): Promise<T>
8669
+ async filterCertificateFields(args: sdk.FindCertificateFieldsArgs, filtered: (v: TableCertificateField) => void): Promise<void>
8670
+ async findCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<TableCertificateField[]>
8671
+ async filterCertificates(args: sdk.FindCertificatesArgs, filtered: (v: TableCertificateX) => void): Promise<void>
8672
+ async findCertificates(args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>
8673
+ async filterCommissions(args: sdk.FindCommissionsArgs, filtered: (v: TableCommission) => void): Promise<void>
8674
+ async findCommissions(args: sdk.FindCommissionsArgs): Promise<TableCommission[]>
8675
+ async filterMonitorEvents(args: sdk.FindMonitorEventsArgs, filtered: (v: TableMonitorEvent) => void): Promise<void>
8676
+ async findMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<TableMonitorEvent[]>
8677
+ async filterOutputBaskets(args: sdk.FindOutputBasketsArgs, filtered: (v: TableOutputBasket) => void): Promise<void>
8678
+ async findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>
8679
+ async filterOutputs(args: sdk.FindOutputsArgs, filtered: (v: TableOutput) => void, tagIds?: number[], isQueryModeAll?: boolean): Promise<void>
8680
+ async findOutputs(args: sdk.FindOutputsArgs, tagIds?: number[], isQueryModeAll?: boolean): Promise<TableOutput[]>
8681
+ async filterOutputTags(args: sdk.FindOutputTagsArgs, filtered: (v: TableOutputTag) => void): Promise<void>
8682
+ async findOutputTags(args: sdk.FindOutputTagsArgs): Promise<TableOutputTag[]>
8683
+ async filterSyncStates(args: sdk.FindSyncStatesArgs, filtered: (v: TableSyncState) => void): Promise<void>
8684
+ async findSyncStates(args: sdk.FindSyncStatesArgs): Promise<TableSyncState[]>
8685
+ async filterTransactions(args: sdk.FindTransactionsArgs, filtered: (v: TableTransaction) => void, labelIds?: number[], isQueryModeAll?: boolean): Promise<void>
8686
+ async findTransactions(args: sdk.FindTransactionsArgs, labelIds?: number[], isQueryModeAll?: boolean): Promise<TableTransaction[]>
8687
+ async filterTxLabels(args: sdk.FindTxLabelsArgs, filtered: (v: TableTxLabel) => void): Promise<void>
8688
+ async findTxLabels(args: sdk.FindTxLabelsArgs): Promise<TableTxLabel[]>
8689
+ async filterUsers(args: sdk.FindUsersArgs, filtered: (v: TableUser) => void): Promise<void>
8690
+ async findUsers(args: sdk.FindUsersArgs): Promise<TableUser[]>
8691
+ async countCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<number>
8692
+ async countCertificates(args: sdk.FindCertificatesArgs): Promise<number>
8693
+ async countCommissions(args: sdk.FindCommissionsArgs): Promise<number>
8694
+ async countMonitorEvents(args: sdk.FindMonitorEventsArgs): Promise<number>
8695
+ async countOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<number>
8696
+ async countOutputs(args: sdk.FindOutputsArgs, tagIds?: number[], isQueryModeAll?: boolean): Promise<number>
8697
+ async countOutputTags(args: sdk.FindOutputTagsArgs): Promise<number>
8698
+ async countSyncStates(args: sdk.FindSyncStatesArgs): Promise<number>
8699
+ async countTransactions(args: sdk.FindTransactionsArgs, labelIds?: number[], isQueryModeAll?: boolean): Promise<number>
8700
+ async countTxLabels(args: sdk.FindTxLabelsArgs): Promise<number>
8701
+ async countUsers(args: sdk.FindUsersArgs): Promise<number>
8702
+ async getProvenTxsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTx[]>
8703
+ async getProvenTxReqsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTxReq[]>
8704
+ async getTxLabelMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableTxLabelMap[]>
8705
+ async getOutputTagMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableOutputTagMap[]>
8706
+ async verifyReadyForDatabaseAccess(trx?: sdk.TrxToken): Promise<DBType>
8707
+ validateEntity<T extends sdk.EntityTimeStamp>(entity: T, dateFields?: string[], booleanFields?: string[]): T
8708
+ validateEntities<T extends sdk.EntityTimeStamp>(entities: T[], dateFields?: string[], booleanFields?: string[]): T[]
8709
+ validatePartialForUpdate<T extends sdk.EntityTimeStamp>(update: Partial<T>, dateFields?: string[], booleanFields?: string[]): Partial<T>
8710
+ async validateEntityForInsert<T extends sdk.EntityTimeStamp>(entity: T, trx?: sdk.TrxToken, dateFields?: string[], booleanFields?: string[]): Promise<any>
8711
+ async validateRawTransaction(t: TableTransaction, trx?: sdk.TrxToken): Promise<void>
8712
+ async adminStats(adminIdentityKey: string): Promise<StorageAdminStats>
8713
+ }
8714
+ ```
8715
+
8716
+ See also: [AuthId](./client.md#interface-authid), [DBType](./storage.md#type-dbtype), [EntityTimeStamp](./client.md#interface-entitytimestamp), [FindCertificateFieldsArgs](./client.md#interface-findcertificatefieldsargs), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindCommissionsArgs](./client.md#interface-findcommissionsargs), [FindForUserSincePagedArgs](./client.md#interface-findforusersincepagedargs), [FindMonitorEventsArgs](./client.md#interface-findmonitoreventsargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputTagMapsArgs](./client.md#interface-findoutputtagmapsargs), [FindOutputTagsArgs](./client.md#interface-findoutputtagsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [FindProvenTxsArgs](./client.md#interface-findproventxsargs), [FindSyncStatesArgs](./client.md#interface-findsyncstatesargs), [FindTransactionsArgs](./client.md#interface-findtransactionsargs), [FindTxLabelMapsArgs](./client.md#interface-findtxlabelmapsargs), [FindTxLabelsArgs](./client.md#interface-findtxlabelsargs), [FindUsersArgs](./client.md#interface-findusersargs), [ProvenOrRawTx](./client.md#interface-provenorrawtx), [PurgeParams](./client.md#interface-purgeparams), [PurgeResults](./client.md#interface-purgeresults), [StorageAdminStats](./storage.md#interface-storageadminstats), [StorageIdbOptions](./storage.md#interface-storageidboptions), [StorageIdbSchema](./storage.md#interface-storageidbschema), [StorageProvider](./storage.md#class-storageprovider), [TableCertificate](./storage.md#interface-tablecertificate), [TableCertificateField](./storage.md#interface-tablecertificatefield), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableCommission](./storage.md#interface-tablecommission), [TableMonitorEvent](./storage.md#interface-tablemonitorevent), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableOutputTag](./storage.md#interface-tableoutputtag), [TableOutputTagMap](./storage.md#interface-tableoutputtagmap), [TableProvenTx](./storage.md#interface-tableproventx), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableSyncState](./storage.md#interface-tablesyncstate), [TableTransaction](./storage.md#interface-tabletransaction), [TableTxLabel](./storage.md#interface-tabletxlabel), [TableTxLabelMap](./storage.md#interface-tabletxlabelmap), [TableUser](./storage.md#interface-tableuser), [TrxToken](./client.md#interface-trxtoken), [ValidListActionsArgs](./client.md#interface-validlistactionsargs), [ValidListOutputsArgs](./client.md#interface-validlistoutputsargs), [WalletStorageProvider](./client.md#interface-walletstorageprovider), [listActions](./storage.md#function-listactions), [listOutputs](./storage.md#function-listoutputs), [purgeData](./storage.md#function-purgedata), [reviewStatus](./storage.md#function-reviewstatus)
8717
+
8718
+ ###### Method allocateChangeInput
8719
+
8720
+ Proceeds in three stages:
8721
+ 1. Find an output that exactly funds the transaction (if exactSatoshis is not undefined).
8722
+ 2. Find an output that overfunds by the least amount (targetSatoshis).
8723
+ 3. Find an output that comes as close to funding as possible (targetSatoshis).
8724
+ 4. Return undefined if no output is found.
8725
+
8726
+ Outputs must belong to userId and basketId and have spendable true.
8727
+ Their corresponding transaction must have status of 'completed', 'unproven', or 'sending' (if excludeSending is false).
8728
+
8729
+ ```ts
8730
+ async allocateChangeInput(userId: number, basketId: number, targetSatoshis: number, exactSatoshis: number | undefined, excludeSending: boolean, transactionId: number): Promise<TableOutput | undefined>
8731
+ ```
8732
+ See also: [TableOutput](./storage.md#interface-tableoutput)
8733
+
8734
+ Returns
8735
+
8736
+ next funding output to add to transaction or undefined if there are none.
8737
+
8738
+ ###### Method migrate
8739
+
8740
+ This method must be called at least once before any other method accesses the database,
8741
+ and each time the schema may have updated.
8742
+
8743
+ If the database has already been created in this context, `storageName` and `storageIdentityKey`
8744
+ are ignored.
8745
+
8746
+ ```ts
8747
+ async migrate(storageName: string, storageIdentityKey: string): Promise<string>
8748
+ ```
8749
+
8750
+ ###### Method readSettings
8751
+
8752
+ Called by `makeAvailable` to return storage `TableSettings`.
8753
+ Since this is the first async method that must be called by all clients,
8754
+ it is where async initialization occurs.
8755
+
8756
+ After initialization, cached settings are returned.
8757
+
8758
+ ```ts
8759
+ async readSettings(trx?: sdk.TrxToken): Promise<TableSettings>
8760
+ ```
8761
+ See also: [TableSettings](./storage.md#interface-tablesettings), [TrxToken](./client.md#interface-trxtoken)
8762
+
8763
+ ###### Method toDbTrx
8764
+
8765
+ Convert the standard optional `TrxToken` parameter into either a direct knex database instance,
8766
+ or a Knex.Transaction as appropriate.
8767
+
8768
+ ```ts
8769
+ toDbTrx(stores: string[], mode: "readonly" | "readwrite", trx?: sdk.TrxToken): IDBPTransaction<StorageIdbSchema, string[], "readwrite" | "readonly">
8770
+ ```
8771
+ See also: [StorageIdbSchema](./storage.md#interface-storageidbschema), [TrxToken](./client.md#interface-trxtoken)
8772
+
8773
+ ###### Method validateEntities
8774
+
8775
+ Helper to force uniform behavior across database engines.
8776
+ Use to process all arrays of records with time stamps retreived from database.
8777
+
8778
+ ```ts
8779
+ validateEntities<T extends sdk.EntityTimeStamp>(entities: T[], dateFields?: string[], booleanFields?: string[]): T[]
8780
+ ```
8781
+ See also: [EntityTimeStamp](./client.md#interface-entitytimestamp)
8782
+
8783
+ Returns
8784
+
8785
+ input `entities` array with contained values validated.
8786
+
8787
+ ###### Method validateEntity
8788
+
8789
+ Helper to force uniform behavior across database engines.
8790
+ Use to process all individual records with time stamps or number[] retreived from database.
8791
+
8792
+ ```ts
8793
+ validateEntity<T extends sdk.EntityTimeStamp>(entity: T, dateFields?: string[], booleanFields?: string[]): T
8794
+ ```
8795
+ See also: [EntityTimeStamp](./client.md#interface-entitytimestamp)
8796
+
8797
+ ###### Method validateEntityForInsert
8798
+
8799
+ Helper to force uniform behavior across database engines.
8800
+ Use to process new entities being inserted into the database.
8801
+
8802
+ ```ts
8803
+ async validateEntityForInsert<T extends sdk.EntityTimeStamp>(entity: T, trx?: sdk.TrxToken, dateFields?: string[], booleanFields?: string[]): Promise<any>
8804
+ ```
8805
+ See also: [EntityTimeStamp](./client.md#interface-entitytimestamp), [TrxToken](./client.md#interface-trxtoken)
8806
+
8807
+ ###### Method validatePartialForUpdate
8808
+
8809
+ Helper to force uniform behavior across database engines.
8810
+ Use to process the update template for entities being updated.
8811
+
8812
+ ```ts
8813
+ validatePartialForUpdate<T extends sdk.EntityTimeStamp>(update: Partial<T>, dateFields?: string[], booleanFields?: string[]): Partial<T>
8814
+ ```
8815
+ See also: [EntityTimeStamp](./client.md#interface-entitytimestamp)
8816
+
8817
+ ###### Method verifyDB
8818
+
8819
+ Following initial database initialization, this method verfies that db is ready for use.
8820
+
8821
+ ```ts
8822
+ async verifyDB(storageName?: string, storageIdentityKey?: string): Promise<IDBPDatabase<StorageIdbSchema>>
8823
+ ```
8824
+ See also: [StorageIdbSchema](./storage.md#interface-storageidbschema)
8825
+
8826
+ Throws
8827
+
8828
+ `WERR_INVALID_OPERATION` if the database has not been initialized by a call to `migrate`.
8829
+
8830
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
8831
+
7782
8832
  ---
7783
8833
  ##### Class: StorageProvider
7784
8834
 
@@ -8902,8 +9952,8 @@ export class Wallet implements WalletInterface, ProtoWallet {
8902
9952
  async proveCertificate(args: ProveCertificateArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ProveCertificateResult>
8903
9953
  async discoverByIdentityKey(args: DiscoverByIdentityKeyArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
8904
9954
  async discoverByAttributes(args: DiscoverByAttributesArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<DiscoverCertificatesResult>
8905
- verifyReturnedTxidOnly(beef: Beef): Beef
8906
- verifyReturnedTxidOnlyAtomicBEEF(beef: AtomicBEEF): AtomicBEEF
9955
+ verifyReturnedTxidOnly(beef: Beef, knownTxids?: string[]): Beef
9956
+ verifyReturnedTxidOnlyAtomicBEEF(beef: AtomicBEEF, knownTxids?: string[]): AtomicBEEF
8907
9957
  verifyReturnedTxidOnlyBEEF(beef: BEEF): BEEF
8908
9958
  async createAction(args: CreateActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<CreateActionResult>
8909
9959
  async signAction(args: SignActionArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<SignActionResult>
@@ -9871,10 +10921,11 @@ export class WalletStorageManager implements sdk.WalletStorage {
9871
10921
  }>
9872
10922
  async updateBackups(activeSync?: sdk.WalletStorageSync): Promise<string>
9873
10923
  async setActive(storageIdentityKey: string): Promise<string>
10924
+ getStores(): sdk.WalletStorageInfo[]
9874
10925
  }
9875
10926
  ```
9876
10927
 
9877
- See also: [AuthId](./client.md#interface-authid), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [StorageCreateActionResult](./client.md#interface-storagecreateactionresult), [StorageProcessActionArgs](./client.md#interface-storageprocessactionargs), [StorageProcessActionResults](./client.md#interface-storageprocessactionresults), [StorageProvider](./storage.md#class-storageprovider), [TableCertificate](./storage.md#interface-tablecertificate), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableUser](./storage.md#interface-tableuser), [ValidCreateActionArgs](./client.md#interface-validcreateactionargs), [ValidListActionsArgs](./client.md#interface-validlistactionsargs), [ValidListCertificatesArgs](./client.md#interface-validlistcertificatesargs), [ValidListOutputsArgs](./client.md#interface-validlistoutputsargs), [WalletServices](./client.md#interface-walletservices), [WalletStorage](./client.md#interface-walletstorage), [WalletStorageProvider](./client.md#interface-walletstorageprovider), [WalletStorageReader](./client.md#interface-walletstoragereader), [WalletStorageSync](./client.md#interface-walletstoragesync), [WalletStorageSyncReader](./client.md#interface-walletstoragesyncreader), [WalletStorageWriter](./client.md#interface-walletstoragewriter), [createAction](./storage.md#function-createaction), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [processAction](./storage.md#function-processaction)
10928
+ See also: [AuthId](./client.md#interface-authid), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [StorageCreateActionResult](./client.md#interface-storagecreateactionresult), [StorageProcessActionArgs](./client.md#interface-storageprocessactionargs), [StorageProcessActionResults](./client.md#interface-storageprocessactionresults), [StorageProvider](./storage.md#class-storageprovider), [TableCertificate](./storage.md#interface-tablecertificate), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableUser](./storage.md#interface-tableuser), [ValidCreateActionArgs](./client.md#interface-validcreateactionargs), [ValidListActionsArgs](./client.md#interface-validlistactionsargs), [ValidListCertificatesArgs](./client.md#interface-validlistcertificatesargs), [ValidListOutputsArgs](./client.md#interface-validlistoutputsargs), [WalletServices](./client.md#interface-walletservices), [WalletStorage](./client.md#interface-walletstorage), [WalletStorageInfo](./client.md#interface-walletstorageinfo), [WalletStorageProvider](./client.md#interface-walletstorageprovider), [WalletStorageReader](./client.md#interface-walletstoragereader), [WalletStorageSync](./client.md#interface-walletstoragesync), [WalletStorageSyncReader](./client.md#interface-walletstoragesyncreader), [WalletStorageWriter](./client.md#interface-walletstoragewriter), [createAction](./storage.md#function-createaction), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [processAction](./storage.md#function-processaction)
9878
10929
 
9879
10930
  ###### Property _active
9880
10931
 
@@ -10153,8 +11204,8 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
10153
11204
 
10154
11205
  | | | |
10155
11206
  | --- | --- | --- |
10156
- | [acquireDirectCertificate](#function-acquiredirectcertificate) | [isLiveBlockHeader](#function-isliveblockheader) | [validateCreateActionOutput](#function-validatecreateactionoutput) |
10157
- | [arcDefaultUrl](#function-arcdefaulturl) | [listCertificates](#function-listcertificates) | [validateDiscoverByAttributesArgs](#function-validatediscoverbyattributesargs) |
11207
+ | [acquireDirectCertificate](#function-acquiredirectcertificate) | [listCertificates](#function-listcertificates) | [validateCreateActionOutput](#function-validatecreateactionoutput) |
11208
+ | [arcDefaultUrl](#function-arcdefaulturl) | [listOutputsIdb](#function-listoutputsidb) | [validateDiscoverByAttributesArgs](#function-validatediscoverbyattributesargs) |
10158
11209
  | [arraysEqual](#function-arraysequal) | [lockScriptWithKeyOffsetFromPubKey](#function-lockscriptwithkeyoffsetfrompubkey) | [validateDiscoverByIdentityKeyArgs](#function-validatediscoverbyidentitykeyargs) |
10159
11210
  | [asArray](#function-asarray) | [makeAtomicBeef](#function-makeatomicbeef) | [validateGenerateChangeSdkParams](#function-validategeneratechangesdkparams) |
10160
11211
  | [asBsvSdkPrivateKey](#function-asbsvsdkprivatekey) | [makeAtomicBeef](#function-makeatomicbeef) | [validateGenerateChangeSdkResult](#function-validategeneratechangesdkresult) |
@@ -10167,29 +11218,31 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
10167
11218
  | [completeSignedTransaction](#function-completesignedtransaction) | [processAction](#function-processaction) | [validateOptionalInteger](#function-validateoptionalinteger) |
10168
11219
  | [completeSignedTransaction](#function-completesignedtransaction) | [processAction](#function-processaction) | [validateOptionalOutpointString](#function-validateoptionaloutpointstring) |
10169
11220
  | [convertProofToMerklePath](#function-convertprooftomerklepath) | [proveCertificate](#function-provecertificate) | [validateOriginator](#function-validateoriginator) |
10170
- | [createAction](#function-createaction) | [randomBytes](#function-randombytes) | [validateOutpointString](#function-validateoutpointstring) |
10171
- | [createAction](#function-createaction) | [randomBytesBase64](#function-randombytesbase64) | [validatePositiveIntegerOrZero](#function-validatepositiveintegerorzero) |
10172
- | [createDefaultWalletServicesOptions](#function-createdefaultwalletservicesoptions) | [randomBytesHex](#function-randombyteshex) | [validateProveCertificateArgs](#function-validateprovecertificateargs) |
10173
- | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) | [validateRelinquishCertificateArgs](#function-validaterelinquishcertificateargs) |
10174
- | [createSyncMap](#function-createsyncmap) | [sha256Hash](#function-sha256hash) | [validateRelinquishOutputArgs](#function-validaterelinquishoutputargs) |
10175
- | [doubleSha256BE](#function-doublesha256be) | [signAction](#function-signaction) | [validateSatoshis](#function-validatesatoshis) |
10176
- | [doubleSha256HashLE](#function-doublesha256hashle) | [stampLog](#function-stamplog) | [validateScriptHash](#function-validatescripthash) |
10177
- | [generateChangeSdk](#function-generatechangesdk) | [stampLogFormat](#function-stamplogformat) | [validateSecondsSinceEpoch](#function-validatesecondssinceepoch) |
10178
- | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [toBinaryBaseBlockHeader](#function-tobinarybaseblockheader) | [validateSignActionArgs](#function-validatesignactionargs) |
10179
- | [getBeefForTransaction](#function-getbeeffortransaction) | [toWalletNetwork](#function-towalletnetwork) | [validateSignActionOptions](#function-validatesignactionoptions) |
10180
- | [getExchangeRatesIo](#function-getexchangeratesio) | [transactionInputSize](#function-transactioninputsize) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
10181
- | [getIdentityKey](#function-getidentitykey) | [transactionOutputSize](#function-transactionoutputsize) | [validateStringLength](#function-validatestringlength) |
10182
- | [getProofs](#function-getproofs) | [transactionSize](#function-transactionsize) | [validateWalletPayment](#function-validatewalletpayment) |
10183
- | [getSyncChunk](#function-getsyncchunk) | [updateChaintracksFiatExchangeRates](#function-updatechaintracksfiatexchangerates) | [varUintSize](#function-varuintsize) |
10184
- | [internalizeAction](#function-internalizeaction) | [updateExchangeratesapi](#function-updateexchangeratesapi) | [verifyHexString](#function-verifyhexstring) |
10185
- | [internalizeAction](#function-internalizeaction) | [validateAbortActionArgs](#function-validateabortactionargs) | [verifyId](#function-verifyid) |
10186
- | [isBaseBlockHeader](#function-isbaseblockheader) | [validateAcquireCertificateArgs](#function-validateacquirecertificateargs) | [verifyInteger](#function-verifyinteger) |
10187
- | [isBlockHeader](#function-isblockheader) | [validateAcquireDirectCertificateArgs](#function-validateacquiredirectcertificateargs) | [verifyNumber](#function-verifynumber) |
10188
- | [isCreateActionSpecOp](#function-iscreateactionspecop) | [validateAcquireIssuanceCertificateArgs](#function-validateacquireissuancecertificateargs) | [verifyOne](#function-verifyone) |
10189
- | [isHexString](#function-ishexstring) | [validateBasketInsertion](#function-validatebasketinsertion) | [verifyOneOrNone](#function-verifyoneornone) |
10190
- | [isListActionsSpecOp](#function-islistactionsspecop) | [validateCreateActionArgs](#function-validatecreateactionargs) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
10191
- | [isListOutputsSpecOp](#function-islistoutputsspecop) | [validateCreateActionInput](#function-validatecreateactioninput) | [verifyTruthy](#function-verifytruthy) |
10192
- | [isLive](#function-islive) | [validateCreateActionOptions](#function-validatecreateactionoptions) | [wait](#function-wait) |
11221
+ | [createAction](#function-createaction) | [purgeDataIdb](#function-purgedataidb) | [validateOutpointString](#function-validateoutpointstring) |
11222
+ | [createAction](#function-createaction) | [randomBytes](#function-randombytes) | [validatePositiveIntegerOrZero](#function-validatepositiveintegerorzero) |
11223
+ | [createDefaultWalletServicesOptions](#function-createdefaultwalletservicesoptions) | [randomBytesBase64](#function-randombytesbase64) | [validateProveCertificateArgs](#function-validateprovecertificateargs) |
11224
+ | [createStorageServiceChargeScript](#function-createstorageservicechargescript) | [randomBytesHex](#function-randombyteshex) | [validateRelinquishCertificateArgs](#function-validaterelinquishcertificateargs) |
11225
+ | [createSyncMap](#function-createsyncmap) | [reviewStatusIdb](#function-reviewstatusidb) | [validateRelinquishOutputArgs](#function-validaterelinquishoutputargs) |
11226
+ | [doubleSha256BE](#function-doublesha256be) | [setDisableDoubleSpendCheckForTest](#function-setdisabledoublespendcheckfortest) | [validateSatoshis](#function-validatesatoshis) |
11227
+ | [doubleSha256HashLE](#function-doublesha256hashle) | [sha256Hash](#function-sha256hash) | [validateScriptHash](#function-validatescripthash) |
11228
+ | [generateChangeSdk](#function-generatechangesdk) | [signAction](#function-signaction) | [validateSecondsSinceEpoch](#function-validatesecondssinceepoch) |
11229
+ | [generateChangeSdkMakeStorage](#function-generatechangesdkmakestorage) | [stampLog](#function-stamplog) | [validateSignActionArgs](#function-validatesignactionargs) |
11230
+ | [getBeefForTransaction](#function-getbeeffortransaction) | [stampLogFormat](#function-stamplogformat) | [validateSignActionOptions](#function-validatesignactionoptions) |
11231
+ | [getExchangeRatesIo](#function-getexchangeratesio) | [toBinaryBaseBlockHeader](#function-tobinarybaseblockheader) | [validateStorageFeeModel](#function-validatestoragefeemodel) |
11232
+ | [getIdentityKey](#function-getidentitykey) | [toWalletNetwork](#function-towalletnetwork) | [validateStringLength](#function-validatestringlength) |
11233
+ | [getProofs](#function-getproofs) | [transactionInputSize](#function-transactioninputsize) | [validateWalletPayment](#function-validatewalletpayment) |
11234
+ | [getSyncChunk](#function-getsyncchunk) | [transactionOutputSize](#function-transactionoutputsize) | [varUintSize](#function-varuintsize) |
11235
+ | [internalizeAction](#function-internalizeaction) | [transactionSize](#function-transactionsize) | [verifyHexString](#function-verifyhexstring) |
11236
+ | [internalizeAction](#function-internalizeaction) | [updateChaintracksFiatExchangeRates](#function-updatechaintracksfiatexchangerates) | [verifyId](#function-verifyid) |
11237
+ | [isBaseBlockHeader](#function-isbaseblockheader) | [updateExchangeratesapi](#function-updateexchangeratesapi) | [verifyInteger](#function-verifyinteger) |
11238
+ | [isBlockHeader](#function-isblockheader) | [validateAbortActionArgs](#function-validateabortactionargs) | [verifyNumber](#function-verifynumber) |
11239
+ | [isCreateActionSpecOp](#function-iscreateactionspecop) | [validateAcquireCertificateArgs](#function-validateacquirecertificateargs) | [verifyOne](#function-verifyone) |
11240
+ | [isHexString](#function-ishexstring) | [validateAcquireDirectCertificateArgs](#function-validateacquiredirectcertificateargs) | [verifyOneOrNone](#function-verifyoneornone) |
11241
+ | [isListActionsSpecOp](#function-islistactionsspecop) | [validateAcquireIssuanceCertificateArgs](#function-validateacquireissuancecertificateargs) | [verifyOptionalHexString](#function-verifyoptionalhexstring) |
11242
+ | [isListOutputsSpecOp](#function-islistoutputsspecop) | [validateBasketInsertion](#function-validatebasketinsertion) | [verifyTruthy](#function-verifytruthy) |
11243
+ | [isLive](#function-islive) | [validateCreateActionArgs](#function-validatecreateactionargs) | [wait](#function-wait) |
11244
+ | [isLiveBlockHeader](#function-isliveblockheader) | [validateCreateActionInput](#function-validatecreateactioninput) | |
11245
+ | [listActionsIdb](#function-listactionsidb) | [validateCreateActionOptions](#function-validatecreateactionoptions) | |
10193
11246
 
10194
11247
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
10195
11248
 
@@ -10818,6 +11871,17 @@ See also: [BaseBlockHeader](./services.md#interface-baseblockheader), [BlockHead
10818
11871
 
10819
11872
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
10820
11873
 
11874
+ ---
11875
+ ##### Function: listActionsIdb
11876
+
11877
+ ```ts
11878
+ export async function listActionsIdb(storage: StorageIdb, auth: sdk.AuthId, vargs: sdk.ValidListActionsArgs): Promise<ListActionsResult>
11879
+ ```
11880
+
11881
+ See also: [AuthId](./client.md#interface-authid), [StorageIdb](./storage.md#class-storageidb), [ValidListActionsArgs](./client.md#interface-validlistactionsargs)
11882
+
11883
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
11884
+
10821
11885
  ---
10822
11886
  ##### Function: listCertificates
10823
11887
 
@@ -10829,6 +11893,17 @@ See also: [AuthId](./client.md#interface-authid), [StorageProvider](./storage.md
10829
11893
 
10830
11894
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
10831
11895
 
11896
+ ---
11897
+ ##### Function: listOutputsIdb
11898
+
11899
+ ```ts
11900
+ export async function listOutputsIdb(storage: StorageIdb, auth: sdk.AuthId, vargs: sdk.ValidListOutputsArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<ListOutputsResult>
11901
+ ```
11902
+
11903
+ See also: [AuthId](./client.md#interface-authid), [StorageIdb](./storage.md#class-storageidb), [ValidListOutputsArgs](./client.md#interface-validlistoutputsargs)
11904
+
11905
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
11906
+
10832
11907
  ---
10833
11908
  ##### Function: lockScriptWithKeyOffsetFromPubKey
10834
11909
 
@@ -10958,6 +12033,17 @@ See also: [AuthId](./client.md#interface-authid), [ValidProveCertificateArgs](./
10958
12033
 
10959
12034
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
10960
12035
 
12036
+ ---
12037
+ ##### Function: purgeDataIdb
12038
+
12039
+ ```ts
12040
+ export async function purgeDataIdb(storage: StorageIdb, params: sdk.PurgeParams, trx?: sdk.TrxToken): Promise<sdk.PurgeResults>
12041
+ ```
12042
+
12043
+ See also: [PurgeParams](./client.md#interface-purgeparams), [PurgeResults](./client.md#interface-purgeresults), [StorageIdb](./storage.md#class-storageidb), [TrxToken](./client.md#interface-trxtoken)
12044
+
12045
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
12046
+
10961
12047
  ---
10962
12048
  ##### Function: randomBytes
10963
12049
 
@@ -10997,6 +12083,28 @@ count cryptographically secure random bytes as hex encoded string
10997
12083
 
10998
12084
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
10999
12085
 
12086
+ ---
12087
+ ##### Function: reviewStatusIdb
12088
+
12089
+ Looks for unpropagated state:
12090
+
12091
+ 1. set transactions to 'failed' if not already failed and provenTxReq with matching txid has status of 'invalid'.
12092
+ 2. sets transactions to 'completed' if provenTx with matching txid exists and current provenTxId is null.
12093
+ 3. sets outputs to spendable true, spentBy undefined if spentBy is a transaction with status 'failed'.
12094
+
12095
+ ```ts
12096
+ export async function reviewStatusIdb(storage: StorageIdb, args: {
12097
+ agedLimit: Date;
12098
+ trx?: sdk.TrxToken;
12099
+ }): Promise<{
12100
+ log: string;
12101
+ }>
12102
+ ```
12103
+
12104
+ See also: [StorageIdb](./storage.md#class-storageidb), [TrxToken](./client.md#interface-trxtoken)
12105
+
12106
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
12107
+
11000
12108
  ---
11001
12109
  ##### Function: setDisableDoubleSpendCheckForTest
11002
12110
 
@@ -12118,16 +13226,17 @@ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](
12118
13226
 
12119
13227
  | | |
12120
13228
  | --- | --- |
12121
- | [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [queryOverlay](#variable-queryoverlay) |
12122
- | [DEFAULT_SETTINGS](#variable-default_settings) | [specOpFailedActions](#variable-specopfailedactions) |
12123
- | [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [specOpInvalidChange](#variable-specopinvalidchange) |
12124
- | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [specOpNoSendActions](#variable-specopnosendactions) |
12125
- | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
12126
- | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
12127
- | [brc29ProtocolID](#variable-brc29protocolid) | [specOpWalletBalance](#variable-specopwalletbalance) |
12128
- | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
12129
- | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
12130
- | [parseResults](#variable-parseresults) | |
13229
+ | [DEFAULT_PROFILE_ID](#variable-default_profile_id) | [parseResults](#variable-parseresults) |
13230
+ | [DEFAULT_SETTINGS](#variable-default_settings) | [queryOverlay](#variable-queryoverlay) |
13231
+ | [PBKDF2_NUM_ROUNDS](#variable-pbkdf2_num_rounds) | [specOpFailedActions](#variable-specopfailedactions) |
13232
+ | [ProvenTxReqNonTerminalStatus](#variable-proventxreqnonterminalstatus) | [specOpInvalidChange](#variable-specopinvalidchange) |
13233
+ | [ProvenTxReqTerminalStatus](#variable-proventxreqterminalstatus) | [specOpNoSendActions](#variable-specopnosendactions) |
13234
+ | [TESTNET_DEFAULT_SETTINGS](#variable-testnet_default_settings) | [specOpSetWalletChangeParams](#variable-specopsetwalletchangeparams) |
13235
+ | [brc29ProtocolID](#variable-brc29protocolid) | [specOpThrowReviewActions](#variable-specopthrowreviewactions) |
13236
+ | [getBasketToSpecOp](#variable-getbaskettospecop) | [specOpWalletBalance](#variable-specopwalletbalance) |
13237
+ | [getLabelToSpecOp](#variable-getlabeltospecop) | [transactionColumnsWithoutRawTx](#variable-transactioncolumnswithoutrawtx) |
13238
+ | [maxPossibleSatoshis](#variable-maxpossiblesatoshis) | [transformVerifiableCertificatesWithTrust](#variable-transformverifiablecertificateswithtrust) |
13239
+ | [outputColumnsWithoutLockingScript](#variable-outputcolumnswithoutlockingscript) | |
12131
13240
 
12132
13241
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
12133
13242
 
@@ -12243,6 +13352,124 @@ brc29ProtocolID: WalletProtocol = [2, "3241645161d8"]
12243
13352
 
12244
13353
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
12245
13354
 
13355
+ ---
13356
+ ##### Variable: getBasketToSpecOp
13357
+
13358
+ ```ts
13359
+ getBasketToSpecOp: () => Record<string, ListOutputsSpecOp> = () => {
13360
+ return {
13361
+ [sdk.specOpWalletBalance]: {
13362
+ name: "totalOutputsIsWalletBalance",
13363
+ useBasket: "default",
13364
+ ignoreLimit: true,
13365
+ resultFromOutputs: async (s: StorageProvider, auth: sdk.AuthId, vargs: ValidListOutputsArgs, specOpTags: string[], outputs: TableOutput[]): Promise<ListOutputsResult> => {
13366
+ let totalOutputs = 0;
13367
+ for (const o of outputs)
13368
+ totalOutputs += o.satoshis;
13369
+ return { totalOutputs, outputs: [] };
13370
+ }
13371
+ },
13372
+ [sdk.specOpInvalidChange]: {
13373
+ name: "invalidChangeOutputs",
13374
+ useBasket: "default",
13375
+ ignoreLimit: true,
13376
+ includeOutputScripts: true,
13377
+ includeSpent: false,
13378
+ tagsToIntercept: ["release", "all"],
13379
+ filterOutputs: async (s: StorageProvider, auth: sdk.AuthId, vargs: ValidListOutputsArgs, specOpTags: string[], outputs: TableOutput[]): Promise<TableOutput[]> => {
13380
+ const filteredOutputs: TableOutput[] = [];
13381
+ const services = s.getServices();
13382
+ for (const o of outputs) {
13383
+ await s.validateOutputScript(o);
13384
+ let ok: boolean | undefined = false;
13385
+ if (o.lockingScript && o.lockingScript.length > 0) {
13386
+ ok = await services.isUtxo(o);
13387
+ }
13388
+ else {
13389
+ ok = undefined;
13390
+ }
13391
+ if (ok === false) {
13392
+ filteredOutputs.push(o);
13393
+ }
13394
+ }
13395
+ if (specOpTags.indexOf("release") >= 0) {
13396
+ for (const o of filteredOutputs) {
13397
+ await s.updateOutput(o.outputId, { spendable: false });
13398
+ o.spendable = false;
13399
+ }
13400
+ }
13401
+ return filteredOutputs;
13402
+ }
13403
+ },
13404
+ [sdk.specOpSetWalletChangeParams]: {
13405
+ name: "setWalletChangeParams",
13406
+ tagsParamsCount: 2,
13407
+ resultFromTags: async (s: StorageProvider, auth: sdk.AuthId, vargs: ValidListOutputsArgs, specOpTags: string[]): Promise<ListOutputsResult> => {
13408
+ if (specOpTags.length !== 2)
13409
+ throw new sdk.WERR_INVALID_PARAMETER("numberOfDesiredUTXOs and minimumDesiredUTXOValue", "valid");
13410
+ const numberOfDesiredUTXOs: number = verifyInteger(Number(specOpTags[0]));
13411
+ const minimumDesiredUTXOValue: number = verifyInteger(Number(specOpTags[1]));
13412
+ const basket = verifyOne(await s.findOutputBaskets({
13413
+ partial: { userId: verifyId(auth.userId), name: "default" }
13414
+ }));
13415
+ await s.updateOutputBasket(basket.basketId, {
13416
+ numberOfDesiredUTXOs,
13417
+ minimumDesiredUTXOValue
13418
+ });
13419
+ return { totalOutputs: 0, outputs: [] };
13420
+ }
13421
+ }
13422
+ };
13423
+ }
13424
+ ```
13425
+
13426
+ See also: [AuthId](./client.md#interface-authid), [ListOutputsSpecOp](./storage.md#interface-listoutputsspecop), [StorageProvider](./storage.md#class-storageprovider), [TableOutput](./storage.md#interface-tableoutput), [ValidListOutputsArgs](./client.md#interface-validlistoutputsargs), [WERR_INVALID_PARAMETER](./client.md#class-werr_invalid_parameter), [specOpInvalidChange](./client.md#variable-specopinvalidchange), [specOpSetWalletChangeParams](./client.md#variable-specopsetwalletchangeparams), [specOpWalletBalance](./client.md#variable-specopwalletbalance), [verifyId](./client.md#function-verifyid), [verifyInteger](./client.md#function-verifyinteger), [verifyOne](./client.md#function-verifyone)
13427
+
13428
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
13429
+
13430
+ ---
13431
+ ##### Variable: getLabelToSpecOp
13432
+
13433
+ ```ts
13434
+ getLabelToSpecOp: () => Record<string, ListActionsSpecOp> = () => {
13435
+ return {
13436
+ [sdk.specOpNoSendActions]: {
13437
+ name: "noSendActions",
13438
+ labelsToIntercept: ["abort"],
13439
+ setStatusFilter: () => ["nosend"],
13440
+ postProcess: async (s: StorageProvider, auth: sdk.AuthId, vargs: sdk.ValidListActionsArgs, specOpLabels: string[], txs: Partial<TableTransaction>[]): Promise<void> => {
13441
+ if (specOpLabels.indexOf("abort") >= 0) {
13442
+ for (const tx of txs) {
13443
+ if (tx.status === "nosend") {
13444
+ await s.abortAction(auth, { reference: tx.reference! });
13445
+ tx.status = "failed";
13446
+ }
13447
+ }
13448
+ }
13449
+ }
13450
+ },
13451
+ [sdk.specOpFailedActions]: {
13452
+ name: "failedActions",
13453
+ labelsToIntercept: ["unfail"],
13454
+ setStatusFilter: () => ["failed"],
13455
+ postProcess: async (s: StorageProvider, auth: sdk.AuthId, vargs: sdk.ValidListActionsArgs, specOpLabels: string[], txs: Partial<TableTransaction>[]): Promise<void> => {
13456
+ if (specOpLabels.indexOf("unfail") >= 0) {
13457
+ for (const tx of txs) {
13458
+ if (tx.status === "failed") {
13459
+ await s.updateTransaction(tx.transactionId!, { status: "unfail" });
13460
+ }
13461
+ }
13462
+ }
13463
+ }
13464
+ }
13465
+ };
13466
+ }
13467
+ ```
13468
+
13469
+ See also: [AuthId](./client.md#interface-authid), [ListActionsSpecOp](./storage.md#interface-listactionsspecop), [StorageProvider](./storage.md#class-storageprovider), [TableTransaction](./storage.md#interface-tabletransaction), [ValidListActionsArgs](./client.md#interface-validlistactionsargs), [specOpFailedActions](./client.md#variable-specopfailedactions), [specOpNoSendActions](./client.md#variable-specopnosendactions)
13470
+
13471
+ Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
13472
+
12246
13473
  ---
12247
13474
  ##### Variable: maxPossibleSatoshis
12248
13475