@bsv/wallet-toolbox 1.2.27 → 1.2.28

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.
@@ -113,46 +113,70 @@ describe('localWallet2 tests', () => {
113
113
  }
114
114
  await setup.wallet.destroy();
115
115
  });
116
- test('5 cleanup change for userId', async () => {
117
- const env = TestUtilsWalletStorage_1._tu.getEnv('main');
118
- const knex = src_1.Setup.createMySQLKnex(process.env.MAIN_CLOUD_MYSQL_CONNECTION);
119
- const storage = new src_1.StorageKnex({
120
- chain: env.chain,
121
- knex: knex,
122
- commissionSatoshis: 0,
123
- commissionPubKeyHex: undefined,
124
- feeModel: { model: 'sat/kb', value: 1 }
125
- });
126
- const servicesOptions = src_1.Services.createDefaultOptions(env.chain);
127
- if (env.whatsonchainApiKey)
128
- servicesOptions.whatsOnChainApiKey = env.whatsonchainApiKey;
129
- storage.setServices(new src_1.Services(servicesOptions));
130
- await storage.makeAvailable();
131
- for (const userId of [76, 48, 166, 94, 110, 111, 81]) {
116
+ test('5 review and release all production invalid change utxos', async () => {
117
+ const { env, storage } = await createMainReviewSetup();
118
+ const users = await storage.findUsers({ partial: {} });
119
+ const withInvalid = {};
120
+ // [76, 48, 166, 94, 110, 111, 81]
121
+ const vargs = {
122
+ basket: sdk_1.specOpInvalidChange,
123
+ tags: [],
124
+ tagQueryMode: 'all',
125
+ includeLockingScripts: false,
126
+ includeTransactions: false,
127
+ includeCustomInstructions: false,
128
+ includeTags: false,
129
+ includeLabels: false,
130
+ limit: 0,
131
+ offset: 0,
132
+ seekPermission: false,
133
+ knownTxids: []
134
+ };
135
+ for (const user of users) {
136
+ const { userId } = user;
132
137
  const auth = { userId, identityKey: '' };
133
- const vargs = {
134
- basket: sdk_1.specOpInvalidChange,
135
- tags: [],
136
- tagQueryMode: 'all',
137
- includeLockingScripts: false,
138
- includeTransactions: false,
139
- includeCustomInstructions: false,
140
- includeTags: false,
141
- includeLabels: false,
142
- limit: 0,
143
- offset: 0,
144
- seekPermission: false,
145
- knownTxids: []
146
- };
147
138
  let r = await storage.listOutputs(auth, vargs);
148
139
  if (r.totalOutputs > 0) {
149
- console.log(`userId ${userId} releasing ${r.totalOutputs} unspendable utxos`);
150
- r = await storage.listOutputs(auth, { ...vargs, tags: ['release'] });
151
- r = await storage.listOutputs(auth, vargs);
140
+ const total = r.outputs.reduce((s, o) => (s += o.satoshis), 0);
141
+ console.log(`userId ${userId}: ${r.totalOutputs} unspendable utxos, total ${total}, ${user.identityKey}`);
142
+ withInvalid[userId] = { user, outputs: r.outputs, total };
143
+ }
144
+ }
145
+ if (Object.keys(withInvalid).length > 0) {
146
+ debugger;
147
+ // Release invalids
148
+ for (const { user, outputs } of Object.values(withInvalid)) {
149
+ const { userId } = user;
150
+ const auth = { userId, identityKey: '' };
151
+ await storage.listOutputs(auth, { ...vargs, tags: ['release'] });
152
+ }
153
+ // Verify
154
+ for (const { user, outputs } of Object.values(withInvalid)) {
155
+ const { userId } = user;
156
+ const auth = { userId, identityKey: '' };
157
+ const r = await storage.listOutputs(auth, vargs);
158
+ expect(r.totalOutputs).toBe(0);
152
159
  }
153
- expect(r.totalOutputs).toBe(0);
154
160
  }
155
161
  await storage.destroy();
156
162
  });
157
163
  });
164
+ async function createMainReviewSetup() {
165
+ const env = TestUtilsWalletStorage_1._tu.getEnv('main');
166
+ const knex = src_1.Setup.createMySQLKnex(process.env.MAIN_CLOUD_MYSQL_CONNECTION);
167
+ const storage = new src_1.StorageKnex({
168
+ chain: env.chain,
169
+ knex: knex,
170
+ commissionSatoshis: 0,
171
+ commissionPubKeyHex: undefined,
172
+ feeModel: { model: 'sat/kb', value: 1 }
173
+ });
174
+ const servicesOptions = src_1.Services.createDefaultOptions(env.chain);
175
+ if (env.whatsonchainApiKey)
176
+ servicesOptions.whatsOnChainApiKey = env.whatsonchainApiKey;
177
+ const services = new src_1.Services(servicesOptions);
178
+ storage.setServices(services);
179
+ await storage.makeAvailable();
180
+ return { env, storage, services };
181
+ }
158
182
  //# sourceMappingURL=localWallet2.man.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"localWallet2.man.test.js","sourceRoot":"","sources":["../../../../test/Wallet/local/localWallet2.man.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localWallet2.man.test.js","sourceRoot":"","sources":["../../../../test/Wallet/local/localWallet2.man.test.ts"],"names":[],"mappings":"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"}