@bsv/wallet-toolbox 2.1.6 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +111 -28
- package/docs/client.md +146 -224
- package/docs/services.md +64 -28
- package/docs/storage.md +2 -22
- package/docs/wallet.md +146 -224
- package/out/src/Wallet.js +3 -3
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +35 -36
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/__tests/ShamirWalletManager.test.js +4 -4
- package/out/src/__tests/ShamirWalletManager.test.js.map +1 -1
- package/out/src/mockchain/MockMiner.d.ts.map +1 -1
- package/out/src/mockchain/MockMiner.js +2 -1
- package/out/src/mockchain/MockMiner.js.map +1 -1
- package/out/src/mockchain/MockServices.d.ts.map +1 -1
- package/out/src/mockchain/MockServices.js +2 -1
- package/out/src/mockchain/MockServices.js.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.js +3 -1
- package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +1 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js +3 -8
- package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +22 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +54 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +3 -42
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +2 -41
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +3 -42
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +2 -20
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +5 -55
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
- package/out/src/storage/StorageIdb.js +2 -2
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts +1 -15
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +0 -53
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/__test/getBeefForTransaction.test.js +49 -2
- package/out/src/storage/__test/getBeefForTransaction.test.js.map +1 -1
- package/out/src/storage/methods/__test/offsetKey.test.js +133 -286
- package/out/src/storage/methods/__test/offsetKey.test.js.map +1 -1
- package/out/src/storage/methods/createAction.js +4 -2
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +15 -14
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/remoting/__test/StorageClient.man.test.js +0 -1
- package/out/src/storage/remoting/__test/StorageClient.man.test.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +10 -3
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +34 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts +1 -19
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +0 -52
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +1 -3
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +0 -24
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +1 -19
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +0 -52
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,124 @@ const Setup_1 = require("../../../Setup");
|
|
|
7
7
|
const StorageKnex_1 = require("../../StorageKnex");
|
|
8
8
|
const utilityHelpers_1 = require("../../../utility/utilityHelpers");
|
|
9
9
|
const WalletStorageManager_1 = require("../../WalletStorageManager");
|
|
10
|
+
/**
|
|
11
|
+
* Shared setup: create MySQL storage and test wallet for commission redemption tests.
|
|
12
|
+
*/
|
|
13
|
+
async function createRedemptionTestContext() {
|
|
14
|
+
const env = TestUtilsWalletStorage_1._tu.getEnv('main');
|
|
15
|
+
if (!env.devKeys[env.commissionsIdentity]) {
|
|
16
|
+
throw new Error('No dev key for commissions identity');
|
|
17
|
+
}
|
|
18
|
+
const knex = Setup_1.Setup.createMySQLKnex(process.env.MAIN_CLOUD_MYSQL_CONNECTION);
|
|
19
|
+
const storage = new StorageKnex_1.StorageKnex({
|
|
20
|
+
chain: env.chain,
|
|
21
|
+
knex: knex,
|
|
22
|
+
commissionSatoshis: 0,
|
|
23
|
+
commissionPubKeyHex: undefined,
|
|
24
|
+
feeModel: { model: 'sat/kb', value: 1 }
|
|
25
|
+
});
|
|
26
|
+
await storage.makeAvailable();
|
|
27
|
+
const setup = await TestUtilsWalletStorage_1._tu.createTestWalletWithStorageClient({
|
|
28
|
+
chain: 'main',
|
|
29
|
+
rootKeyHex: env.devKeys[env.commissionsIdentity]
|
|
30
|
+
});
|
|
31
|
+
storage.setServices(setup.services);
|
|
32
|
+
return { env, storage, setup };
|
|
33
|
+
}
|
|
34
|
+
/** Attempt to add a single proven commission as a transaction input. */
|
|
35
|
+
async function tryAddCommissionInput(comm, storage, beef, chainTracker, inputs, comms) {
|
|
36
|
+
const tt = (0, utilityHelpers_1.verifyTruthy)(await storage.findTransactionById(comm.transactionId, undefined, true));
|
|
37
|
+
if (!tt.provenTxId || !tt.txid)
|
|
38
|
+
return;
|
|
39
|
+
await storage.getBeefForTransaction(tt.txid, { mergeToBeef: beef, chainTracker, skipInvalidProofs: true });
|
|
40
|
+
const tx = (0, utilityHelpers_1.verifyTruthy)(beef.findTxid(tt.txid)).tx;
|
|
41
|
+
const commVOut = tx.outputs.findIndex(o => o.satoshis === comm.satoshis && o.lockingScript.toHex() === sdk_1.Utils.toHex(comm.lockingScript));
|
|
42
|
+
inputs.push({
|
|
43
|
+
outpoint: `${tt.txid}.${commVOut}`,
|
|
44
|
+
inputDescription: `commId:${comm.commissionId}`,
|
|
45
|
+
unlockingScriptLength: 108
|
|
46
|
+
});
|
|
47
|
+
comms.push(comm);
|
|
48
|
+
}
|
|
49
|
+
/** Collect a full quota of unredeemed commission inputs for redemption. */
|
|
50
|
+
async function collectCommissionInputs(storage, fca, beef, chainTracker) {
|
|
51
|
+
const comms = [];
|
|
52
|
+
const inputs = [];
|
|
53
|
+
while (comms.length < fca.paged.limit) {
|
|
54
|
+
const unredeemedComms = await storage.findCommissions(fca);
|
|
55
|
+
if (unredeemedComms.length < 1)
|
|
56
|
+
break;
|
|
57
|
+
for (const comm of unredeemedComms) {
|
|
58
|
+
fca.paged.offset += 1;
|
|
59
|
+
await tryAddCommissionInput(comm, storage, beef, chainTracker, inputs, comms);
|
|
60
|
+
if (comms.length === fca.paged.limit)
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return { comms, inputs };
|
|
65
|
+
}
|
|
66
|
+
/** Sign commission inputs and broadcast the redemption transaction. */
|
|
67
|
+
async function signAndBroadcastRedemption(setup, storage, env, comms, inputs, beef, chainTracker) {
|
|
68
|
+
var _a;
|
|
69
|
+
console.log(beef.toLogString());
|
|
70
|
+
expect(await beef.verify(chainTracker, false)).toBe(true);
|
|
71
|
+
const car = await setup.wallet.createAction({
|
|
72
|
+
description: 'redeem commissions',
|
|
73
|
+
inputs,
|
|
74
|
+
inputBEEF: beef.toBinary(),
|
|
75
|
+
options: { randomizeOutputs: false, noSend: true }
|
|
76
|
+
});
|
|
77
|
+
expect(car.signableTransaction).toBeTruthy();
|
|
78
|
+
const st = car.signableTransaction;
|
|
79
|
+
expect(st.reference).toBeTruthy();
|
|
80
|
+
const atomicBeef = sdk_1.Beef.fromBinary(st.tx);
|
|
81
|
+
const txid = atomicBeef.txs[atomicBeef.txs.length - 1].txid;
|
|
82
|
+
const tx = atomicBeef.findTransactionForSigning(txid);
|
|
83
|
+
const priv = sdk_1.PrivateKey.fromHex(env.devKeys[env.commissionsIdentity]);
|
|
84
|
+
const pub = priv.toPublicKey();
|
|
85
|
+
const curve = new sdk_1.Curve();
|
|
86
|
+
const p2pkh = new sdk_1.P2PKH();
|
|
87
|
+
for (let vin = 0; vin < comms.length; vin++) {
|
|
88
|
+
const { hashedSecret } = (0, offsetKey_1.keyOffsetToHashedSecret)(pub, comms[vin].keyOffset);
|
|
89
|
+
tx.inputs[vin].unlockingScriptTemplate = p2pkh.unlock(new sdk_1.PrivateKey(priv.add(hashedSecret).mod(curve.n)), 'all', false);
|
|
90
|
+
}
|
|
91
|
+
await tx.sign();
|
|
92
|
+
const spends = {};
|
|
93
|
+
for (let vin = 0; vin < comms.length; vin++) {
|
|
94
|
+
spends[vin] = { unlockingScript: tx.inputs[vin].unlockingScript.toHex() };
|
|
95
|
+
}
|
|
96
|
+
const sr = await setup.wallet.signAction({
|
|
97
|
+
reference: st.reference,
|
|
98
|
+
spends,
|
|
99
|
+
options: { returnTXIDOnly: true, noSend: true }
|
|
100
|
+
});
|
|
101
|
+
expect(sr.txid).toBeTruthy();
|
|
102
|
+
for (const comm of comms) {
|
|
103
|
+
await storage.updateCommission(comm.commissionId, { isRedeemed: true });
|
|
104
|
+
}
|
|
105
|
+
const cr = await setup.wallet.createAction({
|
|
106
|
+
description: 'broadcasting noSend',
|
|
107
|
+
options: { acceptDelayedBroadcast: false, sendWith: [sr.txid] }
|
|
108
|
+
});
|
|
109
|
+
expect(cr.noSendChange).not.toBeTruthy();
|
|
110
|
+
expect((_a = cr.sendWithResults) === null || _a === void 0 ? void 0 : _a.length).toBe(1);
|
|
111
|
+
expect(cr.sendWithResults[0].status !== 'failed').toBe(true);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Core redemption loop shared by both test variants.
|
|
115
|
+
* Collects unredeemed commissions, creates and signs a transaction, then broadcasts.
|
|
116
|
+
*/
|
|
117
|
+
async function runRedemptionLoop(storage, setup, env, fca) {
|
|
118
|
+
for (;;) {
|
|
119
|
+
const beef = new sdk_1.Beef();
|
|
120
|
+
const chainTracker = await setup.services.getChainTracker();
|
|
121
|
+
const { comms, inputs } = await collectCommissionInputs(storage, fca, beef, chainTracker);
|
|
122
|
+
if (comms.length < fca.paged.limit)
|
|
123
|
+
break;
|
|
124
|
+
fca.paged.offset -= comms.length;
|
|
125
|
+
await signAndBroadcastRedemption(setup, storage, env, comms, inputs, beef, chainTracker);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
10
128
|
describe('offsetKey tests', () => {
|
|
11
129
|
jest.setTimeout(99999999);
|
|
12
130
|
test('1_offsetPrivKey', async () => {
|
|
@@ -58,154 +176,18 @@ describe('offsetKey tests', () => {
|
|
|
58
176
|
expect(address).toBe('1EZz5oxwXoG6LgGLxeYPeg1NfzQrP1vL6M');
|
|
59
177
|
});
|
|
60
178
|
test.skip('4_redeemServiceCharges', async () => {
|
|
61
|
-
var _a;
|
|
62
179
|
if (TestUtilsWalletStorage_1._tu.noEnv('main'))
|
|
63
180
|
return;
|
|
64
|
-
const env =
|
|
65
|
-
if (!env.devKeys[env.commissionsIdentity]) {
|
|
66
|
-
throw new Error('No dev key for commissions identity');
|
|
67
|
-
}
|
|
68
|
-
const knex = Setup_1.Setup.createMySQLKnex(process.env.MAIN_CLOUD_MYSQL_CONNECTION);
|
|
69
|
-
const storage = new StorageKnex_1.StorageKnex({
|
|
70
|
-
chain: env.chain,
|
|
71
|
-
knex: knex,
|
|
72
|
-
commissionSatoshis: 0,
|
|
73
|
-
commissionPubKeyHex: undefined,
|
|
74
|
-
feeModel: { model: 'sat/kb', value: 1 }
|
|
75
|
-
});
|
|
76
|
-
let setup;
|
|
77
|
-
await storage.makeAvailable();
|
|
78
|
-
setup = await TestUtilsWalletStorage_1._tu.createTestWalletWithStorageClient({
|
|
79
|
-
chain: 'main',
|
|
80
|
-
rootKeyHex: env.devKeys[env.commissionsIdentity]
|
|
81
|
-
});
|
|
82
|
-
storage.setServices(setup.services);
|
|
181
|
+
const { env, storage, setup } = await createRedemptionTestContext();
|
|
83
182
|
try {
|
|
84
|
-
// await setup.wallet.abortAction({ reference: 'e9c03bdf603e90ebe482044e8d0f7afbf2d6fe480a13dbd8689e2e5e5183bed4' })
|
|
85
|
-
// txid b6f72df4224efbacab42a16e1e88f48c217f03929c36987b9067d2556de47c10
|
|
86
|
-
// height 922107
|
|
87
|
-
// incorrect hash 000000000000000014d97d19bf82956c1f7ce3977da10b7fbdab9a10653c02e7
|
|
88
|
-
// correct hash 00000000000000001957bfadf841d1709d5039b3243c33ba58e4a6a97b44d2a8
|
|
89
183
|
const sm = new WalletStorageManager_1.WalletStorageManager(setup.identityKey, storage);
|
|
90
184
|
sm.setServices(setup.services);
|
|
91
|
-
// This should correct invalid merkle proofs in proven_txs but currently does not because WoC returns invalid header info.
|
|
92
185
|
await sm.reproveHeader('000000000000000014d97d19bf82956c1f7ce3977da10b7fbdab9a10653c02e7');
|
|
93
186
|
const fca = {
|
|
94
187
|
partial: { isRedeemed: false },
|
|
95
188
|
paged: { limit: 400, offset: 0 }
|
|
96
189
|
};
|
|
97
|
-
|
|
98
|
-
const comms = [];
|
|
99
|
-
let beef = new sdk_1.Beef();
|
|
100
|
-
const chainTracker = await setup.services.getChainTracker();
|
|
101
|
-
const inputs = [];
|
|
102
|
-
for (; comms.length < fca.paged.limit;) {
|
|
103
|
-
const unredeemedComms = await storage.findCommissions(fca);
|
|
104
|
-
if (unredeemedComms.length < 1)
|
|
105
|
-
break;
|
|
106
|
-
for (const comm of unredeemedComms) {
|
|
107
|
-
fca.paged.offset += 1;
|
|
108
|
-
const tt = (0, utilityHelpers_1.verifyTruthy)(await storage.findTransactionById(comm.transactionId, undefined, true));
|
|
109
|
-
if (tt.provenTxId && tt.txid) {
|
|
110
|
-
await storage.getBeefForTransaction(tt.txid, { mergeToBeef: beef, chainTracker, skipInvalidProofs: true });
|
|
111
|
-
const tx = (0, utilityHelpers_1.verifyTruthy)(beef.findTxid(tt.txid)).tx;
|
|
112
|
-
const commVOut = tx.outputs.findIndex(o => o.satoshis === comm.satoshis && o.lockingScript.toHex() === sdk_1.Utils.toHex(comm.lockingScript));
|
|
113
|
-
const commOut = tx.outputs[commVOut];
|
|
114
|
-
const input = {
|
|
115
|
-
outpoint: `${tt.txid}.${commVOut}`,
|
|
116
|
-
inputDescription: `commId:${comm.commissionId}`,
|
|
117
|
-
unlockingScriptLength: 108
|
|
118
|
-
};
|
|
119
|
-
inputs.push(input);
|
|
120
|
-
comms.push(comm);
|
|
121
|
-
if (comms.length === fca.paged.limit)
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (comms.length < fca.paged.limit)
|
|
127
|
-
// Only redeem full quota of commissions per cycle to avoid paying higher percentage of fees.
|
|
128
|
-
break;
|
|
129
|
-
if (comms.length > 0) {
|
|
130
|
-
fca.paged.offset -= comms.length;
|
|
131
|
-
console.log(beef.toLogString());
|
|
132
|
-
const verified = await beef.verify(chainTracker, false);
|
|
133
|
-
expect(verified).toBe(true);
|
|
134
|
-
const cao = {
|
|
135
|
-
randomizeOutputs: false,
|
|
136
|
-
//signAndProcess: false,
|
|
137
|
-
noSend: true
|
|
138
|
-
};
|
|
139
|
-
const ca = {
|
|
140
|
-
description: 'redeem commissions',
|
|
141
|
-
inputs: inputs,
|
|
142
|
-
inputBEEF: beef.toBinary(),
|
|
143
|
-
options: cao
|
|
144
|
-
};
|
|
145
|
-
const car = await setup.wallet.createAction(ca);
|
|
146
|
-
expect(car.signableTransaction).toBeTruthy();
|
|
147
|
-
const st = car.signableTransaction;
|
|
148
|
-
expect(st.reference).toBeTruthy();
|
|
149
|
-
const atomicBeef = sdk_1.Beef.fromBinary(st.tx);
|
|
150
|
-
const txid = atomicBeef.txs[atomicBeef.txs.length - 1].txid;
|
|
151
|
-
const tx = atomicBeef.findTransactionForSigning(txid);
|
|
152
|
-
const priv = sdk_1.PrivateKey.fromHex(env.devKeys[env.commissionsIdentity]);
|
|
153
|
-
const pub = priv.toPublicKey();
|
|
154
|
-
const curve = new sdk_1.Curve();
|
|
155
|
-
const p2pkh = new sdk_1.P2PKH();
|
|
156
|
-
const spends = {};
|
|
157
|
-
let vin = 0;
|
|
158
|
-
// set an unlockingScriptTemplate for each commission input being redeemed in unsigned tx
|
|
159
|
-
for (const comm of comms) {
|
|
160
|
-
const { hashedSecret } = (0, offsetKey_1.keyOffsetToHashedSecret)(pub, comm.keyOffset);
|
|
161
|
-
const bn = priv.add(hashedSecret).mod(curve.n);
|
|
162
|
-
const offsetPrivKey = new sdk_1.PrivateKey(bn);
|
|
163
|
-
const unlock = p2pkh.unlock(offsetPrivKey, 'all', false);
|
|
164
|
-
tx.inputs[vin].unlockingScriptTemplate = unlock;
|
|
165
|
-
vin++;
|
|
166
|
-
}
|
|
167
|
-
// sign each input
|
|
168
|
-
await tx.sign();
|
|
169
|
-
vin = 0;
|
|
170
|
-
// extract all the signed unlocking scripts
|
|
171
|
-
for (const comm of comms) {
|
|
172
|
-
const script = tx.inputs[vin].unlockingScript;
|
|
173
|
-
const unlockingScript = script.toHex();
|
|
174
|
-
spends[vin] = { unlockingScript };
|
|
175
|
-
vin++;
|
|
176
|
-
}
|
|
177
|
-
const signArgs = {
|
|
178
|
-
reference: st.reference,
|
|
179
|
-
spends,
|
|
180
|
-
options: {
|
|
181
|
-
returnTXIDOnly: true,
|
|
182
|
-
noSend: true
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
// Forward all the unlocking scripts to storage and create the ProvenTxReq for the noSend txid.
|
|
186
|
-
const sr = await setup.wallet.signAction(signArgs);
|
|
187
|
-
expect(sr.txid).toBeTruthy();
|
|
188
|
-
// Update the commissions as redeemed in storage
|
|
189
|
-
for (const comm of comms) {
|
|
190
|
-
await storage.updateCommission(comm.commissionId, { isRedeemed: true });
|
|
191
|
-
}
|
|
192
|
-
{
|
|
193
|
-
// Get the transaction broadcast
|
|
194
|
-
const createArgs = {
|
|
195
|
-
description: `broadcasting noSend`,
|
|
196
|
-
options: {
|
|
197
|
-
acceptDelayedBroadcast: false,
|
|
198
|
-
sendWith: [sr.txid]
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
const cr = await setup.wallet.createAction(createArgs);
|
|
202
|
-
expect(cr.noSendChange).not.toBeTruthy();
|
|
203
|
-
expect((_a = cr.sendWithResults) === null || _a === void 0 ? void 0 : _a.length).toBe(1);
|
|
204
|
-
const [swr] = cr.sendWithResults;
|
|
205
|
-
expect(swr.status !== 'failed').toBe(true);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
190
|
+
await runRedemptionLoop(storage, setup, env, fca);
|
|
209
191
|
}
|
|
210
192
|
catch (err) {
|
|
211
193
|
console.error('Error in 4_redeemServiceCharges test:', err);
|
|
@@ -215,161 +197,26 @@ describe('offsetKey tests', () => {
|
|
|
215
197
|
await setup.wallet.destroy();
|
|
216
198
|
});
|
|
217
199
|
test.skip('4a_redeemServiceCharges optimized', async () => {
|
|
218
|
-
var _a;
|
|
219
200
|
if (TestUtilsWalletStorage_1._tu.noEnv('main'))
|
|
220
201
|
return;
|
|
221
|
-
const env =
|
|
222
|
-
if (!env.devKeys[env.commissionsIdentity]) {
|
|
223
|
-
throw new Error('No dev key for commissions identity');
|
|
224
|
-
}
|
|
225
|
-
const knex = Setup_1.Setup.createMySQLKnex(process.env.MAIN_CLOUD_MYSQL_CONNECTION);
|
|
226
|
-
const storage = new StorageKnex_1.StorageKnex({
|
|
227
|
-
chain: env.chain,
|
|
228
|
-
knex: knex,
|
|
229
|
-
commissionSatoshis: 0,
|
|
230
|
-
commissionPubKeyHex: undefined,
|
|
231
|
-
feeModel: { model: 'sat/kb', value: 1 }
|
|
232
|
-
});
|
|
233
|
-
let setup;
|
|
234
|
-
await storage.makeAvailable();
|
|
235
|
-
setup = await TestUtilsWalletStorage_1._tu.createTestWalletWithStorageClient({
|
|
236
|
-
chain: 'main',
|
|
237
|
-
rootKeyHex: env.devKeys[env.commissionsIdentity]
|
|
238
|
-
});
|
|
239
|
-
storage.setServices(setup.services);
|
|
202
|
+
const { env, storage, setup } = await createRedemptionTestContext();
|
|
240
203
|
try {
|
|
241
204
|
const fca = {
|
|
242
205
|
partial: { isRedeemed: false },
|
|
243
206
|
paged: { limit: 400, offset: 0 }
|
|
244
207
|
};
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
SELECT c.*, t.provenTxId, p.height, p.index, p.merklePath, p.rawTx, p.blockHash, p.merkleRoot
|
|
258
|
-
FROM commissions c
|
|
259
|
-
JOIN transactions t ON c.transactionId = t.transactionId
|
|
260
|
-
JOIN proven_txs p ON t.provenTxId = p.provenTxId
|
|
261
|
-
WHERE c.isRedeemed = 0
|
|
262
|
-
AND NOT t.provenTxId IS NOT NULL
|
|
263
|
-
ORDER BY c.commissionId
|
|
264
|
-
LIMIT ? OFFSET ?;
|
|
265
|
-
`, [fca.paged.limit, fca.paged.offset]);
|
|
266
|
-
for (; comms.length < fca.paged.limit;) {
|
|
267
|
-
const unredeemedComms = await storage.findCommissions(fca);
|
|
268
|
-
if (unredeemedComms.length < 1)
|
|
269
|
-
break;
|
|
270
|
-
for (const comm of unredeemedComms) {
|
|
271
|
-
fca.paged.offset += 1;
|
|
272
|
-
const tt = (0, utilityHelpers_1.verifyTruthy)(await storage.findTransactionById(comm.transactionId, undefined, true));
|
|
273
|
-
if (tt.provenTxId && tt.txid) {
|
|
274
|
-
await storage.getBeefForTransaction(tt.txid, { mergeToBeef: beef, chainTracker, skipInvalidProofs: true });
|
|
275
|
-
const tx = (0, utilityHelpers_1.verifyTruthy)(beef.findTxid(tt.txid)).tx;
|
|
276
|
-
const commVOut = tx.outputs.findIndex(o => o.satoshis === comm.satoshis && o.lockingScript.toHex() === sdk_1.Utils.toHex(comm.lockingScript));
|
|
277
|
-
const commOut = tx.outputs[commVOut];
|
|
278
|
-
const input = {
|
|
279
|
-
outpoint: `${tt.txid}.${commVOut}`,
|
|
280
|
-
inputDescription: `commId:${comm.commissionId}`,
|
|
281
|
-
unlockingScriptLength: 108
|
|
282
|
-
};
|
|
283
|
-
inputs.push(input);
|
|
284
|
-
comms.push(comm);
|
|
285
|
-
if (comms.length === fca.paged.limit)
|
|
286
|
-
break;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
if (comms.length < fca.paged.limit)
|
|
291
|
-
// Only redeem full quota of commissions per cycle to avoid paying higher percentage of fees.
|
|
292
|
-
break;
|
|
293
|
-
if (comms.length > 0) {
|
|
294
|
-
fca.paged.offset -= comms.length;
|
|
295
|
-
console.log(beef.toLogString());
|
|
296
|
-
const verified = await beef.verify(chainTracker, false);
|
|
297
|
-
expect(verified).toBe(true);
|
|
298
|
-
const cao = {
|
|
299
|
-
randomizeOutputs: false,
|
|
300
|
-
//signAndProcess: false,
|
|
301
|
-
noSend: true
|
|
302
|
-
};
|
|
303
|
-
const ca = {
|
|
304
|
-
description: 'redeem commissions',
|
|
305
|
-
inputs: inputs,
|
|
306
|
-
inputBEEF: beef.toBinary(),
|
|
307
|
-
options: cao
|
|
308
|
-
};
|
|
309
|
-
const car = await setup.wallet.createAction(ca);
|
|
310
|
-
expect(car.signableTransaction).toBeTruthy();
|
|
311
|
-
const st = car.signableTransaction;
|
|
312
|
-
expect(st.reference).toBeTruthy();
|
|
313
|
-
const atomicBeef = sdk_1.Beef.fromBinary(st.tx);
|
|
314
|
-
const txid = atomicBeef.txs[atomicBeef.txs.length - 1].txid;
|
|
315
|
-
const tx = atomicBeef.findTransactionForSigning(txid);
|
|
316
|
-
const priv = sdk_1.PrivateKey.fromHex(env.devKeys[env.commissionsIdentity]);
|
|
317
|
-
const pub = priv.toPublicKey();
|
|
318
|
-
const curve = new sdk_1.Curve();
|
|
319
|
-
const p2pkh = new sdk_1.P2PKH();
|
|
320
|
-
const spends = {};
|
|
321
|
-
let vin = 0;
|
|
322
|
-
// set an unlockingScriptTemplate for each commission input being redeemed in unsigned tx
|
|
323
|
-
for (const comm of comms) {
|
|
324
|
-
const { hashedSecret } = (0, offsetKey_1.keyOffsetToHashedSecret)(pub, comm.keyOffset);
|
|
325
|
-
const bn = priv.add(hashedSecret).mod(curve.n);
|
|
326
|
-
const offsetPrivKey = new sdk_1.PrivateKey(bn);
|
|
327
|
-
const unlock = p2pkh.unlock(offsetPrivKey, 'all', false);
|
|
328
|
-
tx.inputs[vin].unlockingScriptTemplate = unlock;
|
|
329
|
-
vin++;
|
|
330
|
-
}
|
|
331
|
-
// sign each input
|
|
332
|
-
await tx.sign();
|
|
333
|
-
vin = 0;
|
|
334
|
-
// extract all the signed unlocking scripts
|
|
335
|
-
for (const comm of comms) {
|
|
336
|
-
const script = tx.inputs[vin].unlockingScript;
|
|
337
|
-
const unlockingScript = script.toHex();
|
|
338
|
-
spends[vin] = { unlockingScript };
|
|
339
|
-
vin++;
|
|
340
|
-
}
|
|
341
|
-
const signArgs = {
|
|
342
|
-
reference: st.reference,
|
|
343
|
-
spends,
|
|
344
|
-
options: {
|
|
345
|
-
returnTXIDOnly: true,
|
|
346
|
-
noSend: true
|
|
347
|
-
}
|
|
348
|
-
};
|
|
349
|
-
// Forward all the unlocking scripts to storage and create the ProvenTxReq for the noSend txid.
|
|
350
|
-
const sr = await setup.wallet.signAction(signArgs);
|
|
351
|
-
expect(sr.txid).toBeTruthy();
|
|
352
|
-
// Update the commissions as redeemed in storage
|
|
353
|
-
for (const comm of comms) {
|
|
354
|
-
await storage.updateCommission(comm.commissionId, { isRedeemed: true });
|
|
355
|
-
}
|
|
356
|
-
{
|
|
357
|
-
// Get the transaction broadcast
|
|
358
|
-
const createArgs = {
|
|
359
|
-
description: `broadcasting noSend`,
|
|
360
|
-
options: {
|
|
361
|
-
acceptDelayedBroadcast: false,
|
|
362
|
-
sendWith: [sr.txid]
|
|
363
|
-
}
|
|
364
|
-
};
|
|
365
|
-
const cr = await setup.wallet.createAction(createArgs);
|
|
366
|
-
expect(cr.noSendChange).not.toBeTruthy();
|
|
367
|
-
expect((_a = cr.sendWithResults) === null || _a === void 0 ? void 0 : _a.length).toBe(1);
|
|
368
|
-
const [swr] = cr.sendWithResults;
|
|
369
|
-
expect(swr.status !== 'failed').toBe(true);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
}
|
|
208
|
+
// Pre-fetch with optimized SQL query
|
|
209
|
+
await storage.knex.raw(`
|
|
210
|
+
SELECT c.*, t.provenTxId, p.height, p.index, p.merklePath, p.rawTx, p.blockHash, p.merkleRoot
|
|
211
|
+
FROM commissions c
|
|
212
|
+
JOIN transactions t ON c.transactionId = t.transactionId
|
|
213
|
+
JOIN proven_txs p ON t.provenTxId = p.provenTxId
|
|
214
|
+
WHERE c.isRedeemed = 0
|
|
215
|
+
AND NOT t.provenTxId IS NOT NULL
|
|
216
|
+
ORDER BY c.commissionId
|
|
217
|
+
LIMIT ? OFFSET ?;
|
|
218
|
+
`, [fca.paged.limit, fca.paged.offset]);
|
|
219
|
+
await runRedemptionLoop(storage, setup, env, fca);
|
|
373
220
|
}
|
|
374
221
|
catch (err) {
|
|
375
222
|
console.error('Error in 4_redeemServiceCharges test:', err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offsetKey.test.js","sourceRoot":"","sources":["../../../../../src/storage/methods/__test/offsetKey.test.ts"],"names":[],"mappings":";;AAAA,kCAaiB;AACjB,4CAAsH;AACtH,0FAAmF;AACnF,0CAAsC;AACtC,mDAA+C;AAE/C,oEAAyE;AAEzE,qEAAiE;AAEjE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAEzB,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,GAAG,GAAG,eAAS,CAAC,OAAO,CAAC,kEAAkE,EAAE,KAAK,CAAC,CAAA;QAExG,MAAM,KAAK,GAAG,IAAI,gBAAU,CAAC,GAAG,CAAC,CAAA;QAEjC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAE9B,MAAM,SAAS,GAAG,sDAAsD,CAAA;QACxE,MAAM,QAAQ,GAAG,sDAAsD,CAAA;QAEvE,MAAM,GAAG,GAAG,IAAA,yBAAa,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAE9C,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAErC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,GAAG,GAAG,eAAS,CAAC,OAAO,CAAC,kEAAkE,EAAE,KAAK,CAAC,CAAA;QAExG,MAAM,KAAK,GAAG,IAAI,gBAAU,CAAC,GAAG,CAAC,CAAA;QAEjC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAEhC,MAAM,SAAS,GAAG,sDAAsD,CAAA;QACxE,MAAM,QAAQ,GAAG,sDAAsD,CAAA;QACvE,MAAM,OAAO,GAAG,oEAAoE,CAAA;QAEpF,MAAM,GAAG,GAAG,IAAA,wBAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAA;QAEpD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAErC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEtC,MAAM,OAAO,GAAG,gBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAA;QAErE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,MAAM,GAAG,oEAAoE,CAAA;QAEnF,MAAM,EAAE,GAAG,sDAAsD,CAAA;QACjE,MAAM,MAAM,GAAG,oDAAoD,CAAA;QAEnE,MAAM,EAAE,GAAG,IAAA,6CAAiC,EAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAExD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9B,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE7B,iCAAiC;QACjC,MAAM,EAAE,GAAG,IAAA,6CAAiC,EAAC,MAAM,CAAC,CAAA;QAEpD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC5C,IAAI,4BAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAM;QAE7B,MAAM,GAAG,GAAG,4BAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAE,CAAA;QACrD,MAAM,IAAI,GAAG,gBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAE9B,MAAM,SAAS,GAAG,sDAAsD,CAAA;QAExE,MAAM,CAAC,GAAG,IAAA,yBAAa,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,gBAAU,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;QACjC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;;QAC7C,IAAI,4BAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAM;QAE7B,MAAM,GAAG,GAAG,4BAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,IAAI,GAAG,aAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA4B,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,IAAI,yBAAW,CAAC;YAC9B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI;YACV,kBAAkB,EAAE,CAAC;YACrB,mBAAmB,EAAE,SAAS;YAC9B,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;SACxC,CAAC,CAAA;QAEF,IAAI,KAAqB,CAAA;QACzB,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;QAE7B,KAAK,GAAG,MAAM,4BAAG,CAAC,iCAAiC,CAAC;YAClD,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACjD,CAAC,CAAA;QACF,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEnC,IAAI,CAAC;YACH,oHAAoH;YAEpH,wEAAwE;YACxE,gBAAgB;YAChB,kFAAkF;YAClF,kFAAkF;YAClF,MAAM,EAAE,GAAG,IAAI,2CAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAC/D,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC9B,0HAA0H;YAC1H,MAAM,EAAE,CAAC,aAAa,CAAC,kEAAkE,CAAC,CAAA;YAE1F,MAAM,GAAG,GAAwB;gBAC/B,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;gBAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE;aACjC,CAAA;YAED,SAAS,CAAC;gBACR,MAAM,KAAK,GAAsB,EAAE,CAAA;gBACnC,IAAI,IAAI,GAAG,IAAI,UAAI,EAAE,CAAA;gBACrB,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAA;gBAC3D,MAAM,MAAM,GAAwB,EAAE,CAAA;gBAEtC,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAM,CAAC,KAAK,GAAI,CAAC;oBACzC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;oBAC1D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAK;oBAErC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;wBACnC,GAAG,CAAC,KAAM,CAAC,MAAO,IAAI,CAAC,CAAA;wBACvB,MAAM,EAAE,GAAG,IAAA,6BAAY,EAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;wBAC/F,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;4BAC7B,MAAM,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAA;4BAC1G,MAAM,EAAE,GAAG,IAAA,6BAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAG,CAAA;4BACnD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,WAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CACjG,CAAA;4BACD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;4BACpC,MAAM,KAAK,GAAsB;gCAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE;gCAClC,gBAAgB,EAAE,UAAU,IAAI,CAAC,YAAY,EAAE;gCAC/C,qBAAqB,EAAE,GAAG;6BAC3B,CAAA;4BACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;4BAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;4BAChB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,KAAM,CAAC,KAAK;gCAAE,MAAK;wBAC9C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAM,CAAC,KAAK;oBACjC,6FAA6F;oBAC7F,MAAK;gBAEP,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,KAAM,CAAC,MAAO,IAAI,KAAK,CAAC,MAAM,CAAA;oBAElC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;oBAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;oBACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAE3B,MAAM,GAAG,GAAwB;wBAC/B,gBAAgB,EAAE,KAAK;wBACvB,wBAAwB;wBACxB,MAAM,EAAE,IAAI;qBACb,CAAA;oBACD,MAAM,EAAE,GAAqB;wBAC3B,WAAW,EAAE,oBAAoB;wBACjC,MAAM,EAAE,MAAM;wBACd,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;wBAC1B,OAAO,EAAE,GAAG;qBACb,CAAA;oBAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;oBAC/C,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAA;oBAE5C,MAAM,EAAE,GAAG,GAAG,CAAC,mBAAoB,CAAA;oBACnC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAA;oBACjC,MAAM,UAAU,GAAG,UAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;oBACzC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAK,CAAA;oBAC5D,MAAM,EAAE,GAAG,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAE,CAAA;oBAEtD,MAAM,IAAI,GAAG,gBAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAA;oBACrE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;oBAC9B,MAAM,KAAK,GAAG,IAAI,WAAK,EAAE,CAAA;oBACzB,MAAM,KAAK,GAAG,IAAI,WAAK,EAAE,CAAA;oBACzB,MAAM,MAAM,GAAmD,EAAE,CAAA;oBACjE,IAAI,GAAG,GAAG,CAAC,CAAA;oBACX,yFAAyF;oBACzF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,mCAAuB,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;wBACrE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBAC9C,MAAM,aAAa,GAAG,IAAI,gBAAU,CAAC,EAAE,CAAC,CAAA;wBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;wBACxD,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,uBAAuB,GAAG,MAAM,CAAA;wBAC/C,GAAG,EAAE,CAAA;oBACP,CAAC;oBAED,kBAAkB;oBAClB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;oBAEf,GAAG,GAAG,CAAC,CAAA;oBACP,2CAA2C;oBAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAgB,CAAA;wBAC9C,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;wBACtC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,CAAA;wBACjC,GAAG,EAAE,CAAA;oBACP,CAAC;oBAED,MAAM,QAAQ,GAAmB;wBAC/B,SAAS,EAAE,EAAE,CAAC,SAAS;wBACvB,MAAM;wBACN,OAAO,EAAE;4BACP,cAAc,EAAE,IAAI;4BACpB,MAAM,EAAE,IAAI;yBACb;qBACF,CAAA;oBAED,+FAA+F;oBAC/F,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;oBAClD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;oBAE5B,gDAAgD;oBAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;oBACzE,CAAC;oBAED,CAAC;wBACC,gCAAgC;wBAChC,MAAM,UAAU,GAAqB;4BACnC,WAAW,EAAE,qBAAqB;4BAClC,OAAO,EAAE;gCACP,sBAAsB,EAAE,KAAK;gCAC7B,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAK,CAAC;6BACrB;yBACF,CAAA;wBAED,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;wBAEtD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;wBACxC,MAAM,CAAC,MAAA,EAAE,CAAC,eAAe,0CAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,eAAgB,CAAA;wBACjC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;YAC3D,MAAM,GAAG,CAAA;QACX,CAAC;QAED,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACvB,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;;QACxD,IAAI,4BAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAM;QAE7B,MAAM,GAAG,GAAG,4BAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,IAAI,GAAG,aAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA4B,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,IAAI,yBAAW,CAAC;YAC9B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI;YACV,kBAAkB,EAAE,CAAC;YACrB,mBAAmB,EAAE,SAAS;YAC9B,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;SACxC,CAAC,CAAA;QAEF,IAAI,KAAqB,CAAA;QACzB,MAAM,OAAO,CAAC,aAAa,EAAE,CAAA;QAE7B,KAAK,GAAG,MAAM,4BAAG,CAAC,iCAAiC,CAAC;YAClD,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACjD,CAAC,CAAA;QACF,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAEnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAwB;gBAC/B,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;gBAC9B,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE;aACjC,CAAA;YAED,SAAS,CAAC;gBACR,MAAM,KAAK,GAAsB,EAAE,CAAA;gBACnC,IAAI,IAAI,GAAG,IAAI,UAAI,EAAE,CAAA;gBACrB,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAA;gBAC3D,MAAM,MAAM,GAAwB,EAAE,CAAA;gBAEtC,4FAA4F;gBAC5F,uCAAuC;gBACvC,wDAAwD;gBACxD,0CAA0C;gBAC1C,gGAAgG;gBAChG,6CAA6C;gBAC7C,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAC9B;;;;;;;;;SASD,EACC,CAAC,GAAG,CAAC,KAAM,CAAC,KAAK,EAAE,GAAG,CAAC,KAAM,CAAC,MAAO,CAAC,CACvC,CAAA;gBAED,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAM,CAAC,KAAK,GAAI,CAAC;oBACzC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;oBAC1D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAK;oBAErC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;wBACnC,GAAG,CAAC,KAAM,CAAC,MAAO,IAAI,CAAC,CAAA;wBACvB,MAAM,EAAE,GAAG,IAAA,6BAAY,EAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;wBAC/F,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;4BAC7B,MAAM,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAA;4BAC1G,MAAM,EAAE,GAAG,IAAA,6BAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAG,CAAA;4BACnD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,WAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CACjG,CAAA;4BACD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;4BACpC,MAAM,KAAK,GAAsB;gCAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE;gCAClC,gBAAgB,EAAE,UAAU,IAAI,CAAC,YAAY,EAAE;gCAC/C,qBAAqB,EAAE,GAAG;6BAC3B,CAAA;4BACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;4BAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;4BAChB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,KAAM,CAAC,KAAK;gCAAE,MAAK;wBAC9C,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAM,CAAC,KAAK;oBACjC,6FAA6F;oBAC7F,MAAK;gBAEP,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,KAAM,CAAC,MAAO,IAAI,KAAK,CAAC,MAAM,CAAA;oBAElC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;oBAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;oBACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAE3B,MAAM,GAAG,GAAwB;wBAC/B,gBAAgB,EAAE,KAAK;wBACvB,wBAAwB;wBACxB,MAAM,EAAE,IAAI;qBACb,CAAA;oBACD,MAAM,EAAE,GAAqB;wBAC3B,WAAW,EAAE,oBAAoB;wBACjC,MAAM,EAAE,MAAM;wBACd,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;wBAC1B,OAAO,EAAE,GAAG;qBACb,CAAA;oBAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;oBAC/C,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,UAAU,EAAE,CAAA;oBAE5C,MAAM,EAAE,GAAG,GAAG,CAAC,mBAAoB,CAAA;oBACnC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAA;oBACjC,MAAM,UAAU,GAAG,UAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;oBACzC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAK,CAAA;oBAC5D,MAAM,EAAE,GAAG,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAE,CAAA;oBAEtD,MAAM,IAAI,GAAG,gBAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAA;oBACrE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;oBAC9B,MAAM,KAAK,GAAG,IAAI,WAAK,EAAE,CAAA;oBACzB,MAAM,KAAK,GAAG,IAAI,WAAK,EAAE,CAAA;oBACzB,MAAM,MAAM,GAAmD,EAAE,CAAA;oBACjE,IAAI,GAAG,GAAG,CAAC,CAAA;oBACX,yFAAyF;oBACzF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,mCAAuB,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;wBACrE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBAC9C,MAAM,aAAa,GAAG,IAAI,gBAAU,CAAC,EAAE,CAAC,CAAA;wBACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;wBACxD,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,uBAAuB,GAAG,MAAM,CAAA;wBAC/C,GAAG,EAAE,CAAA;oBACP,CAAC;oBAED,kBAAkB;oBAClB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAA;oBAEf,GAAG,GAAG,CAAC,CAAA;oBACP,2CAA2C;oBAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAgB,CAAA;wBAC9C,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;wBACtC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,CAAA;wBACjC,GAAG,EAAE,CAAA;oBACP,CAAC;oBAED,MAAM,QAAQ,GAAmB;wBAC/B,SAAS,EAAE,EAAE,CAAC,SAAS;wBACvB,MAAM;wBACN,OAAO,EAAE;4BACP,cAAc,EAAE,IAAI;4BACpB,MAAM,EAAE,IAAI;yBACb;qBACF,CAAA;oBAED,+FAA+F;oBAC/F,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;oBAClD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;oBAE5B,gDAAgD;oBAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;oBACzE,CAAC;oBAED,CAAC;wBACC,gCAAgC;wBAChC,MAAM,UAAU,GAAqB;4BACnC,WAAW,EAAE,qBAAqB;4BAClC,OAAO,EAAE;gCACP,sBAAsB,EAAE,KAAK;gCAC7B,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAK,CAAC;6BACrB;yBACF,CAAA;wBAED,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;wBAEtD,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA;wBACxC,MAAM,CAAC,MAAA,EAAE,CAAC,eAAe,0CAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;wBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,eAAgB,CAAA;wBACjC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAA;YAC3D,MAAM,GAAG,CAAA;QACX,CAAC;QAED,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACvB,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"offsetKey.test.js","sourceRoot":"","sources":["../../../../../src/storage/methods/__test/offsetKey.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -287,7 +287,8 @@ async function createNewOutputs(storage, userId, vargs, ctx, changeOutputs) {
|
|
|
287
287
|
const nextRandomVal = () => {
|
|
288
288
|
let val = 0;
|
|
289
289
|
if (!randomVals || randomVals.length === 0) {
|
|
290
|
-
|
|
290
|
+
const bytes = (0, sdk_1.Random)(4);
|
|
291
|
+
val = (((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0) / 0x100000000;
|
|
291
292
|
}
|
|
292
293
|
else {
|
|
293
294
|
val = randomVals.shift() || 0;
|
|
@@ -675,7 +676,8 @@ async function fundNewTransactionSdk(storage, userId, vargs, ctx) {
|
|
|
675
676
|
const nextRandomVal = () => {
|
|
676
677
|
let val = 0;
|
|
677
678
|
if (!vargs.randomVals || vargs.randomVals.length === 0) {
|
|
678
|
-
|
|
679
|
+
const bytes = (0, sdk_1.Random)(4);
|
|
680
|
+
val = (((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0) / 0x100000000;
|
|
679
681
|
}
|
|
680
682
|
else {
|
|
681
683
|
val = vargs.randomVals.shift() || 0;
|