@bsv/wallet-toolbox 1.1.33 → 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 (120) 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/methods/attemptToPostReqsToNetwork.js +1 -1
  38. package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
  39. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  40. package/out/src/storage/schema/KnexMigrations.js +19 -0
  41. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  42. package/out/src/storage/schema/entities/User.d.ts +2 -2
  43. package/out/src/storage/schema/entities/User.d.ts.map +1 -1
  44. package/out/src/storage/schema/entities/User.js +1 -1
  45. package/out/src/storage/schema/entities/User.js.map +1 -1
  46. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js +2 -1
  47. package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +1 -1
  48. package/out/src/storage/schema/entities/__tests/usersTests.test.js +12 -6
  49. package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +1 -1
  50. package/out/src/storage/schema/tables/User.d.ts +1 -1
  51. package/out/src/storage/schema/tables/User.d.ts.map +1 -1
  52. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts +1 -1
  53. package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
  54. package/out/src/storage/sync/StorageMySQLDojoReader.js +4 -5
  55. package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
  56. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js +25 -13
  57. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js.map +1 -1
  58. package/out/test/Wallet/sync/setActive.test.d.ts +2 -0
  59. package/out/test/Wallet/sync/setActive.test.d.ts.map +1 -0
  60. package/out/test/Wallet/sync/setActive.test.js +60 -0
  61. package/out/test/Wallet/sync/setActive.test.js.map +1 -0
  62. package/out/test/examples/{backup.test.d.ts → backup.man.test.d.ts} +1 -1
  63. package/out/test/examples/backup.man.test.d.ts.map +1 -0
  64. package/out/test/examples/{backup.test.js → backup.man.test.js} +1 -1
  65. package/out/test/examples/backup.man.test.js.map +1 -0
  66. package/out/test/storage/StorageMySQLDojoReader.man.test.js.map +1 -1
  67. package/out/test/storage/count.test.js +1 -0
  68. package/out/test/storage/count.test.js.map +1 -1
  69. package/out/test/storage/find.test.js +1 -0
  70. package/out/test/storage/find.test.js.map +1 -1
  71. package/out/test/storage/update.test.js +3 -1
  72. package/out/test/storage/update.test.js.map +1 -1
  73. package/out/test/storage/update2.test.js +5 -2
  74. package/out/test/storage/update2.test.js.map +1 -1
  75. package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
  76. package/out/test/utils/TestUtilsWalletStorage.js +5 -4
  77. package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
  78. package/out/test/wallet/sync/Wallet.sync.test.js +1 -3
  79. package/out/test/wallet/sync/Wallet.sync.test.js.map +1 -1
  80. package/out/tsconfig.all.tsbuildinfo +1 -1
  81. package/package.json +1 -1
  82. package/src/Setup.ts +3 -2
  83. package/src/sdk/WERR_errors.ts +3 -2
  84. package/src/sdk/WalletStorage.interfaces.ts +117 -0
  85. package/src/sdk/index.ts +0 -2
  86. package/src/services/__tests/verifyBeef.test.ts +18 -0
  87. package/src/services/providers/__tests/WhatsOnChain.test.ts +16 -1
  88. package/src/storage/StorageReader.ts +1 -1
  89. package/src/storage/StorageReaderWriter.ts +2 -1
  90. package/src/storage/StorageSyncReader.ts +2 -109
  91. package/src/storage/WalletStorageManager.ts +307 -86
  92. package/src/storage/methods/attemptToPostReqsToNetwork.ts +1 -1
  93. package/src/storage/schema/KnexMigrations.ts +23 -1
  94. package/src/storage/schema/entities/User.ts +2 -2
  95. package/src/storage/schema/entities/__tests/SyncStateTests.test.ts +2 -1
  96. package/src/storage/schema/entities/__tests/usersTests.test.ts +12 -6
  97. package/src/storage/schema/tables/User.ts +1 -1
  98. package/src/storage/sync/StorageMySQLDojoReader.ts +8 -6
  99. package/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.ts +30 -13
  100. package/test/Wallet/sync/setActive.test.ts +67 -0
  101. package/test/storage/StorageMySQLDojoReader.man.test.ts +1 -1
  102. package/test/storage/count.test.ts +1 -0
  103. package/test/storage/find.test.ts +1 -0
  104. package/test/storage/update.test.ts +3 -1
  105. package/test/storage/update2.test.ts +5 -2
  106. package/test/utils/TestUtilsWalletStorage.ts +5 -4
  107. package/test/wallet/sync/Wallet.sync.test.ts +1 -3
  108. package/out/src/sdk/StorageSyncReader.d.ts +0 -121
  109. package/out/src/sdk/StorageSyncReader.d.ts.map +0 -1
  110. package/out/src/sdk/StorageSyncReader.js +0 -3
  111. package/out/src/sdk/StorageSyncReader.js.map +0 -1
  112. package/out/src/sdk/StorageSyncReaderWriter.d.ts +0 -89
  113. package/out/src/sdk/StorageSyncReaderWriter.d.ts.map +0 -1
  114. package/out/src/sdk/StorageSyncReaderWriter.js +0 -3
  115. package/out/src/sdk/StorageSyncReaderWriter.js.map +0 -1
  116. package/out/test/examples/backup.test.d.ts.map +0 -1
  117. package/out/test/examples/backup.test.js.map +0 -1
  118. package/src/sdk/StorageSyncReader.ts +0 -173
  119. package/src/sdk/StorageSyncReaderWriter.ts +0 -277
  120. /package/test/examples/{backup.test.ts → backup.man.test.ts} +0 -0
@@ -12,5 +12,5 @@ export interface TableUser extends sdk.EntityTimeStamp {
12
12
  /**
13
13
  * The storageIdentityKey value of the active wallet storage.
14
14
  */
15
- activeStorage?: string
15
+ activeStorage: string
16
16
  }
@@ -46,7 +46,10 @@ export interface StorageMySQLDojoReaderOptions extends StorageReaderOptions {
46
46
  knex: Knex
47
47
  }
48
48
 
49
- export class StorageMySQLDojoReader extends StorageReader {
49
+ export class StorageMySQLDojoReader
50
+ extends StorageReader
51
+ implements sdk.WalletStorageSyncReader
52
+ {
50
53
  knex: Knex
51
54
 
52
55
  constructor(options: StorageMySQLDojoReaderOptions) {
@@ -300,13 +303,11 @@ export class StorageMySQLDojoReader extends StorageReader {
300
303
  outputDescription: (d.description || '').trim(),
301
304
  vout: verifyInteger(typeof d.vout !== 'number' ? 9999 : d.vout),
302
305
  satoshis: verifyInteger(d.amount),
303
- providedBy: verifyTruthy(d.providedBy || '')
306
+ providedBy: verifyTruthy(d.providedBy || 'you')
304
307
  .trim()
305
308
  .toLowerCase()
306
309
  .replace('dojo', 'storage'),
307
- purpose: verifyTruthy(d.purpose || '')
308
- .trim()
309
- .toLowerCase(),
310
+ purpose: (d.purpose || '').trim().toLowerCase(),
310
311
  type: verifyTruthy(d.type).trim(),
311
312
  txid: nullToUndefined(d.txid),
312
313
  senderIdentityKey: verifyOptionalHexString(d.senderIdentityKey),
@@ -421,7 +422,8 @@ export class StorageMySQLDojoReader extends StorageReader {
421
422
  created_at: verifyTruthy(d.created_at),
422
423
  updated_at: verifyTruthy(d.updated_at),
423
424
  userId: verifyId(d.userId),
424
- identityKey: verifyTruthy(d.identityKey)
425
+ identityKey: verifyTruthy(d.identityKey),
426
+ activeStorage: this.getSettings().storageIdentityKey
425
427
  }
426
428
  rs.push(r)
427
429
  }
@@ -1,3 +1,4 @@
1
+ import { Setup } from '../../../src'
1
2
  import { sdk, StorageSyncReader, wait } from '../../../src/index.client'
2
3
  import { TaskCheckForProofs } from '../../../src/monitor/tasks/TaskCheckForProofs'
3
4
  import { TaskClock } from '../../../src/monitor/tasks/TaskClock'
@@ -70,20 +71,21 @@ describe('Wallet sync tests', () => {
70
71
  console.log(
71
72
  'Importing from production dojo to local MySQL productiondojotone'
72
73
  )
73
- const identityKeyTone = process.env.MY_MAIN_IDENTITY || ''
74
- const rootKeyHex = env.devKeys[identityKeyTone]
74
+ // production faucet key
75
+ const identityKey =
76
+ '030b78da8101cd8929ec355c694c275fbaf4f73d4eaa104873463779cac69a2a01' // process.env.MY_MAIN_IDENTITY || ''
77
+ const rootKeyHex = env.devKeys[identityKey]
75
78
  const chain: sdk.Chain = 'main'
76
79
  const connection = JSON.parse(process.env.MAIN_DOJO_CONNECTION || '')
77
80
  const readerKnex = _tu.createMySQLFromConnection(connection)
78
81
  const reader = new StorageMySQLDojoReader({ chain, knex: readerKnex })
79
82
  const writer = await _tu.createMySQLTestWallet({
80
- databaseName: 'productiondojotone',
83
+ databaseName: 'productiondojofaucet',
81
84
  chain: 'main',
82
85
  rootKeyHex,
83
86
  dropAll: true
84
87
  })
85
88
 
86
- const identityKey = writer.identityKey
87
89
  await writer.storage.syncFromReader(
88
90
  identityKey,
89
91
  new StorageSyncReader({ identityKey }, reader)
@@ -93,21 +95,23 @@ describe('Wallet sync tests', () => {
93
95
  await writer.activeStorage.destroy()
94
96
  })
95
97
 
96
- test('0b sweep mysql dojo sync to new sqlite', async () => {
97
- const identityKeyTone = process.env.MY_MAIN_IDENTITY || ''
98
- const rootKeyHex = env.devKeys[identityKeyTone]
98
+ test.skip('0b sweep mysql dojo sync to new sqlite', async () => {
99
99
  const chain: sdk.Chain = 'main'
100
+ const identityKey =
101
+ '030b78da8101cd8929ec355c694c275fbaf4f73d4eaa104873463779cac69a2a01' // prod faucet
102
+ //const identityKeyTone = process.env.MY_MAIN_IDENTITY || ''
103
+ const rootKeyHex = env.devKeys[identityKey]
100
104
 
101
105
  const sweepFrom = await _tu.createMySQLTestWallet({
102
- databaseName: 'productiondojotone',
103
- chain: 'main',
106
+ databaseName: 'productiondojofaucet',
107
+ chain,
104
108
  rootKeyHex
105
109
  })
106
110
 
107
111
  const sweepTo = await _tu.createSQLiteTestWallet({
108
112
  filePath: '/Users/tone/Kz/tone42.sqlite',
109
113
  databaseName: 'tone42',
110
- chain: 'main',
114
+ chain,
111
115
  rootKeyHex
112
116
  })
113
117
 
@@ -120,7 +124,7 @@ describe('Wallet sync tests', () => {
120
124
  await sweepFrom.wallet.destroy()
121
125
  })
122
126
 
123
- test('1 aggressively purge records from MySQL stagingdojotone', async () => {
127
+ test.skip('1 aggressively purge records from MySQL stagingdojotone', async () => {
124
128
  await waitFor0()
125
129
 
126
130
  const { monitor, activeStorage } = await _tu.createMySQLTestWallet({
@@ -148,7 +152,7 @@ describe('Wallet sync tests', () => {
148
152
  done1 = true
149
153
  })
150
154
 
151
- test('2 sync pruned MySQL stagingdojotone to SQLite walletLegacyTestData', async () => {
155
+ test.skip('2 sync pruned MySQL stagingdojotone to SQLite walletLegacyTestData', async () => {
152
156
  await waitFor1()
153
157
  console.log(
154
158
  'syncing local MySQL stagingdojotone to local SQLite walletLegacyTestData in tmp folder'
@@ -180,7 +184,7 @@ describe('Wallet sync tests', () => {
180
184
  done2 = true
181
185
  })
182
186
 
183
- test('3 sync pruned MySQL stagingdojotone to MySQL walletLegacyTestData', async () => {
187
+ test.skip('3 sync pruned MySQL stagingdojotone to MySQL walletLegacyTestData', async () => {
184
188
  await waitFor2()
185
189
  console.log(
186
190
  'syncing local MySQL stagingdojotone to local SQLite walletLegacyTestData in tmp folder'
@@ -206,4 +210,17 @@ describe('Wallet sync tests', () => {
206
210
  await reader.activeStorage.destroy()
207
211
  await writer.activeStorage.destroy()
208
212
  })
213
+
214
+ test('8b run monitor mainnet', async () => {
215
+ if (Setup.noEnv('main')) return
216
+ if (!Setup.getEnv('main').filePath) return
217
+
218
+ // Only run if `Setup` style .env is present with a sqlite filePath...
219
+
220
+ const c = await _tu.createWalletSetupEnv('main')
221
+
222
+ await c.monitor.runOnce()
223
+
224
+ await c.wallet.destroy()
225
+ })
209
226
  })
@@ -0,0 +1,67 @@
1
+ import { StorageKnex } from '../../../src'
2
+ import { _tu, TestWalletNoSetup } from '../../utils/TestUtilsWalletStorage'
3
+
4
+ describe('setActive tests', () => {
5
+ jest.setTimeout(99999999)
6
+
7
+ const env = _tu.getEnv('test')
8
+ const chain = env.chain
9
+ const rootKeyHex = env.devKeys[env.identityKey]
10
+ let setup: {
11
+ a: TestWalletNoSetup
12
+ b: TestWalletNoSetup
13
+ c: TestWalletNoSetup
14
+ }
15
+ let store: { a: StorageKnex; b: StorageKnex; c: StorageKnex }
16
+ let storeKey: { a: string; b: string; c: string }
17
+ const testName = () => expect.getState().currentTestName || 'test'
18
+
19
+ beforeEach(async () => {
20
+ const a = await _tu.createSQLiteTestWallet({
21
+ databaseName: `${testName()}_a`,
22
+ chain,
23
+ rootKeyHex,
24
+ dropAll: true
25
+ })
26
+ const b = await _tu.createSQLiteTestWallet({
27
+ databaseName: `${testName()}_b`,
28
+ chain,
29
+ rootKeyHex,
30
+ dropAll: true
31
+ })
32
+ const c = await _tu.createSQLiteTestWallet({
33
+ databaseName: `${testName()}_c`,
34
+ chain,
35
+ rootKeyHex,
36
+ dropAll: true
37
+ })
38
+ setup = { a, b, c }
39
+ store = { a: a.activeStorage, b: b.activeStorage, c: c.activeStorage }
40
+ storeKey = {
41
+ a: store.a._settings!.storageIdentityKey,
42
+ b: store.b._settings!.storageIdentityKey,
43
+ c: store.c._settings!.storageIdentityKey
44
+ }
45
+ })
46
+
47
+ afterEach(async () => {
48
+ await setup.a.wallet.destroy()
49
+ await setup.b.wallet.destroy()
50
+ await setup.c.wallet.destroy()
51
+ })
52
+
53
+ test('0', async () => {
54
+ const s = await _tu.createWalletOnly({
55
+ chain,
56
+ rootKeyHex,
57
+ active: store.a,
58
+ backups: [store.b, store.c]
59
+ })
60
+ expect(s.storage.isAvailable() === true)
61
+ expect(s.storage.isActiveEnabled === false)
62
+ const log = await s.storage.setActive(storeKey.b)
63
+ console.log(log)
64
+ expect(s.storage.getActiveStore()).toBe(storeKey.b)
65
+ expect(s.storage.isActiveEnabled === true)
66
+ })
67
+ })
@@ -11,7 +11,7 @@ describe('StorageMySQLDojoReader tests', () => {
11
11
 
12
12
  const chain: sdk.Chain = 'test'
13
13
  const env = _tu.getEnv(chain)
14
- let reader: sdk.StorageSyncReader
14
+ let reader: sdk.WalletStorageSyncReader
15
15
  let writer: StorageKnex
16
16
 
17
17
  beforeAll(async () => {
@@ -40,6 +40,7 @@ describe('count tests', () => {
40
40
  for (const storage of storages) {
41
41
  await storage.dropAllData()
42
42
  await storage.migrate('insert tests', '1'.repeat(64))
43
+ await storage.makeAvailable()
43
44
  setups.push({ storage, setup: await _tu.createTestSetup1(storage) })
44
45
  }
45
46
  })
@@ -40,6 +40,7 @@ describe('find tests', () => {
40
40
  for (const storage of storages) {
41
41
  await storage.dropAllData()
42
42
  await storage.migrate('insert tests', '1'.repeat(64))
43
+ await storage.makeAvailable()
43
44
  setups.push({ storage, setup: await _tu.createTestSetup1(storage) })
44
45
  }
45
46
  })
@@ -73,6 +73,7 @@ describe('update tests', () => {
73
73
  for (const storage of storages) {
74
74
  await storage.dropAllData()
75
75
  await storage.migrate('insert tests', '1'.repeat(64))
76
+ await storage.makeAvailable()
76
77
  setups.push({ storage, setup: await _tu.createTestSetup1(storage) })
77
78
  }
78
79
  })
@@ -296,7 +297,8 @@ describe('update tests', () => {
296
297
  userId: record.userId,
297
298
  identityKey: `mockUpdatedIdentityKey-${record[primaryKey]}`,
298
299
  created_at: new Date('2024-12-30T23:00:00Z'),
299
- updated_at: new Date('2024-12-30T23:05:00Z')
300
+ updated_at: new Date('2024-12-30T23:05:00Z'),
301
+ activeStorage: storage.getSettings().storageIdentityKey
300
302
  }
301
303
  const updateResult = await storage.updateUser(
302
304
  record[primaryKey],
@@ -74,6 +74,7 @@ describe('update2 tests', () => {
74
74
 
75
75
  await storage.dropAllData()
76
76
  await storage.migrate('test setup', '1'.repeat(64))
77
+ await storage.makeAvailable()
77
78
  const setup = await _tu.createTestSetup1(storage)
78
79
 
79
80
  setups.push({ setup, storage })
@@ -540,7 +541,8 @@ describe('update2 tests', () => {
540
541
  userId: record.userId,
541
542
  identityKey: `mockUpdatedIdentityKey-${record[primaryKey]}`,
542
543
  created_at: new Date('2024-12-30T23:00:00Z'),
543
- updated_at: new Date('2024-12-30T23:05:00Z')
544
+ updated_at: new Date('2024-12-30T23:05:00Z'),
545
+ activeStorage: storage.getSettings().storageIdentityKey
544
546
  }
545
547
  const updateResult = await storage.updateUser(
546
548
  record[primaryKey],
@@ -697,7 +699,8 @@ describe('update2 tests', () => {
697
699
  userId: 3,
698
700
  identityKey: '',
699
701
  created_at: new Date(),
700
- updated_at: new Date()
702
+ updated_at: new Date(),
703
+ activeStorage: storage.getSettings().storageIdentityKey
701
704
  }
702
705
  try {
703
706
  const r = await storage.insertUser(initialRecord)
@@ -238,7 +238,7 @@ export abstract class TestUtilsWalletStorage {
238
238
  args.active,
239
239
  args.backups
240
240
  )
241
- if (storage.stores.length > 0) await storage.makeAvailable()
241
+ if (storage.canMakeAvailable()) await storage.makeAvailable()
242
242
  const services = new Services(args.chain)
243
243
  const monopts = Monitor.createDefaultWalletMonitorOptions(
244
244
  chain,
@@ -316,7 +316,7 @@ export abstract class TestUtilsWalletStorage {
316
316
  feeModel: { model: 'sat/kb', value: 1 }
317
317
  })
318
318
  if (args.dropAll) await activeStorage.dropAllData()
319
- await activeStorage.migrate(args.databaseName, wo.identityKey)
319
+ await activeStorage.migrate(args.databaseName, randomBytesHex(33))
320
320
  await activeStorage.makeAvailable()
321
321
  const setup = await args.insertSetup(activeStorage, wo.identityKey)
322
322
  await wo.storage.addWalletStorageProvider(activeStorage)
@@ -649,7 +649,7 @@ export abstract class TestUtilsWalletStorage {
649
649
  feeModel: { model: 'sat/kb', value: 1 }
650
650
  })
651
651
  if (useReader) await activeStorage.dropAllData()
652
- await activeStorage.migrate(databaseName, identityKey)
652
+ await activeStorage.migrate(databaseName, randomBytesHex(33))
653
653
  await activeStorage.makeAvailable()
654
654
  const storage = new WalletStorageManager(identityKey, activeStorage)
655
655
  await storage.makeAvailable()
@@ -773,7 +773,8 @@ export abstract class TestUtilsWalletStorage {
773
773
  created_at: now,
774
774
  updated_at: now,
775
775
  userId: 0,
776
- identityKey: identityKey || randomBytesHex(33)
776
+ identityKey: identityKey || randomBytesHex(33),
777
+ activeStorage: storage.getSettings().storageIdentityKey
777
778
  }
778
779
  await storage.insertUser(e)
779
780
  return e
@@ -9,7 +9,7 @@ import {
9
9
  import { StorageKnex } from '../../../src/storage/StorageKnex'
10
10
  import { _tu, TestWalletNoSetup } from '../../utils/TestUtilsWalletStorage'
11
11
 
12
- describe('Wallet sync tests', () => {
12
+ describe.skip('Wallet sync tests', () => {
13
13
  jest.setTimeout(99999999)
14
14
 
15
15
  const env = _tu.getEnv('test')
@@ -212,8 +212,6 @@ async function setActiveTwice(
212
212
  })
213
213
  ).rejects.toThrow('Result must exist and be unique.')
214
214
  if (backupWallet) {
215
- expect(backupWallet?.storage.stores.length === 1)
216
- expect(backupWallet?.storage.stores[0] === backup)
217
215
  await expect(
218
216
  backupWallet.relinquishOutput({
219
217
  basket: 'xyzzy',
@@ -1,121 +0,0 @@
1
- import { sdk, TableCertificate, TableCertificateField, TableCertificateX, TableCommission, TableOutput, TableOutputBasket, TableOutputTag, TableOutputTagMap, TableProvenTx, TableProvenTxReq, TableSettings, TableSyncState, TableTransaction, TableTxLabel, TableTxLabelMap, TableUser } from '../index.client';
2
- /**
3
- * This is the minimal interface required for a WalletStorageProvider to export data to another provider.
4
- */
5
- export interface StorageSyncReader {
6
- isAvailable(): boolean;
7
- makeAvailable(): Promise<TableSettings>;
8
- destroy(): Promise<void>;
9
- getSettings(): TableSettings;
10
- findUserByIdentityKey(key: string): Promise<TableUser | undefined>;
11
- findSyncStates(args: sdk.FindSyncStatesArgs): Promise<TableSyncState[]>;
12
- findCertificateFields(args: sdk.FindCertificateFieldsArgs): Promise<TableCertificateField[]>;
13
- findCertificates(args: sdk.FindCertificatesArgs): Promise<TableCertificateX[]>;
14
- findCommissions(args: sdk.FindCommissionsArgs): Promise<TableCommission[]>;
15
- findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>;
16
- findOutputs(args: sdk.FindOutputsArgs): Promise<TableOutput[]>;
17
- findOutputTags(args: sdk.FindOutputTagsArgs): Promise<TableOutputTag[]>;
18
- findTransactions(args: sdk.FindTransactionsArgs): Promise<TableTransaction[]>;
19
- findTxLabels(args: sdk.FindTxLabelsArgs): Promise<TableTxLabel[]>;
20
- getProvenTxsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTx[]>;
21
- getProvenTxReqsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableProvenTxReq[]>;
22
- getTxLabelMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableTxLabelMap[]>;
23
- getOutputTagMapsForUser(args: sdk.FindForUserSincePagedArgs): Promise<TableOutputTagMap[]>;
24
- getSyncChunk(args: RequestSyncChunkArgs): Promise<SyncChunk>;
25
- }
26
- /**
27
- * success: Last sync of this user from this storage was successful.
28
- *
29
- * error: Last sync protocol operation for this user to this storage threw and error.
30
- *
31
- * identified: Configured sync storage has been identified but not sync'ed.
32
- *
33
- * unknown: Sync protocol state is unknown.
34
- */
35
- export type SyncStatus = 'success' | 'error' | 'identified' | 'updated' | 'unknown';
36
- export type SyncProtocolVersion = '0.1.0';
37
- export interface RequestSyncChunkArgs {
38
- /**
39
- * The storageIdentityKey of the storage supplying the update SyncChunk data.
40
- */
41
- fromStorageIdentityKey: string;
42
- /**
43
- * The storageIdentityKey of the storage consuming the update SyncChunk data.
44
- */
45
- toStorageIdentityKey: string;
46
- /**
47
- * The identity of whose data is being requested
48
- */
49
- identityKey: string;
50
- /**
51
- * The max updated_at time received from the storage service receiving the request.
52
- * Will be undefiend if this is the first request or if no data was previously sync'ed.
53
- *
54
- * `since` must include items if 'updated_at' is greater or equal. Thus, when not undefined, a sync request should always return at least one item already seen.
55
- */
56
- since?: Date;
57
- /**
58
- * A rough limit on how large the response should be.
59
- * The item that exceeds the limit is included and ends adding more items.
60
- */
61
- maxRoughSize: number;
62
- /**
63
- * The maximum number of items (records) to be returned.
64
- */
65
- maxItems: number;
66
- /**
67
- * For each entity in dependency order, the offset at which to start returning items
68
- * from `since`.
69
- *
70
- * The entity order is:
71
- * 0 ProvenTxs
72
- * 1 ProvenTxReqs
73
- * 2 OutputBaskets
74
- * 3 TxLabels
75
- * 4 OutputTags
76
- * 5 Transactions
77
- * 6 TxLabelMaps
78
- * 7 Commissions
79
- * 8 Outputs
80
- * 9 OutputTagMaps
81
- * 10 Certificates
82
- * 11 CertificateFields
83
- */
84
- offsets: {
85
- name: string;
86
- offset: number;
87
- }[];
88
- }
89
- /**
90
- * Result received from remote `WalletStorage` in response to a `RequestSyncChunkArgs` request.
91
- *
92
- * Each property is undefined if there was no attempt to update it. Typically this is caused by size and count limits on this result.
93
- *
94
- * If all properties are empty arrays the sync process has received all available new and updated items.
95
- */
96
- export interface SyncChunk {
97
- fromStorageIdentityKey: string;
98
- toStorageIdentityKey: string;
99
- userIdentityKey: string;
100
- user?: TableUser;
101
- provenTxs?: TableProvenTx[];
102
- provenTxReqs?: TableProvenTxReq[];
103
- outputBaskets?: TableOutputBasket[];
104
- txLabels?: TableTxLabel[];
105
- outputTags?: TableOutputTag[];
106
- transactions?: TableTransaction[];
107
- txLabelMaps?: TableTxLabelMap[];
108
- commissions?: TableCommission[];
109
- outputs?: TableOutput[];
110
- outputTagMaps?: TableOutputTagMap[];
111
- certificates?: TableCertificate[];
112
- certificateFields?: TableCertificateField[];
113
- }
114
- export interface ProcessSyncChunkResult {
115
- done: boolean;
116
- maxUpdated_at: Date | undefined;
117
- updates: number;
118
- inserts: number;
119
- error?: sdk.WalletError;
120
- }
121
- //# sourceMappingURL=StorageSyncReader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StorageSyncReader.d.ts","sourceRoot":"","sources":["../../../src/sdk/StorageSyncReader.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=StorageSyncReader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StorageSyncReader.js","sourceRoot":"","sources":["../../../src/sdk/StorageSyncReader.ts"],"names":[],"mappings":""}
@@ -1,89 +0,0 @@
1
- import { sdk, TableCertificate, TableCertificateField, TableCommission, TableOutput, TableOutputBasket, TableOutputTag, TableOutputTagMap, TableProvenTx, TableProvenTxReq, TableProvenTxReqDynamics, TableSyncState, TableTransaction, TableTxLabel, TableTxLabelMap, TableUser } from '../index.client';
2
- /**
3
- * This is the minimal interface required for a WalletStorageProvider to import and export data to another provider.
4
- */
5
- export interface StorageSyncReaderWriter extends sdk.StorageSyncReader {
6
- getProvenOrRawTx(txid: string, trx?: sdk.TrxToken): Promise<sdk.ProvenOrRawTx>;
7
- purgeData(params: sdk.PurgeParams, trx?: sdk.TrxToken): Promise<sdk.PurgeResults>;
8
- transaction<T>(scope: (trx: sdk.TrxToken) => Promise<T>, trx?: sdk.TrxToken): Promise<T>;
9
- findOutputTagMaps(args: sdk.FindOutputTagMapsArgs): Promise<TableOutputTagMap[]>;
10
- findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<TableProvenTxReq[]>;
11
- findProvenTxs(args: sdk.FindProvenTxsArgs): Promise<TableProvenTx[]>;
12
- findTxLabelMaps(args: sdk.FindTxLabelMapsArgs): Promise<TableTxLabelMap[]>;
13
- countOutputTagMaps(args: sdk.FindOutputTagMapsArgs): Promise<number>;
14
- countProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<number>;
15
- countProvenTxs(args: sdk.FindProvenTxsArgs): Promise<number>;
16
- countTxLabelMaps(args: sdk.FindTxLabelMapsArgs): Promise<number>;
17
- insertProvenTx(tx: TableProvenTx, trx?: sdk.TrxToken): Promise<number>;
18
- insertProvenTxReq(tx: TableProvenTxReq, trx?: sdk.TrxToken): Promise<number>;
19
- insertUser(user: TableUser, trx?: sdk.TrxToken): Promise<number>;
20
- insertCertificate(certificate: TableCertificate, trx?: sdk.TrxToken): Promise<number>;
21
- insertCertificateField(certificateField: TableCertificateField, trx?: sdk.TrxToken): Promise<void>;
22
- insertOutputBasket(basket: TableOutputBasket, trx?: sdk.TrxToken): Promise<number>;
23
- insertTransaction(tx: TableTransaction, trx?: sdk.TrxToken): Promise<number>;
24
- insertCommission(commission: TableCommission, trx?: sdk.TrxToken): Promise<number>;
25
- insertOutput(output: TableOutput, trx?: sdk.TrxToken): Promise<number>;
26
- insertOutputTag(tag: TableOutputTag, trx?: sdk.TrxToken): Promise<number>;
27
- insertOutputTagMap(tagMap: TableOutputTagMap, trx?: sdk.TrxToken): Promise<void>;
28
- insertTxLabel(label: TableTxLabel, trx?: sdk.TrxToken): Promise<number>;
29
- insertTxLabelMap(labelMap: TableTxLabelMap, trx?: sdk.TrxToken): Promise<void>;
30
- insertSyncState(syncState: TableSyncState, trx?: sdk.TrxToken): Promise<number>;
31
- updateCertificateField(certificateId: number, fieldName: string, update: Partial<TableCertificateField>, trx?: sdk.TrxToken): Promise<number>;
32
- updateCertificate(id: number, update: Partial<TableCertificate>, trx?: sdk.TrxToken): Promise<number>;
33
- updateCommission(id: number, update: Partial<TableCommission>, trx?: sdk.TrxToken): Promise<number>;
34
- updateOutputBasket(id: number, update: Partial<TableOutputBasket>, trx?: sdk.TrxToken): Promise<number>;
35
- updateOutput(id: number, update: Partial<TableOutput>, trx?: sdk.TrxToken): Promise<number>;
36
- updateOutputTagMap(outputId: number, tagId: number, update: Partial<TableOutputTagMap>, trx?: sdk.TrxToken): Promise<number>;
37
- updateOutputTag(id: number, update: Partial<TableOutputTag>, trx?: sdk.TrxToken): Promise<number>;
38
- updateProvenTxReq(id: number | number[], update: Partial<TableProvenTxReq>, trx?: sdk.TrxToken): Promise<number>;
39
- updateProvenTxReqDynamics(id: number, update: Partial<TableProvenTxReqDynamics>, trx?: sdk.TrxToken): Promise<number>;
40
- updateProvenTxReqWithNewProvenTx(args: sdk.UpdateProvenTxReqWithNewProvenTxArgs): Promise<sdk.UpdateProvenTxReqWithNewProvenTxResult>;
41
- updateProvenTx(id: number, update: Partial<TableProvenTx>, trx?: sdk.TrxToken): Promise<number>;
42
- updateSyncState(id: number, update: Partial<TableSyncState>, trx?: sdk.TrxToken): Promise<number>;
43
- updateTransaction(id: number | number[], update: Partial<TableTransaction>, trx?: sdk.TrxToken): Promise<number>;
44
- updateTransactionStatus(status: sdk.TransactionStatus, transactionId?: number, userId?: number, reference?: string, trx?: sdk.TrxToken): Promise<void>;
45
- updateTransactionsStatus(transactionIds: number[], status: sdk.TransactionStatus): Promise<void>;
46
- updateTxLabelMap(transactionId: number, txLabelId: number, update: Partial<TableTxLabelMap>, trx?: sdk.TrxToken): Promise<number>;
47
- updateTxLabel(id: number, update: Partial<TableTxLabel>, trx?: sdk.TrxToken): Promise<number>;
48
- updateUser(id: number, update: Partial<TableUser>, trx?: sdk.TrxToken): Promise<number>;
49
- findCertificateById(id: number, trx?: sdk.TrxToken): Promise<TableCertificate | undefined>;
50
- findCommissionById(id: number, trx?: sdk.TrxToken): Promise<TableCommission | undefined>;
51
- findOutputById(id: number, trx?: sdk.TrxToken, noScript?: boolean): Promise<TableOutput | undefined>;
52
- findOutputBasketById(id: number, trx?: sdk.TrxToken): Promise<TableOutputBasket | undefined>;
53
- findProvenTxById(id: number, trx?: sdk.TrxToken | undefined): Promise<TableProvenTx | undefined>;
54
- findProvenTxReqById(id: number, trx?: sdk.TrxToken | undefined): Promise<TableProvenTxReq | undefined>;
55
- findSyncStateById(id: number, trx?: sdk.TrxToken): Promise<TableSyncState | undefined>;
56
- findTransactionById(id: number, trx?: sdk.TrxToken, noRawTx?: boolean): Promise<TableTransaction | undefined>;
57
- findTxLabelById(id: number, trx?: sdk.TrxToken): Promise<TableTxLabel | undefined>;
58
- findOutputTagById(id: number, trx?: sdk.TrxToken): Promise<TableOutputTag | undefined>;
59
- findUserById(id: number, trx?: sdk.TrxToken): Promise<TableUser | undefined>;
60
- findOrInsertUser(identityKey: string, trx?: sdk.TrxToken): Promise<{
61
- user: TableUser;
62
- isNew: boolean;
63
- }>;
64
- findOrInsertTransaction(newTx: TableTransaction, trx?: sdk.TrxToken): Promise<{
65
- tx: TableTransaction;
66
- isNew: boolean;
67
- }>;
68
- findOrInsertOutputBasket(userId: number, name: string, trx?: sdk.TrxToken): Promise<TableOutputBasket>;
69
- findOrInsertTxLabel(userId: number, label: string, trx?: sdk.TrxToken): Promise<TableTxLabel>;
70
- findOrInsertTxLabelMap(transactionId: number, txLabelId: number, trx?: sdk.TrxToken): Promise<TableTxLabelMap>;
71
- findOrInsertOutputTag(userId: number, tag: string, trx?: sdk.TrxToken): Promise<TableOutputTag>;
72
- findOrInsertOutputTagMap(outputId: number, outputTagId: number, trx?: sdk.TrxToken): Promise<TableOutputTagMap>;
73
- findOrInsertSyncStateAuth(auth: sdk.AuthId, storageIdentityKey: string, storageName: string): Promise<{
74
- syncState: TableSyncState;
75
- isNew: boolean;
76
- }>;
77
- findOrInsertProvenTxReq(newReq: TableProvenTxReq, trx?: sdk.TrxToken): Promise<{
78
- req: TableProvenTxReq;
79
- isNew: boolean;
80
- }>;
81
- findOrInsertProvenTx(newProven: TableProvenTx, trx?: sdk.TrxToken): Promise<{
82
- proven: TableProvenTx;
83
- isNew: boolean;
84
- }>;
85
- findUsers(args: sdk.FindUsersArgs): Promise<TableUser[]>;
86
- tagOutput(partial: Partial<TableOutput>, tag: string, trx?: sdk.TrxToken): Promise<void>;
87
- processSyncChunk(args: sdk.RequestSyncChunkArgs, chunk: sdk.SyncChunk): Promise<sdk.ProcessSyncChunkResult>;
88
- }
89
- //# sourceMappingURL=StorageSyncReaderWriter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StorageSyncReaderWriter.d.ts","sourceRoot":"","sources":["../../../src/sdk/StorageSyncReaderWriter.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=StorageSyncReaderWriter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StorageSyncReaderWriter.js","sourceRoot":"","sources":["../../../src/sdk/StorageSyncReaderWriter.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"backup.test.d.ts","sourceRoot":"","sources":["../../../test/examples/backup.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAoBxD;;GAEG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"backup.test.js","sourceRoot":"","sources":["../../../test/examples/backup.test.ts"],"names":[],"mappings":";;;;;AAuBA,wBAGC;AAKD,gDAUC;AAKD,wCAmBC;AAjED,mCAAwD;AACxD,oDAA2B;AAC3B,gBAAM,CAAC,MAAM,EAAE,CAAA;AAEf,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAEzB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACnB,IAAI,WAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAM;IAC/B,MAAM,GAAG,GAAG,WAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAEhC,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF;;GAEG;AACI,KAAK,UAAU,MAAM;IAC1B,MAAM,GAAG,GAAG,WAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;AAChD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACtC,GAAa,EACb,WAAmB;IAEnB,MAAM,KAAK,GAAG,MAAM,WAAK,CAAC,kBAAkB,CAAC;QAC3C,GAAG;QACH,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;KACrC,CAAC,CAAA;IACF,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;IAC3B,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;AAC9B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAClC,KAAkB,EAClB,QAAiB,EACjB,YAAqB;IAErB,MAAM,GAAG,GAAG,WAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrC,QAAQ,KAAR,QAAQ,GAAK,UAAU,KAAK,CAAC,WAAW,SAAS,EAAA;IACjD,YAAY,KAAZ,YAAY,GAAK,GAAG,KAAK,CAAC,WAAW,SAAS,EAAA;IAE9C,MAAM,MAAM,GAAG,MAAM,WAAK,CAAC,iBAAiB,CAAC;QAC3C,GAAG;QACH,IAAI,EAAE,WAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACtC,YAAY;QACZ,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE;KAC7C,CAAC,CAAA;IAEF,MAAM,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAEpD,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAA;AACrC,CAAC"}