@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,281 +0,0 @@
1
- 'use strict';
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const chai = __importStar(require("chai"));
40
- require("chai/register-should");
41
- const util_1 = __importDefault(require("util"));
42
- const server_1 = require("../../../src/lib/server");
43
- const TestData = __importStar(require("../../testdata"));
44
- const helpers_1 = __importDefault(require("../helpers"));
45
- const config_1 = __importDefault(require("../../../src/config"));
46
- const should = chai.should();
47
- describe('Wyre integration', () => {
48
- let server;
49
- let wallet;
50
- let fakeRequest;
51
- let req;
52
- before(async () => {
53
- await helpers_1.default.before();
54
- });
55
- beforeEach(async () => {
56
- config_1.default.wyre = {
57
- sandbox: {
58
- apiKey: 'xxxx',
59
- secretApiKey: 'xxxx',
60
- api: 'xxxx',
61
- widgetUrl: 'xxxx',
62
- appProviderAccountId: 'xxxx'
63
- },
64
- production: {
65
- apiKey: 'xxxx',
66
- secretApiKey: 'xxxx',
67
- api: 'xxxx',
68
- widgetUrl: 'xxxx',
69
- appProviderAccountId: 'xxxx'
70
- }
71
- };
72
- fakeRequest = {
73
- get: (_url, _opts, _cb) => { return _cb(null, { body: 'data' }); },
74
- post: (_url, _opts, _cb) => { return _cb(null, { body: 'data' }); },
75
- };
76
- await helpers_1.default.beforeEach();
77
- ({ wallet } = await helpers_1.default.createAndJoinWallet(1, 1));
78
- const priv = TestData.copayers[0].privKey_1H_0;
79
- const sig = helpers_1.default.signMessage('hello world', priv);
80
- (server = await util_1.default.promisify(server_1.WalletService.getInstanceWithAuth).call(server_1.WalletService, {
81
- copayerId: wallet.copayers[0].id,
82
- message: 'hello world',
83
- signature: sig,
84
- clientVersion: 'bwc-2.0.0',
85
- walletId: '123',
86
- }));
87
- });
88
- after(async () => {
89
- await helpers_1.default.after();
90
- });
91
- describe('#wyreWalletOrderQuotation', () => {
92
- beforeEach(() => {
93
- req = {
94
- headers: {},
95
- body: {
96
- env: 'sandbox',
97
- amount: 50,
98
- sourceCurrency: 'USD',
99
- destCurrency: 'BTC',
100
- dest: 'bitcoin:123123123',
101
- country: 'US'
102
- }
103
- };
104
- server.externalServices.wyre.request = fakeRequest;
105
- });
106
- it('should work properly if req is OK', async () => {
107
- const data = await server.externalServices.wyre.wyreWalletOrderQuotation(req);
108
- should.exist(data);
109
- });
110
- it('should return error if there is some missing arguments', async () => {
111
- delete req.body.amount;
112
- try {
113
- await server.externalServices.wyre.wyreWalletOrderQuotation(req);
114
- should.fail('should have thrown');
115
- }
116
- catch (err) {
117
- err.message.should.equal('Wyre\'s request missing arguments');
118
- }
119
- });
120
- it('should return error if post returns error', async () => {
121
- req.body.amount = 50;
122
- const fakeRequest2 = {
123
- post: (_url, _opts, _cb) => { return _cb(new Error('Error')); },
124
- };
125
- server.externalServices.wyre.request = fakeRequest2;
126
- try {
127
- await server.externalServices.wyre.wyreWalletOrderQuotation(req);
128
- should.fail('should have thrown');
129
- }
130
- catch (err) {
131
- err.message.should.equal('Error');
132
- }
133
- });
134
- it('should return error if Wyre is commented in config', async () => {
135
- config_1.default.wyre = undefined;
136
- try {
137
- await server.externalServices.wyre.wyreWalletOrderQuotation(req);
138
- should.fail('should have thrown');
139
- }
140
- catch (err) {
141
- err.message.should.equal('Wyre missing credentials');
142
- }
143
- });
144
- it('should return error if amountIncludeFees is true but sourceAmount is not present', async () => {
145
- req = {
146
- headers: {},
147
- body: {
148
- amountIncludeFees: true,
149
- env: 'sandbox',
150
- amount: 50,
151
- sourceCurrency: 'USD',
152
- destCurrency: 'BTC',
153
- dest: 'bitcoin:123123123',
154
- country: 'US',
155
- walletType: 'DEBIT_CARD'
156
- }
157
- };
158
- try {
159
- await server.externalServices.wyre.wyreWalletOrderQuotation(req);
160
- should.fail('should have thrown');
161
- }
162
- catch (err) {
163
- err.message.should.equal('Wyre\'s request missing arguments');
164
- }
165
- });
166
- it('should work properly if req is OK with amountIncludeFees and sourceAmount', async () => {
167
- req = {
168
- headers: {},
169
- body: {
170
- amountIncludeFees: true,
171
- env: 'sandbox',
172
- sourceAmount: 50,
173
- sourceCurrency: 'USD',
174
- destCurrency: 'BTC',
175
- dest: 'bitcoin:123123123',
176
- country: 'US',
177
- walletType: 'DEBIT_CARD'
178
- }
179
- };
180
- const data = await server.externalServices.wyre.wyreWalletOrderQuotation(req);
181
- should.exist(data);
182
- });
183
- });
184
- describe('#wyreWalletOrderReservation', () => {
185
- beforeEach(() => {
186
- req = {
187
- headers: {},
188
- body: {
189
- env: 'sandbox',
190
- amount: 50,
191
- sourceCurrency: 'USD',
192
- destCurrency: 'BTC',
193
- dest: 'bitcoin:123123123',
194
- paymentMethod: 'debit-card'
195
- }
196
- };
197
- fakeRequest = {
198
- post: (_url, _opts, _cb) => { return _cb(null, { body: {} }); },
199
- };
200
- server.externalServices.wyre.request = fakeRequest;
201
- });
202
- it('should work properly if req is OK', async () => {
203
- const data = await server.externalServices.wyre.wyreWalletOrderReservation(req);
204
- should.exist(data);
205
- });
206
- it('should return error if there is some missing arguments', async () => {
207
- delete req.body.amount;
208
- try {
209
- await server.externalServices.wyre.wyreWalletOrderReservation(req);
210
- should.fail('should have thrown');
211
- }
212
- catch (err) {
213
- err.message.should.equal('Wyre\'s request missing arguments');
214
- }
215
- });
216
- it('should return error if post returns error', async () => {
217
- req.body.amount = 50;
218
- const fakeRequest2 = {
219
- post: (_url, _opts, _cb) => { return _cb(new Error('Error')); },
220
- };
221
- server.externalServices.wyre.request = fakeRequest2;
222
- try {
223
- await server.externalServices.wyre.wyreWalletOrderReservation(req);
224
- should.fail('should have thrown');
225
- }
226
- catch (err) {
227
- err.message.should.equal('Error');
228
- }
229
- });
230
- it('should return error if Wyre is commented in config', async () => {
231
- config_1.default.wyre = undefined;
232
- try {
233
- await server.externalServices.wyre.wyreWalletOrderReservation(req);
234
- should.fail('should have thrown');
235
- }
236
- catch (err) {
237
- err.message.should.equal('Wyre missing credentials');
238
- }
239
- });
240
- it('should return error if amountIncludeFees is true but sourceAmount is not present', async () => {
241
- req = {
242
- headers: {},
243
- body: {
244
- amountIncludeFees: true,
245
- env: 'sandbox',
246
- amount: 50,
247
- sourceCurrency: 'USD',
248
- destCurrency: 'BTC',
249
- dest: 'bitcoin:123123123',
250
- country: 'US',
251
- paymentMethod: 'debit-card'
252
- }
253
- };
254
- try {
255
- await server.externalServices.wyre.wyreWalletOrderReservation(req);
256
- should.fail('should have thrown');
257
- }
258
- catch (err) {
259
- err.message.should.equal('Wyre\'s request missing arguments');
260
- }
261
- });
262
- it('should work properly if req is OK with amountIncludeFees and sourceAmount', async () => {
263
- req = {
264
- headers: {},
265
- body: {
266
- amountIncludeFees: true,
267
- env: 'sandbox',
268
- sourceAmount: 50,
269
- sourceCurrency: 'USD',
270
- destCurrency: 'BTC',
271
- dest: 'bitcoin:123123123',
272
- country: 'US',
273
- paymentMethod: 'debit-card'
274
- }
275
- };
276
- const data = await server.externalServices.wyre.wyreWalletOrderReservation(req);
277
- should.exist(data);
278
- });
279
- });
280
- });
281
- //# sourceMappingURL=wyre.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wyre.test.js","sourceRoot":"","sources":["../../../../test/integration/externalservices/wyre.test.ts"],"names":[],"mappings":"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"}