@bsv/wallet-toolbox 1.1.34 → 1.1.35

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 (117) hide show
  1. package/docs/client.md +215 -213
  2. package/docs/setup.md +2 -2
  3. package/docs/storage.md +140 -34
  4. package/docs/wallet.md +215 -213
  5. package/out/src/Setup.d.ts.map +1 -1
  6. package/out/src/Setup.js +2 -2
  7. package/out/src/Setup.js.map +1 -1
  8. package/out/src/sdk/WERR_errors.d.ts +1 -1
  9. package/out/src/sdk/WERR_errors.d.ts.map +1 -1
  10. package/out/src/sdk/WERR_errors.js +2 -2
  11. package/out/src/sdk/WERR_errors.js.map +1 -1
  12. package/out/src/sdk/WalletStorage.interfaces.d.ts +107 -0
  13. package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
  14. package/out/src/sdk/index.d.ts +0 -2
  15. package/out/src/sdk/index.d.ts.map +1 -1
  16. package/out/src/sdk/index.js +0 -2
  17. package/out/src/sdk/index.js.map +1 -1
  18. package/out/src/services/__tests/verifyBeef.test.d.ts +2 -0
  19. package/out/src/services/__tests/verifyBeef.test.d.ts.map +1 -0
  20. package/out/src/services/__tests/verifyBeef.test.js +16 -0
  21. package/out/src/services/__tests/verifyBeef.test.js.map +1 -0
  22. package/out/src/services/providers/__tests/WhatsOnChain.test.js +11 -0
  23. package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +1 -1
  24. package/out/src/storage/StorageReader.d.ts +1 -1
  25. package/out/src/storage/StorageReader.d.ts.map +1 -1
  26. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  27. package/out/src/storage/StorageReaderWriter.js +2 -1
  28. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  29. package/out/src/storage/StorageSyncReader.d.ts +2 -18
  30. package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
  31. package/out/src/storage/StorageSyncReader.js +1 -105
  32. package/out/src/storage/StorageSyncReader.js.map +1 -1
  33. package/out/src/storage/WalletStorageManager.d.ts +86 -10
  34. package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
  35. package/out/src/storage/WalletStorageManager.js +235 -78
  36. package/out/src/storage/WalletStorageManager.js.map +1 -1
  37. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  38. package/out/src/storage/schema/KnexMigrations.js +19 -0
  39. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  40. package/out/src/storage/schema/entities/User.d.ts +2 -2
  41. package/out/src/storage/schema/entities/User.d.ts.map +1 -1
  42. package/out/src/storage/schema/entities/User.js +1 -1
  43. package/out/src/storage/schema/entities/User.js.map +1 -1
  44. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js +2 -1
  45. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +1 -1
  46. package/out/src/storage/schema/entities/__tests/usersTests.test.js +12 -6
  47. package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +1 -1
  48. package/out/src/storage/schema/tables/User.d.ts +1 -1
  49. package/out/src/storage/schema/tables/User.d.ts.map +1 -1
  50. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts +1 -1
  51. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  52. package/out/src/storage/sync/StorageMySQLDojoReader.js +4 -5
  53. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  54. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js +25 -13
  55. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js.map +1 -1
  56. package/out/test/Wallet/sync/setActive.test.d.ts +2 -0
  57. package/out/test/Wallet/sync/setActive.test.d.ts.map +1 -0
  58. package/out/test/Wallet/sync/setActive.test.js +60 -0
  59. package/out/test/Wallet/sync/setActive.test.js.map +1 -0
  60. package/out/test/examples/{backup.test.d.ts → backup.man.test.d.ts} +1 -1
  61. package/out/test/examples/backup.man.test.d.ts.map +1 -0
  62. package/out/test/examples/{backup.test.js → backup.man.test.js} +1 -1
  63. package/out/test/examples/backup.man.test.js.map +1 -0
  64. package/out/test/storage/StorageMySQLDojoReader.man.test.js.map +1 -1
  65. package/out/test/storage/count.test.js +1 -0
  66. package/out/test/storage/count.test.js.map +1 -1
  67. package/out/test/storage/find.test.js +1 -0
  68. package/out/test/storage/find.test.js.map +1 -1
  69. package/out/test/storage/update.test.js +3 -1
  70. package/out/test/storage/update.test.js.map +1 -1
  71. package/out/test/storage/update2.test.js +5 -2
  72. package/out/test/storage/update2.test.js.map +1 -1
  73. package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
  74. package/out/test/utils/TestUtilsWalletStorage.js +5 -4
  75. package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
  76. package/out/test/wallet/sync/Wallet.sync.test.js +1 -3
  77. package/out/test/wallet/sync/Wallet.sync.test.js.map +1 -1
  78. package/out/tsconfig.all.tsbuildinfo +1 -1
  79. package/package.json +1 -1
  80. package/src/Setup.ts +3 -2
  81. package/src/sdk/WERR_errors.ts +3 -2
  82. package/src/sdk/WalletStorage.interfaces.ts +117 -0
  83. package/src/sdk/index.ts +0 -2
  84. package/src/services/__tests/verifyBeef.test.ts +18 -0
  85. package/src/services/providers/__tests/WhatsOnChain.test.ts +16 -1
  86. package/src/storage/StorageReader.ts +1 -1
  87. package/src/storage/StorageReaderWriter.ts +2 -1
  88. package/src/storage/StorageSyncReader.ts +2 -109
  89. package/src/storage/WalletStorageManager.ts +307 -86
  90. package/src/storage/schema/KnexMigrations.ts +23 -1
  91. package/src/storage/schema/entities/User.ts +2 -2
  92. package/src/storage/schema/entities/__tests/SyncStateTests.test.ts +2 -1
  93. package/src/storage/schema/entities/__tests/usersTests.test.ts +12 -6
  94. package/src/storage/schema/tables/User.ts +1 -1
  95. package/src/storage/sync/StorageMySQLDojoReader.ts +8 -6
  96. package/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.ts +30 -13
  97. package/test/Wallet/sync/setActive.test.ts +67 -0
  98. package/test/storage/StorageMySQLDojoReader.man.test.ts +1 -1
  99. package/test/storage/count.test.ts +1 -0
  100. package/test/storage/find.test.ts +1 -0
  101. package/test/storage/update.test.ts +3 -1
  102. package/test/storage/update2.test.ts +5 -2
  103. package/test/utils/TestUtilsWalletStorage.ts +5 -4
  104. package/test/wallet/sync/Wallet.sync.test.ts +1 -3
  105. package/out/src/sdk/StorageSyncReader.d.ts +0 -121
  106. package/out/src/sdk/StorageSyncReader.d.ts.map +0 -1
  107. package/out/src/sdk/StorageSyncReader.js +0 -3
  108. package/out/src/sdk/StorageSyncReader.js.map +0 -1
  109. package/out/src/sdk/StorageSyncReaderWriter.d.ts +0 -89
  110. package/out/src/sdk/StorageSyncReaderWriter.d.ts.map +0 -1
  111. package/out/src/sdk/StorageSyncReaderWriter.js +0 -3
  112. package/out/src/sdk/StorageSyncReaderWriter.js.map +0 -1
  113. package/out/test/examples/backup.test.d.ts.map +0 -1
  114. package/out/test/examples/backup.test.js.map +0 -1
  115. package/src/sdk/StorageSyncReader.ts +0 -173
  116. package/src/sdk/StorageSyncReaderWriter.ts +0 -277
  117. /package/test/examples/{backup.test.ts → backup.man.test.ts} +0 -0
package/docs/storage.md CHANGED
@@ -1088,7 +1088,7 @@ export interface TableUser extends sdk.EntityTimeStamp {
1088
1088
  updated_at: Date;
1089
1089
  userId: number;
1090
1090
  identityKey: string;
1091
- activeStorage?: string;
1091
+ activeStorage: string;
1092
1092
  }
1093
1093
  ```
1094
1094
 
@@ -1099,7 +1099,7 @@ See also: [EntityTimeStamp](./client.md#interface-entitytimestamp)
1099
1099
  The storageIdentityKey value of the active wallet storage.
1100
1100
 
1101
1101
  ```ts
1102
- activeStorage?: string
1102
+ activeStorage: string
1103
1103
  ```
1104
1104
 
1105
1105
  ###### Property identityKey
@@ -2087,7 +2087,7 @@ export class EntityUser extends EntityBase<TableUser> {
2087
2087
  get identityKey()
2088
2088
  set identityKey(v: string)
2089
2089
  get activeStorage()
2090
- set activeStorage(v: string | undefined)
2090
+ set activeStorage(v: string)
2091
2091
  override get id(): number
2092
2092
  override set id(v: number)
2093
2093
  override get entityName(): string
@@ -3270,7 +3270,7 @@ The ability to construct a properly configured instance of this class implies au
3270
3270
  As such there are no user specific authenticated access checks implied in the implementation of any of these methods.
3271
3271
 
3272
3272
  ```ts
3273
- export abstract class StorageReader implements sdk.StorageSyncReader {
3273
+ export abstract class StorageReader implements sdk.WalletStorageSyncReader {
3274
3274
  chain: sdk.Chain;
3275
3275
  _settings?: TableSettings;
3276
3276
  whenLastAccess?: Date;
@@ -3319,7 +3319,7 @@ export abstract class StorageReader implements sdk.StorageSyncReader {
3319
3319
  }
3320
3320
  ```
3321
3321
 
3322
- See also: [Chain](./client.md#type-chain), [DBType](./storage.md#type-dbtype), [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), [FindOutputTagsArgs](./client.md#interface-findoutputtagsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindSyncStatesArgs](./client.md#interface-findsyncstatesargs), [FindTransactionsArgs](./client.md#interface-findtransactionsargs), [FindTxLabelsArgs](./client.md#interface-findtxlabelsargs), [FindUsersArgs](./client.md#interface-findusersargs), [RequestSyncChunkArgs](./client.md#interface-requestsyncchunkargs), [StorageReaderOptions](./storage.md#interface-storagereaderoptions), [StorageSyncReader](./storage.md#class-storagesyncreader), [SyncChunk](./client.md#interface-syncchunk), [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), [getSyncChunk](./storage.md#function-getsyncchunk)
3322
+ See also: [Chain](./client.md#type-chain), [DBType](./storage.md#type-dbtype), [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), [FindOutputTagsArgs](./client.md#interface-findoutputtagsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindSyncStatesArgs](./client.md#interface-findsyncstatesargs), [FindTransactionsArgs](./client.md#interface-findtransactionsargs), [FindTxLabelsArgs](./client.md#interface-findtxlabelsargs), [FindUsersArgs](./client.md#interface-findusersargs), [RequestSyncChunkArgs](./client.md#interface-requestsyncchunkargs), [StorageReaderOptions](./storage.md#interface-storagereaderoptions), [SyncChunk](./client.md#interface-syncchunk), [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), [WalletStorageSyncReader](./client.md#interface-walletstoragesyncreader), [getSyncChunk](./storage.md#function-getsyncchunk)
3323
3323
 
3324
3324
  ###### Method validateEntityDate
3325
3325
 
@@ -3457,31 +3457,15 @@ Constructed from an `auth` object that must minimally include the authenticated
3457
3457
  and the `StorageBaseReader` to be protected.
3458
3458
 
3459
3459
  ```ts
3460
- export class StorageSyncReader implements sdk.StorageSyncReader {
3460
+ export class StorageSyncReader implements sdk.WalletStorageSyncReader {
3461
3461
  constructor(public auth: sdk.AuthId, public storage: StorageReader)
3462
- isAvailable(): boolean
3463
3462
  async makeAvailable(): Promise<TableSettings>
3464
3463
  destroy(): Promise<void>
3465
- getSettings(): TableSettings
3466
3464
  async getSyncChunk(args: sdk.RequestSyncChunkArgs): Promise<sdk.SyncChunk>
3467
- async findUserByIdentityKey(key: string): Promise<TableUser | undefined>
3468
- async findSyncStates(args: sdk.FindSyncStatesArgs): Promise<TableSyncState[]>
3469
- async findCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<TableCertificateField[]>
3470
- async findCertificates(args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>
3471
- async findCommissions(args: sdk.FindCommissionsArgs): Promise<TableCommission[]>
3472
- async findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>
3473
- async findOutputs(args: sdk.FindOutputsArgs): Promise<TableOutput[]>
3474
- async findOutputTags(args: sdk.FindOutputTagsArgs): Promise<TableOutputTag[]>
3475
- async findTransactions(args: sdk.FindTransactionsArgs): Promise<TableTransaction[]>
3476
- async findTxLabels(args: sdk.FindTxLabelsArgs): Promise<TableTxLabel[]>
3477
- async getProvenTxsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTx[]>
3478
- async getProvenTxReqsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTxReq[]>
3479
- async getTxLabelMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableTxLabelMap[]>
3480
- async getOutputTagMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableOutputTagMap[]>
3481
3465
  }
3482
3466
  ```
3483
3467
 
3484
- See also: [AuthId](./client.md#interface-authid), [FindCertificateFieldsArgs](./client.md#interface-findcertificatefieldsargs), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindCommissionsArgs](./client.md#interface-findcommissionsargs), [FindForUserSincePagedArgs](./client.md#interface-findforusersincepagedargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputTagsArgs](./client.md#interface-findoutputtagsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindSyncStatesArgs](./client.md#interface-findsyncstatesargs), [FindTransactionsArgs](./client.md#interface-findtransactionsargs), [FindTxLabelsArgs](./client.md#interface-findtxlabelsargs), [RequestSyncChunkArgs](./client.md#interface-requestsyncchunkargs), [StorageReader](./storage.md#class-storagereader), [SyncChunk](./client.md#interface-syncchunk), [TableCertificateField](./storage.md#interface-tablecertificatefield), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableCommission](./storage.md#interface-tablecommission), [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), [getSyncChunk](./storage.md#function-getsyncchunk)
3468
+ See also: [AuthId](./client.md#interface-authid), [RequestSyncChunkArgs](./client.md#interface-requestsyncchunkargs), [StorageReader](./storage.md#class-storagereader), [SyncChunk](./client.md#interface-syncchunk), [TableSettings](./storage.md#interface-tablesettings), [WalletStorageSyncReader](./client.md#interface-walletstoragesyncreader), [getSyncChunk](./storage.md#function-getsyncchunk)
3485
3469
 
3486
3470
  Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
3487
3471
 
@@ -3504,10 +3488,13 @@ for these services.
3504
3488
 
3505
3489
  ```ts
3506
3490
  export class WalletStorageManager implements sdk.WalletStorage {
3507
- stores: sdk.WalletStorageProvider[] = [];
3491
+ _stores: ManagedStorage[] = [];
3492
+ _isAvailable: boolean = false;
3493
+ _active?: ManagedStorage;
3494
+ _backups?: ManagedStorage[];
3495
+ _conflictingActives?: ManagedStorage[];
3508
3496
  _authId: sdk.AuthId;
3509
3497
  _services?: sdk.WalletServices;
3510
- _userIdentityKeyToId: Record<string, number> = {};
3511
3498
  _readerCount: number = 0;
3512
3499
  _writerCount: number = 0;
3513
3500
  _isSingleWriter: boolean = true;
@@ -3515,9 +3502,19 @@ export class WalletStorageManager implements sdk.WalletStorage {
3515
3502
  _storageProviderLocked: boolean = false;
3516
3503
  constructor(identityKey: string, active?: sdk.WalletStorageProvider, backups?: sdk.WalletStorageProvider[])
3517
3504
  isStorageProvider(): boolean
3518
- async getUserId(): Promise<number>
3505
+ isAvailable(): boolean
3506
+ get isActiveEnabled(): boolean
3507
+ canMakeAvailable(): boolean
3508
+ async makeAvailable(): Promise<TableSettings>
3519
3509
  async getAuth(mustBeActive?: boolean): Promise<sdk.AuthId>
3510
+ async getUserId(): Promise<number>
3520
3511
  getActive(): sdk.WalletStorageProvider
3512
+ getActiveSettings(): TableSettings
3513
+ getActiveUser(): TableUser
3514
+ getActiveStore(): string
3515
+ getBackupStores(): string[]
3516
+ getConflictingStores(): string[]
3517
+ getAllStores(): string[]
3521
3518
  async getActiveForWriter(): Promise<sdk.WalletStorageWriter>
3522
3519
  async getActiveForReader(): Promise<sdk.WalletStorageReader>
3523
3520
  async getActiveForSync(): Promise<sdk.WalletStorageSync>
@@ -3527,12 +3524,10 @@ export class WalletStorageManager implements sdk.WalletStorage {
3527
3524
  async runAsSync<R>(sync: (active: sdk.WalletStorageSync) => Promise<R>, activeSync?: sdk.WalletStorageSync): Promise<R>
3528
3525
  async runAsStorageProvider<R>(sync: (active: StorageProvider) => Promise<R>): Promise<R>
3529
3526
  isActiveStorageProvider(): boolean
3530
- isAvailable(): boolean
3531
3527
  async addWalletStorageProvider(provider: sdk.WalletStorageProvider): Promise<void>
3532
3528
  setServices(v: sdk.WalletServices)
3533
3529
  getServices(): sdk.WalletServices
3534
3530
  getSettings(): TableSettings
3535
- async makeAvailable(): Promise<TableSettings>
3536
3531
  async migrate(storageName: string, storageIdentityKey: string): Promise<string>
3537
3532
  async destroy(): Promise<void>
3538
3533
  async findOrInsertUser(identityKey: string): Promise<{
@@ -3553,17 +3548,63 @@ export class WalletStorageManager implements sdk.WalletStorage {
3553
3548
  async findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>
3554
3549
  async findOutputs(args: sdk.FindOutputsArgs): Promise<TableOutput[]>
3555
3550
  async findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<TableProvenTxReq[]>
3556
- async syncFromReader(identityKey: string, reader: StorageSyncReader): Promise<void>
3557
- async updateBackups(activeSync?: sdk.WalletStorageSync)
3558
- async syncToWriter(auth: sdk.AuthId, writer: sdk.WalletStorageProvider, activeSync?: sdk.WalletStorageSync): Promise<{
3551
+ async syncFromReader(identityKey: string, reader: sdk.WalletStorageSyncReader, activeSync?: sdk.WalletStorageSync, log: string = ""): Promise<{
3552
+ inserts: number;
3553
+ updates: number;
3554
+ log: string;
3555
+ }>
3556
+ async syncToWriter(auth: sdk.AuthId, writer: sdk.WalletStorageProvider, activeSync?: sdk.WalletStorageSync, log: string = ""): Promise<{
3559
3557
  inserts: number;
3560
3558
  updates: number;
3559
+ log: string;
3561
3560
  }>
3562
- async setActive(storageIdentityKey: string): Promise<void>
3561
+ async updateBackups(activeSync?: sdk.WalletStorageSync)
3562
+ async setActive(storageIdentityKey: string): Promise<string>
3563
3563
  }
3564
3564
  ```
3565
3565
 
3566
- 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), [StorageSyncReader](./storage.md#class-storagesyncreader), [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), [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)
3566
+ 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)
3567
+
3568
+ ###### Property _active
3569
+
3570
+ The current active store which is only enabled if the store's user record activeStorage property matches its settings record storageIdentityKey property
3571
+
3572
+ ```ts
3573
+ _active?: ManagedStorage
3574
+ ```
3575
+
3576
+ ###### Property _authId
3577
+
3578
+ identityKey is always valid, userId and isActive are valid only if _isAvailable
3579
+
3580
+ ```ts
3581
+ _authId: sdk.AuthId
3582
+ ```
3583
+ See also: [AuthId](./client.md#interface-authid)
3584
+
3585
+ ###### Property _backups
3586
+
3587
+ Stores to which state is pushed by updateBackups.
3588
+
3589
+ ```ts
3590
+ _backups?: ManagedStorage[]
3591
+ ```
3592
+
3593
+ ###### Property _conflictingActives
3594
+
3595
+ Stores whose user record activeStorage property disagrees with the active store's user record activeStorage property.
3596
+
3597
+ ```ts
3598
+ _conflictingActives?: ManagedStorage[]
3599
+ ```
3600
+
3601
+ ###### Property _isAvailable
3602
+
3603
+ True if makeAvailable has been run and access to managed stores (active) is allowed
3604
+
3605
+ ```ts
3606
+ _isAvailable: boolean = false
3607
+ ```
3567
3608
 
3568
3609
  ###### Property _isSingleWriter
3569
3610
 
@@ -3574,6 +3615,23 @@ queue the blocked requests so they get executed in order when released.
3574
3615
  _isSingleWriter: boolean = true
3575
3616
  ```
3576
3617
 
3618
+ ###### Property _readerCount
3619
+
3620
+ How many read access operations are pending
3621
+
3622
+ ```ts
3623
+ _readerCount: number = 0
3624
+ ```
3625
+
3626
+ ###### Property _services
3627
+
3628
+ Configured services if any. If valid, shared with stores (which may ignore it).
3629
+
3630
+ ```ts
3631
+ _services?: sdk.WalletServices
3632
+ ```
3633
+ See also: [WalletServices](./client.md#interface-walletservices)
3634
+
3577
3635
  ###### Property _storageProviderLocked
3578
3636
 
3579
3637
  if true, allow no new reader or writers or sync to proceed.
@@ -3583,6 +3641,14 @@ queue the blocked requests so they get executed in order when released.
3583
3641
  _storageProviderLocked: boolean = false
3584
3642
  ```
3585
3643
 
3644
+ ###### Property _stores
3645
+
3646
+ All configured stores including current active, backups, and conflicting actives.
3647
+
3648
+ ```ts
3649
+ _stores: ManagedStorage[] = []
3650
+ ```
3651
+
3586
3652
  ###### Property _syncLocked
3587
3653
 
3588
3654
  if true, allow no new reader or writers to proceed.
@@ -3592,6 +3658,24 @@ queue the blocked requests so they get executed in order when released.
3592
3658
  _syncLocked: boolean = false
3593
3659
  ```
3594
3660
 
3661
+ ###### Property _writerCount
3662
+
3663
+ How many write access operations are pending
3664
+
3665
+ ```ts
3666
+ _writerCount: number = 0
3667
+ ```
3668
+
3669
+ ###### Method canMakeAvailable
3670
+
3671
+ ```ts
3672
+ canMakeAvailable(): boolean
3673
+ ```
3674
+
3675
+ Returns
3676
+
3677
+ true if at least one WalletStorageProvider has been added.
3678
+
3595
3679
  ###### Method isActiveStorageProvider
3596
3680
 
3597
3681
  ```ts
@@ -3602,6 +3686,26 @@ Returns
3602
3686
 
3603
3687
  true if the active `WalletStorageProvider` also implements `StorageProvider`
3604
3688
 
3689
+ ###### Method makeAvailable
3690
+
3691
+ This async function must be called after construction and before
3692
+ any other async function can proceed.
3693
+
3694
+ Runs through `_stores` validating all properties and partitioning across `_active`, `_backups`, `_conflictingActives`.
3695
+
3696
+ ```ts
3697
+ async makeAvailable(): Promise<TableSettings>
3698
+ ```
3699
+ See also: [TableSettings](./storage.md#interface-tablesettings)
3700
+
3701
+ Returns
3702
+
3703
+ from the active storage.
3704
+
3705
+ Throws
3706
+
3707
+ WERR_INVALID_PARAMETER if canMakeAvailable returns false.
3708
+
3605
3709
  ###### Method runAsSync
3606
3710
 
3607
3711
  ```ts
@@ -3620,8 +3724,10 @@ Argument Details
3620
3724
 
3621
3725
  Updates backups and switches to new active storage provider from among current backup providers.
3622
3726
 
3727
+ Also resolves conflicting actives.
3728
+
3623
3729
  ```ts
3624
- async setActive(storageIdentityKey: string): Promise<void>
3730
+ async setActive(storageIdentityKey: string): Promise<string>
3625
3731
  ```
3626
3732
 
3627
3733
  Argument Details