@bitpay-labs/bitcore-wallet-service 11.10.2 → 11.10.4

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 (83) hide show
  1. package/.mocharc.yml +2 -0
  2. package/.nycrc.yml +13 -0
  3. package/bws.example.config.js +4 -3
  4. package/package.json +6 -25
  5. package/src/config.ts +4 -3
  6. package/src/externalservices/moonpay.ts +10 -0
  7. package/src/externalservices/transak.ts +15 -0
  8. package/src/lib/blockchainexplorers/v8.ts +19 -0
  9. package/src/lib/chain/xrp/index.ts +13 -8
  10. package/src/lib/common/defaults.ts +3 -0
  11. package/src/lib/common/utils.ts +3 -3
  12. package/src/lib/emailservice.ts +2 -1
  13. package/src/lib/model/txproposal.ts +4 -0
  14. package/src/lib/pushnotificationsservice.ts +2 -1
  15. package/src/lib/routes/moralis.ts +12 -0
  16. package/src/lib/routes/services.ts +22 -6
  17. package/src/lib/routes/tss.ts +1 -1
  18. package/src/lib/routes/wallets.ts +16 -1
  19. package/src/lib/server.ts +96 -2
  20. package/test/chain/xrp.test.ts +21 -0
  21. package/test/integration/externalservices/moonpay.test.ts +14 -2
  22. package/test/integration/externalservices/moralis.test.ts +476 -0
  23. package/test/integration/server.test.ts +138 -0
  24. package/ts_build/package.json +5 -24
  25. package/ts_build/src/config.d.ts.map +1 -1
  26. package/ts_build/src/config.js.map +1 -1
  27. package/ts_build/src/externalservices/moonpay.d.ts.map +1 -1
  28. package/ts_build/src/externalservices/moonpay.js +6 -0
  29. package/ts_build/src/externalservices/moonpay.js.map +1 -1
  30. package/ts_build/src/externalservices/transak.d.ts.map +1 -1
  31. package/ts_build/src/externalservices/transak.js +15 -0
  32. package/ts_build/src/externalservices/transak.js.map +1 -1
  33. package/ts_build/src/lib/blockchainexplorers/v8.d.ts +3 -0
  34. package/ts_build/src/lib/blockchainexplorers/v8.d.ts.map +1 -1
  35. package/ts_build/src/lib/blockchainexplorers/v8.js +18 -0
  36. package/ts_build/src/lib/blockchainexplorers/v8.js.map +1 -1
  37. package/ts_build/src/lib/chain/xrp/index.d.ts.map +1 -1
  38. package/ts_build/src/lib/chain/xrp/index.js +12 -8
  39. package/ts_build/src/lib/chain/xrp/index.js.map +1 -1
  40. package/ts_build/src/lib/common/defaults.d.ts +1 -0
  41. package/ts_build/src/lib/common/defaults.d.ts.map +1 -1
  42. package/ts_build/src/lib/common/defaults.js +1 -0
  43. package/ts_build/src/lib/common/defaults.js.map +1 -1
  44. package/ts_build/src/lib/common/index.d.ts +2 -1
  45. package/ts_build/src/lib/common/index.d.ts.map +1 -1
  46. package/ts_build/src/lib/common/utils.d.ts +1 -1
  47. package/ts_build/src/lib/common/utils.d.ts.map +1 -1
  48. package/ts_build/src/lib/common/utils.js.map +1 -1
  49. package/ts_build/src/lib/emailservice.d.ts.map +1 -1
  50. package/ts_build/src/lib/emailservice.js +1 -1
  51. package/ts_build/src/lib/emailservice.js.map +1 -1
  52. package/ts_build/src/lib/model/txproposal.d.ts +2 -0
  53. package/ts_build/src/lib/model/txproposal.d.ts.map +1 -1
  54. package/ts_build/src/lib/model/txproposal.js +3 -0
  55. package/ts_build/src/lib/model/txproposal.js.map +1 -1
  56. package/ts_build/src/lib/pushnotificationsservice.d.ts.map +1 -1
  57. package/ts_build/src/lib/pushnotificationsservice.js +1 -1
  58. package/ts_build/src/lib/pushnotificationsservice.js.map +1 -1
  59. package/ts_build/src/lib/routes/moralis.d.ts.map +1 -1
  60. package/ts_build/src/lib/routes/moralis.js +10 -0
  61. package/ts_build/src/lib/routes/moralis.js.map +1 -1
  62. package/ts_build/src/lib/routes/services.d.ts.map +1 -1
  63. package/ts_build/src/lib/routes/services.js +22 -6
  64. package/ts_build/src/lib/routes/services.js.map +1 -1
  65. package/ts_build/src/lib/routes/tss.js +0 -1
  66. package/ts_build/src/lib/routes/tss.js.map +1 -1
  67. package/ts_build/src/lib/routes/wallets.d.ts.map +1 -1
  68. package/ts_build/src/lib/routes/wallets.js +15 -0
  69. package/ts_build/src/lib/routes/wallets.js.map +1 -1
  70. package/ts_build/src/lib/server.d.ts +5 -0
  71. package/ts_build/src/lib/server.d.ts.map +1 -1
  72. package/ts_build/src/lib/server.js +83 -2
  73. package/ts_build/src/lib/server.js.map +1 -1
  74. package/ts_build/test/chain/xrp.test.js +19 -0
  75. package/ts_build/test/chain/xrp.test.js.map +1 -1
  76. package/ts_build/test/integration/externalservices/moonpay.test.js +14 -2
  77. package/ts_build/test/integration/externalservices/moonpay.test.js.map +1 -1
  78. package/ts_build/test/integration/externalservices/moralis.test.d.ts +2 -0
  79. package/ts_build/test/integration/externalservices/moralis.test.d.ts.map +1 -0
  80. package/ts_build/test/integration/externalservices/moralis.test.js +455 -0
  81. package/ts_build/test/integration/externalservices/moralis.test.js.map +1 -0
  82. package/ts_build/test/integration/server.test.js +115 -0
  83. package/ts_build/test/integration/server.test.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moralis.test.js","sourceRoot":"","sources":["../../../../test/integration/externalservices/moralis.test.ts"],"names":[],"mappings":"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"}
@@ -7540,6 +7540,121 @@ describe('Wallet service', function () {
7540
7540
  }
7541
7541
  assignedNonces.should.deep.equal([10, 11, 12]);
7542
7542
  });
7543
+ async function prepareSignAndBroadcast(txp) {
7544
+ const withNonce = await util_1.default.promisify(server.prepareTx).call(server, { txProposalId: txp.id });
7545
+ const fetched = await util_1.default.promisify(server.getTx).call(server, { txProposalId: txp.id });
7546
+ const signatures = helpers_1.default.clientSign(fetched, TestData.copayers[0].xPrivKey_44H_0H_0H);
7547
+ const signed = await util_1.default.promisify(server.signTx).call(server, { txProposalId: txp.id, signatures });
7548
+ helpers_1.default.stubBroadcast(signed.txid);
7549
+ const broadcasted = await util_1.default.promisify(server.broadcastTx).call(server, { txProposalId: txp.id });
7550
+ broadcasted.status.should.equal('broadcasted');
7551
+ return withNonce;
7552
+ }
7553
+ it('should not reuse the nonce of a broadcasted-but-unmined txp', async function () {
7554
+ blockchainExplorer.getTransactionCount = sinon_1.default.stub().callsArgWith(1, null, '10');
7555
+ const txp1 = await helpers_1.default.createAndPublishTx(server, {
7556
+ outputs: [{ toAddress: ETH_ADDR, amount: 1000 }],
7557
+ feePerKb: 123e2,
7558
+ from: fromAddr,
7559
+ deferNonce: true
7560
+ }, TestData.copayers[0].privKey_1H_0);
7561
+ const prepared1 = await prepareSignAndBroadcast(txp1);
7562
+ prepared1.nonce.should.equal(10);
7563
+ const txp2 = await helpers_1.default.createAndPublishTx(server, {
7564
+ outputs: [{ toAddress: ETH_ADDR, amount: 2000 }],
7565
+ feePerKb: 123e2,
7566
+ from: fromAddr,
7567
+ deferNonce: true
7568
+ }, TestData.copayers[0].privKey_1H_0);
7569
+ const prepared2 = await util_1.default.promisify(server.prepareTx).call(server, { txProposalId: txp2.id });
7570
+ prepared2.nonce.should.equal(11);
7571
+ });
7572
+ it('should assign sequential nonces when each txp is broadcast before the next is prepared', async function () {
7573
+ blockchainExplorer.getTransactionCount = sinon_1.default.stub().callsArgWith(1, null, '10');
7574
+ const assignedNonces = [];
7575
+ for (let i = 0; i < 3; i++) {
7576
+ const txp = await helpers_1.default.createAndPublishTx(server, {
7577
+ outputs: [{ toAddress: ETH_ADDR, amount: 1000 * (i + 1) }],
7578
+ feePerKb: 123e2,
7579
+ from: fromAddr,
7580
+ deferNonce: true
7581
+ }, TestData.copayers[0].privKey_1H_0);
7582
+ const prepared = await prepareSignAndBroadcast(txp);
7583
+ assignedNonces.push(prepared.nonce);
7584
+ }
7585
+ assignedNonces.should.deep.equal([10, 11, 12]);
7586
+ });
7587
+ it('should not skip nonces of broadcasted txps already counted by the chain', async function () {
7588
+ blockchainExplorer.getTransactionCount = sinon_1.default.stub().callsArgWith(1, null, '10');
7589
+ const txp1 = await helpers_1.default.createAndPublishTx(server, {
7590
+ outputs: [{ toAddress: ETH_ADDR, amount: 1000 }],
7591
+ feePerKb: 123e2,
7592
+ from: fromAddr,
7593
+ deferNonce: true
7594
+ }, TestData.copayers[0].privKey_1H_0);
7595
+ const prepared1 = await prepareSignAndBroadcast(txp1);
7596
+ prepared1.nonce.should.equal(10);
7597
+ blockchainExplorer.getTransactionCount = sinon_1.default.stub().callsArgWith(1, null, '11');
7598
+ const txp2 = await helpers_1.default.createAndPublishTx(server, {
7599
+ outputs: [{ toAddress: ETH_ADDR, amount: 2000 }],
7600
+ feePerKb: 123e2,
7601
+ from: fromAddr,
7602
+ deferNonce: true
7603
+ }, TestData.copayers[0].privKey_1H_0);
7604
+ const prepared2 = await util_1.default.promisify(server.prepareTx).call(server, { txProposalId: txp2.id });
7605
+ prepared2.nonce.should.equal(11);
7606
+ });
7607
+ it('should reject signing a deferred txp whose nonce collides with a broadcasted-but-unmined txp', async function () {
7608
+ blockchainExplorer.getTransactionCount = sinon_1.default.stub().callsArgWith(1, null, '10');
7609
+ const txp1 = await helpers_1.default.createAndPublishTx(server, {
7610
+ outputs: [{ toAddress: ETH_ADDR, amount: 1000 }],
7611
+ feePerKb: 123e2,
7612
+ from: fromAddr,
7613
+ deferNonce: true
7614
+ }, TestData.copayers[0].privKey_1H_0);
7615
+ const prepared1 = await prepareSignAndBroadcast(txp1);
7616
+ prepared1.nonce.should.equal(10);
7617
+ const txp2 = await helpers_1.default.createAndPublishTx(server, {
7618
+ outputs: [{ toAddress: ETH_ADDR, amount: 2000 }],
7619
+ feePerKb: 123e2,
7620
+ from: fromAddr,
7621
+ deferNonce: true
7622
+ }, TestData.copayers[0].privKey_1H_0);
7623
+ const prepared2 = await util_1.default.promisify(server.prepareTx).call(server, { txProposalId: txp2.id });
7624
+ prepared2.nonce.should.equal(11);
7625
+ const fetched = await util_1.default.promisify(server.getTx).call(server, { txProposalId: txp2.id });
7626
+ const signatures = helpers_1.default.clientSign(fetched, TestData.copayers[0].xPrivKey_44H_0H_0H);
7627
+ try {
7628
+ await util_1.default.promisify(server.signTx).call(server, { txProposalId: txp2.id, signatures, nonce: 10 });
7629
+ throw new Error('should have thrown');
7630
+ }
7631
+ catch (err) {
7632
+ err.should.be.instanceof(clienterror_1.ClientError);
7633
+ err.code.should.equal('TX_NONCE_CONFLICT');
7634
+ }
7635
+ });
7636
+ it('should allow signing a non-deferred txp that reuses an in-flight nonce (speed-up/replacement)', async function () {
7637
+ blockchainExplorer.getTransactionCount = sinon_1.default.stub().callsArgWith(1, null, '10');
7638
+ const txp1 = await helpers_1.default.createAndPublishTx(server, {
7639
+ outputs: [{ toAddress: ETH_ADDR, amount: 1000 }],
7640
+ feePerKb: 123e2,
7641
+ from: fromAddr
7642
+ }, TestData.copayers[0].privKey_1H_0);
7643
+ txp1.nonce.should.equal('10');
7644
+ const sigs1 = helpers_1.default.clientSign(txp1, TestData.copayers[0].xPrivKey_44H_0H_0H);
7645
+ const signed1 = await util_1.default.promisify(server.signTx).call(server, { txProposalId: txp1.id, signatures: sigs1 });
7646
+ helpers_1.default.stubBroadcast(signed1.txid);
7647
+ await util_1.default.promisify(server.broadcastTx).call(server, { txProposalId: txp1.id });
7648
+ const txp2 = await helpers_1.default.createAndPublishTx(server, {
7649
+ outputs: [{ toAddress: ETH_ADDR, amount: 1000 }],
7650
+ feePerKb: 246e2,
7651
+ from: fromAddr
7652
+ }, TestData.copayers[0].privKey_1H_0);
7653
+ txp2.nonce.should.equal('10');
7654
+ const sigs2 = helpers_1.default.clientSign(txp2, TestData.copayers[0].xPrivKey_44H_0H_0H);
7655
+ const signed2 = await util_1.default.promisify(server.signTx).call(server, { txProposalId: txp2.id, signatures: sigs2 });
7656
+ signed2.status.should.equal('accepted');
7657
+ });
7543
7658
  it('should return txp with nonce set (extensibility baseline)', async function () {
7544
7659
  const txp = await helpers_1.default.createAndPublishTx(server, {
7545
7660
  outputs: [{ toAddress: ETH_ADDR, amount: 8000 }],