@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.
- package/Dockerfile +1 -1
- package/package.json +5 -5
- package/src/lib/chain/btc/index.ts +3 -2
- package/src/lib/chain/eth/index.ts +134 -117
- package/src/lib/chain/sol/index.ts +1 -1
- package/src/lib/chain/xrp/index.ts +1 -1
- package/src/lib/common/constants.ts +1 -1
- package/src/lib/common/utils.ts +18 -1
- package/src/lib/model/tsskeygen.ts +16 -0
- package/src/lib/routes/maintenance.ts +11 -2
- package/src/lib/routes/middleware/authTssRequest.ts +28 -16
- package/src/lib/routes/middleware/verifyTssMessage.ts +4 -1
- package/src/lib/routes/services.ts +7 -1
- package/src/lib/routes/tss.ts +33 -30
- package/src/lib/routes/wallets.ts +3 -1
- package/src/lib/server.ts +198 -105
- package/src/lib/storage.ts +129 -20
- package/src/lib/tss.ts +111 -7
- package/test/chain/eth.test.ts +70 -0
- package/test/chain/sol.test.ts +1 -1
- package/test/chain/xrp.test.ts +1 -1
- package/test/expressapp.test.ts +243 -0
- package/test/integration/addressReads.test.ts +503 -0
- package/test/integration/bcmonitor.test.ts +44 -0
- package/test/integration/server.test.ts +251 -49
- package/test/integration/tss.test.ts +428 -0
- package/test/integration/walletReads.test.ts +488 -0
- package/ts_build/package.json +4 -4
- package/ts_build/src/lib/chain/btc/index.d.ts.map +1 -1
- package/ts_build/src/lib/chain/btc/index.js +3 -2
- package/ts_build/src/lib/chain/btc/index.js.map +1 -1
- package/ts_build/src/lib/chain/eth/index.d.ts +8 -1
- package/ts_build/src/lib/chain/eth/index.d.ts.map +1 -1
- package/ts_build/src/lib/chain/eth/index.js +114 -102
- package/ts_build/src/lib/chain/eth/index.js.map +1 -1
- package/ts_build/src/lib/chain/sol/index.js +1 -1
- package/ts_build/src/lib/chain/sol/index.js.map +1 -1
- package/ts_build/src/lib/chain/xrp/index.js +1 -1
- package/ts_build/src/lib/chain/xrp/index.js.map +1 -1
- package/ts_build/src/lib/common/constants.d.ts +1 -1
- package/ts_build/src/lib/common/constants.js +1 -1
- package/ts_build/src/lib/common/index.d.ts +2 -1
- package/ts_build/src/lib/common/index.d.ts.map +1 -1
- package/ts_build/src/lib/common/utils.d.ts +1 -0
- package/ts_build/src/lib/common/utils.d.ts.map +1 -1
- package/ts_build/src/lib/common/utils.js +16 -1
- package/ts_build/src/lib/common/utils.js.map +1 -1
- package/ts_build/src/lib/model/tsskeygen.d.ts +10 -0
- package/ts_build/src/lib/model/tsskeygen.d.ts.map +1 -1
- package/ts_build/src/lib/model/tsskeygen.js +3 -0
- package/ts_build/src/lib/model/tsskeygen.js.map +1 -1
- package/ts_build/src/lib/routes/maintenance.d.ts.map +1 -1
- package/ts_build/src/lib/routes/maintenance.js +12 -4
- package/ts_build/src/lib/routes/maintenance.js.map +1 -1
- package/ts_build/src/lib/routes/middleware/authTssRequest.d.ts +6 -2
- package/ts_build/src/lib/routes/middleware/authTssRequest.d.ts.map +1 -1
- package/ts_build/src/lib/routes/middleware/authTssRequest.js +21 -14
- package/ts_build/src/lib/routes/middleware/authTssRequest.js.map +1 -1
- package/ts_build/src/lib/routes/middleware/verifyTssMessage.d.ts.map +1 -1
- package/ts_build/src/lib/routes/middleware/verifyTssMessage.js +2 -1
- package/ts_build/src/lib/routes/middleware/verifyTssMessage.js.map +1 -1
- package/ts_build/src/lib/routes/services.d.ts.map +1 -1
- package/ts_build/src/lib/routes/services.js +6 -1
- package/ts_build/src/lib/routes/services.js.map +1 -1
- package/ts_build/src/lib/routes/tss.d.ts.map +1 -1
- package/ts_build/src/lib/routes/tss.js +32 -30
- package/ts_build/src/lib/routes/tss.js.map +1 -1
- package/ts_build/src/lib/routes/wallets.d.ts.map +1 -1
- package/ts_build/src/lib/routes/wallets.js +2 -1
- package/ts_build/src/lib/routes/wallets.js.map +1 -1
- package/ts_build/src/lib/server.d.ts +24 -3
- package/ts_build/src/lib/server.d.ts.map +1 -1
- package/ts_build/src/lib/server.js +148 -97
- package/ts_build/src/lib/server.js.map +1 -1
- package/ts_build/src/lib/storage.d.ts +26 -10
- package/ts_build/src/lib/storage.d.ts.map +1 -1
- package/ts_build/src/lib/storage.js +99 -20
- package/ts_build/src/lib/storage.js.map +1 -1
- package/ts_build/src/lib/tss.d.ts +12 -0
- package/ts_build/src/lib/tss.d.ts.map +1 -1
- package/ts_build/src/lib/tss.js +64 -5
- package/ts_build/src/lib/tss.js.map +1 -1
- package/ts_build/test/chain/eth.test.js +59 -0
- package/ts_build/test/chain/eth.test.js.map +1 -1
- package/ts_build/test/chain/sol.test.js +1 -1
- package/ts_build/test/chain/sol.test.js.map +1 -1
- package/ts_build/test/chain/xrp.test.js +1 -1
- package/ts_build/test/chain/xrp.test.js.map +1 -1
- package/ts_build/test/expressapp.test.js +222 -0
- package/ts_build/test/expressapp.test.js.map +1 -1
- package/ts_build/test/integration/addressReads.test.d.ts +2 -0
- package/ts_build/test/integration/addressReads.test.d.ts.map +1 -0
- package/ts_build/test/integration/addressReads.test.js +465 -0
- package/ts_build/test/integration/addressReads.test.js.map +1 -0
- package/ts_build/test/integration/bcmonitor.test.js +40 -0
- package/ts_build/test/integration/bcmonitor.test.js.map +1 -1
- package/ts_build/test/integration/server.test.js +228 -48
- package/ts_build/test/integration/server.test.js.map +1 -1
- package/ts_build/test/integration/tss.test.d.ts.map +1 -1
- package/ts_build/test/integration/tss.test.js +344 -0
- package/ts_build/test/integration/tss.test.js.map +1 -1
- package/ts_build/test/integration/walletReads.test.d.ts +2 -0
- package/ts_build/test/integration/walletReads.test.d.ts.map +1 -0
- package/ts_build/test/integration/walletReads.test.js +436 -0
- 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
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
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 (
|
|
5709
|
-
|
|
5710
|
-
server.createAddress(
|
|
5711
|
-
|
|
5712
|
-
|
|
5713
|
-
|
|
5714
|
-
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
|
|
5718
|
-
|
|
5719
|
-
|
|
5720
|
-
|
|
5721
|
-
|
|
5722
|
-
|
|
5723
|
-
|
|
5724
|
-
|
|
5725
|
-
|
|
5726
|
-
|
|
5727
|
-
|
|
5728
|
-
|
|
5729
|
-
|
|
5730
|
-
|
|
5731
|
-
|
|
5732
|
-
|
|
5733
|
-
|
|
5734
|
-
|
|
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';
|