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

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 (105) hide show
  1. package/Dockerfile +1 -1
  2. package/package.json +5 -5
  3. package/src/lib/chain/btc/index.ts +3 -2
  4. package/src/lib/chain/eth/index.ts +134 -117
  5. package/src/lib/chain/sol/index.ts +1 -1
  6. package/src/lib/chain/xrp/index.ts +1 -1
  7. package/src/lib/common/constants.ts +1 -1
  8. package/src/lib/common/utils.ts +18 -1
  9. package/src/lib/model/tsskeygen.ts +16 -0
  10. package/src/lib/routes/maintenance.ts +11 -2
  11. package/src/lib/routes/middleware/authTssRequest.ts +28 -16
  12. package/src/lib/routes/middleware/verifyTssMessage.ts +4 -1
  13. package/src/lib/routes/services.ts +7 -1
  14. package/src/lib/routes/tss.ts +33 -30
  15. package/src/lib/routes/wallets.ts +3 -1
  16. package/src/lib/server.ts +198 -105
  17. package/src/lib/storage.ts +129 -20
  18. package/src/lib/tss.ts +111 -7
  19. package/test/chain/eth.test.ts +70 -0
  20. package/test/chain/sol.test.ts +1 -1
  21. package/test/chain/xrp.test.ts +1 -1
  22. package/test/expressapp.test.ts +243 -0
  23. package/test/integration/addressReads.test.ts +503 -0
  24. package/test/integration/bcmonitor.test.ts +44 -0
  25. package/test/integration/server.test.ts +251 -49
  26. package/test/integration/tss.test.ts +428 -0
  27. package/test/integration/walletReads.test.ts +488 -0
  28. package/ts_build/package.json +4 -4
  29. package/ts_build/src/lib/chain/btc/index.d.ts.map +1 -1
  30. package/ts_build/src/lib/chain/btc/index.js +3 -2
  31. package/ts_build/src/lib/chain/btc/index.js.map +1 -1
  32. package/ts_build/src/lib/chain/eth/index.d.ts +8 -1
  33. package/ts_build/src/lib/chain/eth/index.d.ts.map +1 -1
  34. package/ts_build/src/lib/chain/eth/index.js +114 -102
  35. package/ts_build/src/lib/chain/eth/index.js.map +1 -1
  36. package/ts_build/src/lib/chain/sol/index.js +1 -1
  37. package/ts_build/src/lib/chain/sol/index.js.map +1 -1
  38. package/ts_build/src/lib/chain/xrp/index.js +1 -1
  39. package/ts_build/src/lib/chain/xrp/index.js.map +1 -1
  40. package/ts_build/src/lib/common/constants.d.ts +1 -1
  41. package/ts_build/src/lib/common/constants.js +1 -1
  42. package/ts_build/src/lib/common/index.d.ts +2 -1
  43. package/ts_build/src/lib/common/index.d.ts.map +1 -1
  44. package/ts_build/src/lib/common/utils.d.ts +1 -0
  45. package/ts_build/src/lib/common/utils.d.ts.map +1 -1
  46. package/ts_build/src/lib/common/utils.js +16 -1
  47. package/ts_build/src/lib/common/utils.js.map +1 -1
  48. package/ts_build/src/lib/model/tsskeygen.d.ts +10 -0
  49. package/ts_build/src/lib/model/tsskeygen.d.ts.map +1 -1
  50. package/ts_build/src/lib/model/tsskeygen.js +3 -0
  51. package/ts_build/src/lib/model/tsskeygen.js.map +1 -1
  52. package/ts_build/src/lib/routes/maintenance.d.ts.map +1 -1
  53. package/ts_build/src/lib/routes/maintenance.js +12 -4
  54. package/ts_build/src/lib/routes/maintenance.js.map +1 -1
  55. package/ts_build/src/lib/routes/middleware/authTssRequest.d.ts +6 -2
  56. package/ts_build/src/lib/routes/middleware/authTssRequest.d.ts.map +1 -1
  57. package/ts_build/src/lib/routes/middleware/authTssRequest.js +21 -14
  58. package/ts_build/src/lib/routes/middleware/authTssRequest.js.map +1 -1
  59. package/ts_build/src/lib/routes/middleware/verifyTssMessage.d.ts.map +1 -1
  60. package/ts_build/src/lib/routes/middleware/verifyTssMessage.js +2 -1
  61. package/ts_build/src/lib/routes/middleware/verifyTssMessage.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 +6 -1
  64. package/ts_build/src/lib/routes/services.js.map +1 -1
  65. package/ts_build/src/lib/routes/tss.d.ts.map +1 -1
  66. package/ts_build/src/lib/routes/tss.js +32 -30
  67. package/ts_build/src/lib/routes/tss.js.map +1 -1
  68. package/ts_build/src/lib/routes/wallets.d.ts.map +1 -1
  69. package/ts_build/src/lib/routes/wallets.js +2 -1
  70. package/ts_build/src/lib/routes/wallets.js.map +1 -1
  71. package/ts_build/src/lib/server.d.ts +24 -3
  72. package/ts_build/src/lib/server.d.ts.map +1 -1
  73. package/ts_build/src/lib/server.js +148 -97
  74. package/ts_build/src/lib/server.js.map +1 -1
  75. package/ts_build/src/lib/storage.d.ts +26 -10
  76. package/ts_build/src/lib/storage.d.ts.map +1 -1
  77. package/ts_build/src/lib/storage.js +99 -20
  78. package/ts_build/src/lib/storage.js.map +1 -1
  79. package/ts_build/src/lib/tss.d.ts +12 -0
  80. package/ts_build/src/lib/tss.d.ts.map +1 -1
  81. package/ts_build/src/lib/tss.js +64 -5
  82. package/ts_build/src/lib/tss.js.map +1 -1
  83. package/ts_build/test/chain/eth.test.js +59 -0
  84. package/ts_build/test/chain/eth.test.js.map +1 -1
  85. package/ts_build/test/chain/sol.test.js +1 -1
  86. package/ts_build/test/chain/sol.test.js.map +1 -1
  87. package/ts_build/test/chain/xrp.test.js +1 -1
  88. package/ts_build/test/chain/xrp.test.js.map +1 -1
  89. package/ts_build/test/expressapp.test.js +222 -0
  90. package/ts_build/test/expressapp.test.js.map +1 -1
  91. package/ts_build/test/integration/addressReads.test.d.ts +2 -0
  92. package/ts_build/test/integration/addressReads.test.d.ts.map +1 -0
  93. package/ts_build/test/integration/addressReads.test.js +465 -0
  94. package/ts_build/test/integration/addressReads.test.js.map +1 -0
  95. package/ts_build/test/integration/bcmonitor.test.js +40 -0
  96. package/ts_build/test/integration/bcmonitor.test.js.map +1 -1
  97. package/ts_build/test/integration/server.test.js +228 -48
  98. package/ts_build/test/integration/server.test.js.map +1 -1
  99. package/ts_build/test/integration/tss.test.d.ts.map +1 -1
  100. package/ts_build/test/integration/tss.test.js +344 -0
  101. package/ts_build/test/integration/tss.test.js.map +1 -1
  102. package/ts_build/test/integration/walletReads.test.d.ts +2 -0
  103. package/ts_build/test/integration/walletReads.test.d.ts.map +1 -0
  104. package/ts_build/test/integration/walletReads.test.js +436 -0
  105. package/ts_build/test/integration/walletReads.test.js.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"bcmonitor.test.js","sourceRoot":"","sources":["../../../test/integration/bcmonitor.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bcmonitor.test.js","sourceRoot":"","sources":["../../../test/integration/bcmonitor.test.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const chai = __importStar(require("chai"));
40
40
  require("chai/register-should");
41
41
  const util_1 = __importDefault(require("util"));
42
+ const assert_1 = __importDefault(require("assert"));
42
43
  const sinon_1 = __importDefault(require("sinon"));
43
44
  const http_1 = __importDefault(require("http"));
44
45
  const request_1 = __importDefault(require("request"));
@@ -1628,6 +1629,53 @@ describe('Wallet service', function () {
1628
1629
  wallet.copayers.length.should.equal(0);
1629
1630
  });
1630
1631
  });
1632
+ describe('TSS wallets (concurrent join)', function () {
1633
+ it('should keep a copayer that joins while the wallet is being registered', async function () {
1634
+ const server = new server_1.WalletService();
1635
+ const copayerIds = [0, 1].map(i => Model.Copayer.xPubToCopayerId('btc', TestData.copayers[i].xPubKey_44H_0H_0H));
1636
+ const session = tsskeygen_1.TssKeyGenModel.create({
1637
+ id: 'tss-join-during-register-test-session',
1638
+ message: { partyId: 0, broadcastMessages: [], p2pMessages: [], publicKey: 'dummy', round: 0 },
1639
+ n: 2,
1640
+ copayerId: copayerIds[0],
1641
+ version: Defaults.TSS_KEYGEN_SCHEME_VERSION
1642
+ });
1643
+ session.participants[1] = copayerIds[1];
1644
+ session.sharedPublicKey = 'dummy-shared-public-key';
1645
+ await server.storage.db.collection('tss_keygen').deleteMany({ id: session.id });
1646
+ await server.storage.storeTssKeyGenSession({ doc: session });
1647
+ const walletId = await util_1.default.promisify(server.createWallet).call(server, {
1648
+ name: 'tss wallet',
1649
+ m: 1,
1650
+ n: 1,
1651
+ pubKey: TestData.keyPair.pub,
1652
+ coin: 'btc',
1653
+ tssKeyId: session.id,
1654
+ });
1655
+ const [creatorOpts, joinerOpts] = [0, 1].map(i => helpers_1.default.getSignedCopayerOpts({
1656
+ walletId,
1657
+ name: 'copayer ' + (i + 1),
1658
+ xPubKey: TestData.copayers[i].xPubKey_44H_0H_0H,
1659
+ requestPubKey: TestData.copayers[i].pubKey_1H_0,
1660
+ }));
1661
+ const { copayerId } = await util_1.default.promisify(server.joinWallet).call(server, creatorOpts);
1662
+ const creatorServer = await helpers_1.default.getAuthServer(copayerId);
1663
+ creatorServer.checkWalletSync = function (a, b, simple, cb) {
1664
+ if (simple)
1665
+ return cb(null, false);
1666
+ return cb(null, true);
1667
+ };
1668
+ blockchainExplorer.register = sinon_1.default.stub().callsFake((wallet, cb) => server.joinWallet(joinerOpts, cb));
1669
+ await util_1.default.promisify(creatorServer.getStatus).call(creatorServer, { includeExtendedInfo: true });
1670
+ blockchainExplorer.register.calledOnce.should.equal(true);
1671
+ const registeredWallet = blockchainExplorer.register.firstCall.args[0];
1672
+ const wallet = await util_1.default.promisify(server.storage.fetchWallet).call(server.storage, walletId);
1673
+ wallet.copayers.length.should.equal(2);
1674
+ wallet.beRegistered.should.equal(true);
1675
+ wallet.beAuthPrivateKey2.should.equal(registeredWallet.beAuthPrivateKey2);
1676
+ wallet.beAuthPublicKey2.should.equal(registeredWallet.beAuthPublicKey2);
1677
+ });
1678
+ });
1631
1679
  });
1632
1680
  describe('#removeWallet', function () {
1633
1681
  let server;
@@ -2669,28 +2717,21 @@ describe('Wallet service', function () {
2669
2717
  should.exist(address);
2670
2718
  utxo.path.should.equal(address.path);
2671
2719
  utxo.publicKeys.should.deep.equal(address.publicKeys);
2720
+ utxo.isChange.should.equal(false);
2672
2721
  done();
2673
2722
  });
2674
2723
  });
2675
2724
  });
2676
2725
  });
2677
- it('should get UTXOs for wallet addresses', function (done) {
2678
- helpers_1.default.stubUtxos(server, wallet, [1, 2]).then(function () {
2679
- server.getUtxos({}, function (err, utxos) {
2680
- should.not.exist(err);
2681
- should.exist(utxos);
2682
- utxos.length.should.equal(2);
2683
- utxos.reduce((sum, u) => sum += u.satoshis, 0).should.equal(3 * 1e8);
2684
- server.getAddresses({ noChange: true }, function (err, addresses) {
2685
- const utxo = utxos[0];
2686
- const address = addresses.find(a => a.address === utxo.address);
2687
- should.exist(address);
2688
- utxo.path.should.equal(address.path);
2689
- utxo.publicKeys.should.deep.equal(address.publicKeys);
2690
- done();
2691
- });
2692
- });
2693
- });
2726
+ it('should identify UTXOs for change addresses', async function () {
2727
+ const address = await util_1.default.promisify(server.createAddress).call(server, { isChange: true });
2728
+ await helpers_1.default.stubUtxos(server, wallet, [1], { addresses: [address] });
2729
+ const utxos = await util_1.default.promisify(server.getUtxos).call(server, {});
2730
+ utxos.length.should.equal(1);
2731
+ utxos[0].address.should.equal(address.address);
2732
+ utxos[0].path.should.equal(address.path);
2733
+ utxos[0].publicKeys.should.deep.equal(address.publicKeys);
2734
+ utxos[0].isChange.should.equal(true);
2694
2735
  });
2695
2736
  it('should return empty UTXOs for specific addresses if network mismatch', function (done) {
2696
2737
  helpers_1.default.stubUtxos(server, wallet, [1, 2, 3]).then(function (utxos) {
@@ -4542,7 +4583,6 @@ describe('Wallet service', function () {
4542
4583
  toAddress: addressStr,
4543
4584
  amount: ts,
4544
4585
  }],
4545
- gasPrice: 1,
4546
4586
  feeLevel: level,
4547
4587
  from: fromAddr,
4548
4588
  }, flags);
@@ -5705,36 +5745,35 @@ describe('Wallet service', function () {
5705
5745
  coin: 'eth',
5706
5746
  }));
5707
5747
  });
5708
- it('should allow to create a TX with fee and no inputs', function (done) {
5709
- helpers_1.default.stubFeeLevels({});
5710
- server.createAddress({}, from => {
5711
- helpers_1.default.stubUtxos(server, wallet, [1, 2]).then(function () {
5712
- const amount = 0.8 * 1e8;
5713
- const txOpts = {
5714
- outputs: [{
5715
- toAddress: '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A',
5716
- amount: amount,
5717
- }],
5718
- from,
5719
- message: 'some message',
5720
- customData: 'some custom data',
5721
- fee: 252000000000000,
5722
- };
5723
- server.createTx(txOpts, function (err, tx) {
5724
- should.not.exist(err);
5725
- should.exist(tx);
5726
- tx.outputs.should.deep.equal([{
5727
- toAddress: '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A',
5728
- gasLimit: 21000,
5729
- amount: amount,
5730
- }]);
5731
- tx.gasPrice.should.equal(12000000000);
5732
- tx.outputs[0].gasLimit.should.equal(21000);
5733
- (tx.gasPrice * tx.outputs[0].gasLimit).should.equal(txOpts.fee);
5734
- done();
5735
- });
5736
- });
5737
- });
5748
+ it('should allow to create a TX with fee and no inputs', async function () {
5749
+ const feeLevels = sinon_1.default.stub(server, 'getFeeLevels').callsArgWith(1, new Error('Unexpected fee estimation'));
5750
+ await util_1.default.promisify(server.createAddress).call(server, {});
5751
+ await helpers_1.default.stubUtxos(server, wallet, [1, 2]);
5752
+ const amount = 0.8 * 1e8;
5753
+ for (const fee of [252000000000000, '252000000000000']) {
5754
+ const txOpts = {
5755
+ outputs: [{
5756
+ toAddress: '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A',
5757
+ amount: amount,
5758
+ }],
5759
+ message: 'some message',
5760
+ customData: 'some custom data',
5761
+ fee,
5762
+ };
5763
+ const tx = await util_1.default.promisify(server.createTx).call(server, txOpts);
5764
+ should.exist(tx);
5765
+ tx.outputs.should.deep.equal([{
5766
+ toAddress: '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A',
5767
+ gasLimit: 21000,
5768
+ amount: amount,
5769
+ }]);
5770
+ tx.fee.should.equal(Number(fee));
5771
+ tx.gasPrice.should.equal(12000000000);
5772
+ (tx.gasPrice * tx.outputs[0].gasLimit).should.equal(Number(fee));
5773
+ const [raw] = tx.getRawTx();
5774
+ CWC.ethers.Transaction.from(raw).gasPrice.should.equal(12000000000n);
5775
+ }
5776
+ feeLevels.called.should.be.false;
5738
5777
  });
5739
5778
  it('should allow to create a TX with multiple outputs and set the correct fee', function (done) {
5740
5779
  helpers_1.default.stubFeeLevels({});
@@ -5799,6 +5838,147 @@ describe('Wallet service', function () {
5799
5838
  });
5800
5839
  });
5801
5840
  });
5841
+ describe('#createTX EVM gas overrides', function () {
5842
+ let server;
5843
+ let wallet;
5844
+ const destination = '0x37d7B3bBD88EFdE6a93cF74D2F5b0385D3E3B08A';
5845
+ const makeOpts = (overrides = {}) => ({
5846
+ outputs: [{ toAddress: destination, amount: 1000000, gasLimit: 100000 }],
5847
+ nonce: 1,
5848
+ ...overrides
5849
+ });
5850
+ beforeEach(async function () {
5851
+ ({ server, wallet } = await helpers_1.default.createAndJoinWallet(1, 1, { coin: 'eth' }));
5852
+ await util_1.default.promisify(server.createAddress).call(server, {});
5853
+ await helpers_1.default.stubUtxos(server, wallet, [1]);
5854
+ });
5855
+ for (const scenario of [
5856
+ { name: 'type 0', fees: { gasPrice: 3000000000 }, tokenAddress: undefined },
5857
+ { name: 'type 0 token', fees: { gasPrice: 3000000000 }, tokenAddress: TOKENS[0] },
5858
+ { name: 'type 2 native', fees: { txType: 2, maxGasFee: 3000000000, priorityGasFee: 1000000000 }, tokenAddress: undefined },
5859
+ { name: 'type 2 token', fees: { txType: 2, maxGasFee: 3000000000, priorityGasFee: 1000000000 }, tokenAddress: TOKENS[0] }
5860
+ ]) {
5861
+ it(`should preserve ${scenario.name} overrides through publication, signing and broadcast`, async function () {
5862
+ const feeLevels = sinon_1.default.stub(server, 'getFeeLevels').callsArgWith(1, new Error('Unexpected fee estimation'));
5863
+ const maxFee = sinon_1.default.stub(server, 'estimateFee').rejects(new Error('Unexpected fee estimation'));
5864
+ const priorityFee = sinon_1.default.stub(server, 'estimatePriorityFee').rejects(new Error('Unexpected fee estimation'));
5865
+ const txp = await util_1.default.promisify(server.createTx).call(server, makeOpts({
5866
+ ...scenario.fees, tokenAddress: scenario.tokenAddress, feeLevel: 'economy'
5867
+ }));
5868
+ await util_1.default.promisify(server.publishTx).call(server, helpers_1.default.getProposalSignatureOpts(txp, TestData.copayers[0].privKey_1H_0));
5869
+ await util_1.default.promisify(server.signTx).call(server, {
5870
+ txProposalId: txp.id,
5871
+ signatures: helpers_1.default.clientSign(txp, TestData.copayers[0].xPrivKey_44H_0H_0H)
5872
+ });
5873
+ const accepted = await util_1.default.promisify(server.getTx).call(server, { txProposalId: txp.id });
5874
+ accepted.status.should.equal('accepted');
5875
+ const signedRaw = accepted.getRawTx();
5876
+ helpers_1.default.stubBroadcast(accepted.txid);
5877
+ await util_1.default.promisify(server.broadcastTx).call(server, { txProposalId: txp.id });
5878
+ blockchainExplorer.broadcast.calledOnce.should.be.true;
5879
+ blockchainExplorer.broadcast.firstCall.args[0].should.deep.equal(signedRaw);
5880
+ const stored = await util_1.default.promisify(server.getTx).call(server, { txProposalId: txp.id });
5881
+ stored.status.should.equal('broadcasted');
5882
+ stored.txid.should.equal(accepted.txid);
5883
+ should.not.exist(stored.feeLevel);
5884
+ stored.fee.should.equal(300000000000000);
5885
+ for (const [key, value] of Object.entries(scenario.fees)) {
5886
+ stored[key].should.equal(value);
5887
+ }
5888
+ const [raw] = stored.getRawTx();
5889
+ const tx = CWC.ethers.Transaction.from(raw);
5890
+ tx.isSigned().should.be.true;
5891
+ tx.type.should.equal(scenario.fees.txType || 0);
5892
+ if (scenario.fees.txType === 2) {
5893
+ tx.maxFeePerGas.should.equal(3000000000n);
5894
+ tx.maxPriorityFeePerGas.should.equal(1000000000n);
5895
+ }
5896
+ else {
5897
+ tx.gasPrice.should.equal(3000000000n);
5898
+ }
5899
+ feeLevels.called.should.be.false;
5900
+ maxFee.called.should.be.false;
5901
+ priorityFee.called.should.be.false;
5902
+ });
5903
+ }
5904
+ it('should preserve a zero priority fee estimated for ARB', async function () {
5905
+ ({ server, wallet } = await helpers_1.default.createAndJoinWallet(1, 1, { coin: 'arb' }));
5906
+ await util_1.default.promisify(server.createAddress).call(server, {});
5907
+ sinon_1.default.replace(blockchainExplorer, 'getBalance', sinon_1.default.stub().callsArgWith(1, null, { confirmed: 1e18, unconfirmed: 0, balance: 1e18 }));
5908
+ helpers_1.default.stubFeeLevels({});
5909
+ sinon_1.default.stub(server, 'estimateFee').resolves(3000000000);
5910
+ sinon_1.default.stub(server, 'estimatePriorityFee').resolves(0);
5911
+ const txp = await util_1.default.promisify(server.createTx).call(server, makeOpts({ txType: 2 }));
5912
+ txp.priorityGasFee.should.equal(0);
5913
+ const [raw] = txp.getRawTx();
5914
+ CWC.ethers.Transaction.from(raw).maxPriorityFeePerGas.should.equal(0n);
5915
+ });
5916
+ it('should preserve automatic type 2 fee estimation without overrides', async function () {
5917
+ helpers_1.default.stubFeeLevels({});
5918
+ sinon_1.default.stub(server, 'estimateFee').resolves(4500000000);
5919
+ sinon_1.default.stub(server, 'estimatePriorityFee').resolves(1000000000);
5920
+ const txp = await util_1.default.promisify(server.createTx).call(server, makeOpts({ txType: 2 }));
5921
+ txp.feeLevel.should.equal('normal');
5922
+ txp.gasPrice.should.equal(1000000000);
5923
+ txp.fee.should.equal(100000000000000);
5924
+ txp.maxGasFee.should.equal(4500000000);
5925
+ txp.priorityGasFee.should.equal(1000000000);
5926
+ const [raw] = txp.getRawTx();
5927
+ const tx = CWC.ethers.Transaction.from(raw);
5928
+ tx.maxFeePerGas.should.equal(4500000000n);
5929
+ tx.maxPriorityFeePerGas.should.equal(1000000000n);
5930
+ });
5931
+ it('should enforce the existing MATIC minimum for explicit priority fees', async function () {
5932
+ ({ server, wallet } = await helpers_1.default.createAndJoinWallet(1, 1, { coin: 'matic' }));
5933
+ await util_1.default.promisify(server.createAddress).call(server, {});
5934
+ sinon_1.default.replace(blockchainExplorer, 'getBalance', sinon_1.default.stub().callsArgWith(1, null, { confirmed: 1e18, unconfirmed: 0, balance: 1e18 }));
5935
+ const fees = { txType: 2, maxGasFee: 40000000000, priorityGasFee: 30000000000 };
5936
+ await assert_1.default.rejects(util_1.default.promisify(server.createTx).call(server, makeOpts({ ...fees, priorityGasFee: fees.priorityGasFee - 1 })), {
5937
+ message: 'priorityGasFee must be at least 30000000000 wei for matic'
5938
+ });
5939
+ const txp = await util_1.default.promisify(server.createTx).call(server, makeOpts(fees));
5940
+ const [raw] = txp.getRawTx();
5941
+ CWC.ethers.Transaction.from(raw).maxPriorityFeePerGas.should.equal(30000000000n);
5942
+ txp.fee.should.equal(fees.maxGasFee * 100000);
5943
+ });
5944
+ it('should reject invalid or conflicting gas overrides', async function () {
5945
+ const requests = [
5946
+ ...[
5947
+ { key: 'gasPrice', values: [0, 1.5, '1000', Number.MAX_SAFE_INTEGER + 1] },
5948
+ { key: 'maxGasFee', values: [0] },
5949
+ { key: 'priorityGasFee', values: [0] }
5950
+ ].flatMap(({ key, values }) => values.map(value => ({
5951
+ params: { [key]: value }, message: `${key} must be a positive safe integer in wei`
5952
+ }))),
5953
+ { params: { gasPrice: 1000, txType: 2 }, message: 'gasPrice requires a type 0 transaction' },
5954
+ { params: { maxGasFee: 1000 }, message: 'maxGasFee and priorityGasFee require a type 2 transaction' },
5955
+ { params: { priorityGasFee: 1000, txType: 0 }, message: 'maxGasFee and priorityGasFee require a type 2 transaction' },
5956
+ { params: { maxGasFee: 1000, txType: 2 }, message: 'maxGasFee and priorityGasFee must be supplied together' },
5957
+ { params: { priorityGasFee: 1000, txType: 2 }, message: 'maxGasFee and priorityGasFee must be supplied together' },
5958
+ { params: { gasPrice: 1000, feePerKb: 1000 }, message: 'Gas fee overrides cannot be combined with feePerKb or fee' },
5959
+ { params: { gasPrice: 1000, fee: 1000 }, message: 'Gas fee overrides cannot be combined with feePerKb or fee' },
5960
+ { params: { gasPrice: 1000, sendMax: true }, message: 'Gas fee overrides are not supported with sendMax' },
5961
+ { params: { txType: 2, maxGasFee: 1000, priorityGasFee: 2000 }, message: 'priorityGasFee must not exceed maxGasFee' }
5962
+ ];
5963
+ for (const { params, message } of requests) {
5964
+ await assert_1.default.rejects(util_1.default.promisify(server.createTx).call(server, makeOpts(params)), { message });
5965
+ }
5966
+ await assert_1.default.rejects(util_1.default.promisify(server._validateAndSanitizeTxOpts).call(server, { ...wallet, chain: 'btc' }, makeOpts({ gasPrice: 1000 })), {
5967
+ message: 'Gas fee overrides are only supported for EVM chains'
5968
+ });
5969
+ });
5970
+ for (const tokenAddress of [undefined, TOKENS[0]]) {
5971
+ it(`should reserve the overridden fee for ${tokenAddress ? 'token' : 'native'} proposals`, async function () {
5972
+ helpers_1.default.stubFeeLevels({});
5973
+ await helpers_1.default.stubUtxos(server, wallet, [0.0002]);
5974
+ const defaultTxp = await util_1.default.promisify(server.createTx).call(server, makeOpts({ tokenAddress }));
5975
+ defaultTxp.fee.should.equal(100000000000000);
5976
+ await assert_1.default.rejects(util_1.default.promisify(server.createTx).call(server, makeOpts({
5977
+ txType: 2, maxGasFee: 3000000000, priorityGasFee: 1000000000, tokenAddress
5978
+ })), { code: tokenAddress ? 'INSUFFICIENT_ETH_FEE' : 'INSUFFICIENT_FUNDS_FOR_FEE' });
5979
+ });
5980
+ }
5981
+ });
5802
5982
  describe('cashAddr backwards compat', function () {
5803
5983
  it('should create a BCH tx proposal with cashaddr outputs (w/o prefix) and return Copay addr', function (done) {
5804
5984
  const copayAddr = 'CPrtPWbp8cCftTQu5fzuLG5zPJNDHMMf8X';