@ledgerhq/coin-solana 0.35.0-nightly.6 → 0.35.0-nightly.8

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 (167) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/lib/network/chain/account/parser.d.ts +1 -1
  4. package/lib/network/chain/account/stake.d.ts +23 -23
  5. package/lib/network/chain/account/token.d.ts +7 -7
  6. package/lib/network/chain/instruction/stake/types.d.ts +8 -8
  7. package/lib/network/chain/instruction/system/types.d.ts +10 -10
  8. package/lib-es/network/chain/account/parser.d.ts +1 -1
  9. package/lib-es/network/chain/account/stake.d.ts +23 -23
  10. package/lib-es/network/chain/account/token.d.ts +7 -7
  11. package/lib-es/network/chain/instruction/stake/types.d.ts +8 -8
  12. package/lib-es/network/chain/instruction/system/types.d.ts +10 -10
  13. package/package.json +6 -6
  14. package/lib/__fixtures__/solana-spl-epjfwdd5aufqssqem2qn1xzybapc8g4weggkzwytdt1v.json +0 -50
  15. package/lib/__tests__/fixtures/helpers.fixture.d.ts +0 -138
  16. package/lib/__tests__/fixtures/helpers.fixture.d.ts.map +0 -1
  17. package/lib/__tests__/fixtures/helpers.fixture.js +0 -124
  18. package/lib/__tests__/fixtures/helpers.fixture.js.map +0 -1
  19. package/lib/__tests__/scan-accounts.test.d.ts +0 -2
  20. package/lib/__tests__/scan-accounts.test.d.ts.map +0 -1
  21. package/lib/__tests__/scan-accounts.test.js +0 -426
  22. package/lib/__tests__/scan-accounts.test.js.map +0 -1
  23. package/lib/__tests__/unit/hw-signMessage.unit.test.d.ts +0 -2
  24. package/lib/__tests__/unit/hw-signMessage.unit.test.d.ts.map +0 -1
  25. package/lib/__tests__/unit/hw-signMessage.unit.test.js +0 -91
  26. package/lib/__tests__/unit/hw-signMessage.unit.test.js.map +0 -1
  27. package/lib/__tests__/unit/nftResolvers.unit.test.d.ts +0 -2
  28. package/lib/__tests__/unit/nftResolvers.unit.test.d.ts.map +0 -1
  29. package/lib/__tests__/unit/nftResolvers.unit.test.js +0 -147
  30. package/lib/__tests__/unit/nftResolvers.unit.test.js.map +0 -1
  31. package/lib/__tests__/unit/utils.unit.test.d.ts +0 -2
  32. package/lib/__tests__/unit/utils.unit.test.d.ts.map +0 -1
  33. package/lib/__tests__/unit/utils.unit.test.js +0 -16
  34. package/lib/__tests__/unit/utils.unit.test.js.map +0 -1
  35. package/lib/__tests__/unit/validator-app.unit.test.d.ts +0 -2
  36. package/lib/__tests__/unit/validator-app.unit.test.d.ts.map +0 -1
  37. package/lib/__tests__/unit/validator-app.unit.test.js +0 -169
  38. package/lib/__tests__/unit/validator-app.unit.test.js.map +0 -1
  39. package/lib/bridge.integration.test.d.ts +0 -4
  40. package/lib/bridge.integration.test.d.ts.map +0 -1
  41. package/lib/bridge.integration.test.js +0 -870
  42. package/lib/bridge.integration.test.js.map +0 -1
  43. package/lib/buildTransaction.test.d.ts +0 -2
  44. package/lib/buildTransaction.test.d.ts.map +0 -1
  45. package/lib/buildTransaction.test.js +0 -164
  46. package/lib/buildTransaction.test.js.map +0 -1
  47. package/lib/cryptoAssetsStore.test.d.ts +0 -2
  48. package/lib/cryptoAssetsStore.test.d.ts.map +0 -1
  49. package/lib/cryptoAssetsStore.test.js +0 -15
  50. package/lib/cryptoAssetsStore.test.js.map +0 -1
  51. package/lib/network/chain/web3.integration.test.d.ts +0 -2
  52. package/lib/network/chain/web3.integration.test.d.ts.map +0 -1
  53. package/lib/network/chain/web3.integration.test.js +0 -70
  54. package/lib/network/chain/web3.integration.test.js.map +0 -1
  55. package/lib/offchainMessage/format.unit.test.d.ts +0 -2
  56. package/lib/offchainMessage/format.unit.test.d.ts.map +0 -1
  57. package/lib/offchainMessage/format.unit.test.js +0 -124
  58. package/lib/offchainMessage/format.unit.test.js.map +0 -1
  59. package/lib/preload.test.d.ts +0 -2
  60. package/lib/preload.test.d.ts.map +0 -1
  61. package/lib/preload.test.js +0 -9
  62. package/lib/preload.test.js.map +0 -1
  63. package/lib/prepareTransaction.test.d.ts +0 -2
  64. package/lib/prepareTransaction.test.d.ts.map +0 -1
  65. package/lib/prepareTransaction.test.js +0 -139
  66. package/lib/prepareTransaction.test.js.map +0 -1
  67. package/lib/signOperation.test.d.ts +0 -3
  68. package/lib/signOperation.test.d.ts.map +0 -1
  69. package/lib/signOperation.test.js +0 -139
  70. package/lib/signOperation.test.js.map +0 -1
  71. package/lib/tests/preload.fixtures.d.ts +0 -5
  72. package/lib/tests/preload.fixtures.d.ts.map +0 -1
  73. package/lib/tests/preload.fixtures.js +0 -28
  74. package/lib/tests/preload.fixtures.js.map +0 -1
  75. package/lib/tests/preload.unit.test.d.ts +0 -2
  76. package/lib/tests/preload.unit.test.d.ts.map +0 -1
  77. package/lib/tests/preload.unit.test.js +0 -175
  78. package/lib/tests/preload.unit.test.js.map +0 -1
  79. package/lib/tests/stakes-bridge.unit.test.d.ts +0 -2
  80. package/lib/tests/stakes-bridge.unit.test.d.ts.map +0 -1
  81. package/lib/tests/stakes-bridge.unit.test.js +0 -166
  82. package/lib/tests/stakes-bridge.unit.test.js.map +0 -1
  83. package/lib/tests/test-onchain-data.fixture.d.ts +0 -20
  84. package/lib/tests/test-onchain-data.fixture.d.ts.map +0 -1
  85. package/lib/tests/test-onchain-data.fixture.js +0 -34
  86. package/lib/tests/test-onchain-data.fixture.js.map +0 -1
  87. package/lib/tests/tokens-bridge.unit.test.d.ts +0 -2
  88. package/lib/tests/tokens-bridge.unit.test.d.ts.map +0 -1
  89. package/lib/tests/tokens-bridge.unit.test.js +0 -615
  90. package/lib/tests/tokens-bridge.unit.test.js.map +0 -1
  91. package/lib-es/__fixtures__/solana-spl-epjfwdd5aufqssqem2qn1xzybapc8g4weggkzwytdt1v.json +0 -50
  92. package/lib-es/__tests__/fixtures/helpers.fixture.d.ts +0 -138
  93. package/lib-es/__tests__/fixtures/helpers.fixture.d.ts.map +0 -1
  94. package/lib-es/__tests__/fixtures/helpers.fixture.js +0 -110
  95. package/lib-es/__tests__/fixtures/helpers.fixture.js.map +0 -1
  96. package/lib-es/__tests__/scan-accounts.test.d.ts +0 -2
  97. package/lib-es/__tests__/scan-accounts.test.d.ts.map +0 -1
  98. package/lib-es/__tests__/scan-accounts.test.js +0 -398
  99. package/lib-es/__tests__/scan-accounts.test.js.map +0 -1
  100. package/lib-es/__tests__/unit/hw-signMessage.unit.test.d.ts +0 -2
  101. package/lib-es/__tests__/unit/hw-signMessage.unit.test.d.ts.map +0 -1
  102. package/lib-es/__tests__/unit/hw-signMessage.unit.test.js +0 -86
  103. package/lib-es/__tests__/unit/hw-signMessage.unit.test.js.map +0 -1
  104. package/lib-es/__tests__/unit/nftResolvers.unit.test.d.ts +0 -2
  105. package/lib-es/__tests__/unit/nftResolvers.unit.test.d.ts.map +0 -1
  106. package/lib-es/__tests__/unit/nftResolvers.unit.test.js +0 -142
  107. package/lib-es/__tests__/unit/nftResolvers.unit.test.js.map +0 -1
  108. package/lib-es/__tests__/unit/utils.unit.test.d.ts +0 -2
  109. package/lib-es/__tests__/unit/utils.unit.test.d.ts.map +0 -1
  110. package/lib-es/__tests__/unit/utils.unit.test.js +0 -14
  111. package/lib-es/__tests__/unit/utils.unit.test.js.map +0 -1
  112. package/lib-es/__tests__/unit/validator-app.unit.test.d.ts +0 -2
  113. package/lib-es/__tests__/unit/validator-app.unit.test.d.ts.map +0 -1
  114. package/lib-es/__tests__/unit/validator-app.unit.test.js +0 -144
  115. package/lib-es/__tests__/unit/validator-app.unit.test.js.map +0 -1
  116. package/lib-es/bridge.integration.test.d.ts +0 -4
  117. package/lib-es/bridge.integration.test.d.ts.map +0 -1
  118. package/lib-es/bridge.integration.test.js +0 -864
  119. package/lib-es/bridge.integration.test.js.map +0 -1
  120. package/lib-es/buildTransaction.test.d.ts +0 -2
  121. package/lib-es/buildTransaction.test.d.ts.map +0 -1
  122. package/lib-es/buildTransaction.test.js +0 -162
  123. package/lib-es/buildTransaction.test.js.map +0 -1
  124. package/lib-es/cryptoAssetsStore.test.d.ts +0 -2
  125. package/lib-es/cryptoAssetsStore.test.d.ts.map +0 -1
  126. package/lib-es/cryptoAssetsStore.test.js +0 -13
  127. package/lib-es/cryptoAssetsStore.test.js.map +0 -1
  128. package/lib-es/network/chain/web3.integration.test.d.ts +0 -2
  129. package/lib-es/network/chain/web3.integration.test.d.ts.map +0 -1
  130. package/lib-es/network/chain/web3.integration.test.js +0 -68
  131. package/lib-es/network/chain/web3.integration.test.js.map +0 -1
  132. package/lib-es/offchainMessage/format.unit.test.d.ts +0 -2
  133. package/lib-es/offchainMessage/format.unit.test.d.ts.map +0 -1
  134. package/lib-es/offchainMessage/format.unit.test.js +0 -122
  135. package/lib-es/offchainMessage/format.unit.test.js.map +0 -1
  136. package/lib-es/preload.test.d.ts +0 -2
  137. package/lib-es/preload.test.d.ts.map +0 -1
  138. package/lib-es/preload.test.js +0 -7
  139. package/lib-es/preload.test.js.map +0 -1
  140. package/lib-es/prepareTransaction.test.d.ts +0 -2
  141. package/lib-es/prepareTransaction.test.d.ts.map +0 -1
  142. package/lib-es/prepareTransaction.test.js +0 -134
  143. package/lib-es/prepareTransaction.test.js.map +0 -1
  144. package/lib-es/signOperation.test.d.ts +0 -3
  145. package/lib-es/signOperation.test.d.ts.map +0 -1
  146. package/lib-es/signOperation.test.js +0 -135
  147. package/lib-es/signOperation.test.js.map +0 -1
  148. package/lib-es/tests/preload.fixtures.d.ts +0 -5
  149. package/lib-es/tests/preload.fixtures.d.ts.map +0 -1
  150. package/lib-es/tests/preload.fixtures.js +0 -25
  151. package/lib-es/tests/preload.fixtures.js.map +0 -1
  152. package/lib-es/tests/preload.unit.test.d.ts +0 -2
  153. package/lib-es/tests/preload.unit.test.d.ts.map +0 -1
  154. package/lib-es/tests/preload.unit.test.js +0 -147
  155. package/lib-es/tests/preload.unit.test.js.map +0 -1
  156. package/lib-es/tests/stakes-bridge.unit.test.d.ts +0 -2
  157. package/lib-es/tests/stakes-bridge.unit.test.d.ts.map +0 -1
  158. package/lib-es/tests/stakes-bridge.unit.test.js +0 -161
  159. package/lib-es/tests/stakes-bridge.unit.test.js.map +0 -1
  160. package/lib-es/tests/test-onchain-data.fixture.d.ts +0 -20
  161. package/lib-es/tests/test-onchain-data.fixture.d.ts.map +0 -1
  162. package/lib-es/tests/test-onchain-data.fixture.js +0 -28
  163. package/lib-es/tests/test-onchain-data.fixture.js.map +0 -1
  164. package/lib-es/tests/tokens-bridge.unit.test.d.ts +0 -2
  165. package/lib-es/tests/tokens-bridge.unit.test.d.ts.map +0 -1
  166. package/lib-es/tests/tokens-bridge.unit.test.js +0 -610
  167. package/lib-es/tests/tokens-bridge.unit.test.js.map +0 -1
@@ -1,142 +0,0 @@
1
- import { AssertionError, fail } from "assert";
2
- import axios from "axios";
3
- import { getEnv, setEnv } from "@ledgerhq/live-env";
4
- import { collectionMetadata, nftMetadata } from "../../nftResolvers";
5
- jest.mock("axios");
6
- const mockedAxios = jest.mocked(axios);
7
- // Add solana manually to the env until officially supported
8
- setEnv("NFT_CURRENCIES", [...getEnv("NFT_CURRENCIES"), "solana"]);
9
- const currencyId = "solana";
10
- const wrongCurrencyId = "bitcoin";
11
- const randomNftContract = "13vQFDKvvmebfFQdN4XVS7jDuzXoThm2DMn5SxPJhWmA";
12
- const randomTokenId = "0";
13
- const metadata = {
14
- description: "desc",
15
- links: {
16
- explorer: "explorer",
17
- opensea: null,
18
- rarible: null,
19
- etherscan: null,
20
- },
21
- medias: {
22
- big: {
23
- mediaType: "png",
24
- uri: "big",
25
- },
26
- original: {
27
- mediaType: "png",
28
- uri: "original",
29
- },
30
- preview: {
31
- mediaType: "png",
32
- uri: "preview",
33
- },
34
- },
35
- nftName: "name",
36
- properties: [],
37
- tokenName: "collectionName",
38
- };
39
- describe("Solana Family", () => {
40
- beforeAll(() => {
41
- mockedAxios.mockResolvedValue({ data: [{}] });
42
- });
43
- beforeEach(() => {
44
- jest.clearAllMocks();
45
- });
46
- afterAll(() => {
47
- jest.restoreAllMocks();
48
- });
49
- describe("nftResolvers", () => {
50
- describe("nftMetadata", () => {
51
- it("should reject a currency when NFT is not activated on it", async () => {
52
- try {
53
- await nftMetadata({
54
- contract: randomNftContract,
55
- currencyId: wrongCurrencyId,
56
- tokenId: randomTokenId,
57
- });
58
- fail("Promise should have been rejected");
59
- }
60
- catch (e) {
61
- if (e instanceof AssertionError) {
62
- throw e;
63
- }
64
- expect(e).toBeInstanceOf(Error);
65
- expect(e.message).toBe(`Solana Bridge NFT Resolver: Unsupported currency (${wrongCurrencyId})`);
66
- expect(axios).not.toHaveBeenCalled();
67
- }
68
- });
69
- it("should return nft metadata", async () => {
70
- mockedAxios.mockResolvedValueOnce({
71
- data: [
72
- {
73
- status: 200,
74
- result: {
75
- contract: randomNftContract,
76
- tokenId: randomTokenId,
77
- ...metadata,
78
- },
79
- },
80
- ],
81
- });
82
- const result = await nftMetadata({
83
- contract: randomNftContract,
84
- currencyId,
85
- tokenId: randomTokenId,
86
- });
87
- expect(result).toEqual({
88
- status: 200,
89
- result: {
90
- contract: randomNftContract,
91
- tokenId: randomTokenId,
92
- ...metadata,
93
- },
94
- });
95
- });
96
- });
97
- describe("collectionMetadata", () => {
98
- it("should reject a currency when NFT is not activated on it", async () => {
99
- try {
100
- await collectionMetadata({
101
- contract: randomNftContract,
102
- currencyId: wrongCurrencyId,
103
- });
104
- fail("Promise should have been rejected");
105
- }
106
- catch (e) {
107
- if (e instanceof AssertionError) {
108
- throw e;
109
- }
110
- expect(e).toBeInstanceOf(Error);
111
- expect(e.message).toBe(`Solana Bridge NFT Resolver: Unsupported currency (${wrongCurrencyId})`);
112
- expect(axios).not.toHaveBeenCalled();
113
- }
114
- });
115
- it("should return nft metadata", async () => {
116
- mockedAxios.mockResolvedValueOnce({
117
- data: [
118
- {
119
- status: 200,
120
- result: {
121
- contract: randomNftContract,
122
- tokenName: "CollectionName",
123
- },
124
- },
125
- ],
126
- });
127
- const result = await collectionMetadata({
128
- contract: randomNftContract,
129
- currencyId,
130
- });
131
- expect(result).toEqual({
132
- status: 200,
133
- result: {
134
- contract: randomNftContract,
135
- tokenName: "CollectionName",
136
- },
137
- });
138
- });
139
- });
140
- });
141
- });
142
- //# sourceMappingURL=nftResolvers.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nftResolvers.unit.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/nftResolvers.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=utils.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.unit.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/utils.unit.test.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- import { LEDGER_VALIDATOR_BY_FIGMENT, LEDGER_VALIDATOR_BY_CHORUS_ONE, LEDGER_VALIDATOR_DEFAULT, } from "../../utils";
2
- describe("utils - Default Validators", () => {
3
- it("should have APY property", () => {
4
- expect(LEDGER_VALIDATOR_BY_FIGMENT).toMatchObject({ apy: expect.any(Number) });
5
- expect(LEDGER_VALIDATOR_BY_CHORUS_ONE).toMatchObject({ apy: expect.any(Number) });
6
- });
7
- it("should have different APY values", () => {
8
- expect(LEDGER_VALIDATOR_BY_FIGMENT.apy).not.toBe(LEDGER_VALIDATOR_BY_CHORUS_ONE.apy);
9
- });
10
- it("should reference correct default", () => {
11
- expect(LEDGER_VALIDATOR_DEFAULT).toBe(LEDGER_VALIDATOR_BY_FIGMENT);
12
- });
13
- });
14
- //# sourceMappingURL=utils.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.unit.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/utils.unit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,2BAA2B,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,8BAA8B,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=validator-app.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator-app.unit.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/validator-app.unit.test.ts"],"names":[],"mappings":""}
@@ -1,144 +0,0 @@
1
- import { getValidators } from "../../network/validator-app";
2
- import * as network from "@ledgerhq/live-network";
3
- import { getEnv } from "@ledgerhq/live-env";
4
- jest.spyOn({ getEnv }, "getEnv").mockImplementation((key) => {
5
- const testUrls = {
6
- SOLANA_VALIDATORS_APP_BASE_URL: "https://validators-solana.coin.ledger.com/api/v1/validators",
7
- SOLANA_TESTNET_VALIDATORS_APP_BASE_URL: "https://validators-solana.coin.ledger.com/api/v1/validators",
8
- SOLANA_VALIDATORS_SUMMARY_BASE_URL: "https://earn-dashboard.aws.stg.ldg-tech.com/figment/solana/validators_summary",
9
- };
10
- return testUrls[key] || "";
11
- });
12
- const mockValidator = (overrides = {}) => ({
13
- active_stake: 1000000,
14
- commission: 5,
15
- total_score: 8,
16
- vote_account: "test-validator",
17
- name: "Test Validator",
18
- delinquent: false,
19
- ...overrides,
20
- });
21
- const mockApyData = (overrides = {}) => ({
22
- address: "test-validator",
23
- delegator_apy: 0.075,
24
- name: "Test Validator",
25
- ...overrides,
26
- });
27
- describe("validator-app", () => {
28
- beforeEach(() => {
29
- jest.clearAllMocks();
30
- // Suppress console.warn for cleaner test output
31
- jest.spyOn(console, "warn").mockImplementation(() => { });
32
- });
33
- describe("APY integration", () => {
34
- it("should work for testnet without APY", async () => {
35
- jest.spyOn(network, "default").mockResolvedValue({ status: 200, data: [] });
36
- const result = await getValidators("testnet");
37
- expect(network.default).toHaveBeenCalledTimes(1);
38
- expect(network.default).toHaveBeenCalledWith({
39
- method: "GET",
40
- url: "https://validators-solana.coin.ledger.com/api/v1/validators/testnet.json?order=score&limit=1000",
41
- });
42
- expect(result).toEqual([]);
43
- });
44
- it("should fetch and integrate APY for mainnet", async () => {
45
- const validator = mockValidator();
46
- const apyData = mockApyData();
47
- jest
48
- .spyOn(network, "default")
49
- .mockResolvedValueOnce({ status: 200, data: [validator] })
50
- .mockResolvedValueOnce({ status: 200, data: [apyData] });
51
- const result = await getValidators("mainnet-beta");
52
- expect(network.default).toHaveBeenCalledTimes(2);
53
- expect(result[0]).toMatchObject({
54
- activeStake: 1000000,
55
- voteAccount: "test-validator",
56
- apy: 0.075,
57
- });
58
- });
59
- it("should handle APY fetch errors gracefully", async () => {
60
- const validator = mockValidator();
61
- jest
62
- .spyOn(network, "default")
63
- .mockResolvedValueOnce({ status: 200, data: [validator] })
64
- .mockRejectedValueOnce(new Error("Network error"));
65
- const result = await getValidators("mainnet-beta");
66
- expect(result[0]).toMatchObject({
67
- name: "Test Validator",
68
- apy: undefined,
69
- });
70
- });
71
- it("should handle invalid APY data", async () => {
72
- const validator = mockValidator();
73
- jest
74
- .spyOn(network, "default")
75
- .mockResolvedValueOnce({ status: 200, data: [validator] })
76
- .mockResolvedValueOnce({ status: 200, data: "invalid" });
77
- const result = await getValidators("mainnet-beta");
78
- expect(result[0]).toMatchObject({
79
- name: "Test Validator",
80
- apy: undefined,
81
- });
82
- });
83
- it("should filter invalid APY entries", async () => {
84
- const validator = mockValidator({ vote_account: "valid-validator" });
85
- const apyData = [
86
- mockApyData({ address: "valid-validator", delegator_apy: 0.075 }),
87
- mockApyData({ address: null, delegator_apy: 0.08 }),
88
- mockApyData({ address: "other", delegator_apy: "invalid" }),
89
- ];
90
- jest
91
- .spyOn(network, "default")
92
- .mockResolvedValueOnce({ status: 200, data: [validator] })
93
- .mockResolvedValueOnce({ status: 200, data: apyData });
94
- const result = await getValidators("mainnet-beta");
95
- expect(result).toEqual([
96
- {
97
- activeStake: 1000000,
98
- voteAccount: "valid-validator",
99
- apy: 0.075,
100
- name: "Test Validator",
101
- avatarUrl: undefined,
102
- wwwUrl: undefined,
103
- totalScore: 8,
104
- commission: 5,
105
- },
106
- ]);
107
- });
108
- });
109
- describe("validator filtering", () => {
110
- it("should filter delinquent and incomplete validators", async () => {
111
- const validators = [
112
- mockValidator({ vote_account: "good", delinquent: false }),
113
- mockValidator({ vote_account: "bad", delinquent: true }),
114
- mockValidator({ vote_account: "incomplete", active_stake: null }),
115
- ];
116
- jest
117
- .spyOn(network, "default")
118
- .mockResolvedValueOnce({ status: 200, data: validators })
119
- .mockResolvedValueOnce({ status: 200, data: [] });
120
- const result = await getValidators("mainnet-beta");
121
- expect(result).toEqual([
122
- {
123
- activeStake: 1000000,
124
- commission: 5,
125
- totalScore: 8,
126
- voteAccount: "good",
127
- name: "Test Validator",
128
- avatarUrl: undefined,
129
- wwwUrl: undefined,
130
- apy: undefined,
131
- },
132
- ]);
133
- });
134
- it("should handle failed API calls", async () => {
135
- jest
136
- .spyOn(network, "default")
137
- .mockResolvedValueOnce({ status: 500, data: null })
138
- .mockResolvedValueOnce({ status: 200, data: [] });
139
- const result = await getValidators("mainnet-beta");
140
- expect(result).toHaveLength(0);
141
- });
142
- });
143
- });
144
- //# sourceMappingURL=validator-app.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator-app.unit.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/validator-app.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Transaction } from "./types";
2
- import type { DatasetTest } from "@ledgerhq/types-live";
3
- export declare const dataset: DatasetTest<Transaction>;
4
- //# sourceMappingURL=bridge.integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bridge.integration.test.d.ts","sourceRoot":"","sources":["../src/bridge.integration.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,WAAW,EAAoB,MAAM,SAAS,CAAC;AAU/E,OAAO,KAAK,EAA8B,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA0FpF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,WAAW,CAK5C,CAAC"}