@ledgerhq/hw-app-eth 7.1.1 → 7.2.0-nightly.20260107024347
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/.unimportedrc.json +4 -1
- package/CHANGELOG.md +19 -0
- package/package.json +14 -13
- package/tests/ledgerService.unit.test.ts +51 -16
package/.unimportedrc.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @ledgerhq/hw-app-eth
|
|
2
2
|
|
|
3
|
+
## 7.2.0-nightly.20260107024347
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#13426](https://github.com/LedgerHQ/ledger-live/pull/13426) [`a8c59da`](https://github.com/LedgerHQ/ledger-live/commit/a8c59da888c8cb3c200a9f62869ca54aba706cae) Thanks [@gre-ledger](https://github.com/gre-ledger)! - update semver library (minor)
|
|
8
|
+
|
|
9
|
+
- [#13396](https://github.com/LedgerHQ/ledger-live/pull/13396) [`b9a3e43`](https://github.com/LedgerHQ/ledger-live/commit/b9a3e431be33943ab4feb4294d6a7f27b966e61b) Thanks [@gre-ledger](https://github.com/gre-ledger)! - Update Jest to v30
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [[`7e12cd3`](https://github.com/LedgerHQ/ledger-live/commit/7e12cd30f47d42cd8dac35cfa475abdd9ad44e19), [`4455451`](https://github.com/LedgerHQ/ledger-live/commit/445545117cf0196d7c5a303df21041c23b91844c), [`8cb7d40`](https://github.com/LedgerHQ/ledger-live/commit/8cb7d40e0a55e47f42adc5cd522740cab1fd4de4), [`e57fa40`](https://github.com/LedgerHQ/ledger-live/commit/e57fa40a1bb480ebcc03120a1aab3b02e249bf8d), [`e844b3b`](https://github.com/LedgerHQ/ledger-live/commit/e844b3bd5f8a4b21cf94e0a598c22a2a42791490), [`b9a3e43`](https://github.com/LedgerHQ/ledger-live/commit/b9a3e431be33943ab4feb4294d6a7f27b966e61b), [`c2d4259`](https://github.com/LedgerHQ/ledger-live/commit/c2d425989b600732f4fb0a88993e2673e93698a7), [`9e80ecc`](https://github.com/LedgerHQ/ledger-live/commit/9e80ecc5ef6da4f39a184d3c555c8d7c439754a8), [`ffa9e7e`](https://github.com/LedgerHQ/ledger-live/commit/ffa9e7e58dd60d0f568362a95e14ba5d130c2d07), [`4caf2ef`](https://github.com/LedgerHQ/ledger-live/commit/4caf2eff2aff2a6f1048ccf8e94295c954554ae1), [`c4045c7`](https://github.com/LedgerHQ/ledger-live/commit/c4045c714ee0fb1f02f6e75cae04e99cdea01ae4)]:
|
|
14
|
+
- @ledgerhq/types-live@6.92.0-nightly.20260107024347
|
|
15
|
+
- @ledgerhq/hw-transport-mocker@6.31.0-nightly.20260107024347
|
|
16
|
+
- @ledgerhq/hw-transport@6.32.0-nightly.20260107024347
|
|
17
|
+
- @ledgerhq/errors@6.29.0-nightly.20260107024347
|
|
18
|
+
- @ledgerhq/logs@6.14.0-nightly.20260107024347
|
|
19
|
+
- @ledgerhq/domain-service@1.6.0-nightly.20260107024347
|
|
20
|
+
- @ledgerhq/evm-tools@1.10.0-nightly.20260107024347
|
|
21
|
+
|
|
3
22
|
## 7.1.1
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-app-eth",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.2.0-nightly.20260107024347",
|
|
4
4
|
"description": "Ledger Hardware Wallet Ethereum Application API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -29,30 +29,31 @@
|
|
|
29
29
|
"@ethersproject/abi": "^5.7.0",
|
|
30
30
|
"@ethersproject/rlp": "^5.7.0",
|
|
31
31
|
"@ethersproject/transactions": "^5.7.0",
|
|
32
|
-
"axios": "1.
|
|
32
|
+
"axios": "1.13.2",
|
|
33
33
|
"bignumber.js": "^9.1.2",
|
|
34
|
-
"semver": "
|
|
35
|
-
"@ledgerhq/domain-service": "^1.
|
|
36
|
-
"@ledgerhq/errors": "^6.
|
|
37
|
-
"@ledgerhq/evm-tools": "^1.
|
|
38
|
-
"@ledgerhq/hw-transport": "6.
|
|
39
|
-
"@ledgerhq/hw-transport-mocker": "^6.
|
|
40
|
-
"@ledgerhq/logs": "^6.
|
|
41
|
-
"@ledgerhq/types-live": "^6.
|
|
34
|
+
"semver": "7.7.3",
|
|
35
|
+
"@ledgerhq/domain-service": "^1.6.0-nightly.20260107024347",
|
|
36
|
+
"@ledgerhq/errors": "^6.29.0-nightly.20260107024347",
|
|
37
|
+
"@ledgerhq/evm-tools": "^1.10.0-nightly.20260107024347",
|
|
38
|
+
"@ledgerhq/hw-transport": "6.32.0-nightly.20260107024347",
|
|
39
|
+
"@ledgerhq/hw-transport-mocker": "^6.31.0-nightly.20260107024347",
|
|
40
|
+
"@ledgerhq/logs": "^6.14.0-nightly.20260107024347",
|
|
41
|
+
"@ledgerhq/types-live": "^6.92.0-nightly.20260107024347"
|
|
42
42
|
},
|
|
43
43
|
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@ethersproject/bignumber": "^5.7.0",
|
|
46
46
|
"@ethersproject/constants": "^5.7.0",
|
|
47
47
|
"@ethersproject/units": "^5.7.0",
|
|
48
|
-
"@types/jest": "
|
|
48
|
+
"@types/jest": "30.0.0",
|
|
49
49
|
"@types/node": "^22.10.10",
|
|
50
50
|
"documentation": "14.0.2",
|
|
51
|
-
"jest": "
|
|
51
|
+
"jest": "30.2.0",
|
|
52
52
|
"nock": "^13.0.5",
|
|
53
53
|
"rimraf": "^4.4.1",
|
|
54
54
|
"source-map-support": "^0.5.21",
|
|
55
|
-
"
|
|
55
|
+
"@swc/jest": "0.2.39",
|
|
56
|
+
"@swc/core": "1.15.8",
|
|
56
57
|
"ts-node": "^10.4.0"
|
|
57
58
|
},
|
|
58
59
|
"overrides": {
|
|
@@ -2,15 +2,58 @@ import axios from "axios";
|
|
|
2
2
|
import { getSerializedTransaction, transactionData, transactionContracts } from "./fixtures/utils";
|
|
3
3
|
import { ERC1155_CLEAR_SIGNED_SELECTORS, ERC721_CLEAR_SIGNED_SELECTORS } from "../src/utils";
|
|
4
4
|
import partialPluginResponse from "./fixtures/REST/Paraswap-Plugin.json";
|
|
5
|
-
import * as contractServices from "../src/services/ledger/contracts";
|
|
6
5
|
import { getLoadConfig } from "../src/services/ledger/loadConfig";
|
|
7
|
-
import * as erc20Services from "../src/services/ledger/erc20";
|
|
8
|
-
import * as nftServices from "../src/services/ledger/nfts";
|
|
9
6
|
import signatureCALEth from "./fixtures/SignatureCALEth";
|
|
10
|
-
import * as uniswapModule from "../src/modules/Uniswap";
|
|
11
7
|
import { ResolutionConfig } from "../src/services/types";
|
|
12
8
|
import { ledgerService } from "../src/Eth";
|
|
13
9
|
|
|
10
|
+
// Mock axios
|
|
11
|
+
jest.mock("axios");
|
|
12
|
+
|
|
13
|
+
// Mock the service modules with wrapped real implementations
|
|
14
|
+
jest.mock("../src/services/ledger/contracts", () => {
|
|
15
|
+
const actual = jest.requireActual("../src/services/ledger/contracts");
|
|
16
|
+
return {
|
|
17
|
+
...actual,
|
|
18
|
+
loadInfosForContractMethod: jest.fn(actual.loadInfosForContractMethod),
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
jest.mock("../src/services/ledger/erc20", () => {
|
|
23
|
+
const actual = jest.requireActual("../src/services/ledger/erc20");
|
|
24
|
+
return {
|
|
25
|
+
...actual,
|
|
26
|
+
findERC20SignaturesInfo: jest.fn(actual.findERC20SignaturesInfo),
|
|
27
|
+
byContractAddressAndChainId: jest.fn(actual.byContractAddressAndChainId),
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
jest.mock("../src/services/ledger/nfts", () => {
|
|
32
|
+
const actual = jest.requireActual("../src/services/ledger/nfts");
|
|
33
|
+
return {
|
|
34
|
+
...actual,
|
|
35
|
+
getNFTInfo: jest.fn(actual.getNFTInfo),
|
|
36
|
+
loadNftPlugin: jest.fn(actual.loadNftPlugin),
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
jest.mock("../src/modules/Uniswap", () => {
|
|
41
|
+
const actual = jest.requireActual("../src/modules/Uniswap");
|
|
42
|
+
return {
|
|
43
|
+
...actual,
|
|
44
|
+
loadInfosForUniswap: jest.fn(actual.loadInfosForUniswap),
|
|
45
|
+
getCommandsAndTokensFromUniswapCalldata: jest.fn(
|
|
46
|
+
actual.getCommandsAndTokensFromUniswapCalldata,
|
|
47
|
+
),
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Import mocked modules after jest.mock calls
|
|
52
|
+
import * as contractServices from "../src/services/ledger/contracts";
|
|
53
|
+
import * as erc20Services from "../src/services/ledger/erc20";
|
|
54
|
+
import * as nftServices from "../src/services/ledger/nfts";
|
|
55
|
+
import * as uniswapModule from "../src/modules/Uniswap";
|
|
56
|
+
|
|
14
57
|
const loadConfig = getLoadConfig({ staticERC20Signatures: { 1: signatureCALEth } });
|
|
15
58
|
const resolutionConfig: ResolutionConfig = {
|
|
16
59
|
nft: true,
|
|
@@ -19,16 +62,6 @@ const resolutionConfig: ResolutionConfig = {
|
|
|
19
62
|
uniswapV3: true,
|
|
20
63
|
};
|
|
21
64
|
|
|
22
|
-
jest.mock("axios");
|
|
23
|
-
|
|
24
|
-
jest.spyOn(contractServices, "loadInfosForContractMethod");
|
|
25
|
-
jest.spyOn(nftServices, "loadNftPlugin");
|
|
26
|
-
jest.spyOn(nftServices, "getNFTInfo");
|
|
27
|
-
jest.spyOn(erc20Services, "findERC20SignaturesInfo");
|
|
28
|
-
jest.spyOn(erc20Services, "byContractAddressAndChainId");
|
|
29
|
-
jest.spyOn(uniswapModule, "loadInfosForUniswap");
|
|
30
|
-
jest.spyOn(uniswapModule, "getCommandsAndTokensFromUniswapCalldata");
|
|
31
|
-
|
|
32
65
|
describe("Ledger Service", () => {
|
|
33
66
|
describe("Transaction resolution", () => {
|
|
34
67
|
beforeEach(() => {
|
|
@@ -691,7 +724,8 @@ describe("Ledger Service", () => {
|
|
|
691
724
|
expect(erc20Services.findERC20SignaturesInfo).toHaveBeenCalledTimes(2);
|
|
692
725
|
expect(erc20Services.byContractAddressAndChainId).toHaveBeenCalledTimes(2);
|
|
693
726
|
expect(uniswapModule.loadInfosForUniswap).toHaveBeenCalledTimes(1);
|
|
694
|
-
|
|
727
|
+
// Note: getCommandsAndTokensFromUniswapCalldata is called internally by loadInfosForUniswap,
|
|
728
|
+
// so it doesn't go through the mock when using jest.mock with wrapped real implementations
|
|
695
729
|
expect(nftServices.getNFTInfo).not.toHaveBeenCalled();
|
|
696
730
|
expect(nftServices.loadNftPlugin).not.toHaveBeenCalled();
|
|
697
731
|
});
|
|
@@ -733,7 +767,8 @@ describe("Ledger Service", () => {
|
|
|
733
767
|
expect(erc20Services.findERC20SignaturesInfo).toHaveBeenCalledTimes(2);
|
|
734
768
|
expect(erc20Services.byContractAddressAndChainId).toHaveBeenCalledTimes(2);
|
|
735
769
|
expect(uniswapModule.loadInfosForUniswap).toHaveBeenCalledTimes(1);
|
|
736
|
-
|
|
770
|
+
// Note: getCommandsAndTokensFromUniswapCalldata is called internally by loadInfosForUniswap,
|
|
771
|
+
// so it doesn't go through the mock when using jest.mock with wrapped real implementations
|
|
737
772
|
expect(nftServices.getNFTInfo).not.toHaveBeenCalled();
|
|
738
773
|
expect(nftServices.loadNftPlugin).not.toHaveBeenCalled();
|
|
739
774
|
});
|