@bitpay-labs/bitcore-wallet-service 11.11.0 → 11.11.1

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 (107) hide show
  1. package/package.json +4 -4
  2. package/src/config.ts +0 -20
  3. package/src/externalservices/banxa.ts +51 -10
  4. package/src/externalservices/changelly.ts +54 -6
  5. package/src/externalservices/moonpay.ts +85 -19
  6. package/src/externalservices/oneInch.ts +13 -5
  7. package/src/externalservices/ramp.ts +42 -8
  8. package/src/externalservices/sardine.ts +51 -10
  9. package/src/externalservices/simplex.ts +58 -11
  10. package/src/externalservices/thorswap.ts +46 -11
  11. package/src/externalservices/transak.ts +53 -11
  12. package/src/lib/routes/services.ts +0 -12
  13. package/src/lib/server.ts +0 -3
  14. package/src/types/externalservices.d.ts +0 -1
  15. package/test/integration/externalservices/banxa.test.ts +95 -5
  16. package/test/integration/externalservices/changelly.test.ts +118 -6
  17. package/test/integration/externalservices/coinGecko.test.ts +4 -0
  18. package/test/integration/externalservices/moonpay.test.ts +178 -9
  19. package/test/integration/externalservices/oneInch.test.ts +28 -1
  20. package/test/integration/externalservices/ramp.test.ts +126 -4
  21. package/test/integration/externalservices/sardine.test.ts +95 -5
  22. package/test/integration/externalservices/simplex.test.ts +95 -5
  23. package/test/integration/externalservices/thorswap.test.ts +81 -5
  24. package/test/integration/externalservices/transak.test.ts +98 -6
  25. package/test/integration/helpers.ts +1 -1
  26. package/test/integration/server.test.ts +56 -88
  27. package/ts_build/package.json +3 -3
  28. package/ts_build/src/config.d.ts.map +1 -1
  29. package/ts_build/src/config.js +0 -4
  30. package/ts_build/src/config.js.map +1 -1
  31. package/ts_build/src/externalservices/banxa.d.ts.map +1 -1
  32. package/ts_build/src/externalservices/banxa.js +51 -10
  33. package/ts_build/src/externalservices/banxa.js.map +1 -1
  34. package/ts_build/src/externalservices/changelly.d.ts.map +1 -1
  35. package/ts_build/src/externalservices/changelly.js +54 -6
  36. package/ts_build/src/externalservices/changelly.js.map +1 -1
  37. package/ts_build/src/externalservices/moonpay.d.ts.map +1 -1
  38. package/ts_build/src/externalservices/moonpay.js +85 -19
  39. package/ts_build/src/externalservices/moonpay.js.map +1 -1
  40. package/ts_build/src/externalservices/oneInch.d.ts.map +1 -1
  41. package/ts_build/src/externalservices/oneInch.js +13 -5
  42. package/ts_build/src/externalservices/oneInch.js.map +1 -1
  43. package/ts_build/src/externalservices/ramp.d.ts.map +1 -1
  44. package/ts_build/src/externalservices/ramp.js +42 -8
  45. package/ts_build/src/externalservices/ramp.js.map +1 -1
  46. package/ts_build/src/externalservices/sardine.d.ts.map +1 -1
  47. package/ts_build/src/externalservices/sardine.js +51 -10
  48. package/ts_build/src/externalservices/sardine.js.map +1 -1
  49. package/ts_build/src/externalservices/simplex.d.ts.map +1 -1
  50. package/ts_build/src/externalservices/simplex.js +55 -11
  51. package/ts_build/src/externalservices/simplex.js.map +1 -1
  52. package/ts_build/src/externalservices/thorswap.d.ts.map +1 -1
  53. package/ts_build/src/externalservices/thorswap.js +45 -11
  54. package/ts_build/src/externalservices/thorswap.js.map +1 -1
  55. package/ts_build/src/externalservices/transak.d.ts.map +1 -1
  56. package/ts_build/src/externalservices/transak.js +53 -11
  57. package/ts_build/src/externalservices/transak.js.map +1 -1
  58. package/ts_build/src/lib/routes/services.d.ts.map +1 -1
  59. package/ts_build/src/lib/routes/services.js +0 -10
  60. package/ts_build/src/lib/routes/services.js.map +1 -1
  61. package/ts_build/src/lib/server.d.ts +0 -2
  62. package/ts_build/src/lib/server.d.ts.map +1 -1
  63. package/ts_build/src/lib/server.js +0 -2
  64. package/ts_build/src/lib/server.js.map +1 -1
  65. package/ts_build/test/integration/externalservices/banxa.test.d.ts.map +1 -1
  66. package/ts_build/test/integration/externalservices/banxa.test.js +93 -5
  67. package/ts_build/test/integration/externalservices/banxa.test.js.map +1 -1
  68. package/ts_build/test/integration/externalservices/changelly.test.d.ts.map +1 -1
  69. package/ts_build/test/integration/externalservices/changelly.test.js +111 -6
  70. package/ts_build/test/integration/externalservices/changelly.test.js.map +1 -1
  71. package/ts_build/test/integration/externalservices/coinGecko.test.js +4 -0
  72. package/ts_build/test/integration/externalservices/coinGecko.test.js.map +1 -1
  73. package/ts_build/test/integration/externalservices/moonpay.test.d.ts.map +1 -1
  74. package/ts_build/test/integration/externalservices/moonpay.test.js +169 -9
  75. package/ts_build/test/integration/externalservices/moonpay.test.js.map +1 -1
  76. package/ts_build/test/integration/externalservices/oneInch.test.d.ts.map +1 -1
  77. package/ts_build/test/integration/externalservices/oneInch.test.js +26 -1
  78. package/ts_build/test/integration/externalservices/oneInch.test.js.map +1 -1
  79. package/ts_build/test/integration/externalservices/ramp.test.d.ts.map +1 -1
  80. package/ts_build/test/integration/externalservices/ramp.test.js +115 -4
  81. package/ts_build/test/integration/externalservices/ramp.test.js.map +1 -1
  82. package/ts_build/test/integration/externalservices/sardine.test.d.ts.map +1 -1
  83. package/ts_build/test/integration/externalservices/sardine.test.js +94 -5
  84. package/ts_build/test/integration/externalservices/sardine.test.js.map +1 -1
  85. package/ts_build/test/integration/externalservices/simplex.test.d.ts.map +1 -1
  86. package/ts_build/test/integration/externalservices/simplex.test.js +89 -5
  87. package/ts_build/test/integration/externalservices/simplex.test.js.map +1 -1
  88. package/ts_build/test/integration/externalservices/thorswap.test.d.ts.map +1 -1
  89. package/ts_build/test/integration/externalservices/thorswap.test.js +76 -5
  90. package/ts_build/test/integration/externalservices/thorswap.test.js.map +1 -1
  91. package/ts_build/test/integration/externalservices/transak.test.d.ts.map +1 -1
  92. package/ts_build/test/integration/externalservices/transak.test.js +93 -6
  93. package/ts_build/test/integration/externalservices/transak.test.js.map +1 -1
  94. package/ts_build/test/integration/helpers.js +1 -1
  95. package/ts_build/test/integration/helpers.js.map +1 -1
  96. package/ts_build/test/integration/server.test.js +44 -76
  97. package/ts_build/test/integration/server.test.js.map +1 -1
  98. package/src/externalservices/wyre.ts +0 -131
  99. package/test/integration/externalservices/wyre.test.ts +0 -270
  100. package/ts_build/src/externalservices/wyre.d.ts +0 -7
  101. package/ts_build/src/externalservices/wyre.d.ts.map +0 -1
  102. package/ts_build/src/externalservices/wyre.js +0 -144
  103. package/ts_build/src/externalservices/wyre.js.map +0 -1
  104. package/ts_build/test/integration/externalservices/wyre.test.d.ts +0 -2
  105. package/ts_build/test/integration/externalservices/wyre.test.d.ts.map +0 -1
  106. package/ts_build/test/integration/externalservices/wyre.test.js +0 -281
  107. package/ts_build/test/integration/externalservices/wyre.test.js.map +0 -1
@@ -1,20 +1,24 @@
1
1
  'use strict';
2
2
 
3
3
  import * as chai from 'chai';
4
+ import * as sinon from 'sinon';
4
5
  import 'chai/register-should';
5
6
  import util from 'util';
6
7
  import { WalletService } from '../../../src/lib/server';
7
8
  import * as TestData from '../../testdata';
8
9
  import helpers from '../helpers';
9
10
  import config from '../../../src/config';
11
+ import logger from '../../../src/lib/logger';
10
12
 
11
13
  const should = chai.should();
12
14
 
13
15
  describe('Thorswap integration', () => {
16
+ const sandbox = sinon.createSandbox();
14
17
  let server;
15
18
  let wallet;
16
19
  let fakeRequest;
17
20
  let req;
21
+ let loggerError: sinon.SinonStub;
18
22
 
19
23
  before(async () => {
20
24
  await helpers.before();
@@ -50,7 +54,7 @@ describe('Thorswap integration', () => {
50
54
  };
51
55
 
52
56
  fakeRequest = {
53
- get: (_url, _opts, _cb) => { return _cb(null, { data: 'data' }); },
57
+ get: (_url, _opts, _cb) => { return _cb(null, { body: 'data' }); },
54
58
  post: (_url, _opts, _cb) => { return _cb(null, { body: 'data' }); },
55
59
  };
56
60
 
@@ -67,6 +71,12 @@ describe('Thorswap integration', () => {
67
71
  clientVersion: 'bwc-2.0.0',
68
72
  walletId: '123',
69
73
  }));
74
+ sandbox.stub(logger, 'warn');
75
+ loggerError = sandbox.stub(logger, 'error');
76
+ });
77
+
78
+ afterEach(() => {
79
+ sandbox.restore();
70
80
  });
71
81
 
72
82
  after(async () => {
@@ -112,7 +122,23 @@ describe('Thorswap integration', () => {
112
122
  await server.externalServices.thorswap.thorswapGetSupportedChains(req);
113
123
  should.fail('should have thrown');
114
124
  } catch (err) {
115
- err.message.should.equal('Error');
125
+ loggerError.callCount.should.equal(1);
126
+ loggerError.args[0][0].should.contain('Thorswap request failed with error (');
127
+ err.message.should.equal('Failed to get Thorswap supported chains');
128
+ }
129
+ });
130
+
131
+ it('should return error and not leak the response if body is empty', async () => {
132
+ const fakeRequest2 = {
133
+ get: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
134
+ };
135
+
136
+ server.externalServices.thorswap.request = fakeRequest2;
137
+ try {
138
+ await server.externalServices.thorswap.thorswapGetSupportedChains(req);
139
+ should.fail('should have thrown');
140
+ } catch (err) {
141
+ err.message.should.equal('Thorswap did not return supported chains');
116
142
  }
117
143
  });
118
144
 
@@ -173,7 +199,23 @@ describe('Thorswap integration', () => {
173
199
  await server.externalServices.thorswap.thorswapGetCryptoCurrencies(req);
174
200
  should.fail('should have thrown');
175
201
  } catch (err) {
176
- err.message.should.equal('Error');
202
+ loggerError.callCount.should.equal(1);
203
+ loggerError.args[0][0].should.contain('Thorswap request failed with error (');
204
+ err.message.should.equal('Failed to get Thorswap supported currencies');
205
+ }
206
+ });
207
+
208
+ it('should return error and not leak the response if body is empty', async () => {
209
+ const fakeRequest2 = {
210
+ get: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
211
+ };
212
+
213
+ server.externalServices.thorswap.request = fakeRequest2;
214
+ try {
215
+ await server.externalServices.thorswap.thorswapGetCryptoCurrencies(req);
216
+ should.fail('should have thrown');
217
+ } catch (err) {
218
+ err.message.should.equal('Thorswap did not return supported currencies');
177
219
  }
178
220
  });
179
221
 
@@ -230,7 +272,24 @@ describe('Thorswap integration', () => {
230
272
  await server.externalServices.thorswap.thorswapGetSwapQuote(req);
231
273
  should.fail('should have thrown');
232
274
  } catch (err) {
233
- err.message.should.equal('Error');
275
+ loggerError.callCount.should.equal(1);
276
+ loggerError.args[0][0].should.contain('Thorswap request failed with error (');
277
+ err.message.should.equal('Failed to get Thorswap swap quote');
278
+ }
279
+ });
280
+
281
+ it('should return error and not leak the response if body is empty', async () => {
282
+ req.body.sellAmount = '1.123';
283
+ const fakeRequest2 = {
284
+ get: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
285
+ };
286
+
287
+ server.externalServices.thorswap.request = fakeRequest2;
288
+ try {
289
+ await server.externalServices.thorswap.thorswapGetSwapQuote(req);
290
+ should.fail('should have thrown');
291
+ } catch (err) {
292
+ err.message.should.equal('Thorswap did not return a swap quote');
234
293
  }
235
294
  });
236
295
 
@@ -292,7 +351,24 @@ describe('Thorswap integration', () => {
292
351
  await server.externalServices.thorswap.thorswapGetSwapTx(req);
293
352
  should.fail('should have thrown');
294
353
  } catch (err) {
295
- err.message.should.equal('Error');
354
+ loggerError.callCount.should.equal(1);
355
+ loggerError.args[0][0].should.contain('Thorswap request failed with error (');
356
+ err.message.should.equal('Failed to get Thorswap swap transaction');
357
+ }
358
+ });
359
+
360
+ it('should return error and not leak the response if body is empty', async() => {
361
+ req.body.txn = 'txn1';
362
+ const fakeRequest2 = {
363
+ post: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
364
+ };
365
+
366
+ server.externalServices.thorswap.request = fakeRequest2;
367
+ try {
368
+ await server.externalServices.thorswap.thorswapGetSwapTx(req);
369
+ should.fail('should have thrown');
370
+ } catch (err) {
371
+ err.message.should.equal('Thorswap did not return a swap transaction');
296
372
  }
297
373
  });
298
374
 
@@ -1,20 +1,24 @@
1
1
  'use strict';
2
2
 
3
3
  import * as chai from 'chai';
4
+ import * as sinon from 'sinon';
4
5
  import 'chai/register-should';
5
6
  import util from 'util';
6
7
  import { WalletService } from '../../../src/lib/server';
7
8
  import * as TestData from '../../testdata';
8
9
  import helpers from '../helpers';
9
10
  import config from '../../../src/config';
11
+ import logger from '../../../src/lib/logger';
10
12
 
11
13
  const should = chai.should();
12
14
 
13
15
  describe('Transak integration', () => {
16
+ const sandbox = sinon.createSandbox();
14
17
  let server;
15
18
  let wallet;
16
19
  let fakeRequest;
17
20
  let req;
21
+ let loggerError: sinon.SinonStub;
18
22
 
19
23
  before(async () => {
20
24
  await helpers.before();
@@ -66,6 +70,12 @@ describe('Transak integration', () => {
66
70
  clientVersion: 'bwc-2.0.0',
67
71
  walletId: '123',
68
72
  }));
73
+ sandbox.stub(logger, 'warn');
74
+ loggerError = sandbox.stub(logger, 'error');
75
+ });
76
+
77
+ afterEach(() => {
78
+ sandbox.restore();
69
79
  });
70
80
 
71
81
  after(async () => {
@@ -118,7 +128,23 @@ describe('Transak integration', () => {
118
128
  await server.externalServices.transak.transakGetAccessToken(req);
119
129
  should.fail('should have thrown');
120
130
  } catch (err) {
121
- err.message.should.equal('Error');
131
+ loggerError.callCount.should.equal(1);
132
+ loggerError.args[0][0].should.contain('Transak request failed with error (');
133
+ err.message.should.equal('Failed to get Transak access token');
134
+ }
135
+ });
136
+
137
+ it('should return error and not leak the response if body is empty', async () => {
138
+ const fakeRequest2 = {
139
+ post: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
140
+ };
141
+
142
+ server.externalServices.transak.request = fakeRequest2;
143
+ try {
144
+ await server.externalServices.transak.transakGetAccessToken(req);
145
+ should.fail('should have thrown');
146
+ } catch (err) {
147
+ err.message.should.equal('Transak did not return an access token');
122
148
  }
123
149
  });
124
150
 
@@ -166,7 +192,23 @@ describe('Transak integration', () => {
166
192
  await server.externalServices.transak.transakGetCryptoCurrencies(req);
167
193
  should.fail('should have thrown');
168
194
  } catch (err) {
169
- err.message.should.equal('Error');
195
+ loggerError.callCount.should.equal(1);
196
+ loggerError.args[0][0].should.contain('Transak request failed with error (');
197
+ err.message.should.equal('Failed to get Transak supported currencies');
198
+ }
199
+ });
200
+
201
+ it('should return error and not leak the response if body is empty', async () => {
202
+ const fakeRequest2 = {
203
+ get: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
204
+ };
205
+
206
+ server.externalServices.transak.request = fakeRequest2;
207
+ try {
208
+ await server.externalServices.transak.transakGetCryptoCurrencies(req);
209
+ should.fail('should have thrown');
210
+ } catch (err) {
211
+ err.message.should.equal('Transak did not return supported currencies');
170
212
  }
171
213
  });
172
214
 
@@ -214,7 +256,23 @@ describe('Transak integration', () => {
214
256
  await server.externalServices.transak.transakGetFiatCurrencies(req);
215
257
  should.fail('should have thrown');
216
258
  } catch (err) {
217
- err.message.should.equal('Error');
259
+ loggerError.callCount.should.equal(1);
260
+ loggerError.args[0][0].should.contain('Transak request failed with error (');
261
+ err.message.should.equal('Failed to get Transak supported fiat currencies');
262
+ }
263
+ });
264
+
265
+ it('should return error and not leak the response if body is empty', async () => {
266
+ const fakeRequest2 = {
267
+ get: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
268
+ };
269
+
270
+ server.externalServices.transak.request = fakeRequest2;
271
+ try {
272
+ await server.externalServices.transak.transakGetFiatCurrencies(req);
273
+ should.fail('should have thrown');
274
+ } catch (err) {
275
+ err.message.should.equal('Transak did not return supported fiat currencies');
218
276
  }
219
277
  });
220
278
 
@@ -266,7 +324,23 @@ describe('Transak integration', () => {
266
324
  await server.externalServices.transak.transakGetQuote(req);
267
325
  should.fail('should have thrown');
268
326
  } catch (err) {
269
- err.message.should.equal('Error');
327
+ loggerError.callCount.should.equal(1);
328
+ loggerError.args[0][0].should.contain('Transak request failed with error (');
329
+ err.message.should.equal('Failed to get Transak quote');
330
+ }
331
+ });
332
+
333
+ it('should return error and not leak the response if body is empty', async () => {
334
+ const fakeRequest2 = {
335
+ get: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
336
+ };
337
+
338
+ server.externalServices.transak.request = fakeRequest2;
339
+ try {
340
+ await server.externalServices.transak.transakGetQuote(req);
341
+ should.fail('should have thrown');
342
+ } catch (err) {
343
+ err.message.should.equal('Transak did not return a quote');
270
344
  }
271
345
  });
272
346
 
@@ -427,7 +501,9 @@ describe('Transak integration', () => {
427
501
  await server.externalServices.transak.transakGetSignedPaymentUrl(req);
428
502
  should.fail('should have thrown');
429
503
  } catch (err) {
430
- err.message.should.equal('Error');
504
+ loggerError.callCount.should.equal(1);
505
+ loggerError.args[0][0].should.contain('Transak request failed with error (');
506
+ err.message.should.equal('Failed to get Transak signed payment URL');
431
507
  }
432
508
  });
433
509
 
@@ -477,7 +553,23 @@ describe('Transak integration', () => {
477
553
  await server.externalServices.transak.transakGetOrderDetails(req);
478
554
  should.fail('should have thrown');
479
555
  } catch (err) {
480
- err.message.should.equal('Error');
556
+ loggerError.callCount.should.equal(1);
557
+ loggerError.args[0][0].should.contain('Transak request failed with error (');
558
+ err.message.should.equal('Failed to get Transak order details');
559
+ };
560
+ });
561
+
562
+ it('should return error and not leak the response if body is empty', async () => {
563
+ const fakeRequest2 = {
564
+ get: (_url, opts, cb) => { return cb(null, { statusCode: 200, body: undefined, request: { headers: opts.headers } }); },
565
+ };
566
+
567
+ server.externalServices.transak.request = fakeRequest2;
568
+ try {
569
+ await server.externalServices.transak.transakGetOrderDetails(req);
570
+ should.fail('should have thrown');
571
+ } catch (err) {
572
+ err.message.should.equal('Transak did not return order details');
481
573
  };
482
574
  });
483
575
 
@@ -253,7 +253,7 @@ class Helpers {
253
253
  if ([true, false].includes(opts.supportBIP44AndP2PKH))
254
254
  walletOpts.supportBIP44AndP2PKH = opts.supportBIP44AndP2PKH;
255
255
 
256
- const walletId = await util.promisify(server.createWallet).call(server, walletOpts);
256
+ const walletId = await new Promise((resolve, reject) => server.createWallet(walletOpts, (err, walletId) => err ? reject(err) : resolve(walletId)));
257
257
 
258
258
  for (let i = 0; i < n; i++) {
259
259
  const copayerData = TestData.copayers[i + offset];
@@ -7712,43 +7712,31 @@ describe('Wallet service', function() {
7712
7712
  },
7713
7713
  ];
7714
7714
 
7715
- function checkTx(txOpts, x, cb) {
7716
- function sign(copayerM, tx, cb) {
7717
- helpers.getAuthServer(wallet.copayers[copayerM].id).then(function(server) {
7718
- const signatures = helpers.clientSign(tx, TestData.copayers[copayerM].xPrivKey_44H_0H_0H);
7719
- server.signTx({
7720
- txProposalId: tx.id,
7721
- signatures: signatures,
7722
- }, function(err, txp) {
7723
- should.not.exist(err, err);
7724
-
7725
- if (++copayerM == x.m) {
7726
- return cb(txp);
7727
- } else {
7728
- return sign(copayerM, tx, cb);
7729
- }
7730
- });
7715
+ async function checkTx(txOpts, x): Promise<number> {
7716
+ const tx = await helpers.createAndPublishTx(server, txOpts, TestData.copayers[0].privKey_1H_0);
7717
+ let txp;
7718
+ for (let copayerM = 0; copayerM < x.m; copayerM++) {
7719
+ const authServer = await helpers.getAuthServer(wallet.copayers[copayerM].id);
7720
+ const signatures = helpers.clientSign(tx, TestData.copayers[copayerM].xPrivKey_44H_0H_0H);
7721
+ txp = await util.promisify(authServer.signTx).call(authServer, {
7722
+ txProposalId: tx.id,
7723
+ signatures: signatures,
7731
7724
  });
7732
7725
  }
7733
-
7734
- helpers.createAndPublishTx(server, txOpts, TestData.copayers[0].privKey_1H_0).then(function(tx) {
7735
- sign(0, tx, (txp) => {
7736
- should.exist(txp.raw);
7737
- txp.status.should.equal('accepted');
7738
- const t = ChainService.getBitcoreTx(txp);
7739
-
7740
- // Check size and fee rate
7741
- (txp.raw.length / 2).should.equal(t.size);
7742
- const feeRate = t.getFee() / (x.fromSegwit ? t.vsize : t.size) * 1000;
7743
- console.log(`Wire Size: ${t.size} vSize: ${t.vsize} (Segwit: ${x.fromSegwit}, SegwitVersion: ${x.segwitVersion || 0}) Fee:${t.getFee()} ActualRate:${Math.round(feeRate)} RequiredRate:${x.requiredFeeRate}`);
7744
-
7745
- // size should be above (or equal) the required FeeRate
7746
- feeRate.should.not.be.below(x.requiredFeeRate);
7747
- feeRate.should.be.below(x.requiredFeeRate * 1.5); // no more that 50% extra
7748
- return cb(feeRate);
7749
- });
7750
- });
7751
- };
7726
+ should.exist(txp.raw);
7727
+ txp.status.should.equal('accepted');
7728
+ const t = ChainService.getBitcoreTx(txp);
7729
+
7730
+ // Check size and fee rate
7731
+ (txp.raw.length / 2).should.equal(t.size);
7732
+ const feeRate = t.getFee() / (x.fromSegwit ? t.vsize : t.size) * 1000;
7733
+ console.log(`Wire Size: ${t.size} vSize: ${t.vsize} (Segwit: ${x.fromSegwit}, SegwitVersion: ${x.segwitVersion || 0}) Fee:${t.getFee()} ActualRate:${Math.round(feeRate)} RequiredRate:${x.requiredFeeRate}`);
7734
+
7735
+ // size should be above (or equal) the required FeeRate
7736
+ feeRate.should.not.be.below(x.requiredFeeRate);
7737
+ feeRate.should.be.below(x.requiredFeeRate * 1.5); // no more that 50% extra
7738
+ return feeRate;
7739
+ }
7752
7740
 
7753
7741
  for (let i = 0; i < cases.length; i++) {
7754
7742
  const x = cases[i];
@@ -7780,7 +7768,7 @@ describe('Wallet service', function() {
7780
7768
  Object.assign(txOpts, { feePerKb: x.requiredFeeRate });
7781
7769
  }
7782
7770
 
7783
- const fee1 = await new Promise<number>(r => checkTx(txOpts, x, r));
7771
+ const fee1 = await checkTx(txOpts, x);
7784
7772
  should.exist(fee1);
7785
7773
 
7786
7774
  // CASE 8
@@ -7791,7 +7779,7 @@ describe('Wallet service', function() {
7791
7779
  ({ server, wallet } = await helpers.createAndJoinWallet(x.m, x.n, { useNativeSegwit: x.fromSegwit }));
7792
7780
  await helpers.stubUtxos(server, wallet, x.utxos);
7793
7781
  txOpts.payProUrl = null;
7794
- const fee2 = await new Promise<number>(r => checkTx(txOpts, x, r));
7782
+ const fee2 = await checkTx(txOpts, x);
7795
7783
  console.log(`## Fee PayPro: ${fee1} vs ${fee2}`);
7796
7784
  fee1.should.be.above(fee2);
7797
7785
  }
@@ -7880,49 +7868,37 @@ describe('Wallet service', function() {
7880
7868
  },
7881
7869
  ];
7882
7870
 
7883
- function checkTx(txOpts, x, cb) {
7884
- function sign(copayerM, tx, cb) {
7885
- helpers.getAuthServer(wallet.copayers[copayerM].id).then(function(server) {
7886
- const signatures = helpers.clientSign(tx, TestData.copayers[copayerM].xPrivKey_44H_0H_0H);
7887
- server.signTx({
7888
- txProposalId: tx.id,
7889
- signatures: signatures,
7890
- }, function(err, txp) {
7891
- should.not.exist(err, err);
7892
-
7893
- if (++copayerM == x.m) {
7894
- return cb(txp);
7895
- } else {
7896
- return sign(copayerM, tx, cb);
7897
- }
7898
- });
7871
+ async function checkTx(txOpts, x): Promise<number> {
7872
+ const tx = await helpers.createAndPublishTx(server, txOpts, TestData.copayers[0].privKey_1H_0);
7873
+ let txp;
7874
+ for (let copayerM = 0; copayerM < x.m; copayerM++) {
7875
+ const authServer = await helpers.getAuthServer(wallet.copayers[copayerM].id);
7876
+ const signatures = helpers.clientSign(tx, TestData.copayers[copayerM].xPrivKey_44H_0H_0H);
7877
+ txp = await util.promisify(authServer.signTx).call(authServer, {
7878
+ txProposalId: tx.id,
7879
+ signatures: signatures,
7899
7880
  });
7900
7881
  }
7901
-
7902
- helpers.createAndPublishTx(server, txOpts, TestData.copayers[0].privKey_1H_0).then(function(tx) {
7903
- sign(0, tx, (txp) => {
7904
- should.exist(txp.raw);
7905
- txp.status.should.equal('accepted');
7906
-
7907
- const t = ChainService.getBitcoreTx(txp);
7908
- const vSize = x.vSize || t._estimateSize(); // use given vSize if available
7909
- // Check size and fee rate
7910
- const actualSize = txp.raw.length / 2;
7911
- const actualFeeRate = t.getFee() / (x.fromSegwit ? vSize : actualSize) * 1000;
7912
- console.log(`Wire Size:${actualSize} vSize: ${vSize} (Segwit: ${x.fromSegwit}) Fee: ${t.getFee()} ActualRate:${Math.round(actualFeeRate)} RequiredRate:${x.requiredFeeRate}`);
7913
-
7914
- // Fee should be more than min relay fee
7915
- t.getFee().should.be.gte(CWC.BitcoreLibDoge.Transaction.DUST_AMOUNT);
7916
-
7917
- if (t.getFee() > CWC.BitcoreLibDoge.Transaction.DUST_AMOUNT) {
7918
- // size should be above (or equal) the required FeeRate
7919
- actualFeeRate.should.not.be.below(x.requiredFeeRate);
7920
- actualFeeRate.should.be.below(x.requiredFeeRate * 1.5); // no more that 50% extra
7921
- }
7922
- return cb(actualFeeRate);
7923
- });
7924
- });
7925
- };
7882
+ should.exist(txp.raw);
7883
+ txp.status.should.equal('accepted');
7884
+
7885
+ const t = ChainService.getBitcoreTx(txp);
7886
+ const vSize = x.vSize || t._estimateSize(); // use given vSize if available
7887
+ // Check size and fee rate
7888
+ const actualSize = txp.raw.length / 2;
7889
+ const actualFeeRate = t.getFee() / (x.fromSegwit ? vSize : actualSize) * 1000;
7890
+ console.log(`Wire Size:${actualSize} vSize: ${vSize} (Segwit: ${x.fromSegwit}) Fee: ${t.getFee()} ActualRate:${Math.round(actualFeeRate)} RequiredRate:${x.requiredFeeRate}`);
7891
+
7892
+ // Fee should be more than min relay fee
7893
+ t.getFee().should.be.gte(CWC.BitcoreLibDoge.Transaction.DUST_AMOUNT);
7894
+
7895
+ if (t.getFee() > CWC.BitcoreLibDoge.Transaction.DUST_AMOUNT) {
7896
+ // size should be above (or equal) the required FeeRate
7897
+ actualFeeRate.should.not.be.below(x.requiredFeeRate);
7898
+ actualFeeRate.should.be.below(x.requiredFeeRate * 1.5); // no more that 50% extra
7899
+ }
7900
+ return actualFeeRate;
7901
+ }
7926
7902
 
7927
7903
  for (let i = 0; i < cases.length; i++) {
7928
7904
  const x = cases[i];
@@ -7954,7 +7930,7 @@ describe('Wallet service', function() {
7954
7930
  Object.assign(txOpts, { feePerKb: x.requiredFeeRate });
7955
7931
  }
7956
7932
 
7957
- const fee1 = await new Promise<number>(r => checkTx(txOpts, x, r));
7933
+ const fee1 = await checkTx(txOpts, x);
7958
7934
  should.exist(fee1);
7959
7935
 
7960
7936
  // CASE 8
@@ -7965,7 +7941,7 @@ describe('Wallet service', function() {
7965
7941
  ({ server, wallet } = await helpers.createAndJoinWallet(x.m, x.n, { useNativeSegwit: x.fromSegwit }));
7966
7942
  await helpers.stubUtxos(server, wallet, x.utxos);
7967
7943
  txOpts.payProUrl = null;
7968
- const fee2 = await new Promise<number>(r => checkTx(txOpts, x, r));
7944
+ const fee2 = await checkTx(txOpts, x);
7969
7945
  console.log(`## Fee PayPro: ${fee1} vs ${fee2}`);
7970
7946
  fee1.should.be.above(fee2);
7971
7947
  }
@@ -11637,10 +11613,6 @@ describe('Wallet service', function() {
11637
11613
  simplex: {
11638
11614
  disabled: false,
11639
11615
  removed: false
11640
- },
11641
- wyre: {
11642
- disabled: false,
11643
- removed: false
11644
11616
  }
11645
11617
  },
11646
11618
  sellCrypto: {
@@ -11730,10 +11702,6 @@ describe('Wallet service', function() {
11730
11702
  transak: {
11731
11703
  disabled: false,
11732
11704
  removed: false
11733
- },
11734
- wyre: {
11735
- disabled: false,
11736
- removed: false
11737
11705
  }
11738
11706
  },
11739
11707
  sellCrypto: {
@@ -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.14",
5
+ "version": "11.11.0",
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.14",
46
- "@bitpay-labs/crypto-wallet-core": "^11.10.14",
45
+ "@bitpay-labs/bitcore-tss": "^11.11.0",
46
+ "@bitpay-labs/crypto-wallet-core": "^11.11.0",
47
47
  "@sendgrid/mail": "6.5.4",
48
48
  "abi-decoder": "2.4.0",
49
49
  "async": "0.9.2",
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";AA8hBA,wBAAwB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";AA0gBA,wBAAwB"}
@@ -178,10 +178,6 @@ const Config = () => {
178
178
  transak: {
179
179
  disabled: false,
180
180
  removed: false
181
- },
182
- wyre: {
183
- disabled: false,
184
- removed: false
185
181
  }
186
182
  },
187
183
  sellCrypto: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"banxa.d.ts","sourceRoot":"","sources":["../../../src/externalservices/banxa.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAW;IAEvB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,iBAAiB;IAsBzB,aAAa,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAwChC,sBAAsB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAqCzC,aAAa,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA+ChC,gBAAgB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA4CnC,aAAa,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;CAuCjC"}
1
+ {"version":3,"file":"banxa.d.ts","sourceRoot":"","sources":["../../../src/externalservices/banxa.ts"],"names":[],"mappings":"AAQA,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAW;IAEvB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,iBAAiB;IAsBzB,aAAa,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAgDhC,sBAAsB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IA6CzC,aAAa,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAuDhC,gBAAgB,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAoDnC,aAAa,CAAC,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;CA+CjC"}