@bitpay-labs/bitcore-wallet-service 11.10.10 → 11.10.12
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/package.json +4 -4
- package/src/externalservices/simplex.ts +15 -33
- package/src/lib/blockchainexplorers/v8/client.ts +14 -0
- package/src/lib/blockchainexplorers/v8.ts +12 -1
- package/src/lib/chain/btc/index.ts +5 -0
- package/src/lib/chain/eth/index.ts +4 -0
- package/src/lib/chain/index.ts +4 -0
- package/src/lib/chain/sol/index.ts +6 -0
- package/src/lib/chain/xrp/index.ts +5 -0
- package/src/lib/common/utils.ts +52 -1
- package/src/lib/routes/middleware/authTssRequest.ts +1 -1
- package/src/lib/routes/services.ts +1 -14
- package/src/lib/routes/walletdata.ts +11 -0
- package/src/lib/server.ts +44 -2
- package/src/types/chain.d.ts +1 -0
- package/test/chain/sol.test.ts +48 -0
- package/test/chain/xrp.test.ts +30 -0
- package/test/expressapp.test.ts +26 -0
- package/test/integration/externalservices/simplex.test.ts +141 -19
- package/test/integration/server.test.ts +94 -0
- package/test/integration/tss.test.ts +67 -0
- package/test/v8.test.ts +32 -0
- package/ts_build/package.json +3 -3
- package/ts_build/src/externalservices/simplex.d.ts +1 -1
- package/ts_build/src/externalservices/simplex.d.ts.map +1 -1
- package/ts_build/src/externalservices/simplex.js +11 -27
- package/ts_build/src/externalservices/simplex.js.map +1 -1
- package/ts_build/src/lib/blockchainexplorers/v8/client.d.ts +1 -0
- package/ts_build/src/lib/blockchainexplorers/v8/client.d.ts.map +1 -1
- package/ts_build/src/lib/blockchainexplorers/v8/client.js +13 -0
- package/ts_build/src/lib/blockchainexplorers/v8/client.js.map +1 -1
- package/ts_build/src/lib/blockchainexplorers/v8.d.ts +1 -0
- package/ts_build/src/lib/blockchainexplorers/v8.d.ts.map +1 -1
- package/ts_build/src/lib/blockchainexplorers/v8.js +10 -0
- package/ts_build/src/lib/blockchainexplorers/v8.js.map +1 -1
- package/ts_build/src/lib/chain/btc/index.d.ts +2 -1
- package/ts_build/src/lib/chain/btc/index.d.ts.map +1 -1
- package/ts_build/src/lib/chain/btc/index.js +3 -0
- package/ts_build/src/lib/chain/btc/index.js.map +1 -1
- package/ts_build/src/lib/chain/eth/index.d.ts +1 -0
- package/ts_build/src/lib/chain/eth/index.d.ts.map +1 -1
- package/ts_build/src/lib/chain/eth/index.js +3 -0
- package/ts_build/src/lib/chain/eth/index.js.map +1 -1
- package/ts_build/src/lib/chain/index.d.ts +1 -0
- package/ts_build/src/lib/chain/index.d.ts.map +1 -1
- package/ts_build/src/lib/chain/index.js +3 -0
- package/ts_build/src/lib/chain/index.js.map +1 -1
- package/ts_build/src/lib/chain/sol/index.d.ts +1 -0
- package/ts_build/src/lib/chain/sol/index.d.ts.map +1 -1
- package/ts_build/src/lib/chain/sol/index.js +5 -0
- package/ts_build/src/lib/chain/sol/index.js.map +1 -1
- package/ts_build/src/lib/chain/xrp/index.d.ts +1 -0
- package/ts_build/src/lib/chain/xrp/index.d.ts.map +1 -1
- package/ts_build/src/lib/chain/xrp/index.js +4 -0
- package/ts_build/src/lib/chain/xrp/index.js.map +1 -1
- package/ts_build/src/lib/common/index.d.ts +2 -0
- package/ts_build/src/lib/common/index.d.ts.map +1 -1
- package/ts_build/src/lib/common/utils.d.ts +4 -0
- package/ts_build/src/lib/common/utils.d.ts.map +1 -1
- package/ts_build/src/lib/common/utils.js +33 -0
- package/ts_build/src/lib/common/utils.js.map +1 -1
- package/ts_build/src/lib/routes/middleware/authTssRequest.js +1 -1
- package/ts_build/src/lib/routes/middleware/authTssRequest.js.map +1 -1
- package/ts_build/src/lib/routes/services.d.ts.map +1 -1
- package/ts_build/src/lib/routes/services.js +1 -13
- package/ts_build/src/lib/routes/services.js.map +1 -1
- package/ts_build/src/lib/routes/walletdata.d.ts.map +1 -1
- package/ts_build/src/lib/routes/walletdata.js +12 -0
- package/ts_build/src/lib/routes/walletdata.js.map +1 -1
- package/ts_build/src/lib/server.d.ts +1 -0
- package/ts_build/src/lib/server.d.ts.map +1 -1
- package/ts_build/src/lib/server.js +32 -1
- package/ts_build/src/lib/server.js.map +1 -1
- package/ts_build/test/chain/sol.test.d.ts +2 -0
- package/ts_build/test/chain/sol.test.d.ts.map +1 -0
- package/ts_build/test/chain/sol.test.js +78 -0
- package/ts_build/test/chain/sol.test.js.map +1 -0
- package/ts_build/test/chain/xrp.test.js +28 -0
- package/ts_build/test/chain/xrp.test.js.map +1 -1
- package/ts_build/test/expressapp.test.js +25 -0
- package/ts_build/test/expressapp.test.js.map +1 -1
- package/ts_build/test/integration/externalservices/simplex.test.js +130 -15
- package/ts_build/test/integration/externalservices/simplex.test.js.map +1 -1
- package/ts_build/test/integration/server.test.js +80 -0
- package/ts_build/test/integration/server.test.js.map +1 -1
- package/ts_build/test/integration/tss.test.js +57 -0
- package/ts_build/test/integration/tss.test.js.map +1 -1
- package/ts_build/test/v8.test.js +30 -0
- package/ts_build/test/v8.test.js.map +1 -1
|
@@ -150,6 +150,76 @@ describe('Simplex integration', () => {
|
|
|
150
150
|
should.exist(data);
|
|
151
151
|
});
|
|
152
152
|
|
|
153
|
+
it('should forward the deviceIp as client_ip for web context', async () => {
|
|
154
|
+
let capturedBody;
|
|
155
|
+
server.externalServices.simplex.request = {
|
|
156
|
+
post: (_url, opts, cb) => {
|
|
157
|
+
capturedBody = opts.body;
|
|
158
|
+
return cb(null, { body: 'data' });
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
req.body.context = 'web';
|
|
162
|
+
req.body.deviceIp = '203.0.113.42';
|
|
163
|
+
await server.externalServices.simplex.simplexGetQuote(req);
|
|
164
|
+
capturedBody.client_ip.should.equal('203.0.113.42');
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
it('should canonicalize an IPv4-mapped IPv6 deviceIp for web context', async () => {
|
|
168
|
+
let capturedBody;
|
|
169
|
+
server.externalServices.simplex.request = {
|
|
170
|
+
post: (_url, opts, cb) => {
|
|
171
|
+
capturedBody = opts.body;
|
|
172
|
+
return cb(null, { body: 'data' });
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
req.body.context = 'web';
|
|
176
|
+
req.body.deviceIp = '::ffff:203.0.113.42';
|
|
177
|
+
await server.externalServices.simplex.simplexGetQuote(req);
|
|
178
|
+
capturedBody.client_ip.should.equal('203.0.113.42');
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
it('should not leak deviceIp into the body sent to Simplex', async () => {
|
|
182
|
+
let capturedBody;
|
|
183
|
+
server.externalServices.simplex.request = {
|
|
184
|
+
post: (_url, opts, cb) => {
|
|
185
|
+
capturedBody = opts.body;
|
|
186
|
+
return cb(null, { body: 'data' });
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
req.body.context = 'web';
|
|
190
|
+
req.body.deviceIp = '203.0.113.42';
|
|
191
|
+
await server.externalServices.simplex.simplexGetQuote(req);
|
|
192
|
+
should.not.exist(capturedBody.deviceIp);
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
it('should ignore a body deviceIp for non-web context and use the request IP', async () => {
|
|
196
|
+
let capturedBody;
|
|
197
|
+
server.externalServices.simplex.request = {
|
|
198
|
+
post: (_url, opts, cb) => {
|
|
199
|
+
capturedBody = opts.body;
|
|
200
|
+
return cb(null, { body: 'data' });
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
req.headers['x-forwarded-for'] = '198.51.100.7';
|
|
204
|
+
req.body.deviceIp = '203.0.113.42';
|
|
205
|
+
await server.externalServices.simplex.simplexGetQuote(req);
|
|
206
|
+
capturedBody.client_ip.should.equal('198.51.100.7');
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
it('should fall back to the request IP for web context when deviceIp is not forwarded', async () => {
|
|
210
|
+
let capturedBody;
|
|
211
|
+
server.externalServices.simplex.request = {
|
|
212
|
+
post: (_url, opts, cb) => {
|
|
213
|
+
capturedBody = opts.body;
|
|
214
|
+
return cb(null, { body: 'data' });
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
req.body.context = 'web';
|
|
218
|
+
req.headers['x-forwarded-for'] = '198.51.100.7';
|
|
219
|
+
await server.externalServices.simplex.simplexGetQuote(req);
|
|
220
|
+
capturedBody.client_ip.should.equal('198.51.100.7');
|
|
221
|
+
});
|
|
222
|
+
|
|
153
223
|
it('should return error if post returns error', async () => {
|
|
154
224
|
const fakeRequest2 = {
|
|
155
225
|
post: (_url, _opts, _cb) => { return _cb(new Error('Error'), null); },
|
|
@@ -266,6 +336,76 @@ describe('Simplex integration', () => {
|
|
|
266
336
|
should.exist(data);
|
|
267
337
|
});
|
|
268
338
|
|
|
339
|
+
it('should forward the deviceIp as account_details.signup_login.ip for web context', async () => {
|
|
340
|
+
let capturedBody;
|
|
341
|
+
server.externalServices.simplex.request = {
|
|
342
|
+
post: (_url, opts, cb) => {
|
|
343
|
+
capturedBody = opts.body;
|
|
344
|
+
return cb(null, { body: {} });
|
|
345
|
+
},
|
|
346
|
+
};
|
|
347
|
+
req.body.context = 'web';
|
|
348
|
+
req.body.deviceIp = '203.0.113.42';
|
|
349
|
+
await server.externalServices.simplex.simplexPaymentRequest(req);
|
|
350
|
+
capturedBody.account_details.signup_login.ip.should.equal('203.0.113.42');
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
it('should canonicalize an IPv4-mapped IPv6 deviceIp for web context', async () => {
|
|
354
|
+
let capturedBody;
|
|
355
|
+
server.externalServices.simplex.request = {
|
|
356
|
+
post: (_url, opts, cb) => {
|
|
357
|
+
capturedBody = opts.body;
|
|
358
|
+
return cb(null, { body: {} });
|
|
359
|
+
},
|
|
360
|
+
};
|
|
361
|
+
req.body.context = 'web';
|
|
362
|
+
req.body.deviceIp = '::ffff:203.0.113.42';
|
|
363
|
+
await server.externalServices.simplex.simplexPaymentRequest(req);
|
|
364
|
+
capturedBody.account_details.signup_login.ip.should.equal('203.0.113.42');
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
it('should not leak deviceIp into the body sent to Simplex', async () => {
|
|
368
|
+
let capturedBody;
|
|
369
|
+
server.externalServices.simplex.request = {
|
|
370
|
+
post: (_url, opts, cb) => {
|
|
371
|
+
capturedBody = opts.body;
|
|
372
|
+
return cb(null, { body: {} });
|
|
373
|
+
},
|
|
374
|
+
};
|
|
375
|
+
req.body.context = 'web';
|
|
376
|
+
req.body.deviceIp = '203.0.113.42';
|
|
377
|
+
await server.externalServices.simplex.simplexPaymentRequest(req);
|
|
378
|
+
should.not.exist(capturedBody.deviceIp);
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
it('should ignore a body deviceIp for non-web context and use the request IP', async () => {
|
|
382
|
+
let capturedBody;
|
|
383
|
+
server.externalServices.simplex.request = {
|
|
384
|
+
post: (_url, opts, cb) => {
|
|
385
|
+
capturedBody = opts.body;
|
|
386
|
+
return cb(null, { body: {} });
|
|
387
|
+
},
|
|
388
|
+
};
|
|
389
|
+
req.headers['x-forwarded-for'] = '198.51.100.7';
|
|
390
|
+
req.body.deviceIp = '203.0.113.42';
|
|
391
|
+
await server.externalServices.simplex.simplexPaymentRequest(req);
|
|
392
|
+
capturedBody.account_details.signup_login.ip.should.equal('198.51.100.7');
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
it('should fall back to the request IP for web context when deviceIp is not forwarded', async () => {
|
|
396
|
+
let capturedBody;
|
|
397
|
+
server.externalServices.simplex.request = {
|
|
398
|
+
post: (_url, opts, cb) => {
|
|
399
|
+
capturedBody = opts.body;
|
|
400
|
+
return cb(null, { body: {} });
|
|
401
|
+
},
|
|
402
|
+
};
|
|
403
|
+
req.body.context = 'web';
|
|
404
|
+
req.headers['x-forwarded-for'] = '198.51.100.7';
|
|
405
|
+
await server.externalServices.simplex.simplexPaymentRequest(req);
|
|
406
|
+
capturedBody.account_details.signup_login.ip.should.equal('198.51.100.7');
|
|
407
|
+
});
|
|
408
|
+
|
|
269
409
|
it('should return error if post returns error', async () => {
|
|
270
410
|
const fakeRequest2 = {
|
|
271
411
|
post: (_url, _opts, _cb) => { return _cb(new Error('Error'), null); },
|
|
@@ -363,22 +503,4 @@ describe('Simplex integration', () => {
|
|
|
363
503
|
}
|
|
364
504
|
});
|
|
365
505
|
});
|
|
366
|
-
|
|
367
|
-
describe('#simplexGetEvents', () => {
|
|
368
|
-
beforeEach(() => {
|
|
369
|
-
req = {
|
|
370
|
-
env: 'production'
|
|
371
|
-
};
|
|
372
|
-
|
|
373
|
-
fakeRequest = {
|
|
374
|
-
get: (_url, _opts, _cb) => { return _cb(null, { body: {} }); },
|
|
375
|
-
};
|
|
376
|
-
server.externalServices.simplex.request = fakeRequest;
|
|
377
|
-
});
|
|
378
|
-
|
|
379
|
-
it('should work properly if req is OK', async () => {
|
|
380
|
-
const data = await server.externalServices.simplex.simplexGetEvents(req);
|
|
381
|
-
should.exist(data);
|
|
382
|
-
});
|
|
383
|
-
});
|
|
384
|
-
});
|
|
506
|
+
});
|
|
@@ -12,6 +12,7 @@ import config from '../../src/config';
|
|
|
12
12
|
import { WalletService, UPGRADES } from '../../src/lib/server';
|
|
13
13
|
import { Storage } from '../../src/lib/storage';
|
|
14
14
|
import { Common } from '../../src/lib/common';
|
|
15
|
+
import logger from '../../src/lib/logger';
|
|
15
16
|
import * as Model from '../../src/lib/model';
|
|
16
17
|
import { TssKeyGenModel } from '../../src/lib/model/tsskeygen';
|
|
17
18
|
import { BCHAddressTranslator } from '../../src/lib/bchaddresstranslator';
|
|
@@ -8821,6 +8822,85 @@ describe('Wallet service', function() {
|
|
|
8821
8822
|
result.nonce.should.equal(5);
|
|
8822
8823
|
// future: result.gasPrice, result.maxFee would also be set here
|
|
8823
8824
|
});
|
|
8825
|
+
|
|
8826
|
+
describe('prePublishRaw binding (isPrePublishRawBound)', function() {
|
|
8827
|
+
const ATTACKER_ADDR = '0x1111111111111111111111111111111111111111';
|
|
8828
|
+
|
|
8829
|
+
it('accepts prePublishRaw when only the mutable field (nonce) changed', async function() {
|
|
8830
|
+
blockchainExplorer.getTransactionCount = sinon.stub().callsArgWith(1, null, '42');
|
|
8831
|
+
const created = await helpers.createAndPublishTx(server, {
|
|
8832
|
+
outputs: [{ toAddress: ETH_ADDR, amount: 8000 }],
|
|
8833
|
+
feePerKb: 123e2, from: fromAddr, deferNonce: true
|
|
8834
|
+
}, TestData.copayers[0].privKey_1H_0);
|
|
8835
|
+
|
|
8836
|
+
// Server assigns the JIT nonce -> the stored tx now differs from prePublishRaw only in the nonce.
|
|
8837
|
+
await util.promisify(server.prepareTx).call(server, { txProposalId: created.id });
|
|
8838
|
+
const withNonce = await util.promisify(server.getTx).call(server, { txProposalId: created.id });
|
|
8839
|
+
should.exist(withNonce.prePublishRaw);
|
|
8840
|
+
withNonce.nonce.should.equal(42);
|
|
8841
|
+
|
|
8842
|
+
ChainService.isPrePublishRawBound(withNonce).should.equal(true);
|
|
8843
|
+
});
|
|
8844
|
+
|
|
8845
|
+
it('rejects prePublishRaw when the destination was tampered', async function() {
|
|
8846
|
+
const created = await helpers.createAndPublishTx(server, {
|
|
8847
|
+
outputs: [{ toAddress: ETH_ADDR, amount: 8000 }],
|
|
8848
|
+
feePerKb: 123e2, from: fromAddr, deferNonce: true
|
|
8849
|
+
}, TestData.copayers[0].privKey_1H_0);
|
|
8850
|
+
|
|
8851
|
+
const txp = await util.promisify(server.getTx).call(server, { txProposalId: created.id });
|
|
8852
|
+
should.exist(txp.prePublishRaw);
|
|
8853
|
+
ChainService.isPrePublishRawBound(txp).should.equal(true); // bound before tampering
|
|
8854
|
+
txp.outputs[0].toAddress = ATTACKER_ADDR; // swap payee, keep prePublishRaw + proposalSignature
|
|
8855
|
+
ChainService.isPrePublishRawBound(txp).should.equal(false);
|
|
8856
|
+
});
|
|
8857
|
+
|
|
8858
|
+
it('rejects a prePublishRaw that holds no usable raw tx', async function() {
|
|
8859
|
+
const created = await helpers.createAndPublishTx(server, {
|
|
8860
|
+
outputs: [{ toAddress: ETH_ADDR, amount: 8000 }],
|
|
8861
|
+
feePerKb: 123e2, from: fromAddr, deferNonce: true
|
|
8862
|
+
}, TestData.copayers[0].privKey_1H_0);
|
|
8863
|
+
|
|
8864
|
+
const txp = await util.promisify(server.getTx).call(server, { txProposalId: created.id });
|
|
8865
|
+
const warn = sinon.spy(logger, 'warn');
|
|
8866
|
+
try {
|
|
8867
|
+
// an empty list is truthy, so it has to be refused up front rather than handed to the tx
|
|
8868
|
+
// provider, which would fail the same check by throwing
|
|
8869
|
+
for (const prePublishRaw of [[], [''], ['', '']]) {
|
|
8870
|
+
txp.prePublishRaw = prePublishRaw;
|
|
8871
|
+
ChainService.isPrePublishRawBound(txp).should.equal(false);
|
|
8872
|
+
}
|
|
8873
|
+
warn.called.should.equal(false);
|
|
8874
|
+
} finally {
|
|
8875
|
+
warn.restore();
|
|
8876
|
+
}
|
|
8877
|
+
});
|
|
8878
|
+
|
|
8879
|
+
it('rejects the publishTx fallback when the stored proposal was tampered', async function() {
|
|
8880
|
+
blockchainExplorer.getTransactionCount = sinon.stub().callsArgWith(1, null, '7');
|
|
8881
|
+
const created = await util.promisify(server.createTx).call(server, {
|
|
8882
|
+
outputs: [{ toAddress: ETH_ADDR, amount: 8000 }],
|
|
8883
|
+
feePerKb: 123e2, from: fromAddr, deferNonce: true
|
|
8884
|
+
});
|
|
8885
|
+
const publishOpts = helpers.getProposalSignatureOpts(created, TestData.copayers[0].privKey_1H_0);
|
|
8886
|
+
await util.promisify(server.publishTx).call(server, publishOpts);
|
|
8887
|
+
|
|
8888
|
+
// Assign the nonce so a re-publish must fall back to prePublishRaw...
|
|
8889
|
+
await util.promisify(server.prepareTx).call(server, { txProposalId: created.id });
|
|
8890
|
+
// ...then tamper the stored destination and replay the original (still-valid) proposalSignature.
|
|
8891
|
+
const stored = await util.promisify(server.storage.fetchTx).call(server.storage, wallet.id, created.id);
|
|
8892
|
+
should.exist(stored.prePublishRaw);
|
|
8893
|
+
stored.outputs[0].toAddress = ATTACKER_ADDR;
|
|
8894
|
+
await util.promisify(server.storage.storeTx).call(server.storage, wallet.id, stored);
|
|
8895
|
+
|
|
8896
|
+
let err;
|
|
8897
|
+
try {
|
|
8898
|
+
await util.promisify(server.publishTx).call(server, publishOpts);
|
|
8899
|
+
} catch (e) { err = e; }
|
|
8900
|
+
should.exist(err);
|
|
8901
|
+
err.message.should.contain('Invalid proposal signature');
|
|
8902
|
+
});
|
|
8903
|
+
});
|
|
8824
8904
|
});
|
|
8825
8905
|
|
|
8826
8906
|
describe('#prepareTx XRP (deferred nonce)', function() {
|
|
@@ -8912,6 +8992,20 @@ describe('Wallet service', function() {
|
|
|
8912
8992
|
});
|
|
8913
8993
|
signed.status.should.equal('accepted');
|
|
8914
8994
|
});
|
|
8995
|
+
|
|
8996
|
+
it('rejects prePublishRaw binding when an XRP destination was tampered', async function() {
|
|
8997
|
+
const ATTACKER_XRP = 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe';
|
|
8998
|
+
const created = await helpers.createAndPublishTx(server, {
|
|
8999
|
+
outputs: [{ toAddress: XRP_ADDR, amount: 8000 }],
|
|
9000
|
+
feePerKb: 123e2, from: fromAddr, deferNonce: true
|
|
9001
|
+
}, TestData.copayers[0].privKey_1H_0);
|
|
9002
|
+
|
|
9003
|
+
const txp = await util.promisify(server.getTx).call(server, { txProposalId: created.id });
|
|
9004
|
+
should.exist(txp.prePublishRaw);
|
|
9005
|
+
ChainService.isPrePublishRawBound(txp).should.equal(true); // untampered baseline
|
|
9006
|
+
txp.outputs[0].toAddress = ATTACKER_XRP;
|
|
9007
|
+
ChainService.isPrePublishRawBound(txp).should.equal(false);
|
|
9008
|
+
});
|
|
8915
9009
|
});
|
|
8916
9010
|
|
|
8917
9011
|
describe('#signTx nonce override', function() {
|
|
@@ -379,6 +379,73 @@ describe('TSS', function() {
|
|
|
379
379
|
});
|
|
380
380
|
});
|
|
381
381
|
|
|
382
|
+
describe('GET /v1/tss/keygen/:id/:round', function() {
|
|
383
|
+
const roundUrl = '/v1/tss/keygen/test/0?maxWaitTime=0';
|
|
384
|
+
const parties = [vector.party0, vector.party1, vector.party2];
|
|
385
|
+
const round0Messages = [vector.keygen.messages.round0.party0, vector.keygen.messages.round0.party1, vector.keygen.messages.round0.party2];
|
|
386
|
+
|
|
387
|
+
const joinRound0 = async (partyId: number) => {
|
|
388
|
+
const publicKey = parties[partyId].authKey.publicKey.toString();
|
|
389
|
+
const message = { ...round0Messages[partyId], partyId, round: 0, publicKey };
|
|
390
|
+
await app.post(`${urlPrefix}/v1/tss/keygen/test`)
|
|
391
|
+
.set('x-identity', publicKey)
|
|
392
|
+
.send({ message, n: 3, version: 1.1 })
|
|
393
|
+
.expect(200);
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
const getRound0 = (partyId: number) => {
|
|
397
|
+
const { authKey } = parties[partyId];
|
|
398
|
+
const hash = Utils.hashMessage(`get|${roundUrl}|{}`, false);
|
|
399
|
+
const xSignature = BitcoreLib.crypto.ECDSA.sign(hash, authKey, { endian: 'little' }).toString();
|
|
400
|
+
return app.get(urlPrefix + roundUrl)
|
|
401
|
+
.set('x-identity', authKey.publicKey.toString())
|
|
402
|
+
.set('x-signature', xSignature);
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
beforeEach(async function() {
|
|
406
|
+
const storage = helpers.getStorage();
|
|
407
|
+
await storage.db.collection(BWS.Storage.collections.TSS_KEYGEN).deleteMany({});
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
it('should authenticate every party when round 0 messages arrive in partyId order', async function() {
|
|
411
|
+
await joinRound0(0);
|
|
412
|
+
await joinRound0(1);
|
|
413
|
+
await joinRound0(2);
|
|
414
|
+
|
|
415
|
+
for (const partyId of [0, 1, 2]) {
|
|
416
|
+
const res = await getRound0(partyId);
|
|
417
|
+
res.status.should.equal(200);
|
|
418
|
+
JSON.parse(res.text).messages.length.should.equal(2);
|
|
419
|
+
}
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
it('should authenticate every party when round 0 messages arrive out of partyId order', async function() {
|
|
423
|
+
await joinRound0(0);
|
|
424
|
+
await joinRound0(2);
|
|
425
|
+
await joinRound0(1);
|
|
426
|
+
|
|
427
|
+
for (const partyId of [0, 1, 2]) {
|
|
428
|
+
const res = await getRound0(partyId);
|
|
429
|
+
res.status.should.equal(200);
|
|
430
|
+
JSON.parse(res.text).messages.length.should.equal(2);
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
it('should reject another party identity when round 0 messages arrive out of partyId order', async function() {
|
|
435
|
+
await joinRound0(0);
|
|
436
|
+
await joinRound0(2);
|
|
437
|
+
await joinRound0(1);
|
|
438
|
+
|
|
439
|
+
for (const [partyId, otherPartyId] of [[1, 2], [2, 1]]) {
|
|
440
|
+
const res = await getRound0(partyId)
|
|
441
|
+
.set('x-identity', parties[otherPartyId].authKey.publicKey.toString());
|
|
442
|
+
res.status.should.equal(401);
|
|
443
|
+
res.body.code.should.equal('NOT_AUTHORIZED');
|
|
444
|
+
res.body.message.should.equal('Invalid signature');
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
});
|
|
448
|
+
|
|
382
449
|
describe('POST /v1/tss/sign/:id', function() {
|
|
383
450
|
const url = id => `${urlPrefix}/v1/tss/sign/${id}`;
|
|
384
451
|
const signRequest = body => {
|
package/test/v8.test.ts
CHANGED
|
@@ -30,6 +30,38 @@ describe('V8', () => {
|
|
|
30
30
|
beAuthPrivateKey2: new BitcoreLib.PrivateKey()
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
+
describe('#getBalanceAtTime', () => {
|
|
34
|
+
it('should request the wallet balance at the supplied time', done => {
|
|
35
|
+
const balance = { confirmed: 100, unconfirmed: 0, balance: 100 };
|
|
36
|
+
const balanceWallet = {
|
|
37
|
+
...wallet,
|
|
38
|
+
beAuthPublicKey2: wallet.beAuthPrivateKey2.toPublicKey().toString(),
|
|
39
|
+
tokenAddress: '0xToken'
|
|
40
|
+
};
|
|
41
|
+
class BalanceAtTimeClient {
|
|
42
|
+
getBalanceAtTime(opts) {
|
|
43
|
+
opts.pubKey.should.equal(balanceWallet.beAuthPublicKey2);
|
|
44
|
+
opts.time.should.equal('2025-01-15T12:00:00.000Z');
|
|
45
|
+
opts.tokenAddress.should.equal('0xToken');
|
|
46
|
+
return Promise.resolve(balance);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const be = new V8({
|
|
50
|
+
chain: 'btc',
|
|
51
|
+
network: 'livenet',
|
|
52
|
+
url: 'http://dummy/',
|
|
53
|
+
apiPrefix: 'dummyPath',
|
|
54
|
+
client: BalanceAtTimeClient as any
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
be.getBalanceAtTime(balanceWallet as any, '2025-01-15T12:00:00.000Z', (err, result) => {
|
|
58
|
+
should.not.exist(err);
|
|
59
|
+
result.should.deep.equal(balance);
|
|
60
|
+
done();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
|
|
33
65
|
describe('#listTransactions', () => {
|
|
34
66
|
it('should handle partial json results', (done) => {
|
|
35
67
|
class PartialJson {
|
package/ts_build/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@bitpay-labs/bitcore-wallet-service",
|
|
3
3
|
"description": "A service for Mutisig HD Bitcoin Wallets",
|
|
4
4
|
"author": "BitPay Inc",
|
|
5
|
-
"version": "11.10.
|
|
5
|
+
"version": "11.10.11",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "ts_build/src/index.js",
|
|
8
8
|
"types": "./ts_build/src/index.d.ts",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@bitpay-labs/bitcore-logging": "^11.10.9",
|
|
45
|
-
"@bitpay-labs/bitcore-tss": "^11.10.
|
|
46
|
-
"@bitpay-labs/crypto-wallet-core": "^11.10.
|
|
45
|
+
"@bitpay-labs/bitcore-tss": "^11.10.11",
|
|
46
|
+
"@bitpay-labs/crypto-wallet-core": "^11.10.11",
|
|
47
47
|
"@sendgrid/mail": "6.5.4",
|
|
48
48
|
"abi-decoder": "2.4.0",
|
|
49
49
|
"async": "0.9.2",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare class SimplexService {
|
|
2
2
|
request: any;
|
|
3
3
|
private simplexGetKeys;
|
|
4
|
+
private simplexGetUserIp;
|
|
4
5
|
simplexGetCurrencies(req: any): Promise<any>;
|
|
5
6
|
simplexGetQuote(req: any): Promise<any>;
|
|
6
7
|
simplexGetSellQuote(req: any): Promise<any>;
|
|
7
8
|
simplexPaymentRequest(req: any): Promise<any>;
|
|
8
9
|
simplexSellPaymentRequest(req: any): Promise<any>;
|
|
9
|
-
simplexGetEvents(req: any): Promise<any>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=simplex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplex.d.ts","sourceRoot":"","sources":["../../../src/externalservices/simplex.ts"],"names":[],"mappings":"AAOA,qBAAa,cAAc;IACzB,OAAO,EAAE,GAAG,CAAW;IAEvB,OAAO,CAAC,cAAc;IAwBtB,oBAAoB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA6BvC,eAAe,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAuClC,mBAAmB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA6CtC,qBAAqB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA6DxC,yBAAyB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"simplex.d.ts","sourceRoot":"","sources":["../../../src/externalservices/simplex.ts"],"names":[],"mappings":"AAOA,qBAAa,cAAc;IACzB,OAAO,EAAE,GAAG,CAAW;IAEvB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,gBAAgB;IAYxB,oBAAoB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA6BvC,eAAe,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAuClC,mBAAmB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA6CtC,qBAAqB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA6DxC,yBAAyB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;CA0C7C"}
|
|
@@ -65,6 +65,15 @@ class SimplexService {
|
|
|
65
65
|
};
|
|
66
66
|
return keys;
|
|
67
67
|
}
|
|
68
|
+
simplexGetUserIp(req) {
|
|
69
|
+
const isWebContext = req.body?.context === 'web';
|
|
70
|
+
let userIp = (isWebContext && req.body.deviceIp) || utils_1.Utils.getIpFromReq(req);
|
|
71
|
+
delete req.body.deviceIp;
|
|
72
|
+
if (userIp) {
|
|
73
|
+
userIp = String(userIp).trim().replace(/^::ffff:/i, '');
|
|
74
|
+
}
|
|
75
|
+
return userIp || '';
|
|
76
|
+
}
|
|
68
77
|
simplexGetCurrencies(req) {
|
|
69
78
|
return new Promise((resolve, reject) => {
|
|
70
79
|
const keys = this.simplexGetKeys(req);
|
|
@@ -89,10 +98,10 @@ class SimplexService {
|
|
|
89
98
|
}
|
|
90
99
|
simplexGetQuote(req) {
|
|
91
100
|
return new Promise((resolve, reject) => {
|
|
101
|
+
const ip = this.simplexGetUserIp(req);
|
|
92
102
|
const keys = this.simplexGetKeys(req);
|
|
93
103
|
const API = keys.API;
|
|
94
104
|
const API_KEY = keys.API_KEY;
|
|
95
|
-
const ip = utils_1.Utils.getIpFromReq(req);
|
|
96
105
|
req.body.client_ip = ip;
|
|
97
106
|
req.body.wallet_id = keys.APP_PROVIDER_ID;
|
|
98
107
|
const headers = {
|
|
@@ -152,6 +161,7 @@ class SimplexService {
|
|
|
152
161
|
}
|
|
153
162
|
simplexPaymentRequest(req) {
|
|
154
163
|
return new Promise((resolve, reject) => {
|
|
164
|
+
const ip = this.simplexGetUserIp(req);
|
|
155
165
|
const keys = this.simplexGetKeys(req);
|
|
156
166
|
const API = keys.API;
|
|
157
167
|
const API_KEY = keys.API_KEY;
|
|
@@ -159,7 +169,6 @@ class SimplexService {
|
|
|
159
169
|
const paymentId = uuid_1.default.v4();
|
|
160
170
|
const orderId = uuid_1.default.v4();
|
|
161
171
|
const apiHost = keys.API;
|
|
162
|
-
const ip = utils_1.Utils.getIpFromReq(req);
|
|
163
172
|
if (!(0, server_1.checkRequired)(req.body, ['account_details', 'transaction_details']) &&
|
|
164
173
|
!(0, server_1.checkRequired)(req.body.transaction_details, ['payment_details'])) {
|
|
165
174
|
return reject(new clienterror_1.ClientError("Simplex's request missing arguments"));
|
|
@@ -231,31 +240,6 @@ class SimplexService {
|
|
|
231
240
|
});
|
|
232
241
|
});
|
|
233
242
|
}
|
|
234
|
-
simplexGetEvents(req) {
|
|
235
|
-
return new Promise((resolve, reject) => {
|
|
236
|
-
if (!config_1.default.simplex)
|
|
237
|
-
return reject(new Error('Simplex missing credentials'));
|
|
238
|
-
if (!req.env || (req.env != 'sandbox' && req.env != 'production'))
|
|
239
|
-
return reject(new Error("Simplex's request wrong environment"));
|
|
240
|
-
const API = config_1.default.simplex[req.env].api;
|
|
241
|
-
const API_KEY = config_1.default.simplex[req.env].apiKey;
|
|
242
|
-
const headers = {
|
|
243
|
-
'Content-Type': 'application/json',
|
|
244
|
-
Authorization: 'ApiKey ' + API_KEY
|
|
245
|
-
};
|
|
246
|
-
this.request.get(API + '/wallet/merchant/v2/events', {
|
|
247
|
-
headers,
|
|
248
|
-
json: true
|
|
249
|
-
}, (err, data) => {
|
|
250
|
-
if (err) {
|
|
251
|
-
return reject(err.body ? err.body : null);
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
return resolve(data.body ? data.body : null);
|
|
255
|
-
}
|
|
256
|
-
});
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
243
|
}
|
|
260
244
|
exports.SimplexService = SimplexService;
|
|
261
245
|
//# sourceMappingURL=simplex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplex.js","sourceRoot":"","sources":["../../../src/externalservices/simplex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,gDAAwB;AACxB,uDAA+B;AAC/B,+CAA4C;AAC5C,2DAAwD;AACxD,0CAA8C;AAE9C,MAAa,cAAc;IACzB,OAAO,GAAQ,OAAO,CAAC;IAEf,cAAc,CAAC,GAAG;QACxB,IAAI,CAAC,gBAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAEpE,IAAI,GAA8D,CAAC;QACnE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC/B,GAAG,IAAI,KAAK,CAAC;QACf,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACpB,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAExB,MAAM,IAAI,GAAG;YACX,GAAG,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG;YAC5B,QAAQ,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO;YACrC,OAAO,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM;YACnC,UAAU,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS;YACzC,eAAe,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa;YAClD,eAAe,EAAE,gBAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY;SAClD,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,GAAG;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAEnC,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE,kBAAkB;aACnC,CAAC;YAEF,MAAM,GAAG,GAAG,GAAG,GAAG,8CAA8C,UAAU,EAAE,CAAC;YAE7E,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,GAAG,EACH;gBACE,OAAO;gBACP,IAAI,EAAE,IAAI;aACX,EACD,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACZ,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAG;QACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,
|
|
1
|
+
{"version":3,"file":"simplex.js","sourceRoot":"","sources":["../../../src/externalservices/simplex.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ export declare class Client {
|
|
|
19
19
|
}): string;
|
|
20
20
|
register(params: any): Promise<any>;
|
|
21
21
|
getBalance(params: any): Promise<any>;
|
|
22
|
+
getBalanceAtTime(params: any): Promise<any>;
|
|
22
23
|
getCheckData(params: any): Promise<any>;
|
|
23
24
|
getAddressTxos(params: any): Promise<any>;
|
|
24
25
|
getTx(params: any): Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/lib/blockchainexplorers/v8/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AAKzC,qBAAa,MAAM;IACjB,OAAO,EAAE;QAAE,EAAE,EAAE;YAAE,QAAQ,EAAE,CAAC,GAAG,KAAA,KAAK,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;gBAEJ,MAAM,KAAA;IAIlB,UAAU,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE;IAMjE,IAAI,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE;IAOrD,QAAQ,CAAC,MAAM,KAAA;IAaf,UAAU,CAAC,MAAM,KAAA;IAsBjB,YAAY,CAAC,MAAM,KAAA;IAYnB,cAAc,CAAC,MAAM,KAAA;IASrB,KAAK,CAAC,MAAM,KAAA;IAQZ,QAAQ,CAAC,MAAM,KAAA;IAiBf,aAAa,CAAC,MAAM,KAAA;IAS1B,gBAAgB,CAAC,MAAM,KAAA;IAmCjB,eAAe,CAAC,MAAM,KAAA;IAiBtB,SAAS,CAAC,MAAM,KAAA;CAMvB"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../src/lib/blockchainexplorers/v8/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,aAAa,MAAM,SAAS,CAAC;AAKzC,qBAAa,MAAM;IACjB,OAAO,EAAE;QAAE,EAAE,EAAE;YAAE,QAAQ,EAAE,CAAC,GAAG,KAAA,KAAK,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;gBAEJ,MAAM,KAAA;IAIlB,UAAU,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE;IAMjE,IAAI,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE;IAOrD,QAAQ,CAAC,MAAM,KAAA;IAaf,UAAU,CAAC,MAAM,KAAA;IAsBjB,gBAAgB,CAAC,MAAM,KAAA;IAcvB,YAAY,CAAC,MAAM,KAAA;IAYnB,cAAc,CAAC,MAAM,KAAA;IASrB,KAAK,CAAC,MAAM,KAAA;IAQZ,QAAQ,CAAC,MAAM,KAAA;IAiBf,aAAa,CAAC,MAAM,KAAA;IAS1B,gBAAgB,CAAC,MAAM,KAAA;IAmCjB,eAAe,CAAC,MAAM,KAAA;IAiBtB,SAAS,CAAC,MAAM,KAAA;CAMvB"}
|
|
@@ -89,6 +89,19 @@ class Client {
|
|
|
89
89
|
json: true
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
|
+
async getBalanceAtTime(params) {
|
|
93
|
+
const { payload, pubKey, time, tokenAddress } = params;
|
|
94
|
+
let url = `${this.baseUrl}/wallet/${pubKey}/balance/${encodeURIComponent(time)}`;
|
|
95
|
+
if (tokenAddress) {
|
|
96
|
+
url += `?tokenAddress=${encodeURIComponent(tokenAddress)}`;
|
|
97
|
+
}
|
|
98
|
+
const signature = this.sign({ method: 'GET', url, payload });
|
|
99
|
+
return request.get(url, {
|
|
100
|
+
headers: { 'x-signature': signature },
|
|
101
|
+
body: payload,
|
|
102
|
+
json: true
|
|
103
|
+
});
|
|
104
|
+
}
|
|
92
105
|
async getCheckData(params) {
|
|
93
106
|
const { payload, pubKey } = params;
|
|
94
107
|
const url = `${this.baseUrl}/wallet/${pubKey}/check`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/lib/blockchainexplorers/v8/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/lib/blockchainexplorers/v8/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ export declare class V8 {
|
|
|
35
35
|
}): void;
|
|
36
36
|
register(wallet: WalletWithOpts, cb: any): any;
|
|
37
37
|
getBalance(wallet: WalletWithOpts, cb: any): Promise<void>;
|
|
38
|
+
getBalanceAtTime(wallet: WalletWithOpts, time: string, cb: any): Promise<void>;
|
|
38
39
|
getConnectionInfo(): string;
|
|
39
40
|
_transformUtxos(utxos: any, bcheight: number): {
|
|
40
41
|
address: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v8.d.ts","sourceRoot":"","sources":["../../../../src/lib/blockchainexplorers/v8.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAMlD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAmCrC,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnG,qBAAa,EAAE;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAElB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,IAAI,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC;KACxB;IA6BD,UAAU;IAMV,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;IAQ9C,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,KAAA,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE;IA2BrG,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,KAAA;IAqB7B,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,KAAA;
|
|
1
|
+
{"version":3,"file":"v8.d.ts","sourceRoot":"","sources":["../../../../src/lib/blockchainexplorers/v8.ts"],"names":[],"mappings":"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"}
|