@multiversx/sdk-dapp-liquidity 1.1.0-alpha.2 → 1.1.0-alpha.20

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 (227) hide show
  1. package/README.md +6 -1
  2. package/api/getTransactions.d.ts +8 -2
  3. package/api/getTransactions.js +23 -3
  4. package/api/getTransactions.mjs +23 -3
  5. package/api/tests/getChains.spec.js +2 -1
  6. package/api/tests/getChains.spec.mjs +2 -1
  7. package/api/tests/getTokens.spec.js +2 -2
  8. package/api/tests/getTokens.spec.mjs +2 -2
  9. package/api/tests/getTransactions.spec.js +79 -69
  10. package/api/tests/getTransactions.spec.mjs +79 -69
  11. package/constants/index.d.ts +1 -1
  12. package/constants/index.js +1 -1
  13. package/constants/index.mjs +1 -1
  14. package/dto/Chain.dto.d.ts +3 -1
  15. package/dto/ConfirmRate.dto.d.ts +1 -0
  16. package/dto/Token.dto.d.ts +7 -2
  17. package/index.js +44 -16
  18. package/index.mjs +14 -16
  19. package/package.json +10 -6
  20. package/reactjs/components/BridgeForm/BridgeForm.js +175 -85
  21. package/reactjs/components/BridgeForm/BridgeForm.mjs +146 -56
  22. package/reactjs/components/BridgeHistory/BridgeHistory.js +63 -25
  23. package/reactjs/components/BridgeHistory/BridgeHistory.mjs +58 -20
  24. package/reactjs/components/Connect/BridgeAccountDisplay.js +2 -5
  25. package/reactjs/components/Connect/BridgeAccountDisplay.mjs +2 -5
  26. package/reactjs/components/Connect/CustomConnectButton.js +2 -5
  27. package/reactjs/components/Connect/CustomConnectButton.mjs +1 -4
  28. package/reactjs/components/Connect/SwitchChainButton.js +2 -6
  29. package/reactjs/components/Connect/SwitchChainButton.mjs +1 -5
  30. package/reactjs/components/CopyButton/CopyButton.js +2 -2
  31. package/reactjs/components/CopyButton/CopyButton.mjs +2 -2
  32. package/reactjs/components/DisplayAmount/components/AnimateNumber/AnimateNumber.js +5 -5
  33. package/reactjs/components/Error/Error.d.ts +6 -0
  34. package/reactjs/components/Error/Error.js +67 -0
  35. package/reactjs/components/Error/Error.mjs +66 -0
  36. package/reactjs/components/Error/index.d.ts +1 -0
  37. package/reactjs/components/Error/index.js +5 -0
  38. package/reactjs/components/Error/index.mjs +4 -0
  39. package/reactjs/components/TokenSelector/TokenSelector.d.ts +2 -1
  40. package/reactjs/components/TokenSelector/TokenSelector.js +17 -9
  41. package/reactjs/components/TokenSelector/TokenSelector.mjs +13 -5
  42. package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.d.ts +2 -1
  43. package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.js +7 -3
  44. package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.mjs +4 -0
  45. package/reactjs/components/TokenSelector/components/SelectContent.d.ts +2 -1
  46. package/reactjs/components/TokenSelector/components/SelectContent.js +12 -9
  47. package/reactjs/components/TokenSelector/components/SelectContent.mjs +4 -1
  48. package/reactjs/components/TokenSelector/components/TokenIcon.js +3 -3
  49. package/reactjs/components/TokenSelector/components/TokenItem.js +9 -9
  50. package/reactjs/components/TokenSelector/components/TokenItem.mjs +6 -6
  51. package/reactjs/components/base/MxCard/MxCard.js +2 -2
  52. package/reactjs/components/base/MxCircleLoader/MxCircleLoader.d.ts +4 -0
  53. package/reactjs/components/base/MxCircleLoader/MxCircleLoader.js +29 -0
  54. package/reactjs/components/base/MxCircleLoader/MxCircleLoader.mjs +28 -0
  55. package/reactjs/components/base/MxCircleLoader/index.d.ts +1 -0
  56. package/reactjs/components/base/MxCircleLoader/index.js +5 -0
  57. package/reactjs/components/base/MxCircleLoader/index.mjs +4 -0
  58. package/reactjs/components/base/MxLink/MxLink.js +2 -2
  59. package/reactjs/components/base/MxSearch/MxSearch.js +4 -4
  60. package/reactjs/components/base/MxSlideover/MxSlideover.js +4 -4
  61. package/reactjs/components/base/MxTooltip/MxTooltip.js +9 -9
  62. package/reactjs/components/base/MxTooltip/components/TooltipContainer/TooltipContainer.js +2 -2
  63. package/reactjs/components/index.d.ts +1 -0
  64. package/reactjs/components/index.js +2 -0
  65. package/reactjs/components/index.mjs +2 -0
  66. package/reactjs/context/Web3AppProvider.d.ts +3 -1
  67. package/reactjs/context/Web3AppProvider.js +7 -5
  68. package/reactjs/context/Web3AppProvider.mjs +4 -2
  69. package/reactjs/context/useWeb3App.js +2 -2
  70. package/reactjs/hooks/index.js +1 -1
  71. package/reactjs/hooks/index.mjs +1 -1
  72. package/reactjs/hooks/useAccount.js +1 -5
  73. package/reactjs/hooks/useAccount.mjs +1 -5
  74. package/reactjs/hooks/useBalances.d.ts +4 -4
  75. package/reactjs/hooks/useBalances.js +16 -1
  76. package/reactjs/hooks/useBalances.mjs +16 -1
  77. package/reactjs/hooks/useBridgeFormik.js +9 -16
  78. package/reactjs/hooks/useBridgeFormik.mjs +0 -7
  79. package/reactjs/hooks/useDebounce.js +3 -3
  80. package/reactjs/hooks/useFetchBridgeData.d.ts +14 -4
  81. package/reactjs/hooks/useFetchTokens.d.ts +14 -4
  82. package/reactjs/hooks/useFetchTokens.js +9 -9
  83. package/reactjs/hooks/useFetchTokens.mjs +2 -2
  84. package/reactjs/hooks/useFiatData.d.ts +7 -2
  85. package/reactjs/hooks/useFiatData.js +6 -6
  86. package/reactjs/hooks/useFiatData.mjs +1 -1
  87. package/reactjs/hooks/useGetChainId.js +3 -3
  88. package/reactjs/hooks/useGetChainId.mjs +1 -1
  89. package/reactjs/hooks/useResolveTokenChain.js +2 -2
  90. package/reactjs/hooks/useSendTransactions.js +2 -2
  91. package/reactjs/hooks/useSignTransaction.d.ts +93 -67
  92. package/reactjs/hooks/useSignTransaction.js +53 -4
  93. package/reactjs/hooks/useSignTransaction.mjs +53 -4
  94. package/reactjs/hooks/validation/useTestHasEnoughFunds.js +3 -3
  95. package/reactjs/hooks/validation/useTestIsConnected.js +2 -2
  96. package/reactjs/index.js +44 -16
  97. package/reactjs/index.mjs +14 -16
  98. package/reactjs/init/init.d.ts +220 -1
  99. package/reactjs/init/init.js +34 -10
  100. package/reactjs/init/init.mjs +31 -7
  101. package/reactjs/init/tests/init.spec.js +5 -6
  102. package/reactjs/init/tests/init.spec.mjs +5 -6
  103. package/reactjs/queries/index.d.ts +0 -1
  104. package/reactjs/queries/index.js +0 -2
  105. package/reactjs/queries/index.mjs +1 -3
  106. package/reactjs/queries/useGetEvmTokensBalances.query.d.ts +8 -3
  107. package/reactjs/queries/useGetEvmTokensBalances.query.js +15 -18
  108. package/reactjs/queries/useGetEvmTokensBalances.query.mjs +15 -18
  109. package/reactjs/queries/useGetHistory.query.d.ts +9 -1
  110. package/reactjs/queries/useGetHistory.query.js +23 -5
  111. package/reactjs/queries/useGetHistory.query.mjs +23 -5
  112. package/reactjs/queries/useGetMvxTokensBalances.query.d.ts +7 -2
  113. package/reactjs/queries/useGetMvxTokensBalances.query.js +2 -2
  114. package/reactjs/reexports.d.ts +2 -1
  115. package/reactjs/reexports.js +41 -13
  116. package/reactjs/reexports.mjs +11 -13
  117. package/style.css +33 -1730
  118. package/types/chainType.d.ts +6 -0
  119. package/types/chainType.js +11 -0
  120. package/types/chainType.mjs +10 -0
  121. package/types/transaction.d.ts +28 -0
  122. package/types/utxo.d.ts +11 -0
  123. package/types/utxo.js +2 -0
  124. package/types/utxo.mjs +1 -0
  125. package/{useBalances-C_69CFoa.mjs → useBalances-DTvWU9si.mjs} +92 -23
  126. package/{useBalances-C4YhEYxy.js → useBalances-Vfi3IkES.js} +93 -24
  127. package/index-BIVnypNe.mjs +0 -108
  128. package/index-Ben8n3bd.js +0 -58656
  129. package/index-CnKr4rL1.mjs +0 -91
  130. package/index-CnuruJNu.js +0 -329
  131. package/index-DsBh-EBw.js +0 -108
  132. package/index-iN9APQ6x.mjs +0 -58735
  133. package/modules/fiat/components/FiatForm/FiatForm.d.ts +0 -9
  134. package/modules/fiat/components/FiatForm/FiatForm.js +0 -314
  135. package/modules/fiat/components/FiatForm/FiatForm.mjs +0 -313
  136. package/modules/fiat/components/FiatForm/components/AmountInput/AmountInput.d.ts +0 -13
  137. package/modules/fiat/components/FiatForm/components/AmountInput/AmountInput.js +0 -117
  138. package/modules/fiat/components/FiatForm/components/AmountInput/AmountInput.mjs +0 -116
  139. package/modules/fiat/components/FiatForm/components/AmountInput/index.d.ts +0 -1
  140. package/modules/fiat/components/FiatForm/components/AmountInput/index.js +0 -5
  141. package/modules/fiat/components/FiatForm/components/AmountInput/index.mjs +0 -4
  142. package/modules/fiat/components/FiatForm/components/RateReloading/RateReloading.d.ts +0 -7
  143. package/modules/fiat/components/FiatForm/components/RateReloading/RateReloading.js +0 -74
  144. package/modules/fiat/components/FiatForm/components/RateReloading/RateReloading.mjs +0 -73
  145. package/modules/fiat/components/FiatForm/components/TokenSelector/TokenSelector.d.ts +0 -14
  146. package/modules/fiat/components/FiatForm/components/TokenSelector/TokenSelector.js +0 -94
  147. package/modules/fiat/components/FiatForm/components/TokenSelector/TokenSelector.mjs +0 -93
  148. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectContainer.d.ts +0 -7
  149. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectContainer.js +0 -82
  150. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectContainer.mjs +0 -81
  151. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectContent.d.ts +0 -7
  152. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectContent.js +0 -91
  153. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectContent.mjs +0 -90
  154. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectedOption.d.ts +0 -5
  155. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectedOption.js +0 -30
  156. package/modules/fiat/components/FiatForm/components/TokenSelector/components/SelectedOption.mjs +0 -29
  157. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenIcon.d.ts +0 -8
  158. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenIcon.js +0 -103
  159. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenIcon.mjs +0 -102
  160. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenItem.d.ts +0 -7
  161. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenItem.js +0 -33
  162. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenItem.mjs +0 -32
  163. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenList.d.ts +0 -7
  164. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenList.js +0 -21
  165. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenList.mjs +0 -20
  166. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenSymbol.d.ts +0 -9
  167. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenSymbol.js +0 -26
  168. package/modules/fiat/components/FiatForm/components/TokenSelector/components/TokenSymbol.mjs +0 -25
  169. package/modules/fiat/components/FiatForm/components/TokenSelector/index.d.ts +0 -1
  170. package/modules/fiat/components/FiatForm/components/TokenSelector/index.js +0 -5
  171. package/modules/fiat/components/FiatForm/components/TokenSelector/index.mjs +0 -4
  172. package/modules/fiat/components/FiatForm/index.d.ts +0 -1
  173. package/modules/fiat/components/FiatForm/index.js +0 -5
  174. package/modules/fiat/components/FiatForm/index.mjs +0 -4
  175. package/modules/fiat/components/index.d.ts +0 -1
  176. package/modules/fiat/components/index.js +0 -5
  177. package/modules/fiat/components/index.mjs +0 -4
  178. package/modules/fiat/context/FiatProvider.d.ts +0 -8
  179. package/modules/fiat/context/FiatProvider.js +0 -24
  180. package/modules/fiat/context/FiatProvider.mjs +0 -23
  181. package/modules/fiat/context/queryClient.d.ts +0 -3
  182. package/modules/fiat/context/queryClient.js +0 -12
  183. package/modules/fiat/context/queryClient.mjs +0 -11
  184. package/modules/fiat/context/useFiat.d.ts +0 -1
  185. package/modules/fiat/context/useFiat.js +0 -13
  186. package/modules/fiat/context/useFiat.mjs +0 -12
  187. package/modules/fiat/hooks/index.d.ts +0 -2
  188. package/modules/fiat/hooks/index.js +0 -7
  189. package/modules/fiat/hooks/index.mjs +0 -6
  190. package/modules/fiat/hooks/useFiatData.d.ts +0 -7
  191. package/modules/fiat/hooks/useFiatData.js +0 -75
  192. package/modules/fiat/hooks/useFiatData.mjs +0 -74
  193. package/modules/fiat/hooks/validation/index.d.ts +0 -1
  194. package/modules/fiat/hooks/validation/index.js +0 -5
  195. package/modules/fiat/hooks/validation/index.mjs +0 -4
  196. package/modules/fiat/hooks/validation/useAmountSchema.d.ts +0 -2
  197. package/modules/fiat/hooks/validation/useAmountSchema.js +0 -27
  198. package/modules/fiat/hooks/validation/useAmountSchema.mjs +0 -9
  199. package/modules/fiat/index.d.ts +0 -8
  200. package/modules/fiat/index.js +0 -22
  201. package/modules/fiat/index.mjs +0 -21
  202. package/modules/fiat/init/index.d.ts +0 -2
  203. package/modules/fiat/init/index.js +0 -5
  204. package/modules/fiat/init/index.mjs +0 -4
  205. package/modules/fiat/init/init.d.ts +0 -22
  206. package/modules/fiat/init/init.js +0 -15
  207. package/modules/fiat/init/init.mjs +0 -14
  208. package/modules/fiat/queries/index.d.ts +0 -2
  209. package/modules/fiat/queries/index.js +0 -7
  210. package/modules/fiat/queries/index.mjs +0 -6
  211. package/modules/fiat/queries/useGetRate.mutation.d.ts +0 -6
  212. package/modules/fiat/queries/useGetRate.mutation.js +0 -20
  213. package/modules/fiat/queries/useGetRate.mutation.mjs +0 -19
  214. package/modules/fiat/queries/useGetTokens.query.d.ts +0 -5
  215. package/modules/fiat/queries/useGetTokens.query.js +0 -33
  216. package/modules/fiat/queries/useGetTokens.query.mjs +0 -32
  217. package/react-47kZTyAT.mjs +0 -51
  218. package/react-B_iI3-1z.mjs +0 -3133
  219. package/react-BomcNL1v.js +0 -254
  220. package/react-CqKlu0W0.js +0 -51
  221. package/react-R_xxu7fN.js +0 -3133
  222. package/react-cXurUY4Z.mjs +0 -254
  223. package/reactjs/queries/useGetTokens.query.d.ts +0 -3
  224. package/reactjs/queries/useGetTokens.query.js +0 -34
  225. package/reactjs/queries/useGetTokens.query.mjs +0 -33
  226. package/w3m-modal-Bhg44d6I.js +0 -356
  227. package/w3m-modal-Br2Ec3MM.mjs +0 -356
package/README.md CHANGED
@@ -183,4 +183,9 @@ const App = () => {
183
183
  </Web3AppProvider>
184
184
  )
185
185
  }
186
- ```
186
+ ```
187
+
188
+ ## Disclaimer
189
+
190
+ 1. This package is in active development and is subject to change. We recommend to check the latest version and update your code accordingly.
191
+ 2. This package is not fully supported on the Next.js framework. We are working on a solution to make it compatible with Next.js.
@@ -1,7 +1,13 @@
1
+ import { ProviderType } from 'types/providerType';
1
2
  import { TransactionDTO } from 'dto/Transaction.dto';
2
3
  import { AxiosResponse } from 'axios';
3
4
 
4
- export declare function getTransactions({ url, userWalletAddress }: {
5
+ export declare function getTransactions({ url, address, sender, provider, status, tokenIn, tokenOut }: {
5
6
  url: string;
6
- userWalletAddress: string;
7
+ address: string;
8
+ sender?: string;
9
+ provider?: ProviderType;
10
+ status?: string;
11
+ tokenIn?: string;
12
+ tokenOut?: string;
7
13
  }): Promise<AxiosResponse<TransactionDTO[]>>;
@@ -4,10 +4,30 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  const axios = require("axios");
5
5
  async function getTransactions({
6
6
  url,
7
- userWalletAddress
7
+ address,
8
+ sender,
9
+ provider,
10
+ status,
11
+ tokenIn,
12
+ tokenOut
8
13
  }) {
9
- const endpoint = userWalletAddress ? `/transactions/${userWalletAddress}` : "/transactions";
10
- return await axios.get(endpoint, {
14
+ const queryParams = new URLSearchParams({
15
+ receiver: address || "",
16
+ sender: sender || "",
17
+ provider: provider || "",
18
+ status: status || "",
19
+ tokenIn: tokenIn || "",
20
+ tokenOut: tokenOut || ""
21
+ });
22
+ const params = Object.entries(Object.fromEntries(queryParams.entries()));
23
+ for (const [key, value] of params) {
24
+ if (value === "") {
25
+ queryParams.delete(key);
26
+ }
27
+ }
28
+ const queryString = queryParams.toString();
29
+ const endpointWithParams = `/transactions?${queryString}`;
30
+ return await axios.get(endpointWithParams, {
11
31
  baseURL: url
12
32
  });
13
33
  }
@@ -1,10 +1,30 @@
1
1
  import axios from "axios";
2
2
  async function getTransactions({
3
3
  url,
4
- userWalletAddress
4
+ address,
5
+ sender,
6
+ provider,
7
+ status,
8
+ tokenIn,
9
+ tokenOut
5
10
  }) {
6
- const endpoint = userWalletAddress ? `/transactions/${userWalletAddress}` : "/transactions";
7
- return await axios.get(endpoint, {
11
+ const queryParams = new URLSearchParams({
12
+ receiver: address || "",
13
+ sender: sender || "",
14
+ provider: provider || "",
15
+ status: status || "",
16
+ tokenIn: tokenIn || "",
17
+ tokenOut: tokenOut || ""
18
+ });
19
+ const params = Object.entries(Object.fromEntries(queryParams.entries()));
20
+ for (const [key, value] of params) {
21
+ if (value === "") {
22
+ queryParams.delete(key);
23
+ }
24
+ }
25
+ const queryString = queryParams.toString();
26
+ const endpointWithParams = `/transactions?${queryString}`;
27
+ return await axios.get(endpointWithParams, {
8
28
  baseURL: url
9
29
  });
10
30
  }
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  const axios = require("axios");
4
+ const types_chainType = require("../../types/chainType.js");
4
5
  const api_getChains = require("../getChains.js");
5
6
  jest.mock("axios");
6
7
  const mockedAxios = axios;
@@ -13,7 +14,7 @@ describe("getChains", () => {
13
14
  chainName: "msx",
14
15
  pngUrl: "https://devnet-tools.multiversx.com/liquidity-sdk/ethereum/icon.png",
15
16
  svgUrl: "https://devnet-tools.multiversx.com/liquidity-sdk/ethereum/icon.svg",
16
- chainType: "type1",
17
+ chainType: types_chainType.ChainType.evm,
17
18
  rpc: "rpc1",
18
19
  blockExplorerUrls: ["explorer1"],
19
20
  nativeCurrency: {
@@ -1,4 +1,5 @@
1
1
  import axios from "axios";
2
+ import { ChainType } from "../../types/chainType.mjs";
2
3
  import { getChains } from "../getChains.mjs";
3
4
  jest.mock("axios");
4
5
  const mockedAxios = axios;
@@ -11,7 +12,7 @@ describe("getChains", () => {
11
12
  chainName: "msx",
12
13
  pngUrl: "https://devnet-tools.multiversx.com/liquidity-sdk/ethereum/icon.png",
13
14
  svgUrl: "https://devnet-tools.multiversx.com/liquidity-sdk/ethereum/icon.svg",
14
- chainType: "type1",
15
+ chainType: ChainType.evm,
15
16
  rpc: "rpc1",
16
17
  blockExplorerUrls: ["explorer1"],
17
18
  nativeCurrency: {
@@ -9,7 +9,7 @@ describe("getTokens", () => {
9
9
  it("fetches tokens successfully without chainId", async () => {
10
10
  const response = [
11
11
  {
12
- chainId: 1,
12
+ chainId: "1",
13
13
  address: "0x123",
14
14
  name: "Token One",
15
15
  symbol: "T1",
@@ -32,7 +32,7 @@ describe("getTokens", () => {
32
32
  const chainId = 1;
33
33
  const response = [
34
34
  {
35
- chainId: 1,
35
+ chainId: "1",
36
36
  address: "0x123",
37
37
  name: "Token One",
38
38
  symbol: "T1",
@@ -7,7 +7,7 @@ describe("getTokens", () => {
7
7
  it("fetches tokens successfully without chainId", async () => {
8
8
  const response = [
9
9
  {
10
- chainId: 1,
10
+ chainId: "1",
11
11
  address: "0x123",
12
12
  name: "Token One",
13
13
  symbol: "T1",
@@ -30,7 +30,7 @@ describe("getTokens", () => {
30
30
  const chainId = 1;
31
31
  const response = [
32
32
  {
33
- chainId: 1,
33
+ chainId: "1",
34
34
  address: "0x123",
35
35
  name: "Token One",
36
36
  symbol: "T1",
@@ -7,87 +7,97 @@ jest.mock("axios");
7
7
  const mockedAxios = axios;
8
8
  describe("getTransactions", () => {
9
9
  const url = "https://api.example.com";
10
- it("fetches transactions without userWalletAddress", async () => {
11
- const userWalletAddress = "";
12
- const response = [
13
- {
14
- fromChainId: "97",
15
- toChainId: "44",
16
- tokenIn: "0x063b637324e6115f8da67f761A99B7F00B7Fd908",
17
- tokenOut: "USDT-58d5d0",
18
- amountIn: "11000000",
19
- amountOut: "11000000",
20
- depositTimestamp: 1738054613,
21
- sender: "0x1009c2f59e03c383ca8f2766cfe305a1e79f4c8d",
22
- status: "success",
23
- receiver: "erd1sp0aaszznqnuvyvkmxkv2ultcvlf637c093sfc26dszks60jdqsqy2knqu",
24
- txHash: "0xe7e706c1793d06a252a3f040f07732989e4a6466d804cae17105c09818bc2994",
25
- fee: "0",
26
- provider: types_providerType.ProviderType.MultiversxBridge
27
- }
28
- ];
29
- mockedAxios.get.mockResolvedValue({ data: response });
30
- const result = await api_getTransactions.getTransactions({ url, userWalletAddress });
31
- expect(mockedAxios.get).toHaveBeenCalledWith("/transactions", {
10
+ const mockResponse = [
11
+ {
12
+ fromChainId: "97",
13
+ toChainId: "44",
14
+ tokenIn: "0x063b637324e6115f8da67f761A99B7F00B7Fd908",
15
+ tokenOut: "USDT-58d5d0",
16
+ amountIn: "11000000",
17
+ amountOut: "11000000",
18
+ depositTimestamp: 1738054613,
19
+ sender: "0x1009c2f59e03c383ca8f2766cfe305a1e79f4c8d",
20
+ status: "success",
21
+ receiver: "erd1sp0aaszznqnuvyvkmxkv2ultcvlf637c093sfc26dszks60jdqsqy2knqu",
22
+ txHash: "0xe7e706c1793d06a252a3f040f07732989e4a6466d804cae17105c09818bc2994",
23
+ fee: "0",
24
+ provider: types_providerType.ProviderType.MultiversxBridge
25
+ }
26
+ ];
27
+ beforeEach(() => {
28
+ mockedAxios.get.mockClear();
29
+ mockedAxios.get.mockResolvedValue({ data: mockResponse });
30
+ });
31
+ it("fetches transactions with only address parameter", async () => {
32
+ const address = "0x123";
33
+ const result = await api_getTransactions.getTransactions({ url, address });
34
+ expect(mockedAxios.get).toHaveBeenCalledWith(
35
+ "/transactions?receiver=0x123",
36
+ { baseURL: url }
37
+ );
38
+ expect(result.data).toEqual(mockResponse);
39
+ });
40
+ it("fetches transactions with empty address", async () => {
41
+ const address = "";
42
+ const result = await api_getTransactions.getTransactions({ url, address });
43
+ expect(mockedAxios.get).toHaveBeenCalledWith("/transactions?", {
32
44
  baseURL: url
33
45
  });
34
- expect(result.data).toEqual(response);
46
+ expect(result.data).toEqual(mockResponse);
35
47
  });
36
- it("fetches transactions with userWalletAddress", async () => {
37
- const userWalletAddress = "0x123";
38
- const response = [
39
- {
40
- fromChainId: "97",
41
- toChainId: "44",
42
- tokenIn: "0x063b637324e6115f8da67f761A99B7F00B7Fd908",
43
- tokenOut: "USDT-58d5d0",
44
- amountIn: "11000000",
45
- amountOut: "11000000",
46
- depositTimestamp: 1738054613,
47
- sender: "0x1009c2f59e03c383ca8f2766cfe305a1e79f4c8d",
48
- status: "success",
49
- receiver: "erd1sp0aaszznqnuvyvkmxkv2ultcvlf637c093sfc26dszks60jdqsqy2knqu",
50
- txHash: "0xe7e706c1793d06a252a3f040f07732989e4a6466d804cae17105c09818bc2994",
51
- fee: "0",
52
- provider: types_providerType.ProviderType.MultiversxBridge
53
- }
54
- ];
55
- mockedAxios.get.mockResolvedValue({ data: response });
56
- const result = await api_getTransactions.getTransactions({ url, userWalletAddress });
48
+ it("includes all non-empty parameters in the query", async () => {
49
+ const result = await api_getTransactions.getTransactions({
50
+ url,
51
+ address: "0x123",
52
+ sender: "0xABC",
53
+ provider: types_providerType.ProviderType.MultiversxBridge,
54
+ status: "success",
55
+ tokenIn: "0xTOKEN",
56
+ tokenOut: "WEGLD-123456"
57
+ });
57
58
  expect(mockedAxios.get).toHaveBeenCalledWith(
58
- `/transactions/${userWalletAddress}`,
59
+ "/transactions?receiver=0x123&sender=0xABC&provider=multiversx-bridge&status=success&tokenIn=0xTOKEN&tokenOut=WEGLD-123456",
59
60
  { baseURL: url }
60
61
  );
61
- expect(result.data).toEqual(response);
62
+ expect(result.data).toEqual(mockResponse);
62
63
  });
63
- it("fetches transactions with both transactionId and userWalletAddress", async () => {
64
- const userWalletAddress = "0x123";
65
- const response = [
66
- {
67
- fromChainId: "97",
68
- toChainId: "44",
69
- tokenIn: "0x063b637324e6115f8da67f761A99B7F00B7Fd908",
70
- tokenOut: "USDT-58d5d0",
71
- amountIn: "11000000",
72
- amountOut: "11000000",
73
- depositTimestamp: 1738054613,
74
- sender: "0x1009c2f59e03c383ca8f2766cfe305a1e79f4c8d",
75
- status: "success",
76
- receiver: "erd1sp0aaszznqnuvyvkmxkv2ultcvlf637c093sfc26dszks60jdqsqy2knqu",
77
- txHash: "0xe7e706c1793d06a252a3f040f07732989e4a6466d804cae17105c09818bc2994",
78
- fee: "0",
79
- provider: types_providerType.ProviderType.MultiversxBridge
80
- }
81
- ];
82
- mockedAxios.get.mockResolvedValue({ data: response });
64
+ it("excludes empty parameters from the query", async () => {
83
65
  const result = await api_getTransactions.getTransactions({
84
66
  url,
85
- userWalletAddress
67
+ address: "0x123",
68
+ sender: "",
69
+ provider: types_providerType.ProviderType.MultiversxBridge,
70
+ status: "",
71
+ tokenIn: "0xTOKEN",
72
+ tokenOut: ""
86
73
  });
87
74
  expect(mockedAxios.get).toHaveBeenCalledWith(
88
- `/transactions/${userWalletAddress}`,
75
+ "/transactions?receiver=0x123&provider=multiversx-bridge&tokenIn=0xTOKEN",
89
76
  { baseURL: url }
90
77
  );
91
- expect(result.data).toEqual(response);
78
+ expect(result.data).toEqual(mockResponse);
79
+ });
80
+ it("handles axios error", async () => {
81
+ const error = new Error("Network error");
82
+ mockedAxios.get.mockRejectedValueOnce(error);
83
+ await expect(api_getTransactions.getTransactions({ url, address: "0x123" })).rejects.toThrow(
84
+ "Network error"
85
+ );
86
+ expect(mockedAxios.get).toHaveBeenCalledWith(
87
+ "/transactions?receiver=0x123",
88
+ { baseURL: url }
89
+ );
90
+ });
91
+ it("passes through axios response", async () => {
92
+ const axiosResponse = {
93
+ data: mockResponse,
94
+ status: 200,
95
+ statusText: "OK",
96
+ headers: {},
97
+ config: {}
98
+ };
99
+ mockedAxios.get.mockResolvedValueOnce(axiosResponse);
100
+ const result = await api_getTransactions.getTransactions({ url, address: "0x123" });
101
+ expect(result).toEqual(axiosResponse);
92
102
  });
93
103
  });
@@ -5,87 +5,97 @@ jest.mock("axios");
5
5
  const mockedAxios = axios;
6
6
  describe("getTransactions", () => {
7
7
  const url = "https://api.example.com";
8
- it("fetches transactions without userWalletAddress", async () => {
9
- const userWalletAddress = "";
10
- const response = [
11
- {
12
- fromChainId: "97",
13
- toChainId: "44",
14
- tokenIn: "0x063b637324e6115f8da67f761A99B7F00B7Fd908",
15
- tokenOut: "USDT-58d5d0",
16
- amountIn: "11000000",
17
- amountOut: "11000000",
18
- depositTimestamp: 1738054613,
19
- sender: "0x1009c2f59e03c383ca8f2766cfe305a1e79f4c8d",
20
- status: "success",
21
- receiver: "erd1sp0aaszznqnuvyvkmxkv2ultcvlf637c093sfc26dszks60jdqsqy2knqu",
22
- txHash: "0xe7e706c1793d06a252a3f040f07732989e4a6466d804cae17105c09818bc2994",
23
- fee: "0",
24
- provider: ProviderType.MultiversxBridge
25
- }
26
- ];
27
- mockedAxios.get.mockResolvedValue({ data: response });
28
- const result = await getTransactions({ url, userWalletAddress });
29
- expect(mockedAxios.get).toHaveBeenCalledWith("/transactions", {
8
+ const mockResponse = [
9
+ {
10
+ fromChainId: "97",
11
+ toChainId: "44",
12
+ tokenIn: "0x063b637324e6115f8da67f761A99B7F00B7Fd908",
13
+ tokenOut: "USDT-58d5d0",
14
+ amountIn: "11000000",
15
+ amountOut: "11000000",
16
+ depositTimestamp: 1738054613,
17
+ sender: "0x1009c2f59e03c383ca8f2766cfe305a1e79f4c8d",
18
+ status: "success",
19
+ receiver: "erd1sp0aaszznqnuvyvkmxkv2ultcvlf637c093sfc26dszks60jdqsqy2knqu",
20
+ txHash: "0xe7e706c1793d06a252a3f040f07732989e4a6466d804cae17105c09818bc2994",
21
+ fee: "0",
22
+ provider: ProviderType.MultiversxBridge
23
+ }
24
+ ];
25
+ beforeEach(() => {
26
+ mockedAxios.get.mockClear();
27
+ mockedAxios.get.mockResolvedValue({ data: mockResponse });
28
+ });
29
+ it("fetches transactions with only address parameter", async () => {
30
+ const address = "0x123";
31
+ const result = await getTransactions({ url, address });
32
+ expect(mockedAxios.get).toHaveBeenCalledWith(
33
+ "/transactions?receiver=0x123",
34
+ { baseURL: url }
35
+ );
36
+ expect(result.data).toEqual(mockResponse);
37
+ });
38
+ it("fetches transactions with empty address", async () => {
39
+ const address = "";
40
+ const result = await getTransactions({ url, address });
41
+ expect(mockedAxios.get).toHaveBeenCalledWith("/transactions?", {
30
42
  baseURL: url
31
43
  });
32
- expect(result.data).toEqual(response);
44
+ expect(result.data).toEqual(mockResponse);
33
45
  });
34
- it("fetches transactions with userWalletAddress", async () => {
35
- const userWalletAddress = "0x123";
36
- const response = [
37
- {
38
- fromChainId: "97",
39
- toChainId: "44",
40
- tokenIn: "0x063b637324e6115f8da67f761A99B7F00B7Fd908",
41
- tokenOut: "USDT-58d5d0",
42
- amountIn: "11000000",
43
- amountOut: "11000000",
44
- depositTimestamp: 1738054613,
45
- sender: "0x1009c2f59e03c383ca8f2766cfe305a1e79f4c8d",
46
- status: "success",
47
- receiver: "erd1sp0aaszznqnuvyvkmxkv2ultcvlf637c093sfc26dszks60jdqsqy2knqu",
48
- txHash: "0xe7e706c1793d06a252a3f040f07732989e4a6466d804cae17105c09818bc2994",
49
- fee: "0",
50
- provider: ProviderType.MultiversxBridge
51
- }
52
- ];
53
- mockedAxios.get.mockResolvedValue({ data: response });
54
- const result = await getTransactions({ url, userWalletAddress });
46
+ it("includes all non-empty parameters in the query", async () => {
47
+ const result = await getTransactions({
48
+ url,
49
+ address: "0x123",
50
+ sender: "0xABC",
51
+ provider: ProviderType.MultiversxBridge,
52
+ status: "success",
53
+ tokenIn: "0xTOKEN",
54
+ tokenOut: "WEGLD-123456"
55
+ });
55
56
  expect(mockedAxios.get).toHaveBeenCalledWith(
56
- `/transactions/${userWalletAddress}`,
57
+ "/transactions?receiver=0x123&sender=0xABC&provider=multiversx-bridge&status=success&tokenIn=0xTOKEN&tokenOut=WEGLD-123456",
57
58
  { baseURL: url }
58
59
  );
59
- expect(result.data).toEqual(response);
60
+ expect(result.data).toEqual(mockResponse);
60
61
  });
61
- it("fetches transactions with both transactionId and userWalletAddress", async () => {
62
- const userWalletAddress = "0x123";
63
- const response = [
64
- {
65
- fromChainId: "97",
66
- toChainId: "44",
67
- tokenIn: "0x063b637324e6115f8da67f761A99B7F00B7Fd908",
68
- tokenOut: "USDT-58d5d0",
69
- amountIn: "11000000",
70
- amountOut: "11000000",
71
- depositTimestamp: 1738054613,
72
- sender: "0x1009c2f59e03c383ca8f2766cfe305a1e79f4c8d",
73
- status: "success",
74
- receiver: "erd1sp0aaszznqnuvyvkmxkv2ultcvlf637c093sfc26dszks60jdqsqy2knqu",
75
- txHash: "0xe7e706c1793d06a252a3f040f07732989e4a6466d804cae17105c09818bc2994",
76
- fee: "0",
77
- provider: ProviderType.MultiversxBridge
78
- }
79
- ];
80
- mockedAxios.get.mockResolvedValue({ data: response });
62
+ it("excludes empty parameters from the query", async () => {
81
63
  const result = await getTransactions({
82
64
  url,
83
- userWalletAddress
65
+ address: "0x123",
66
+ sender: "",
67
+ provider: ProviderType.MultiversxBridge,
68
+ status: "",
69
+ tokenIn: "0xTOKEN",
70
+ tokenOut: ""
84
71
  });
85
72
  expect(mockedAxios.get).toHaveBeenCalledWith(
86
- `/transactions/${userWalletAddress}`,
73
+ "/transactions?receiver=0x123&provider=multiversx-bridge&tokenIn=0xTOKEN",
87
74
  { baseURL: url }
88
75
  );
89
- expect(result.data).toEqual(response);
76
+ expect(result.data).toEqual(mockResponse);
77
+ });
78
+ it("handles axios error", async () => {
79
+ const error = new Error("Network error");
80
+ mockedAxios.get.mockRejectedValueOnce(error);
81
+ await expect(getTransactions({ url, address: "0x123" })).rejects.toThrow(
82
+ "Network error"
83
+ );
84
+ expect(mockedAxios.get).toHaveBeenCalledWith(
85
+ "/transactions?receiver=0x123",
86
+ { baseURL: url }
87
+ );
88
+ });
89
+ it("passes through axios response", async () => {
90
+ const axiosResponse = {
91
+ data: mockResponse,
92
+ status: 200,
93
+ statusText: "OK",
94
+ headers: {},
95
+ config: {}
96
+ };
97
+ mockedAxios.get.mockResolvedValueOnce(axiosResponse);
98
+ const result = await getTransactions({ url, address: "0x123" });
99
+ expect(result).toEqual(axiosResponse);
90
100
  });
91
101
  });
@@ -1 +1 @@
1
- export declare const MVX_CHAIN_IDS: number[];
1
+ export declare const MVX_CHAIN_IDS: string[];
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
- const MVX_CHAIN_IDS = [31, 44, 54];
4
+ const MVX_CHAIN_IDS = ["31", "44", "54"];
5
5
  exports.MVX_CHAIN_IDS = MVX_CHAIN_IDS;
@@ -1,4 +1,4 @@
1
- const MVX_CHAIN_IDS = [31, 44, 54];
1
+ const MVX_CHAIN_IDS = ["31", "44", "54"];
2
2
  export {
3
3
  MVX_CHAIN_IDS
4
4
  };
@@ -1,9 +1,11 @@
1
+ import { ChainType } from '../types/chainType';
2
+
1
3
  export interface ChainDTO {
2
4
  chainId: string;
3
5
  chainName: string;
4
6
  pngUrl: string;
5
7
  svgUrl: string;
6
- chainType: string;
8
+ chainType: ChainType;
7
9
  rpc: string;
8
10
  networkName: string;
9
11
  nativeCurrency: {
@@ -8,4 +8,5 @@ export interface ConfirmRateDto extends RateRequestResponse {
8
8
  toChainId: string;
9
9
  sender: string;
10
10
  receiver: string;
11
+ backUrl?: string;
11
12
  }
@@ -1,5 +1,5 @@
1
1
  export interface TokenDTO {
2
- chainId: number;
2
+ chainId: string;
3
3
  address: string;
4
4
  name: string;
5
5
  symbol: string;
@@ -11,5 +11,10 @@ export interface TokenDTO {
11
11
  minBridgeAmount: string;
12
12
  maxBridgeAmount: string;
13
13
  };
14
- availableTokens?: string[];
14
+ availableTokens?: {
15
+ address: string;
16
+ chainId: string;
17
+ symbol: string;
18
+ }[];
19
+ isNative?: boolean;
15
20
  }