@rango-dev/widget-embedded 0.1.20-next.0 → 0.1.20-next.10

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 (154) hide show
  1. package/dist/QueueManager.d.ts +3 -3
  2. package/dist/QueueManager.d.ts.map +1 -1
  3. package/dist/Widget.d.ts +8 -0
  4. package/dist/Widget.d.ts.map +1 -0
  5. package/dist/components/AppRouter.d.ts +7 -7
  6. package/dist/components/AppRouter.d.ts.map +1 -1
  7. package/dist/components/AppRoutes.d.ts +7 -7
  8. package/dist/components/AppRoutes.d.ts.map +1 -1
  9. package/dist/components/BottomLogo.d.ts +2 -2
  10. package/dist/components/BottomLogo.d.ts.map +1 -1
  11. package/dist/components/ChangeSlippageButton.d.ts +2 -2
  12. package/dist/components/ChangeSlippageButton.d.ts.map +1 -1
  13. package/dist/components/ConfirmSwapErrors.d.ts +3 -3
  14. package/dist/components/ConfirmSwapErrors.d.ts.map +1 -1
  15. package/dist/components/ConfirmSwapWarnings.d.ts +2 -2
  16. package/dist/components/ConfirmSwapWarnings.d.ts.map +1 -1
  17. package/dist/components/Footer.d.ts +111 -111
  18. package/dist/components/Footer.d.ts.map +1 -1
  19. package/dist/components/HeaderButtons.d.ts +6 -6
  20. package/dist/components/HeaderButtons.d.ts.map +1 -1
  21. package/dist/components/Layout.d.ts +6 -6
  22. package/dist/components/Layout.d.ts.map +1 -1
  23. package/dist/components/PercentageChange.d.ts +8 -8
  24. package/dist/components/PercentageChange.d.ts.map +1 -1
  25. package/dist/components/RoutesOverview.d.ts +119 -119
  26. package/dist/components/RoutesOverview.d.ts.map +1 -1
  27. package/dist/components/SwapDetailsPlaceholder.d.ts +119 -119
  28. package/dist/components/SwapDetailsPlaceholder.d.ts.map +1 -1
  29. package/dist/components/SwitchFromAndTo.d.ts +3 -3
  30. package/dist/components/SwitchFromAndTo.d.ts.map +1 -1
  31. package/dist/components/TokenInfo.d.ts +17 -17
  32. package/dist/components/TokenInfo.d.ts.map +1 -1
  33. package/dist/components/TokenPreview.d.ts +20 -20
  34. package/dist/components/TokenPreview.d.ts.map +1 -1
  35. package/dist/components/UpdateUrl.d.ts +1 -1
  36. package/dist/components/UpdateUrl.d.ts.map +1 -1
  37. package/dist/components/warnings/BalanceErrors.d.ts +6 -6
  38. package/dist/components/warnings/BalanceErrors.d.ts.map +1 -1
  39. package/dist/components/warnings/ConfirmSwapExtraMessages.d.ts +6 -6
  40. package/dist/components/warnings/ConfirmSwapExtraMessages.d.ts.map +1 -1
  41. package/dist/components/warnings/HighSlippageWarning.d.ts +6 -6
  42. package/dist/components/warnings/HighSlippageWarning.d.ts.map +1 -1
  43. package/dist/components/warnings/MinRequiredSlippage.d.ts +6 -6
  44. package/dist/components/warnings/MinRequiredSlippage.d.ts.map +1 -1
  45. package/dist/constants/errors.d.ts +3 -3
  46. package/dist/constants/errors.d.ts.map +1 -1
  47. package/dist/constants/navigationRoutes.d.ts +13 -13
  48. package/dist/constants/navigationRoutes.d.ts.map +1 -1
  49. package/dist/constants/numbers.d.ts +2 -2
  50. package/dist/constants/numbers.d.ts.map +1 -1
  51. package/dist/constants/searchParams.d.ts +7 -7
  52. package/dist/constants/searchParams.d.ts.map +1 -1
  53. package/dist/constants/swapSettings.d.ts +5 -5
  54. package/dist/constants/swapSettings.d.ts.map +1 -1
  55. package/dist/globalStyles.d.ts +1 -1
  56. package/dist/globalStyles.d.ts.map +1 -1
  57. package/dist/hooks/useConfirmSwap.d.ts +10 -10
  58. package/dist/hooks/useConfirmSwap.d.ts.map +1 -1
  59. package/dist/hooks/useNavigateBack.d.ts +3 -3
  60. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  61. package/dist/hooks/usePrevious.d.ts +1 -1
  62. package/dist/hooks/usePrevious.d.ts.map +1 -1
  63. package/dist/hooks/useSelectLanguage.d.ts +4 -4
  64. package/dist/hooks/useSelectLanguage.d.ts.map +1 -1
  65. package/dist/hooks/useTheme.d.ts +30 -4
  66. package/dist/hooks/useTheme.d.ts.map +1 -1
  67. package/dist/i18n.d.ts +2 -2
  68. package/dist/i18n.d.ts.map +1 -1
  69. package/dist/index.d.ts +5 -8
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +2 -8
  72. package/dist/index.js.map +7 -0
  73. package/dist/mockData/pendingSwap.d.ts +1 -1
  74. package/dist/mockData/pendingSwap.d.ts.map +1 -1
  75. package/dist/pages/ConfirmSwapPage.d.ts +4 -2
  76. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  77. package/dist/pages/HistoryPage.d.ts +2 -2
  78. package/dist/pages/HistoryPage.d.ts.map +1 -1
  79. package/dist/pages/Home.d.ts +2 -2
  80. package/dist/pages/Home.d.ts.map +1 -1
  81. package/dist/pages/LiquiditySourcesPage.d.ts +6 -6
  82. package/dist/pages/LiquiditySourcesPage.d.ts.map +1 -1
  83. package/dist/pages/SelectChainPage.d.ts +7 -7
  84. package/dist/pages/SelectChainPage.d.ts.map +1 -1
  85. package/dist/pages/SelectTokenPage.d.ts +14 -14
  86. package/dist/pages/SelectTokenPage.d.ts.map +1 -1
  87. package/dist/pages/SettingsPage.d.ts +7 -7
  88. package/dist/pages/SettingsPage.d.ts.map +1 -1
  89. package/dist/pages/SwapDetailsPage.d.ts +2 -2
  90. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  91. package/dist/pages/WalletsPage.d.ts +8 -8
  92. package/dist/pages/WalletsPage.d.ts.map +1 -1
  93. package/dist/services/httpService.d.ts +3 -3
  94. package/dist/services/httpService.d.ts.map +1 -1
  95. package/dist/store/bestRoute.d.ts +67 -31
  96. package/dist/store/bestRoute.d.ts.map +1 -1
  97. package/dist/store/meta.d.ts +17 -8
  98. package/dist/store/meta.d.ts.map +1 -1
  99. package/dist/store/selectors.d.ts +10 -10
  100. package/dist/store/selectors.d.ts.map +1 -1
  101. package/dist/store/settings.d.ts +55 -18
  102. package/dist/store/settings.d.ts.map +1 -1
  103. package/dist/store/ui.d.ts +22 -1
  104. package/dist/store/ui.d.ts.map +1 -1
  105. package/dist/store/wallets.d.ts +59 -33
  106. package/dist/store/wallets.d.ts.map +1 -1
  107. package/dist/types/config.d.ts +114 -114
  108. package/dist/types/config.d.ts.map +1 -1
  109. package/dist/types/index.d.ts +4 -4
  110. package/dist/types/index.d.ts.map +1 -1
  111. package/dist/types/routing.d.ts +57 -57
  112. package/dist/types/routing.d.ts.map +1 -1
  113. package/dist/types/swap.d.ts +16 -16
  114. package/dist/types/swap.d.ts.map +1 -1
  115. package/dist/types/wallets.d.ts +6 -6
  116. package/dist/types/wallets.d.ts.map +1 -1
  117. package/dist/utils/common.d.ts +3 -3
  118. package/dist/utils/common.d.ts.map +1 -1
  119. package/dist/utils/configs.d.ts +6 -6
  120. package/dist/utils/configs.d.ts.map +1 -1
  121. package/dist/utils/date.d.ts +2 -2
  122. package/dist/utils/date.d.ts.map +1 -1
  123. package/dist/utils/numbers.d.ts +13 -13
  124. package/dist/utils/numbers.d.ts.map +1 -1
  125. package/dist/utils/queue.d.ts +3 -3
  126. package/dist/utils/queue.d.ts.map +1 -1
  127. package/dist/utils/routing.d.ts +17 -17
  128. package/dist/utils/routing.d.ts.map +1 -1
  129. package/dist/utils/swap.d.ts +52 -50
  130. package/dist/utils/swap.d.ts.map +1 -1
  131. package/dist/utils/time.d.ts +3 -3
  132. package/dist/utils/time.d.ts.map +1 -1
  133. package/dist/utils/wallets.d.ts +27 -27
  134. package/dist/utils/wallets.d.ts.map +1 -1
  135. package/package.json +15 -22
  136. package/src/QueueManager.tsx +5 -4
  137. package/src/{index.tsx → Widget.tsx} +1 -8
  138. package/src/components/AppRouter.tsx +4 -0
  139. package/src/components/AppRoutes.tsx +1 -1
  140. package/src/hooks/useConfirmSwap.ts +4 -1
  141. package/src/index.ts +18 -0
  142. package/src/pages/ConfirmSwapPage.tsx +47 -18
  143. package/src/pages/SwapDetailsPage.tsx +14 -9
  144. package/src/store/wallets.ts +8 -1
  145. package/src/types/config.ts +2 -2
  146. package/src/utils/common.ts +2 -0
  147. package/src/utils/swap.ts +38 -2
  148. package/src/utils/wallets.ts +20 -14
  149. package/dist/widget-embedded.cjs.development.js +0 -3401
  150. package/dist/widget-embedded.cjs.development.js.map +0 -1
  151. package/dist/widget-embedded.cjs.production.min.js +0 -3401
  152. package/dist/widget-embedded.cjs.production.min.js.map +0 -1
  153. package/dist/widget-embedded.esm.js +0 -3392
  154. package/dist/widget-embedded.esm.js.map +0 -1
@@ -91,7 +91,7 @@ export type BlockchainAndTokenConfig = {
91
91
  * include values like `"metamask"`, `"kepler"`, or `"phantom"`.
92
92
  * @property {boolean} multiWallets - The `multiWallets` property is a boolean value that indicates
93
93
  * whether the widget should allow the user to select multiple wallets for the transaction.
94
- * @property {boolean} customAddress - A boolean value indicating whether the user can input a custom
94
+ * @property {boolean} customDestination - A boolean value indicating whether the user can input a custom
95
95
  * address for the transaction. If set to true, the widget will allow the user to input a custom
96
96
  * address for the destination.
97
97
  * @property {string} language - The language property is an optional string that specifies the
@@ -110,7 +110,7 @@ export type WidgetConfig = {
110
110
  liquiditySources?: string[];
111
111
  wallets?: WalletType[];
112
112
  multiWallets?: boolean;
113
- customAddress?: boolean;
113
+ customDestination?: boolean;
114
114
  language?: string;
115
115
  theme?: WidgetTheme;
116
116
  };
@@ -26,3 +26,5 @@ export function debounce(fn: Function, time: number) {
26
26
  }, time);
27
27
  }
28
28
  }
29
+
30
+
package/src/utils/swap.ts CHANGED
@@ -12,7 +12,7 @@ import { numberToString } from './numbers';
12
12
  import { WalletType } from '@rango-dev/wallets-shared';
13
13
  import { getRequiredBalanceOfWallet } from './routing';
14
14
  import { getRequiredChains } from './wallets';
15
- import { LoadingStatus } from '../store/meta';
15
+ import { LoadingStatus, useMetaStore } from '../store/meta';
16
16
  import { ConvertedToken, SwapButtonState, Wallet } from '../types';
17
17
  import {
18
18
  PendingSwapNetworkStatus,
@@ -317,7 +317,8 @@ export function createBestRouteRequestBody(
317
317
  disabledLiquiditySources: string[],
318
318
  slippage: number,
319
319
  affiliateRef: string | null,
320
- initialRoute?: BestRouteResponse
320
+ initialRoute?: BestRouteResponse,
321
+ destination?: string
321
322
  ): BestRouteRequest {
322
323
  const selectedWalletsMap = selectedWallets.reduce(
323
324
  (
@@ -370,6 +371,7 @@ export function createBestRouteRequestBody(
370
371
  symbol: toToken.symbol,
371
372
  },
372
373
  connectedWallets,
374
+ destination: destination || undefined,
373
375
  selectedWallets: selectedWalletsMap,
374
376
  swapperGroups: disabledLiquiditySources,
375
377
  swappersGroupsExclude: true,
@@ -561,3 +563,37 @@ export function shouldRetrySwap(pendingSwap: PendingSwap) {
561
563
  new Date().getTime() - parseInt(pendingSwap.finishTime) < 4 * 3600 * 1000
562
564
  );
563
565
  }
566
+ export function isValidCustomDestination(
567
+ blockchain: string,
568
+ address: string
569
+ ): boolean {
570
+ const blockchains = useMetaStore.getState().meta.blockchains;
571
+ const regex =
572
+ blockchains.find((chain) => chain.name === blockchain)?.addressPatterns ||
573
+ [];
574
+ return regex.filter((r) => new RegExp(r).test(address)).length > 0;
575
+ }
576
+
577
+ export function confirmSwapDisabled(
578
+ fetching: boolean,
579
+ destinationChain: string,
580
+ customDestination: string,
581
+ bestRoute: BestRouteResponse | null,
582
+ selectedWallets: Wallet[]
583
+ ) {
584
+ return (
585
+ fetching ||
586
+ (!destinationChain &&
587
+ !requiredWallets(bestRoute).every((chain) =>
588
+ selectedWallets.map((wallet) => wallet.chain).includes(chain)
589
+ )) ||
590
+ (!!destinationChain && !customDestination) ||
591
+ (!!destinationChain &&
592
+ !!customDestination &&
593
+ !requiredWallets(bestRoute)
594
+ .filter((chain) => chain !== destinationChain)
595
+ .every((chain) =>
596
+ selectedWallets.map((wallet) => wallet.chain).includes(chain)
597
+ ))
598
+ );
599
+ }
@@ -168,21 +168,27 @@ type Blockchain = { name: string; accounts: ConnectedWallet[] };
168
168
  export function getSelectableWallets(
169
169
  connectedWallets: ConnectedWallet[],
170
170
  selectedWallets: Wallet[],
171
- getWalletInfo: (type: WalletType) => WalletInfo
171
+ getWalletInfo: (type: WalletType) => WalletInfo,
172
+ destinationChain?: string
172
173
  ): SelectableWallet[] {
173
- const selectableWallets: SelectableWallet[] = connectedWallets.map(
174
- (connectedWallet) => ({
175
- address: connectedWallet.address,
176
- walletType: connectedWallet.walletType,
177
- chain: connectedWallet.chain,
178
- image: getWalletInfo(connectedWallet.walletType).img,
179
- name: getWalletInfo(connectedWallet.walletType).name,
180
- selected: !!selectedWallets.find(
181
- (selectedWallet) =>
182
- selectedWallet.chain === connectedWallet.chain &&
183
- selectedWallet.walletType === connectedWallet.walletType
184
- ),
185
- })
174
+ const selectableWallets = connectedWallets.map(
175
+ (connectedWallet: ConnectedWallet) => {
176
+ return {
177
+ address: connectedWallet.address,
178
+ walletType: connectedWallet.walletType,
179
+ chain: connectedWallet.chain,
180
+ image: getWalletInfo(connectedWallet.walletType).img,
181
+ name: getWalletInfo(connectedWallet.walletType).name,
182
+ selected:
183
+ destinationChain === connectedWallet.chain
184
+ ? false
185
+ : !!selectedWallets.find(
186
+ (selectedWallet) =>
187
+ selectedWallet.chain === connectedWallet.chain &&
188
+ selectedWallet.walletType === connectedWallet.walletType
189
+ ),
190
+ };
191
+ }
186
192
  );
187
193
 
188
194
  return selectableWallets;