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

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