@bitpay-labs/bitcore-wallet-service 11.10.13 → 11.10.14

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 (61) hide show
  1. package/package.json +4 -4
  2. package/src/externalservices/moonpay.ts +6 -2
  3. package/test/integration/externalservices/moonpay.test.ts +50 -0
  4. package/ts_build/package.json +3 -3
  5. package/ts_build/src/externalservices/moonpay.d.ts.map +1 -1
  6. package/ts_build/src/externalservices/moonpay.js +8 -3
  7. package/ts_build/src/externalservices/moonpay.js.map +1 -1
  8. package/ts_build/src/lib/chain/btc/index.js +7 -7
  9. package/ts_build/src/lib/chain/btc/index.js.map +1 -1
  10. package/ts_build/src/lib/chain/eth/index.js +1 -1
  11. package/ts_build/src/lib/chain/eth/index.js.map +1 -1
  12. package/ts_build/src/lib/chain/sol/index.d.ts +2 -0
  13. package/ts_build/src/lib/chain/sol/index.d.ts.map +1 -1
  14. package/ts_build/src/lib/chain/sol/index.js +36 -3
  15. package/ts_build/src/lib/chain/sol/index.js.map +1 -1
  16. package/ts_build/src/lib/chain/xrp/index.js +2 -2
  17. package/ts_build/src/lib/chain/xrp/index.js.map +1 -1
  18. package/ts_build/src/lib/common/defaults.d.ts +3 -0
  19. package/ts_build/src/lib/common/defaults.d.ts.map +1 -1
  20. package/ts_build/src/lib/common/defaults.js +3 -0
  21. package/ts_build/src/lib/common/defaults.js.map +1 -1
  22. package/ts_build/src/lib/common/index.d.ts +3 -0
  23. package/ts_build/src/lib/common/index.d.ts.map +1 -1
  24. package/ts_build/src/lib/errors/errordefinitions.d.ts +2 -0
  25. package/ts_build/src/lib/errors/errordefinitions.d.ts.map +1 -1
  26. package/ts_build/src/lib/errors/errordefinitions.js +2 -0
  27. package/ts_build/src/lib/errors/errordefinitions.js.map +1 -1
  28. package/ts_build/src/lib/model/txproposal.d.ts +3 -2
  29. package/ts_build/src/lib/model/txproposal.d.ts.map +1 -1
  30. package/ts_build/src/lib/model/txproposal.js +33 -9
  31. package/ts_build/src/lib/model/txproposal.js.map +1 -1
  32. package/ts_build/src/lib/routes/context.d.ts.map +1 -1
  33. package/ts_build/src/lib/routes/context.js +3 -1
  34. package/ts_build/src/lib/routes/context.js.map +1 -1
  35. package/ts_build/src/lib/routes/helpers/error.js +2 -2
  36. package/ts_build/src/lib/routes/helpers/error.js.map +1 -1
  37. package/ts_build/src/lib/routes/transactions.js +10 -5
  38. package/ts_build/src/lib/routes/transactions.js.map +1 -1
  39. package/ts_build/src/lib/routes/wallets.js +4 -2
  40. package/ts_build/src/lib/routes/wallets.js.map +1 -1
  41. package/ts_build/src/lib/server.d.ts.map +1 -1
  42. package/ts_build/src/lib/server.js +6 -2
  43. package/ts_build/src/lib/server.js.map +1 -1
  44. package/ts_build/test/chain/btc.test.js +26 -0
  45. package/ts_build/test/chain/btc.test.js.map +1 -1
  46. package/ts_build/test/chain/eth.test.js +40 -0
  47. package/ts_build/test/chain/eth.test.js.map +1 -1
  48. package/ts_build/test/chain/sol.test.js +156 -0
  49. package/ts_build/test/chain/sol.test.js.map +1 -1
  50. package/ts_build/test/chain/xrp.test.js +18 -0
  51. package/ts_build/test/chain/xrp.test.js.map +1 -1
  52. package/ts_build/test/integration/externalservices/moonpay.test.js +67 -0
  53. package/ts_build/test/integration/externalservices/moonpay.test.js.map +1 -1
  54. package/ts_build/test/integration/server.test.js +87 -0
  55. package/ts_build/test/integration/server.test.js.map +1 -1
  56. package/ts_build/test/model/txproposal.test.js +101 -0
  57. package/ts_build/test/model/txproposal.test.js.map +1 -1
  58. package/ts_build/test/numberformat-routes.test.d.ts +2 -0
  59. package/ts_build/test/numberformat-routes.test.d.ts.map +1 -0
  60. package/ts_build/test/numberformat-routes.test.js +116 -0
  61. package/ts_build/test/numberformat-routes.test.js.map +1 -0
@@ -75,6 +75,23 @@ describe('TxProposal', function () {
75
75
  txp.coin.should.equal('btc');
76
76
  });
77
77
  });
78
+ describe('#fromObj', function () {
79
+ it('should keep the stored output amount type untouched', function () {
80
+ const stored = { ...aTXP(), outputs: [{ ...aTXP().outputs[0], amount: 70000000000000010 }] };
81
+ const txp = txproposal_1.TxProposal.fromObj(stored);
82
+ txp.outputs[0].amount.should.equal(70000000000000010);
83
+ });
84
+ });
85
+ describe('#getTotalAmountBigInt', function () {
86
+ it('should keep a total that a number cannot represent', function () {
87
+ const txp = txproposal_1.TxProposal.fromObj({
88
+ ...aTXP(),
89
+ outputs: [{ ...aTXP().outputs[0], amount: '9007199254740992' }, { ...aTXP().outputs[1], amount: '1' }]
90
+ });
91
+ txp.getTotalAmountBigInt().should.equal(9007199254740993n);
92
+ txp.getTotalAmount().should.equal(9007199254740992);
93
+ });
94
+ });
78
95
  describe('#getTotalAmount', function () {
79
96
  it('should compute total amount', function () {
80
97
  const x = txproposal_1.TxProposal.fromObj(aTXP());
@@ -100,6 +117,18 @@ describe('TxProposal', function () {
100
117
  txp.getRawTx().should.equal(theRawTx);
101
118
  });
102
119
  });
120
+ describe('#sign with a number format', function () {
121
+ it('should keep the signatures in the persisted raw tx', function () {
122
+ const plain = txproposal_1.TxProposal.fromObj(aTXP());
123
+ plain.sign('1', theSignatures, theXPub);
124
+ plain.sign('2', theSignatures, theXPub);
125
+ const formatted = txproposal_1.TxProposal.fromObj(aTXP());
126
+ formatted.sign('1', theSignatures, theXPub, 'number');
127
+ formatted.sign('2', theSignatures, theXPub, 'number');
128
+ formatted.raw.should.deep.equal(plain.raw);
129
+ formatted.txid.should.equal(plain.txid);
130
+ });
131
+ });
103
132
  describe('#reject', function () {
104
133
  it('should reject 2-2', function () {
105
134
  const txp = txproposal_1.TxProposal.fromObj(aTXP());
@@ -154,6 +183,12 @@ describe('TxProposal', function () {
154
183
  txp.fee.should.be.a('number');
155
184
  txp.outputs[0].amount.should.be.a('number');
156
185
  });
186
+ it('should keep a base-unit amount that a number cannot represent exactly', function () {
187
+ const amount = '70000000000000010';
188
+ const t = txproposal_1.TxProposal.fromObj({ ...aTXP(), amount, outputs: [{ ...aTXP().outputs[0], amount }] });
189
+ const txp = txproposal_1.TxProposal.formatNumbers(t, 'number');
190
+ txp.outputs[0].amount.should.equal(amount);
191
+ });
157
192
  it('should format string numbers as hex', function () {
158
193
  const t1 = txproposal_1.TxProposal.fromObj(aTXP());
159
194
  const t2 = txproposal_1.TxProposal.formatNumbers(t1, 'string');
@@ -167,6 +202,72 @@ describe('TxProposal', function () {
167
202
  txp.outputs[0].amount.should.be.a('string');
168
203
  crypto_wallet_core_1.Utils.isHexString(txp.outputs[0].amount).should.equal(true);
169
204
  });
205
+ describe('legacy format contracts', function () {
206
+ const cases = [
207
+ ['safe integer boundary', '9007199254740991', 9007199254740991],
208
+ ['first representable unsafe integer', '9007199254740992', 9007199254740992],
209
+ ['first unrepresentable integer', '9007199254740993', '9007199254740993'],
210
+ ['representable amount', '70000000000000008', Number('70000000000000008')],
211
+ ['inexact amount', '70000000000000010', '70000000000000010'],
212
+ ['representable hex', '0x20000000000000', 9007199254740992],
213
+ ['unrepresentable hex', '0x20000000000001', '0x20000000000001'],
214
+ ['exponential string', '1e+21', '1e+21'],
215
+ ['exponential number', 1e21, 1e21],
216
+ ['overflow string', '9'.repeat(400), '9'.repeat(400)],
217
+ ['empty string', '', ''],
218
+ ['nonnumeric string', 'abc', 'abc'],
219
+ ['null', null, null],
220
+ ['undefined', undefined, undefined],
221
+ ['NaN', NaN, NaN],
222
+ ['Infinity', Infinity, Infinity],
223
+ ['small bigint', 5n, 5],
224
+ ['inexact bigint', 9007199254740993n, 9007199254740993n],
225
+ ['positive sign', '+5', 5],
226
+ ['negative zero', '-0', -0],
227
+ ['leading zeros', '007', 7],
228
+ ['whitespace', ' 42 ', 42],
229
+ ['fractional prefix', '1.5', 1],
230
+ ['malformed prefix', '12xyz', 12],
231
+ ['SOL nonce prefix', '2' + 'A'.repeat(43), 2]
232
+ ];
233
+ for (const [label, value, expected] of cases) {
234
+ it(`should leave the legacy number behavior unchanged for ${label}`, function () {
235
+ const source = txproposal_1.TxProposal.fromObj(aTXP());
236
+ source.amount = value;
237
+ source.outputs[0].amount = value;
238
+ const formatted = txproposal_1.TxProposal.formatNumbers(source, 'number');
239
+ chai.expect(Object.is(formatted.amount, expected)).to.equal(true);
240
+ chai.expect(Object.is(formatted.outputs[0].amount, expected)).to.equal(true);
241
+ chai.expect(Object.is(source.outputs[0].amount, value)).to.equal(true);
242
+ });
243
+ }
244
+ for (const format of ['string', 'hex', 'bigint']) {
245
+ it(`should leave the legacy ${format} behavior unchanged`, function () {
246
+ const source = txproposal_1.TxProposal.fromObj(aTXP());
247
+ source.amount = 42;
248
+ source.outputs[0].amount = '70000000000000010';
249
+ const formatted = txproposal_1.TxProposal.formatNumbers(source, format);
250
+ const expected = {
251
+ string: ['42', '70000000000000010'],
252
+ hex: ['0x2a', '0xf8b0a10e47000a'],
253
+ bigint: [42n, 70000000000000010n]
254
+ }[format];
255
+ formatted.amount.should.equal(expected[0]);
256
+ formatted.outputs[0].amount.should.equal(expected[1]);
257
+ source.amount.should.equal(42);
258
+ source.outputs[0].amount.should.equal('70000000000000010');
259
+ });
260
+ }
261
+ it('should expand large integers and keep existing hex strings in string mode', function () {
262
+ const source = txproposal_1.TxProposal.fromObj(aTXP());
263
+ source.amount = 1e21;
264
+ source.outputs[0].amount = '0x2a';
265
+ const formatted = txproposal_1.TxProposal.formatNumbers(source, 'string');
266
+ formatted.amount.should.equal('1000000000000000000000');
267
+ BigInt(formatted.amount).should.equal(1000000000000000000000n);
268
+ formatted.outputs[0].amount.should.equal('0x2a');
269
+ });
270
+ });
170
271
  });
171
272
  });
172
273
  const theXPriv = 'xprv9s21ZrQH143K2rMHbXTJmWTuFx6ssqn1vyRoZqPkCXYchBSkp5ey8kMJe84sxfXq5uChWH4gk94rWbXZt2opN9kg4ufKGvUM7HQSLjnoh7e';
@@ -1 +1 @@
1
- {"version":3,"file":"txproposal.test.js","sourceRoot":"","sources":["../../../test/model/txproposal.test.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEb,2CAA6B;AAC7B,gCAA8B;AAC9B,wEAAoE;AACpE,+DAA4D;AAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAE7B,QAAQ,CAAC,YAAY,EAAE;IACrB,QAAQ,CAAC,SAAS,EAAE;QAClB,EAAE,CAAC,4BAA4B,EAAE;YAC/B,MAAM,GAAG,GAAG,uBAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE;QACnB,EAAE,CAAC,0BAA0B,EAAE;YAC7B,MAAM,GAAG,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE;YAC3C,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;YAGtB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,OAAO,GAAG,CAAC;oBAChB,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,CAAC;oBACZ,SAAS,EAAE,CAAC;oBACZ,IAAI,EAAE,IAAI;oBACV,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,uBAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAIH,EAAE,CAAC,4BAA4B,EAAE;YAC/B,MAAM,GAAG,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,EAAE,CAAC,6BAA6B,EAAE;YAChC,MAAM,CAAC,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE;QAChB,EAAE,CAAC,mDAAmD,EAAE;YACtD,MAAM,GAAG,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACtC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACtC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE;QACpB,EAAE,CAAC,sEAAsE,EAAE;YACzE,MAAM,GAAG,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACtC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE;QAClB,EAAE,CAAC,mBAAmB,EAAE;YACtB,MAAM,GAAG,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC3B,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,EAAE,CAAC,uBAAuB,EAAE;YAC1B,MAAM,GAAG,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACtC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC3B,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE;QACzB,EAAE,CAAC,kCAAkC,EAAE;YACrC,MAAM,CAAC,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,uBAAU,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAClD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE;YACjC,MAAM,CAAC,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,uBAAU,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjC,0BAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9B,0BAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5C,0BAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE;YACrC,MAAM,CAAC,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,uBAAU,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAClD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE;YACrC,MAAM,EAAE,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,MAAM,EAAE,GAAG,uBAAU,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAClD,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAEhC,MAAM,GAAG,GAAG,uBAAU,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACnD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE;YACxC,MAAM,EAAE,GAAG,uBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,MAAM,EAAE,GAAG,uBAAU,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAClD,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAE/C,MAAM,GAAG,GAAG,uBAAU,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAChD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjC,0BAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9B,0BAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5C,0BAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,iHAAiH,CAAC;AACnI,MAAM,OAAO,GAAG,iHAAiH,CAAC;AAClI,MAAM,aAAa,GAAG,CAAC,8IAA8I,CAAC,CAAC;AACvK,MAAM,QAAQ,GAAG,klBAAklB,CAAC;AAEpmB,MAAM,QAAQ,GAAG;IACf,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,CAAC;gBACR,SAAS,EAAE,oCAAoC;gBAC/C,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,eAAe;aACzB,EAAE;gBACD,SAAS,EAAE,oCAAoC;gBAC/C,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,gBAAgB;aAC1B,CAAC;KACH,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG;IACX,MAAM,GAAG,GAAG;QACV,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,UAAU;QACrB,EAAE,EAAE,sCAAsC;QAC1C,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,cAAc;QACvB,iBAAiB,EAAE,gJAAgJ;QACnK,aAAa,EAAE;YACb,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,oCAAoC;YAC7C,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,kBAAkB;YACxB,UAAU,EAAE;gBACV,oEAAoE;gBACpE,oEAAoE;gBACpE,oEAAoE;aACrE;SACF;QACD,MAAM,EAAE,CAAC;gBACP,IAAI,EAAE,kEAAkE;gBACxE,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,SAAS;gBACnB,YAAY,EAAE,gDAAgD;gBAC9D,OAAO,EAAE,oCAAoC;gBAC7C,IAAI,EAAE,kBAAkB;gBACxB,UAAU,EAAE;oBACV,oEAAoE;oBACpE,oEAAoE;iBACrE;aACF,CAAC;QACF,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,kBAAkB,EAAE,CAAC;QACrB,kBAAkB,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,SAAkB;QAC1B,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,KAAK;QACV,OAAO,EAAE,CAAC;gBACR,SAAS,EAAE,oCAAoC;gBAC/C,OAAO,EAAE,oCAAoC;gBAC7C,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,eAAe;aACzB,EAAE;gBACD,SAAS,EAAE,oCAAoC;gBAC/C,OAAO,EAAE,oCAAoC;gBAC7C,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,gBAAgB;aAC1B,CAAC;QACF,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACvB,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"txproposal.test.js","sourceRoot":"","sources":["../../../test/model/txproposal.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import 'chai/register-should';
2
+ //# sourceMappingURL=numberformat-routes.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberformat-routes.test.d.ts","sourceRoot":"","sources":["../../test/numberformat-routes.test.ts"],"names":[],"mappings":"AAGA,OAAO,sBAAsB,CAAC"}
@@ -0,0 +1,116 @@
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 express_1 = __importDefault(require("express"));
42
+ const sinon_1 = __importDefault(require("sinon"));
43
+ const errordefinitions_1 = require("../src/lib/errors/errordefinitions");
44
+ const context_1 = require("../src/lib/routes/context");
45
+ const error_1 = require("../src/lib/routes/helpers/error");
46
+ const transactions_1 = require("../src/lib/routes/transactions");
47
+ const wallets_1 = require("../src/lib/routes/wallets");
48
+ const should = chai.should();
49
+ describe('Transaction number format routes', function () {
50
+ const routes = [
51
+ ['get', '/v2/txproposals/', 'getPendingTxs'],
52
+ ['post', '/v3/txproposals/', 'createTx'],
53
+ ['post', '/v2/txproposals/:id/signatures/', 'signTx'],
54
+ ['post', '/v1/txproposals/:id/prepare/', 'prepareTx'],
55
+ ['post', '/v2/txproposals/:id/publish/', 'publishTx'],
56
+ ['get', '/v3/wallets/', 'getStatus'],
57
+ ['get', '/v1/wallets/all/', 'getStatus']
58
+ ];
59
+ function setup() {
60
+ const router = express_1.default.Router();
61
+ const error = new error_1.ApiErrorHelper();
62
+ const returnError = error.returnError.bind(error);
63
+ const helpers = (0, context_1.createRouteHelpers)(returnError);
64
+ const server = { copayerId: 'copayer', walletId: 'wallet' };
65
+ for (const method of new Set(routes.map(route => route[2]))) {
66
+ server[method] = sinon_1.default.stub().callsArgWith(1, null, { outputs: [{ amount: '70000000000000010' }] });
67
+ }
68
+ const context = {
69
+ ...helpers,
70
+ returnError,
71
+ getServerWithAuth: sinon_1.default.stub().callsFake((_req, _res, cb) => cb(server)),
72
+ getServerWithMultiAuth: sinon_1.default.stub().returns([Promise.resolve(server)]),
73
+ createWalletLimiter: sinon_1.default.stub().callsArg(2)
74
+ };
75
+ (0, transactions_1.registerTransactionRoutes)(router, context);
76
+ (0, wallets_1.registerWalletRoutes)(router, context);
77
+ const response = {
78
+ status: sinon_1.default.stub().returnsThis(),
79
+ json: sinon_1.default.stub().returnsThis(),
80
+ end: sinon_1.default.stub().returnsThis()
81
+ };
82
+ return { router, server, response, context };
83
+ }
84
+ for (const [method, path, serverMethod] of routes) {
85
+ for (const format of ['number', 'string', 'hex', undefined]) {
86
+ it(`should accept ${format ?? 'unspecified'} on ${method.toUpperCase()} ${path}`, async function () {
87
+ const { router, server, response } = setup();
88
+ const route = router.stack.find(layer => layer.route?.path === path && layer.route.methods[method]);
89
+ const request = { query: { numberFormat: format }, body: {}, params: { id: 'proposal' }, headers: {} };
90
+ await route.route.stack[0].handle(request, response);
91
+ server[serverMethod].callCount.should.equal(1);
92
+ chai.expect(server[serverMethod].firstCall.args[0].numberFormat).to.equal(format);
93
+ response.status.called.should.equal(false);
94
+ response.json.callCount.should.equal(1);
95
+ });
96
+ }
97
+ for (const format of ['invalid', 'bigint', 'raw']) {
98
+ it(`should return 400 without executing ${method.toUpperCase()} ${path} for ${format}`, async function () {
99
+ const { router, server, response, context } = setup();
100
+ const route = router.stack.find(layer => layer.route?.path === path && layer.route.methods[method]);
101
+ const request = { query: { numberFormat: format }, body: {}, params: { id: 'proposal' }, headers: {} };
102
+ await route.route.stack[0].handle(request, response);
103
+ response.status.calledOnceWithExactly(400).should.equal(true);
104
+ response.json.callCount.should.equal(1);
105
+ response.json.firstCall.args[0].code.should.equal('INVALID_NUMBER_FORMAT');
106
+ server[serverMethod].called.should.equal(false);
107
+ if (path === '/v1/wallets/all/')
108
+ context.getServerWithMultiAuth.called.should.equal(false);
109
+ });
110
+ }
111
+ }
112
+ it('should list the supported formats in the validation error', function () {
113
+ errordefinitions_1.Errors.INVALID_NUMBER_FORMAT.message.should.include('number, string, hex');
114
+ });
115
+ });
116
+ //# sourceMappingURL=numberformat-routes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberformat-routes.test.js","sourceRoot":"","sources":["../../test/numberformat-routes.test.ts"],"names":[],"mappings":"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"}