@ledgerhq/live-common 21.5.1 → 21.7.1-patch.1

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 (170) hide show
  1. package/lib/env.js +1 -1
  2. package/lib/env.js.map +1 -1
  3. package/lib/exchange/swap/getExchangeRates.d.ts.map +1 -1
  4. package/lib/exchange/swap/getExchangeRates.js +9 -8
  5. package/lib/exchange/swap/getExchangeRates.js.map +1 -1
  6. package/lib/exchange/swap/hooks/index.d.ts +11 -0
  7. package/lib/exchange/swap/hooks/index.d.ts.map +1 -0
  8. package/lib/exchange/swap/hooks/index.js +23 -0
  9. package/lib/exchange/swap/hooks/index.js.map +1 -0
  10. package/lib/exchange/swap/hooks/useFromState.d.ts +15 -0
  11. package/lib/exchange/swap/hooks/useFromState.d.ts.map +1 -0
  12. package/lib/exchange/swap/hooks/useFromState.js +67 -0
  13. package/lib/exchange/swap/hooks/useFromState.js.map +1 -0
  14. package/lib/exchange/swap/hooks/useFromState.test.d.ts +2 -0
  15. package/lib/exchange/swap/hooks/useFromState.test.d.ts.map +1 -0
  16. package/lib/exchange/swap/hooks/useFromState.test.js +141 -0
  17. package/lib/exchange/swap/hooks/useFromState.test.js.map +1 -0
  18. package/lib/exchange/swap/hooks/usePickDefaultAccount.d.ts +5 -0
  19. package/lib/exchange/swap/hooks/usePickDefaultAccount.d.ts.map +1 -0
  20. package/lib/exchange/swap/hooks/usePickDefaultAccount.js +37 -0
  21. package/lib/exchange/swap/hooks/usePickDefaultAccount.js.map +1 -0
  22. package/lib/exchange/swap/hooks/usePickDefaultAccount.test.d.ts +2 -0
  23. package/lib/exchange/swap/hooks/usePickDefaultAccount.test.d.ts.map +1 -0
  24. package/lib/exchange/swap/hooks/usePickDefaultAccount.test.js +185 -0
  25. package/lib/exchange/swap/hooks/usePickDefaultAccount.test.js.map +1 -0
  26. package/lib/exchange/swap/hooks/usePickDefaultCurrency.d.ts +3 -0
  27. package/lib/exchange/swap/hooks/usePickDefaultCurrency.d.ts.map +1 -0
  28. package/lib/exchange/swap/hooks/usePickDefaultCurrency.js +17 -0
  29. package/lib/exchange/swap/hooks/usePickDefaultCurrency.js.map +1 -0
  30. package/lib/exchange/swap/hooks/usePickDefaultCurrency.test.d.ts +2 -0
  31. package/lib/exchange/swap/hooks/usePickDefaultCurrency.test.d.ts.map +1 -0
  32. package/lib/exchange/swap/hooks/usePickDefaultCurrency.test.js +73 -0
  33. package/lib/exchange/swap/hooks/usePickDefaultCurrency.test.js.map +1 -0
  34. package/lib/exchange/swap/hooks/usePollKYCStatus.d.ts +12 -0
  35. package/lib/exchange/swap/hooks/usePollKYCStatus.d.ts.map +1 -0
  36. package/lib/exchange/swap/hooks/usePollKYCStatus.js +105 -0
  37. package/lib/exchange/swap/hooks/usePollKYCStatus.js.map +1 -0
  38. package/lib/exchange/swap/hooks/usePollKYCStatus.test.d.ts +2 -0
  39. package/lib/exchange/swap/hooks/usePollKYCStatus.test.d.ts.map +1 -0
  40. package/lib/exchange/swap/hooks/usePollKYCStatus.test.js +78 -0
  41. package/lib/exchange/swap/hooks/usePollKYCStatus.test.js.map +1 -0
  42. package/lib/exchange/swap/hooks/useProviderRates.d.ts +20 -0
  43. package/lib/exchange/swap/hooks/useProviderRates.d.ts.map +1 -0
  44. package/lib/exchange/swap/hooks/useProviderRates.js +174 -0
  45. package/lib/exchange/swap/hooks/useProviderRates.js.map +1 -0
  46. package/lib/exchange/swap/hooks/useProviderRates.test.d.ts +2 -0
  47. package/lib/exchange/swap/hooks/useProviderRates.test.d.ts.map +1 -0
  48. package/lib/exchange/swap/hooks/useProviderRates.test.js +261 -0
  49. package/lib/exchange/swap/hooks/useProviderRates.test.js.map +1 -0
  50. package/lib/exchange/swap/hooks/useReverseAccounts.d.ts +15 -0
  51. package/lib/exchange/swap/hooks/useReverseAccounts.d.ts.map +1 -0
  52. package/lib/exchange/swap/hooks/useReverseAccounts.js +35 -0
  53. package/lib/exchange/swap/hooks/useReverseAccounts.js.map +1 -0
  54. package/lib/exchange/swap/hooks/useReverseAccounts.test.d.ts +2 -0
  55. package/lib/exchange/swap/hooks/useReverseAccounts.test.d.ts.map +1 -0
  56. package/lib/exchange/swap/hooks/useReverseAccounts.test.js +79 -0
  57. package/lib/exchange/swap/hooks/useReverseAccounts.test.js.map +1 -0
  58. package/lib/exchange/swap/hooks/useSelectableCurrencies.d.ts +5 -0
  59. package/lib/exchange/swap/hooks/useSelectableCurrencies.d.ts.map +1 -0
  60. package/lib/exchange/swap/hooks/useSelectableCurrencies.js +43 -0
  61. package/lib/exchange/swap/hooks/useSelectableCurrencies.js.map +1 -0
  62. package/lib/exchange/swap/hooks/useSelectableCurrencies.test.d.ts +2 -0
  63. package/lib/exchange/swap/hooks/useSelectableCurrencies.test.d.ts.map +1 -0
  64. package/lib/exchange/swap/hooks/useSelectableCurrencies.test.js +32 -0
  65. package/lib/exchange/swap/hooks/useSelectableCurrencies.test.js.map +1 -0
  66. package/lib/exchange/swap/hooks/useSwapProviders.d.ts +14 -0
  67. package/lib/exchange/swap/hooks/useSwapProviders.d.ts.map +1 -0
  68. package/lib/exchange/swap/hooks/useSwapProviders.js +104 -0
  69. package/lib/exchange/swap/hooks/useSwapProviders.js.map +1 -0
  70. package/lib/exchange/swap/hooks/useSwapProviders.test.d.ts +2 -0
  71. package/lib/exchange/swap/hooks/useSwapProviders.test.d.ts.map +1 -0
  72. package/lib/exchange/swap/hooks/useSwapProviders.test.js +174 -0
  73. package/lib/exchange/swap/hooks/useSwapProviders.test.js.map +1 -0
  74. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts +53 -0
  75. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -0
  76. package/lib/exchange/swap/hooks/useSwapTransaction.js +109 -0
  77. package/lib/exchange/swap/hooks/useSwapTransaction.js.map +1 -0
  78. package/lib/exchange/swap/hooks/useSwapTransaction.test.d.ts +2 -0
  79. package/lib/exchange/swap/hooks/useSwapTransaction.test.d.ts.map +1 -0
  80. package/lib/exchange/swap/hooks/useSwapTransaction.test.js +50 -0
  81. package/lib/exchange/swap/hooks/useSwapTransaction.test.js.map +1 -0
  82. package/lib/exchange/swap/hooks/useToState.d.ts +12 -0
  83. package/lib/exchange/swap/hooks/useToState.d.ts.map +1 -0
  84. package/lib/exchange/swap/hooks/useToState.js +73 -0
  85. package/lib/exchange/swap/hooks/useToState.js.map +1 -0
  86. package/lib/exchange/swap/hooks/useToState.test.d.ts +2 -0
  87. package/lib/exchange/swap/hooks/useToState.test.d.ts.map +1 -0
  88. package/lib/exchange/swap/hooks/useToState.test.js +107 -0
  89. package/lib/exchange/swap/hooks/useToState.test.js.map +1 -0
  90. package/lib/exchange/swap/hooks/useUpdateMaxAmount.d.ts +15 -0
  91. package/lib/exchange/swap/hooks/useUpdateMaxAmount.d.ts.map +1 -0
  92. package/lib/exchange/swap/hooks/useUpdateMaxAmount.js +106 -0
  93. package/lib/exchange/swap/hooks/useUpdateMaxAmount.js.map +1 -0
  94. package/lib/exchange/swap/hooks/useUpdateMaxAmount.test.d.ts +2 -0
  95. package/lib/exchange/swap/hooks/useUpdateMaxAmount.test.d.ts.map +1 -0
  96. package/lib/exchange/swap/hooks/useUpdateMaxAmount.test.js +217 -0
  97. package/lib/exchange/swap/hooks/useUpdateMaxAmount.test.js.map +1 -0
  98. package/lib/exchange/swap/mock.d.ts +6 -2
  99. package/lib/exchange/swap/mock.d.ts.map +1 -1
  100. package/lib/exchange/swap/mock.js +21 -6
  101. package/lib/exchange/swap/mock.js.map +1 -1
  102. package/lib/exchange/swap/types.d.ts +1 -1
  103. package/lib/exchange/swap/types.d.ts.map +1 -1
  104. package/lib/exchange/swap/utils/index.d.ts +16 -0
  105. package/lib/exchange/swap/utils/index.d.ts.map +1 -0
  106. package/lib/exchange/swap/utils/index.js +49 -0
  107. package/lib/exchange/swap/utils/index.js.map +1 -0
  108. package/lib/exchange/swap/utils/index.test.d.ts +2 -0
  109. package/lib/exchange/swap/utils/index.test.d.ts.map +1 -0
  110. package/lib/exchange/swap/utils/index.test.js +238 -0
  111. package/lib/exchange/swap/utils/index.test.js.map +1 -0
  112. package/lib/families/crypto_org/datasets/croeseid.d.ts.map +1 -1
  113. package/lib/families/crypto_org/datasets/croeseid.js +2 -6
  114. package/lib/families/crypto_org/datasets/croeseid.js.map +1 -1
  115. package/lib/families/elrond/api/apiCalls.d.ts +0 -4
  116. package/lib/families/elrond/api/apiCalls.d.ts.map +1 -1
  117. package/lib/families/elrond/api/apiCalls.js +3 -37
  118. package/lib/families/elrond/api/apiCalls.js.map +1 -1
  119. package/lib/families/elrond/api/sdk.js +2 -2
  120. package/lib/families/elrond/api/sdk.js.map +1 -1
  121. package/lib/families/elrond/js-transaction.d.ts +2 -0
  122. package/lib/families/elrond/js-transaction.d.ts.map +1 -1
  123. package/lib/families/elrond/types.d.ts +2 -0
  124. package/lib/families/elrond/types.d.ts.map +1 -1
  125. package/lib/families/elrond/types.js.map +1 -1
  126. package/lib/families/tezos/bridge/js.d.ts.map +1 -1
  127. package/lib/families/tezos/bridge/js.js +11 -1
  128. package/lib/families/tezos/bridge/js.js.map +1 -1
  129. package/lib/mock/account.d.ts +2 -1
  130. package/lib/mock/account.d.ts.map +1 -1
  131. package/lib/mock/account.js +4 -2
  132. package/lib/mock/account.js.map +1 -1
  133. package/package.json +15 -15
  134. package/src/__tests__/__snapshots__/all.libcore.ts.snap +10 -10
  135. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +30 -15
  136. package/src/env.ts +1 -1
  137. package/src/exchange/swap/getExchangeRates.ts +8 -5
  138. package/src/exchange/swap/hooks/index.ts +10 -0
  139. package/src/exchange/swap/hooks/useFromState.test.ts +134 -0
  140. package/src/exchange/swap/hooks/useFromState.ts +84 -0
  141. package/src/exchange/swap/hooks/usePickDefaultAccount.test.ts +167 -0
  142. package/src/exchange/swap/hooks/usePickDefaultAccount.ts +47 -0
  143. package/src/exchange/swap/hooks/usePickDefaultCurrency.test.ts +107 -0
  144. package/src/exchange/swap/hooks/usePickDefaultCurrency.ts +20 -0
  145. package/src/exchange/swap/hooks/usePollKYCStatus.test.ts +89 -0
  146. package/src/exchange/swap/hooks/usePollKYCStatus.ts +43 -0
  147. package/src/exchange/swap/hooks/useProviderRates.test.ts +200 -0
  148. package/src/exchange/swap/hooks/useProviderRates.ts +130 -0
  149. package/src/exchange/swap/hooks/useReverseAccounts.test.ts +83 -0
  150. package/src/exchange/swap/hooks/useReverseAccounts.ts +56 -0
  151. package/src/exchange/swap/hooks/useSelectableCurrencies.test.ts +39 -0
  152. package/src/exchange/swap/hooks/useSelectableCurrencies.ts +26 -0
  153. package/src/exchange/swap/hooks/useSwapProviders.test.ts +113 -0
  154. package/src/exchange/swap/hooks/useSwapProviders.ts +57 -0
  155. package/src/exchange/swap/hooks/useSwapTransaction.test.ts +54 -0
  156. package/src/exchange/swap/hooks/useSwapTransaction.ts +170 -0
  157. package/src/exchange/swap/hooks/useToState.test.ts +53 -0
  158. package/src/exchange/swap/hooks/useToState.ts +86 -0
  159. package/src/exchange/swap/hooks/useUpdateMaxAmount.test.ts +132 -0
  160. package/src/exchange/swap/hooks/useUpdateMaxAmount.ts +67 -0
  161. package/src/exchange/swap/mock.ts +22 -3
  162. package/src/exchange/swap/types.ts +2 -1
  163. package/src/exchange/swap/utils/index.test.ts +224 -0
  164. package/src/exchange/swap/utils/index.ts +67 -0
  165. package/src/families/crypto_org/datasets/croeseid.ts +7 -9
  166. package/src/families/elrond/api/apiCalls.ts +3 -31
  167. package/src/families/elrond/api/sdk.ts +2 -2
  168. package/src/families/elrond/types.ts +2 -0
  169. package/src/families/tezos/bridge/js.ts +13 -0
  170. package/src/mock/account.ts +2 -2
@@ -0,0 +1,185 @@
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 __generator = (this && this.__generator) || function (thisArg, body) {
14
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
15
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
16
+ function verb(n) { return function (v) { return step([n, v]); }; }
17
+ function step(op) {
18
+ if (f) throw new TypeError("Generator is already executing.");
19
+ while (_) try {
20
+ 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;
21
+ if (y = 0, t) op = [op[0] & 2, t.value];
22
+ switch (op[0]) {
23
+ case 0: case 1: t = op; break;
24
+ case 4: _.label++; return { value: op[1], done: false };
25
+ case 5: _.label++; y = op[1]; op = [0]; continue;
26
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
27
+ default:
28
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
29
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
30
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
31
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
32
+ if (t[2]) _.ops.pop();
33
+ _.trys.pop(); continue;
34
+ }
35
+ op = body.call(thisArg, _);
36
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
37
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
38
+ }
39
+ };
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ exports.__esModule = true;
44
+ var react_hooks_1 = require("@testing-library/react-hooks");
45
+ var bignumber_js_1 = __importDefault(require("bignumber.js"));
46
+ var usePickDefaultAccount_1 = require("./usePickDefaultAccount");
47
+ var account_1 = require("../../../mock/account");
48
+ var currencies_1 = require("../../../currencies");
49
+ function accountGenerator(currency) {
50
+ var id;
51
+ return __generator(this, function (_a) {
52
+ switch (_a.label) {
53
+ case 0:
54
+ id = 0;
55
+ _a.label = 1;
56
+ case 1:
57
+ if (!true) return [3 /*break*/, 3];
58
+ id += 1;
59
+ // operations are not taken into account by the usePickDefaultAccount hooks
60
+ return [4 /*yield*/, (0, account_1.genAccount)("mocked-account-" + id, { currency: currency, operationsSize: 0 })];
61
+ case 2:
62
+ // operations are not taken into account by the usePickDefaultAccount hooks
63
+ _a.sent();
64
+ return [3 /*break*/, 1];
65
+ case 3: return [2 /*return*/];
66
+ }
67
+ });
68
+ }
69
+ var getAccountCreator = function (currencyId) {
70
+ var generator = accountGenerator((0, currencies_1.getCryptoCurrencyById)(currencyId));
71
+ return function () { return generator.next().value; };
72
+ };
73
+ describe("usePickDefaultAccount", function () {
74
+ var getEthAccount = getAccountCreator("ethereum");
75
+ var getBtcAccount = getAccountCreator("bitcoin");
76
+ var getPolkadotAccount = getAccountCreator("polkadot");
77
+ var getCosmosAccount = getAccountCreator("cosmos");
78
+ var setFromAccount = jest.fn();
79
+ beforeEach(function () {
80
+ setFromAccount.mockClear();
81
+ });
82
+ test("do nothing when fromAccount is not null/undefined", function () {
83
+ var accounts = [getEthAccount(), getBtcAccount()];
84
+ (0, react_hooks_1.renderHook)(function () {
85
+ return (0, usePickDefaultAccount_1.usePickDefaultAccount)(accounts, getEthAccount(), setFromAccount);
86
+ });
87
+ expect(setFromAccount).toHaveBeenCalledTimes(0);
88
+ });
89
+ test("do nothing when all passed accounts are disabled", function () {
90
+ var accounts = [
91
+ __assign(__assign({}, getEthAccount()), { disabled: true }),
92
+ __assign(__assign({}, getBtcAccount()), { disabled: true }),
93
+ __assign(__assign({}, getEthAccount()), { disabled: true }),
94
+ __assign(__assign({}, getEthAccount()), { disabled: true }),
95
+ ];
96
+ (0, react_hooks_1.renderHook)(function () {
97
+ return (0, usePickDefaultAccount_1.usePickDefaultAccount)(accounts, undefined, setFromAccount);
98
+ });
99
+ expect(setFromAccount).toHaveBeenCalledTimes(0);
100
+ });
101
+ test("returns an ethereum account when it's available", function () {
102
+ var ethAccount = getEthAccount();
103
+ var accounts = [ethAccount, getBtcAccount()];
104
+ (0, react_hooks_1.renderHook)(function () {
105
+ return (0, usePickDefaultAccount_1.usePickDefaultAccount)(accounts, undefined, setFromAccount);
106
+ });
107
+ expect(setFromAccount).toHaveBeenCalledTimes(1);
108
+ expect(setFromAccount).toHaveBeenCalledWith(ethAccount);
109
+ });
110
+ test("returns the first ethereum account when all of the enabled accounts have the same balance", function () {
111
+ var ethAccount = getEthAccount();
112
+ var accounts = [
113
+ ethAccount,
114
+ getBtcAccount(),
115
+ getEthAccount(),
116
+ __assign(__assign({}, getEthAccount()), { disabled: true }),
117
+ ];
118
+ (0, react_hooks_1.renderHook)(function () {
119
+ return (0, usePickDefaultAccount_1.usePickDefaultAccount)(accounts, undefined, setFromAccount);
120
+ });
121
+ expect(setFromAccount).toHaveBeenCalledTimes(1);
122
+ expect(setFromAccount).toHaveBeenCalledWith(ethAccount);
123
+ });
124
+ test("returns the ethereum enabled account with the highest balance", function () {
125
+ var ethAccount = getEthAccount();
126
+ var ethAccount2 = getEthAccount();
127
+ ethAccount.amount = new bignumber_js_1["default"](1000);
128
+ ethAccount2.amount = new bignumber_js_1["default"](0);
129
+ var accounts = [
130
+ __assign(__assign({}, getEthAccount()), { disabled: true }),
131
+ ethAccount,
132
+ getBtcAccount(),
133
+ ethAccount2,
134
+ ];
135
+ (0, react_hooks_1.renderHook)(function () {
136
+ return (0, usePickDefaultAccount_1.usePickDefaultAccount)(accounts, undefined, setFromAccount);
137
+ });
138
+ expect(setFromAccount).toHaveBeenCalledTimes(1);
139
+ expect(setFromAccount).toHaveBeenCalledWith(ethAccount);
140
+ });
141
+ test("returns the first bitcoin account when no ethereum accounts are passed/enabled and all btc accounts have the same balance", function () {
142
+ var BtcAccount = getBtcAccount();
143
+ var accounts = [
144
+ __assign(__assign({}, getEthAccount()), { disabled: true }),
145
+ BtcAccount,
146
+ getBtcAccount(),
147
+ ];
148
+ (0, react_hooks_1.renderHook)(function () {
149
+ return (0, usePickDefaultAccount_1.usePickDefaultAccount)(accounts, undefined, setFromAccount);
150
+ });
151
+ expect(setFromAccount).toHaveBeenCalledTimes(1);
152
+ expect(setFromAccount).toHaveBeenCalledWith(BtcAccount);
153
+ });
154
+ test("returns the bitcoin enabled account with the highest balance when no ETH accounts are passed", function () {
155
+ var btcAccount = getBtcAccount();
156
+ var btcAccount2 = getBtcAccount();
157
+ btcAccount.amount = new bignumber_js_1["default"](1000);
158
+ btcAccount2.amount = new bignumber_js_1["default"](0);
159
+ var accounts = [
160
+ __assign(__assign({}, getEthAccount()), { disabled: true }),
161
+ btcAccount,
162
+ btcAccount2,
163
+ ];
164
+ (0, react_hooks_1.renderHook)(function () {
165
+ return (0, usePickDefaultAccount_1.usePickDefaultAccount)(accounts, undefined, setFromAccount);
166
+ });
167
+ expect(setFromAccount).toHaveBeenCalledTimes(1);
168
+ expect(setFromAccount).toHaveBeenCalledWith(btcAccount);
169
+ });
170
+ test("returns the first enabled account when no ethereum/bitcoin accounts are passed", function () {
171
+ var dotAccount = getPolkadotAccount();
172
+ var accounts = [
173
+ __assign(__assign({}, getCosmosAccount()), { disabled: true }),
174
+ dotAccount,
175
+ getPolkadotAccount(),
176
+ getCosmosAccount(),
177
+ ];
178
+ (0, react_hooks_1.renderHook)(function () {
179
+ return (0, usePickDefaultAccount_1.usePickDefaultAccount)(accounts, undefined, setFromAccount);
180
+ });
181
+ expect(setFromAccount).toHaveBeenCalledTimes(1);
182
+ expect(setFromAccount).toHaveBeenCalledWith(dotAccount);
183
+ });
184
+ });
185
+ //# sourceMappingURL=usePickDefaultAccount.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePickDefaultAccount.test.js","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePickDefaultAccount.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { CryptoCurrency, TokenCurrency } from "../../../types";
2
+ export declare const usePickDefaultCurrency: (currencies: (CryptoCurrency | TokenCurrency)[], currency: (CryptoCurrency | TokenCurrency) | null | undefined, setCurrency: (currency: CryptoCurrency | TokenCurrency) => void) => void;
3
+ //# sourceMappingURL=usePickDefaultCurrency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePickDefaultCurrency.d.ts","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePickDefaultCurrency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/D,eAAO,MAAM,sBAAsB,eACrB,CAAC,cAAc,GAAG,aAAa,CAAC,EAAE,YACpC,CAAC,cAAc,GAAG,aAAa,CAAC,GAAG,IAAI,GAAG,SAAS,0BACrC,cAAc,GAAG,aAAa,KAAK,IAAI,KAC9D,IAWF,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.usePickDefaultCurrency = void 0;
4
+ var react_1 = require("react");
5
+ // Pick a default currency target if none are selected.
6
+ var usePickDefaultCurrency = function (currencies, currency, setCurrency) {
7
+ (0, react_1.useEffect)(function () {
8
+ // Keep the same currency target if it is still valid.
9
+ var isCurrencyValid = currency && currencies.indexOf(currency) >= 0;
10
+ if (!currency || !isCurrencyValid) {
11
+ var defaultCurrency = currencies.find(function (currency) { return currency.id === "ethereum" || currency.id === "bitcoin"; });
12
+ defaultCurrency && setCurrency(defaultCurrency);
13
+ }
14
+ }, [currency, currencies, setCurrency]);
15
+ };
16
+ exports.usePickDefaultCurrency = usePickDefaultCurrency;
17
+ //# sourceMappingURL=usePickDefaultCurrency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePickDefaultCurrency.js","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePickDefaultCurrency.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAGlC,uDAAuD;AAChD,IAAM,sBAAsB,GAAG,UACpC,UAA8C,EAC9C,QAA6D,EAC7D,WAA+D;IAE/D,IAAA,iBAAS,EAAC;QACR,sDAAsD;QACtD,IAAM,eAAe,GAAG,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,EAAE;YACjC,IAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CACrC,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,EAAE,KAAK,UAAU,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAvD,CAAuD,CACtE,CAAC;YACF,eAAe,IAAI,WAAW,CAAC,eAAe,CAAC,CAAC;SACjD;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAfW,QAAA,sBAAsB,0BAejC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=usePickDefaultCurrency.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePickDefaultCurrency.test.d.ts","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePickDefaultCurrency.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var react_hooks_1 = require("@testing-library/react-hooks");
4
+ var usePickDefaultCurrency_1 = require("./usePickDefaultCurrency");
5
+ var currencies_1 = require("../../../currencies");
6
+ describe("usePickDefaultCurrency", function () {
7
+ var setCurrency = jest.fn();
8
+ beforeEach(function () {
9
+ setCurrency.mockClear();
10
+ });
11
+ test("do nothing when the passed currency is valid", function () {
12
+ var currencies = [
13
+ (0, currencies_1.getCryptoCurrencyById)("ethereum"),
14
+ (0, currencies_1.getCryptoCurrencyById)("bitcoin"),
15
+ (0, currencies_1.getCryptoCurrencyById)("bsc"),
16
+ ];
17
+ (0, react_hooks_1.renderHook)(function () {
18
+ return (0, usePickDefaultCurrency_1.usePickDefaultCurrency)(currencies, (0, currencies_1.getCryptoCurrencyById)("ethereum"), setCurrency);
19
+ });
20
+ expect(setCurrency).toHaveBeenCalledTimes(0);
21
+ });
22
+ test("do nothing if the currency is undefined/null and the currencies list don't include eth/btc", function () {
23
+ var currencies = [
24
+ (0, currencies_1.getCryptoCurrencyById)("solana"),
25
+ (0, currencies_1.getCryptoCurrencyById)("polkadot"),
26
+ (0, currencies_1.getCryptoCurrencyById)("bsc"),
27
+ ];
28
+ (0, react_hooks_1.renderHook)(function () {
29
+ return (0, usePickDefaultCurrency_1.usePickDefaultCurrency)(currencies, undefined, setCurrency);
30
+ });
31
+ expect(setCurrency).toHaveBeenCalledTimes(0);
32
+ });
33
+ test("do nothing if the currency passed isn't valid in the list and the currencies list don't include eth/btc", function () {
34
+ var currencies = [
35
+ (0, currencies_1.getCryptoCurrencyById)("solana"),
36
+ (0, currencies_1.getCryptoCurrencyById)("polkadot"),
37
+ (0, currencies_1.getCryptoCurrencyById)("bsc"),
38
+ ];
39
+ (0, react_hooks_1.renderHook)(function () {
40
+ return (0, usePickDefaultCurrency_1.usePickDefaultCurrency)(currencies, (0, currencies_1.getCryptoCurrencyById)("stellar"), setCurrency);
41
+ });
42
+ expect(setCurrency).toHaveBeenCalledTimes(0);
43
+ });
44
+ test("returns the ethereum currency if the passed currency isn't valid and ethereum comes before bitcoin in the list", function () {
45
+ var ethereumCurrency = (0, currencies_1.getCryptoCurrencyById)("ethereum");
46
+ var currencies = [
47
+ (0, currencies_1.getCryptoCurrencyById)("bsc"),
48
+ ethereumCurrency,
49
+ (0, currencies_1.getCryptoCurrencyById)("bitcoin"),
50
+ (0, currencies_1.getCryptoCurrencyById)("polkadot"),
51
+ ];
52
+ (0, react_hooks_1.renderHook)(function () {
53
+ return (0, usePickDefaultCurrency_1.usePickDefaultCurrency)(currencies, (0, currencies_1.getCryptoCurrencyById)("stellar"), setCurrency);
54
+ });
55
+ expect(setCurrency).toHaveBeenCalledTimes(1);
56
+ expect(setCurrency).toHaveBeenCalledWith(ethereumCurrency);
57
+ });
58
+ test("returns the bitcoin currency if the passed currency isn't valid and bitcoin comes before ethereum in the list", function () {
59
+ var bitcoinCurrency = (0, currencies_1.getCryptoCurrencyById)("bitcoin");
60
+ var currencies = [
61
+ (0, currencies_1.getCryptoCurrencyById)("bsc"),
62
+ bitcoinCurrency,
63
+ (0, currencies_1.getCryptoCurrencyById)("ethereum"),
64
+ (0, currencies_1.getCryptoCurrencyById)("polkadot"),
65
+ ];
66
+ (0, react_hooks_1.renderHook)(function () {
67
+ return (0, usePickDefaultCurrency_1.usePickDefaultCurrency)(currencies, (0, currencies_1.getCryptoCurrencyById)("stellar"), setCurrency);
68
+ });
69
+ expect(setCurrency).toHaveBeenCalledTimes(1);
70
+ expect(setCurrency).toHaveBeenCalledWith(bitcoinCurrency);
71
+ });
72
+ });
73
+ //# sourceMappingURL=usePickDefaultCurrency.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePickDefaultCurrency.test.js","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePickDefaultCurrency.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const KYC_STATUS_POLLING_INTERVAL = 10000;
2
+ export declare type KYCItem = {
3
+ id: string;
4
+ status: string;
5
+ };
6
+ export declare type UsePollKYCStatusProps = {
7
+ provider: string;
8
+ kyc: KYCItem;
9
+ onChange: (item: KYCItem) => void;
10
+ };
11
+ export declare const usePollKYCStatus: ({ provider, kyc, onChange }: UsePollKYCStatusProps, dependencies?: never[]) => void;
12
+ //# sourceMappingURL=usePollKYCStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePollKYCStatus.d.ts","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePollKYCStatus.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AACjD,oBAAY,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,oBAAY,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC,CAAC;AACF,eAAO,MAAM,gBAAgB,gCACE,qBAAqB,6BAEjD,IAwBF,CAAC"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __read = (this && this.__read) || function (o, n) {
39
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
40
+ if (!m) return o;
41
+ var i = m.call(o), r, ar = [], e;
42
+ try {
43
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
+ }
45
+ catch (error) { e = { error: error }; }
46
+ finally {
47
+ try {
48
+ if (r && !r.done && (m = i["return"])) m.call(i);
49
+ }
50
+ finally { if (e) throw e.error; }
51
+ }
52
+ return ar;
53
+ };
54
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
56
+ if (ar || !(i in from)) {
57
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
58
+ ar[i] = from[i];
59
+ }
60
+ }
61
+ return to.concat(ar || Array.prototype.slice.call(from));
62
+ };
63
+ exports.__esModule = true;
64
+ exports.usePollKYCStatus = exports.KYC_STATUS_POLLING_INTERVAL = void 0;
65
+ var react_1 = require("react");
66
+ var utils_1 = require("../utils");
67
+ var __1 = require("..");
68
+ // Poll the server to update the KYC status of a given provider.
69
+ exports.KYC_STATUS_POLLING_INTERVAL = 10000;
70
+ var usePollKYCStatus = function (_a, dependencies) {
71
+ var provider = _a.provider, kyc = _a.kyc, onChange = _a.onChange;
72
+ if (dependencies === void 0) { dependencies = []; }
73
+ (0, react_1.useEffect)(function () {
74
+ if ((kyc === null || kyc === void 0 ? void 0 : kyc.status) !== utils_1.KYC_STATUS.pending)
75
+ return;
76
+ var cancelled = false;
77
+ function updateKYCStatus() {
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var res;
80
+ return __generator(this, function (_a) {
81
+ switch (_a.label) {
82
+ case 0:
83
+ if (!(kyc === null || kyc === void 0 ? void 0 : kyc.id))
84
+ return [2 /*return*/];
85
+ return [4 /*yield*/, (0, __1.getKYCStatus)(provider, kyc.id)];
86
+ case 1:
87
+ res = _a.sent();
88
+ if (cancelled || (res === null || res === void 0 ? void 0 : res.status) === (kyc === null || kyc === void 0 ? void 0 : kyc.status))
89
+ return [2 /*return*/];
90
+ onChange(res);
91
+ return [2 /*return*/];
92
+ }
93
+ });
94
+ });
95
+ }
96
+ var intervalId = setInterval(updateKYCStatus, exports.KYC_STATUS_POLLING_INTERVAL);
97
+ updateKYCStatus();
98
+ return function () {
99
+ cancelled = true;
100
+ clearInterval(intervalId);
101
+ };
102
+ }, __spreadArray([provider, kyc], __read(dependencies), false));
103
+ };
104
+ exports.usePollKYCStatus = usePollKYCStatus;
105
+ //# sourceMappingURL=usePollKYCStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePollKYCStatus.js","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePollKYCStatus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAkC;AAClC,kCAAsC;AACtC,wBAAkC;AAElC,gEAAgE;AACnD,QAAA,2BAA2B,GAAG,KAAK,CAAC;AAU1C,IAAM,gBAAgB,GAAG,UAC9B,EAAkD,EAClD,YAAiB;QADf,QAAQ,cAAA,EAAE,GAAG,SAAA,EAAE,QAAQ,cAAA;IACzB,6BAAA,EAAA,iBAAiB;IAEjB,IAAA,iBAAS,EACP;QACE,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,MAAK,kBAAU,CAAC,OAAO;YAAE,OAAO;QAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,SAAe,eAAe;;;;;;4BAC5B,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,EAAE,CAAA;gCAAE,sBAAO;4BACT,qBAAM,IAAA,gBAAY,EAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAAA;;4BAA1C,GAAG,GAAG,SAAoC;4BAChD,IAAI,SAAS,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,OAAK,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAA;gCAAE,sBAAO;4BACrD,QAAQ,CAAC,GAAG,CAAC,CAAC;;;;;SACf;QACD,IAAM,UAAU,GAAG,WAAW,CAC5B,eAAe,EACf,mCAA2B,CAC5B,CAAC;QACF,eAAe,EAAE,CAAC;QAClB,OAAO;YACL,SAAS,GAAG,IAAI,CAAC;YACjB,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC,iBAEA,QAAQ,EAAE,GAAG,UAAK,YAAY,UAChC,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,gBAAgB,oBA2B3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=usePollKYCStatus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePollKYCStatus.test.d.ts","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePollKYCStatus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
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
+ exports.__esModule = true;
14
+ var react_hooks_1 = require("@testing-library/react-hooks");
15
+ var utils_1 = require("ts-jest/utils");
16
+ var usePollKYCStatus_1 = require("./usePollKYCStatus");
17
+ var utils_2 = require("../utils");
18
+ var __1 = require("..");
19
+ // mock getKYCStatus
20
+ jest.mock("..");
21
+ var mockedGetKYCStatus = (0, utils_1.mocked)(__1.getKYCStatus, true);
22
+ describe("usePollKYCStatus", function () {
23
+ var defaultInput = {
24
+ provider: "changelly",
25
+ kyc: { id: "1", status: utils_2.KYC_STATUS.pending },
26
+ onChange: function () { }
27
+ };
28
+ beforeEach(function () {
29
+ mockedGetKYCStatus.mockReset();
30
+ jest.useFakeTimers();
31
+ });
32
+ afterEach(function () {
33
+ jest.runOnlyPendingTimers();
34
+ jest.useRealTimers();
35
+ });
36
+ test("KYC status isn't fetched when the local status isn't PENDING", function () {
37
+ Object.values(utils_2.KYC_STATUS)
38
+ .filter(function (status) { return status !== "pending"; })
39
+ .forEach(function (status) {
40
+ var input = __assign(__assign({}, defaultInput), { kyc: { id: "1", status: status } });
41
+ (0, react_hooks_1.renderHook)(function () { return (0, usePollKYCStatus_1.usePollKYCStatus)(input); });
42
+ expect(mockedGetKYCStatus).toHaveBeenCalledTimes(0);
43
+ });
44
+ });
45
+ test("onChange isn't triggered when the local/remote status are equals", function () {
46
+ var onChange = jest.fn();
47
+ var input = __assign(__assign({}, defaultInput), { onChange: onChange });
48
+ var fetchedValue = { status: "pending", id: "1" };
49
+ mockedGetKYCStatus.mockResolvedValueOnce(fetchedValue);
50
+ (0, react_hooks_1.renderHook)(function () { return (0, usePollKYCStatus_1.usePollKYCStatus)(input); });
51
+ expect(mockedGetKYCStatus).toHaveBeenCalledTimes(1);
52
+ expect(mockedGetKYCStatus).toHaveBeenCalledWith(input.provider, input.kyc.id);
53
+ expect(onChange).toHaveBeenCalledTimes(0);
54
+ });
55
+ test("onChange is triggered when the local/remote status are different", function () {
56
+ var onChange = jest.fn();
57
+ var input = __assign(__assign({}, defaultInput), { onChange: onChange });
58
+ var fetchedValue = { status: "approved", id: "1" };
59
+ mockedGetKYCStatus.mockResolvedValueOnce(fetchedValue);
60
+ var waitFor = (0, react_hooks_1.renderHook)(function () { return (0, usePollKYCStatus_1.usePollKYCStatus)(input); }).waitFor;
61
+ expect(mockedGetKYCStatus).toHaveBeenCalledTimes(1);
62
+ waitFor(function () { return expect(onChange).toHaveBeenCalledTimes(1); });
63
+ });
64
+ test("setInterval retriggers the updateKYCStatus function", function () {
65
+ var onChange = jest.fn();
66
+ var input = __assign(__assign({}, defaultInput), { onChange: onChange });
67
+ var fetchedValue = { status: "approved", id: "1" };
68
+ mockedGetKYCStatus.mockResolvedValue(fetchedValue);
69
+ var waitFor = (0, react_hooks_1.renderHook)(function () { return (0, usePollKYCStatus_1.usePollKYCStatus)(input); }).waitFor;
70
+ waitFor(function () { return expect(onChange).toHaveBeenCalledTimes(1); });
71
+ waitFor(function () { return expect(mockedGetKYCStatus).toHaveBeenCalledTimes(1); });
72
+ // manually trigger the setInterval
73
+ jest.advanceTimersByTime(usePollKYCStatus_1.KYC_STATUS_POLLING_INTERVAL);
74
+ waitFor(function () { return expect(onChange).toHaveBeenCalledTimes(2); });
75
+ waitFor(function () { return expect(mockedGetKYCStatus).toHaveBeenCalledTimes(2); });
76
+ });
77
+ });
78
+ //# sourceMappingURL=usePollKYCStatus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePollKYCStatus.test.js","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/usePollKYCStatus.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { OnNoRatesCallback, SetExchangeRateCallback, SwapSelectorStateType } from "./useSwapTransaction";
2
+ import { ExchangeRate } from "../types";
3
+ import { Transaction } from "../../../generated/types";
4
+ export declare type RatesReducerState = {
5
+ status?: string | null;
6
+ value?: ExchangeRate[];
7
+ error?: Error;
8
+ };
9
+ export declare const useProviderRates: ({ fromState, toState, exchangeRate, transaction, onNoRates, setExchangeRate, }: {
10
+ fromState: SwapSelectorStateType;
11
+ toState: SwapSelectorStateType;
12
+ exchangeRate?: ExchangeRate | null | undefined;
13
+ transaction?: Transaction | null | undefined;
14
+ onNoRates?: OnNoRatesCallback | null | undefined;
15
+ setExchangeRate?: SetExchangeRateCallback | null | undefined;
16
+ }) => {
17
+ rates: RatesReducerState;
18
+ refetchRates: () => void;
19
+ };
20
+ //# sourceMappingURL=useProviderRates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProviderRates.d.ts","sourceRoot":"","sources":["../../../../src/exchange/swap/hooks/useProviderRates.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAY,YAAY,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,oBAAY,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAkBF,eAAO,MAAM,gBAAgB;eAQhB,qBAAqB;aACvB,qBAAqB;mBACf,YAAY,GAAG,IAAI,GAAG,SAAS;kBAChC,WAAW,GAAG,IAAI,GAAG,SAAS;gBAChC,iBAAiB,GAAG,IAAI,GAAG,SAAS;sBAC9B,uBAAuB,GAAG,IAAI,GAAG,SAAS;;WAErD,iBAAiB;kBACV,MAAM,IAAI;CAgFzB,CAAC"}