@ledgerhq/live-common 27.2.0-nightly.4 → 27.2.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 (202) hide show
  1. package/lib/bot/index.d.ts.map +1 -1
  2. package/lib/bot/index.js +3 -8
  3. package/lib/bot/index.js.map +1 -1
  4. package/lib/bot/specs.d.ts +0 -9
  5. package/lib/bot/specs.d.ts.map +1 -1
  6. package/lib/bot/specs.js +1 -49
  7. package/lib/bot/specs.js.map +1 -1
  8. package/lib/currencies/support.d.ts.map +1 -1
  9. package/lib/currencies/support.js +1 -2
  10. package/lib/currencies/support.js.map +1 -1
  11. package/lib/derivation.d.ts.map +1 -1
  12. package/lib/derivation.js +4 -2
  13. package/lib/derivation.js.map +1 -1
  14. package/lib/env.js +1 -1
  15. package/lib/exchange/swap/getExchangeRates.d.ts.map +1 -1
  16. package/lib/exchange/swap/getExchangeRates.js +1 -1
  17. package/lib/exchange/swap/getExchangeRates.js.map +1 -1
  18. package/lib/exchange/swap/getProviders.d.ts.map +1 -1
  19. package/lib/exchange/swap/getProviders.js +5 -45
  20. package/lib/exchange/swap/getProviders.js.map +1 -1
  21. package/lib/exchange/swap/index.d.ts +1 -2
  22. package/lib/exchange/swap/index.d.ts.map +1 -1
  23. package/lib/exchange/swap/index.js +1 -11
  24. package/lib/exchange/swap/index.js.map +1 -1
  25. package/lib/exchange/swap/index.test.js +0 -22
  26. package/lib/exchange/swap/index.test.js.map +1 -1
  27. package/lib/exchange/swap/mock.js +1 -1
  28. package/lib/exchange/swap/mock.js.map +1 -1
  29. package/lib/exchange/swap/types.d.ts +0 -14
  30. package/lib/exchange/swap/types.d.ts.map +1 -1
  31. package/lib/families/algorand/speculos-deviceActions.d.ts.map +1 -1
  32. package/lib/families/algorand/speculos-deviceActions.js +29 -2
  33. package/lib/families/algorand/speculos-deviceActions.js.map +1 -1
  34. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  35. package/lib/families/bitcoin/specs.js +1 -0
  36. package/lib/families/bitcoin/specs.js.map +1 -1
  37. package/lib/families/bitcoin/speculos-deviceActions.d.ts.map +1 -1
  38. package/lib/families/bitcoin/speculos-deviceActions.js +22 -2
  39. package/lib/families/bitcoin/speculos-deviceActions.js.map +1 -1
  40. package/lib/families/cardano/specs.d.ts.map +1 -1
  41. package/lib/families/cardano/specs.js +3 -4
  42. package/lib/families/cardano/specs.js.map +1 -1
  43. package/lib/families/cardano/speculos-deviceActions.d.ts.map +1 -1
  44. package/lib/families/cardano/speculos-deviceActions.js +10 -2
  45. package/lib/families/cardano/speculos-deviceActions.js.map +1 -1
  46. package/lib/families/celo/speculos-deviceActions.d.ts.map +1 -1
  47. package/lib/families/celo/speculos-deviceActions.js +10 -3
  48. package/lib/families/celo/speculos-deviceActions.js.map +1 -1
  49. package/lib/families/elrond/speculos-deviceActions.d.ts.map +1 -1
  50. package/lib/families/elrond/speculos-deviceActions.js +8 -3
  51. package/lib/families/elrond/speculos-deviceActions.js.map +1 -1
  52. package/lib/families/ethereum/speculos-deviceActions.d.ts.map +1 -1
  53. package/lib/families/ethereum/speculos-deviceActions.js +33 -10
  54. package/lib/families/ethereum/speculos-deviceActions.js.map +1 -1
  55. package/lib/families/evm/specs.d.ts.map +1 -1
  56. package/lib/families/evm/specs.js +5 -9
  57. package/lib/families/evm/specs.js.map +1 -1
  58. package/lib/families/evm/speculos-deviceActions.d.ts.map +1 -1
  59. package/lib/families/evm/speculos-deviceActions.js +25 -5
  60. package/lib/families/evm/speculos-deviceActions.js.map +1 -1
  61. package/lib/families/filecoin/speculos-deviceActions.d.ts.map +1 -1
  62. package/lib/families/filecoin/speculos-deviceActions.js +7 -6
  63. package/lib/families/filecoin/speculos-deviceActions.js.map +1 -1
  64. package/lib/families/polkadot/speculos-deviceActions.d.ts.map +1 -1
  65. package/lib/families/polkadot/speculos-deviceActions.js +10 -3
  66. package/lib/families/polkadot/speculos-deviceActions.js.map +1 -1
  67. package/lib/families/ripple/speculos-deviceActions.d.ts.map +1 -1
  68. package/lib/families/ripple/speculos-deviceActions.js +22 -2
  69. package/lib/families/ripple/speculos-deviceActions.js.map +1 -1
  70. package/lib/families/solana/speculos-deviceActions.d.ts.map +1 -1
  71. package/lib/families/solana/speculos-deviceActions.js +7 -5
  72. package/lib/families/solana/speculos-deviceActions.js.map +1 -1
  73. package/lib/families/stellar/api/horizon.d.ts.map +1 -1
  74. package/lib/families/stellar/api/horizon.js +10 -15
  75. package/lib/families/stellar/api/horizon.js.map +1 -1
  76. package/lib/families/stellar/speculos-deviceActions.d.ts.map +1 -1
  77. package/lib/families/stellar/speculos-deviceActions.js +8 -4
  78. package/lib/families/stellar/speculos-deviceActions.js.map +1 -1
  79. package/lib/families/tezos/speculos-deviceActions.d.ts.map +1 -1
  80. package/lib/families/tezos/speculos-deviceActions.js +11 -6
  81. package/lib/families/tezos/speculos-deviceActions.js.map +1 -1
  82. package/lib/families/tron/speculos-deviceActions.d.ts.map +1 -1
  83. package/lib/families/tron/speculos-deviceActions.js +14 -2
  84. package/lib/families/tron/speculos-deviceActions.js.map +1 -1
  85. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  86. package/lib/featureFlags/defaultFeatures.js +0 -3
  87. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  88. package/lib/hw/extractOnboardingState.d.ts +1 -5
  89. package/lib/hw/extractOnboardingState.d.ts.map +1 -1
  90. package/lib/hw/extractOnboardingState.js +9 -17
  91. package/lib/hw/extractOnboardingState.js.map +1 -1
  92. package/lib/hw/extractOnboardingState.test.js +11 -21
  93. package/lib/hw/extractOnboardingState.test.js.map +1 -1
  94. package/package.json +19 -23
  95. package/src/bot/index.ts +12 -11
  96. package/src/bot/specs.ts +0 -45
  97. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +35 -1
  98. package/src/currencies/support.ts +1 -2
  99. package/src/derivation.ts +4 -2
  100. package/src/env.ts +1 -1
  101. package/src/exchange/swap/getExchangeRates.ts +3 -7
  102. package/src/exchange/swap/getProviders.ts +8 -31
  103. package/src/exchange/swap/index.test.ts +1 -36
  104. package/src/exchange/swap/index.ts +0 -15
  105. package/src/exchange/swap/mock.ts +2 -2
  106. package/src/exchange/swap/types.ts +0 -11
  107. package/src/families/algorand/speculos-deviceActions.ts +35 -4
  108. package/src/families/bitcoin/specs.ts +1 -0
  109. package/src/families/bitcoin/speculos-deviceActions.ts +26 -3
  110. package/src/families/cardano/specs.ts +3 -4
  111. package/src/families/cardano/speculos-deviceActions.ts +14 -3
  112. package/src/families/celo/speculos-deviceActions.ts +14 -6
  113. package/src/families/elrond/speculos-deviceActions.ts +9 -4
  114. package/src/families/ethereum/speculos-deviceActions.ts +46 -16
  115. package/src/families/evm/specs.ts +8 -12
  116. package/src/families/evm/speculos-deviceActions.ts +35 -7
  117. package/src/families/filecoin/speculos-deviceActions.ts +8 -7
  118. package/src/families/polkadot/speculos-deviceActions.ts +16 -5
  119. package/src/families/ripple/speculos-deviceActions.ts +28 -3
  120. package/src/families/solana/speculos-deviceActions.ts +8 -6
  121. package/src/families/stellar/api/horizon.ts +6 -10
  122. package/src/families/stellar/speculos-deviceActions.ts +11 -5
  123. package/src/families/tezos/speculos-deviceActions.ts +16 -9
  124. package/src/families/tron/speculos-deviceActions.ts +12 -4
  125. package/src/featureFlags/defaultFeatures.ts +0 -3
  126. package/src/hw/extractOnboardingState.test.ts +12 -29
  127. package/src/hw/extractOnboardingState.ts +9 -17
  128. package/lib/exchange/swap/getProviders.test.d.ts +0 -2
  129. package/lib/exchange/swap/getProviders.test.d.ts.map +0 -1
  130. package/lib/exchange/swap/getProviders.test.js +0 -519
  131. package/lib/exchange/swap/getProviders.test.js.map +0 -1
  132. package/lib/postOnboarding/PostOnboardingProvider.d.ts +0 -20
  133. package/lib/postOnboarding/PostOnboardingProvider.d.ts.map +0 -1
  134. package/lib/postOnboarding/PostOnboardingProvider.js +0 -33
  135. package/lib/postOnboarding/PostOnboardingProvider.js.map +0 -1
  136. package/lib/postOnboarding/actions.d.ts +0 -20
  137. package/lib/postOnboarding/actions.d.ts.map +0 -1
  138. package/lib/postOnboarding/actions.js +0 -37
  139. package/lib/postOnboarding/actions.js.map +0 -1
  140. package/lib/postOnboarding/hooks/index.d.ts +0 -6
  141. package/lib/postOnboarding/hooks/index.d.ts.map +0 -1
  142. package/lib/postOnboarding/hooks/index.js +0 -22
  143. package/lib/postOnboarding/hooks/index.js.map +0 -1
  144. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.d.ts +0 -8
  145. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.d.ts.map +0 -1
  146. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.js +0 -16
  147. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.js.map +0 -1
  148. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.d.ts +0 -2
  149. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.d.ts.map +0 -1
  150. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.js +0 -75
  151. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.js.map +0 -1
  152. package/lib/postOnboarding/hooks/usePostOnboardingContext.d.ts +0 -3
  153. package/lib/postOnboarding/hooks/usePostOnboardingContext.d.ts.map +0 -1
  154. package/lib/postOnboarding/hooks/usePostOnboardingContext.js +0 -10
  155. package/lib/postOnboarding/hooks/usePostOnboardingContext.js.map +0 -1
  156. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.d.ts +0 -8
  157. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.d.ts.map +0 -1
  158. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.js +0 -20
  159. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.js.map +0 -1
  160. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.d.ts +0 -2
  161. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.d.ts.map +0 -1
  162. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.js +0 -64
  163. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.js.map +0 -1
  164. package/lib/postOnboarding/hooks/usePostOnboardingHubState.d.ts +0 -12
  165. package/lib/postOnboarding/hooks/usePostOnboardingHubState.d.ts.map +0 -1
  166. package/lib/postOnboarding/hooks/usePostOnboardingHubState.js +0 -65
  167. package/lib/postOnboarding/hooks/usePostOnboardingHubState.js.map +0 -1
  168. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.d.ts +0 -2
  169. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.d.ts.map +0 -1
  170. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.js +0 -129
  171. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.js.map +0 -1
  172. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.d.ts +0 -13
  173. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.d.ts.map +0 -1
  174. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.js +0 -34
  175. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.js.map +0 -1
  176. package/lib/postOnboarding/mock.d.ts +0 -8
  177. package/lib/postOnboarding/mock.d.ts.map +0 -1
  178. package/lib/postOnboarding/mock.js +0 -46
  179. package/lib/postOnboarding/mock.js.map +0 -1
  180. package/lib/postOnboarding/reducer.d.ts +0 -22
  181. package/lib/postOnboarding/reducer.d.ts.map +0 -1
  182. package/lib/postOnboarding/reducer.js +0 -71
  183. package/lib/postOnboarding/reducer.js.map +0 -1
  184. package/lib/postOnboarding/reducer.test.d.ts +0 -2
  185. package/lib/postOnboarding/reducer.test.d.ts.map +0 -1
  186. package/lib/postOnboarding/reducer.test.js +0 -251
  187. package/lib/postOnboarding/reducer.test.js.map +0 -1
  188. package/src/exchange/swap/getProviders.test.ts +0 -450
  189. package/src/postOnboarding/PostOnboardingProvider.tsx +0 -49
  190. package/src/postOnboarding/actions.ts +0 -40
  191. package/src/postOnboarding/hooks/index.ts +0 -5
  192. package/src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.ts +0 -82
  193. package/src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.ts +0 -12
  194. package/src/postOnboarding/hooks/usePostOnboardingContext.ts +0 -9
  195. package/src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.ts +0 -83
  196. package/src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.ts +0 -22
  197. package/src/postOnboarding/hooks/usePostOnboardingHubState.test.ts +0 -184
  198. package/src/postOnboarding/hooks/usePostOnboardingHubState.ts +0 -56
  199. package/src/postOnboarding/hooks/useStartPostOnboardingCallback.ts +0 -38
  200. package/src/postOnboarding/mock.ts +0 -53
  201. package/src/postOnboarding/reducer.test.ts +0 -247
  202. package/src/postOnboarding/reducer.ts +0 -105
@@ -44,40 +44,23 @@ describe("@hw/extractOnboardingState", () => {
44
44
  });
45
45
 
46
46
  describe("and the user is on the welcome screen", () => {
47
- it("should return an onboarding step that is set at the welcome screen", () => {
47
+ beforeEach(() => {
48
48
  flagsBytes[3] = 0;
49
- let onboardingState = extractOnboardingState(flagsBytes);
50
- expect(onboardingState).not.toBeNull();
51
- expect(onboardingState?.currentOnboardingStep).toBe(
52
- OnboardingStep.WelcomeScreen1
53
- );
54
-
55
- flagsBytes[3] = 1;
56
- onboardingState = extractOnboardingState(flagsBytes);
57
- expect(onboardingState).not.toBeNull();
58
- expect(onboardingState?.currentOnboardingStep).toBe(
59
- OnboardingStep.WelcomeScreen2
60
- );
49
+ });
61
50
 
62
- flagsBytes[3] = 2;
63
- onboardingState = extractOnboardingState(flagsBytes);
64
- expect(onboardingState).not.toBeNull();
65
- expect(onboardingState?.currentOnboardingStep).toBe(
66
- OnboardingStep.WelcomeScreen3
67
- );
51
+ it("should return an onboarding step that is set at the welcome screen", () => {
52
+ const onboardingState = extractOnboardingState(flagsBytes);
68
53
 
69
- flagsBytes[3] = 3;
70
- onboardingState = extractOnboardingState(flagsBytes);
71
54
  expect(onboardingState).not.toBeNull();
72
55
  expect(onboardingState?.currentOnboardingStep).toBe(
73
- OnboardingStep.WelcomeScreen4
56
+ OnboardingStep.WelcomeScreen
74
57
  );
75
58
  });
76
59
  });
77
60
 
78
61
  describe("and the user is choosing what kind of setup they want", () => {
79
62
  beforeEach(() => {
80
- flagsBytes[3] = 5;
63
+ flagsBytes[3] = 1;
81
64
  });
82
65
 
83
66
  it("should return an onboarding step that is set at the setup choice", () => {
@@ -92,7 +75,7 @@ describe("@hw/extractOnboardingState", () => {
92
75
 
93
76
  describe("and the user is setting their pin", () => {
94
77
  beforeEach(() => {
95
- flagsBytes[3] = 6;
78
+ flagsBytes[3] = 2;
96
79
  });
97
80
 
98
81
  it("should return an onboarding step that is set at setting the pin", () => {
@@ -121,7 +104,7 @@ describe("@hw/extractOnboardingState", () => {
121
104
 
122
105
  describe("and the user is writing the seed word i", () => {
123
106
  beforeEach(() => {
124
- flagsBytes[3] = 7;
107
+ flagsBytes[3] = 3;
125
108
  });
126
109
 
127
110
  it("should return an onboarding step that is set at writting the seed phrase", () => {
@@ -148,7 +131,7 @@ describe("@hw/extractOnboardingState", () => {
148
131
 
149
132
  describe("and the user is confirming the seed word i", () => {
150
133
  beforeEach(() => {
151
- flagsBytes[3] = 8;
134
+ flagsBytes[3] = 4;
152
135
  });
153
136
 
154
137
  it("should return an onboarding step that is set at confirming the seed phrase", () => {
@@ -207,7 +190,7 @@ describe("@hw/extractOnboardingState", () => {
207
190
  // 24-words seed
208
191
  flagsBytes[2] |= 0 << 5;
209
192
 
210
- flagsBytes[3] = 9;
193
+ flagsBytes[3] = 5;
211
194
  });
212
195
 
213
196
  it("should return an onboarding step that is set at confirming the restored seed phrase", () => {
@@ -236,7 +219,7 @@ describe("@hw/extractOnboardingState", () => {
236
219
 
237
220
  describe("and the user is on the safety warning screen", () => {
238
221
  beforeEach(() => {
239
- flagsBytes[3] = 10;
222
+ flagsBytes[3] = 6;
240
223
  });
241
224
 
242
225
  it("should return an onboarding step that is set at the safety warning screen", () => {
@@ -251,7 +234,7 @@ describe("@hw/extractOnboardingState", () => {
251
234
 
252
235
  describe("and the user finished the onboarding process", () => {
253
236
  beforeEach(() => {
254
- flagsBytes[3] = 11;
237
+ flagsBytes[3] = 7;
255
238
  });
256
239
 
257
240
  it("should return an onboarding step that is set at ready", () => {
@@ -16,11 +16,7 @@ const fromBitsToSeedPhraseType = new Map<number, SeedPhraseType>([
16
16
  ]);
17
17
 
18
18
  export enum OnboardingStep {
19
- WelcomeScreen1 = "WELCOME_SCREEN_1",
20
- WelcomeScreen2 = "WELCOME_SCREEN_2",
21
- WelcomeScreen3 = "WELCOME_SCREEN_3",
22
- WelcomeScreen4 = "WELCOME_SCREEN_4",
23
- WelcomeScreenReminder = "WELCOME_SCREEN_REMINDER",
19
+ WelcomeScreen = "WELCOME_SCREEN",
24
20
  SetupChoice = "SETUP_CHOICE",
25
21
  Pin = "PIN",
26
22
  NewDevice = "NEW_DEVICE", // path "new device" & currentSeedWordIndex available
@@ -31,18 +27,14 @@ export enum OnboardingStep {
31
27
  }
32
28
 
33
29
  const fromBitsToOnboardingStep = new Map<number, OnboardingStep>([
34
- [0, OnboardingStep.WelcomeScreen1],
35
- [1, OnboardingStep.WelcomeScreen2],
36
- [2, OnboardingStep.WelcomeScreen3],
37
- [3, OnboardingStep.WelcomeScreen4],
38
- [4, OnboardingStep.WelcomeScreenReminder],
39
- [5, OnboardingStep.SetupChoice],
40
- [6, OnboardingStep.Pin],
41
- [7, OnboardingStep.NewDevice],
42
- [8, OnboardingStep.NewDeviceConfirming],
43
- [9, OnboardingStep.RestoreSeed],
44
- [10, OnboardingStep.SafetyWarning],
45
- [11, OnboardingStep.Ready],
30
+ [0, OnboardingStep.WelcomeScreen],
31
+ [1, OnboardingStep.SetupChoice],
32
+ [2, OnboardingStep.Pin],
33
+ [3, OnboardingStep.NewDevice],
34
+ [4, OnboardingStep.NewDeviceConfirming],
35
+ [5, OnboardingStep.RestoreSeed],
36
+ [6, OnboardingStep.SafetyWarning],
37
+ [7, OnboardingStep.Ready],
46
38
  ]);
47
39
 
48
40
  export type OnboardingState = {
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getProviders.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProviders.test.d.ts","sourceRoot":"","sources":["../../../src/exchange/swap/getProviders.test.ts"],"names":[],"mappings":""}
@@ -1,519 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __importDefault = (this && this.__importDefault) || function (mod) {
50
- return (mod && mod.__esModule) ? mod : { "default": mod };
51
- };
52
- exports.__esModule = true;
53
- var axios_1 = __importDefault(require("axios"));
54
- var getProviders_1 = __importDefault(require("./getProviders"));
55
- var env_1 = require("../../env");
56
- var EXPECTED_RESULT_V4 = [
57
- {
58
- provider: "changelly",
59
- pairs: [
60
- {
61
- from: "bitcoin",
62
- to: "ethereum",
63
- tradeMethod: "float"
64
- },
65
- {
66
- from: "bitcoin",
67
- to: "zcash",
68
- tradeMethod: "float"
69
- },
70
- {
71
- from: "bitcoin",
72
- to: "ethereum_classic",
73
- tradeMethod: "float"
74
- },
75
- {
76
- from: "ethereum",
77
- to: "bitcoin",
78
- tradeMethod: "float"
79
- },
80
- {
81
- from: "ethereum",
82
- to: "zcash",
83
- tradeMethod: "float"
84
- },
85
- {
86
- from: "ethereum",
87
- to: "ethereum_classic",
88
- tradeMethod: "float"
89
- },
90
- {
91
- from: "bitcoin",
92
- to: "ethereum",
93
- tradeMethod: "float"
94
- },
95
- {
96
- from: "bitcoin",
97
- to: "zcash",
98
- tradeMethod: "float"
99
- },
100
- {
101
- from: "bitcoin",
102
- to: "ethereum_classic",
103
- tradeMethod: "float"
104
- },
105
- {
106
- from: "ethereum",
107
- to: "bitcoin",
108
- tradeMethod: "float"
109
- },
110
- {
111
- from: "ethereum",
112
- to: "zcash",
113
- tradeMethod: "float"
114
- },
115
- {
116
- from: "ethereum",
117
- to: "ethereum_classic",
118
- tradeMethod: "float"
119
- },
120
- {
121
- from: "zcash",
122
- to: "bitcoin",
123
- tradeMethod: "float"
124
- },
125
- {
126
- from: "zcash",
127
- to: "ethereum_classic",
128
- tradeMethod: "float"
129
- },
130
- {
131
- from: "ethereum_classic",
132
- to: "bitcoin",
133
- tradeMethod: "float"
134
- },
135
- {
136
- from: "ethereum_classic",
137
- to: "ethereum",
138
- tradeMethod: "float"
139
- },
140
- {
141
- from: "bitcoin",
142
- to: "ethereum",
143
- tradeMethod: "fixed"
144
- },
145
- {
146
- from: "bitcoin",
147
- to: "zcash",
148
- tradeMethod: "fixed"
149
- },
150
- {
151
- from: "bitcoin",
152
- to: "ethereum_classic",
153
- tradeMethod: "fixed"
154
- },
155
- {
156
- from: "ethereum",
157
- to: "bitcoin",
158
- tradeMethod: "fixed"
159
- },
160
- {
161
- from: "ethereum",
162
- to: "zcash",
163
- tradeMethod: "fixed"
164
- },
165
- {
166
- from: "ethereum",
167
- to: "ethereum_classic",
168
- tradeMethod: "fixed"
169
- },
170
- {
171
- from: "zcash",
172
- to: "bitcoin",
173
- tradeMethod: "fixed"
174
- },
175
- {
176
- from: "zcash",
177
- to: "ethereum_classic",
178
- tradeMethod: "fixed"
179
- },
180
- {
181
- from: "ethereum_classic",
182
- to: "bitcoin",
183
- tradeMethod: "fixed"
184
- },
185
- {
186
- from: "ethereum_classic",
187
- to: "ethereum",
188
- tradeMethod: "fixed"
189
- },
190
- {
191
- from: "zcash",
192
- to: "bitcoin",
193
- tradeMethod: "fixed"
194
- },
195
- {
196
- from: "zcash",
197
- to: "ethereum_classic",
198
- tradeMethod: "fixed"
199
- },
200
- {
201
- from: "ethereum_classic",
202
- to: "bitcoin",
203
- tradeMethod: "fixed"
204
- },
205
- {
206
- from: "ethereum_classic",
207
- to: "ethereum",
208
- tradeMethod: "fixed"
209
- },
210
- ]
211
- },
212
- {
213
- provider: "ftx",
214
- pairs: [
215
- {
216
- from: "bitcoin",
217
- to: "ethereum",
218
- tradeMethod: "float"
219
- },
220
- {
221
- from: "bitcoin",
222
- to: "zcash",
223
- tradeMethod: "float"
224
- },
225
- {
226
- from: "bitcoin",
227
- to: "ethereum_classic",
228
- tradeMethod: "float"
229
- },
230
- {
231
- from: "ethereum",
232
- to: "bitcoin",
233
- tradeMethod: "float"
234
- },
235
- {
236
- from: "ethereum",
237
- to: "zcash",
238
- tradeMethod: "float"
239
- },
240
- {
241
- from: "ethereum",
242
- to: "ethereum_classic",
243
- tradeMethod: "float"
244
- },
245
- {
246
- from: "zcash",
247
- to: "bitcoin",
248
- tradeMethod: "float"
249
- },
250
- {
251
- from: "zcash",
252
- to: "ethereum",
253
- tradeMethod: "float"
254
- },
255
- {
256
- from: "zcash",
257
- to: "ethereum_classic",
258
- tradeMethod: "float"
259
- },
260
- {
261
- from: "ethereum_classic",
262
- to: "bitcoin",
263
- tradeMethod: "float"
264
- },
265
- {
266
- from: "ethereum_classic",
267
- to: "ethereum",
268
- tradeMethod: "float"
269
- },
270
- {
271
- from: "ethereum_classic",
272
- to: "zcash",
273
- tradeMethod: "float"
274
- },
275
- ]
276
- },
277
- ];
278
- jest.mock("axios");
279
- var mockedAxios = jest.mocked(axios_1["default"]);
280
- describe("swap/getProviders", function () {
281
- var DEFAULT_SWAP_API_BASE = (0, env_1.getEnv)("SWAP_API_BASE");
282
- afterAll(function () {
283
- // Restore DEFAULT_SWAP_API_BASE
284
- (0, env_1.setEnv)("SWAP_API_BASE", DEFAULT_SWAP_API_BASE);
285
- });
286
- describe("version 2", function () {
287
- var data = [
288
- {
289
- provider: "changelly",
290
- pairs: [
291
- {
292
- from: "bitcoin",
293
- to: "ethereum",
294
- tradeMethod: ["float", "fixed"]
295
- },
296
- {
297
- from: "bitcoin",
298
- to: "ethereum_classic",
299
- tradeMethod: ["float", "fixed"]
300
- },
301
- ]
302
- },
303
- ];
304
- var resp = {
305
- data: data,
306
- status: 200,
307
- statusText: "",
308
- headers: {},
309
- config: {}
310
- };
311
- beforeAll(function () {
312
- // set SWAP_API_BASE
313
- (0, env_1.setEnv)("SWAP_API_BASE", "https://swap.ledger.com/v2");
314
- });
315
- beforeEach(function () {
316
- mockedAxios.mockResolvedValue(Promise.resolve(resp));
317
- });
318
- afterEach(function () {
319
- mockedAxios.mockClear();
320
- });
321
- test("should not be called with whitelist", function () { return __awaiter(void 0, void 0, void 0, function () {
322
- return __generator(this, function (_a) {
323
- switch (_a.label) {
324
- case 0: return [4 /*yield*/, (0, getProviders_1["default"])()];
325
- case 1:
326
- _a.sent();
327
- expect(mockedAxios).toBeCalledWith(expect.objectContaining({
328
- params: undefined
329
- }));
330
- return [2 /*return*/];
331
- }
332
- });
333
- }); });
334
- });
335
- describe("version 3", function () {
336
- var data = [
337
- {
338
- provider: "changelly",
339
- pairs: [
340
- {
341
- from: "bitcoin",
342
- to: "ethereum",
343
- tradeMethod: ["float", "fixed"]
344
- },
345
- {
346
- from: "bitcoin",
347
- to: "ethereum_classic",
348
- tradeMethod: ["float", "fixed"]
349
- },
350
- ]
351
- },
352
- ];
353
- var resp = {
354
- data: data,
355
- status: 200,
356
- statusText: "",
357
- headers: {},
358
- config: {}
359
- };
360
- beforeAll(function () {
361
- // set SWAP_API_BASE
362
- (0, env_1.setEnv)("SWAP_API_BASE", "https://swap.ledger.com/v3");
363
- });
364
- beforeEach(function () {
365
- mockedAxios.mockResolvedValue(Promise.resolve(resp));
366
- });
367
- afterEach(function () {
368
- mockedAxios.mockClear();
369
- });
370
- test("should be called with whitelist", function () { return __awaiter(void 0, void 0, void 0, function () {
371
- return __generator(this, function (_a) {
372
- switch (_a.label) {
373
- case 0: return [4 /*yield*/, (0, getProviders_1["default"])()];
374
- case 1:
375
- _a.sent();
376
- expect(mockedAxios).toBeCalledWith(expect.objectContaining({
377
- params: expect.objectContaining({
378
- whitelist: expect.any(Array)
379
- })
380
- }));
381
- return [2 /*return*/];
382
- }
383
- });
384
- }); });
385
- test("should throw error if no data", function () { return __awaiter(void 0, void 0, void 0, function () {
386
- var emptyResp;
387
- return __generator(this, function (_a) {
388
- switch (_a.label) {
389
- case 0:
390
- emptyResp = __assign(__assign({}, resp), { data: [] });
391
- mockedAxios.mockResolvedValue(Promise.resolve(emptyResp));
392
- return [4 /*yield*/, expect(getProviders_1["default"]).rejects.toThrow("SwapNoAvailableProviders")];
393
- case 1:
394
- _a.sent();
395
- return [2 /*return*/];
396
- }
397
- });
398
- }); });
399
- test("should return list of providers with pairs", function () { return __awaiter(void 0, void 0, void 0, function () {
400
- var res;
401
- return __generator(this, function (_a) {
402
- switch (_a.label) {
403
- case 0: return [4 /*yield*/, (0, getProviders_1["default"])()];
404
- case 1:
405
- res = _a.sent();
406
- expect(res).toEqual(data);
407
- return [2 /*return*/];
408
- }
409
- });
410
- }); });
411
- });
412
- describe("version 4", function () {
413
- var data = {
414
- currencies: {
415
- "1": "bitcoin",
416
- "2": "ethereum",
417
- "3": "zcash",
418
- "4": "ethereum_classic"
419
- },
420
- providers: {
421
- changelly: [
422
- {
423
- methods: ["float"],
424
- pairs: {
425
- "1": [2, 3, 4],
426
- "2": [1, 3, 4]
427
- }
428
- },
429
- {
430
- methods: ["float", "fixed"],
431
- pairs: {
432
- "1": [2, 3, 4],
433
- "2": [1, 3, 4],
434
- "3": [1, 4],
435
- "4": [1, 2]
436
- }
437
- },
438
- {
439
- methods: ["fixed"],
440
- pairs: {
441
- "3": [1, 4],
442
- "4": [1, 2]
443
- }
444
- },
445
- ],
446
- ftx: [
447
- {
448
- methods: ["float"],
449
- pairs: {
450
- "1": [2, 3, 4],
451
- "2": [1, 3, 4],
452
- "3": [1, 2, 4],
453
- "4": [1, 2, 3]
454
- }
455
- },
456
- ]
457
- }
458
- };
459
- var resp = {
460
- data: data,
461
- status: 200,
462
- statusText: "",
463
- headers: {},
464
- config: {}
465
- };
466
- beforeAll(function () {
467
- // set SWAP_API_BASE
468
- (0, env_1.setEnv)("SWAP_API_BASE", "https://swap.ledger.com/v4");
469
- });
470
- beforeEach(function () {
471
- mockedAxios.mockResolvedValue(Promise.resolve(resp));
472
- });
473
- afterEach(function () {
474
- mockedAxios.mockClear();
475
- });
476
- test("should be called with whitelist", function () { return __awaiter(void 0, void 0, void 0, function () {
477
- return __generator(this, function (_a) {
478
- switch (_a.label) {
479
- case 0: return [4 /*yield*/, (0, getProviders_1["default"])()];
480
- case 1:
481
- _a.sent();
482
- expect(mockedAxios).toBeCalledWith(expect.objectContaining({
483
- params: expect.objectContaining({
484
- whitelist: expect.any(Array)
485
- })
486
- }));
487
- return [2 /*return*/];
488
- }
489
- });
490
- }); });
491
- test("should throw error if no providers", function () { return __awaiter(void 0, void 0, void 0, function () {
492
- var emptyResp;
493
- return __generator(this, function (_a) {
494
- switch (_a.label) {
495
- case 0:
496
- emptyResp = __assign(__assign({}, resp), { data: __assign(__assign({}, data), { providers: {} }) });
497
- mockedAxios.mockResolvedValue(Promise.resolve(emptyResp));
498
- return [4 /*yield*/, expect(getProviders_1["default"]).rejects.toThrow("SwapNoAvailableProviders")];
499
- case 1:
500
- _a.sent();
501
- return [2 /*return*/];
502
- }
503
- });
504
- }); });
505
- test("should return list of providers with pairs", function () { return __awaiter(void 0, void 0, void 0, function () {
506
- var res;
507
- return __generator(this, function (_a) {
508
- switch (_a.label) {
509
- case 0: return [4 /*yield*/, (0, getProviders_1["default"])()];
510
- case 1:
511
- res = _a.sent();
512
- expect(res).toEqual(EXPECTED_RESULT_V4);
513
- return [2 /*return*/];
514
- }
515
- });
516
- }); });
517
- });
518
- });
519
- //# sourceMappingURL=getProviders.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProviders.test.js","sourceRoot":"","sources":["../../../src/exchange/swap/getProviders.test.ts"],"names":[],"mappings":"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"}