@lifi/widget 3.14.1 → 3.14.2

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [3.14.2](https://github.com/lifinance/widget/compare/v3.14.1...v3.14.2) (2025-01-28)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * validate address from URL params and bookmark it ([#343](https://github.com/lifinance/widget/issues/343)) ([688236e](https://github.com/lifinance/widget/commit/688236e6e374482155bcbab6d3a454a0cab9fa7f))
11
+
5
12
  ### [3.14.1](https://github.com/lifinance/widget/compare/v3.14.0...v3.14.1) (2025-01-23)
6
13
 
7
14
 
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "3.14.1";
2
+ export declare const version = "3.14.2";
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.14.1';
2
+ export const version = '3.14.2';
3
3
  //# sourceMappingURL=version.js.map
@@ -46,7 +46,9 @@ export const FormUpdater = ({ reactiveFormValues }) => {
46
46
  if (reactiveFormValues.toAddress) {
47
47
  setSendToWallet(true);
48
48
  }
49
- setSelectedBookmark(toAddress);
49
+ if (toAddress) {
50
+ setSelectedBookmark(toAddress);
51
+ }
50
52
  setUserAndDefaultValues(accountForChainId(reactiveFormValues, account.chainId));
51
53
  }, [
52
54
  account.chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"FormUpdater.js","sourceRoot":"","sources":["../../../../src/stores/form/FormUpdater.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormUpdater.js","sourceRoot":"","sources":["../../../../src/stores/form/FormUpdater.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { useEffect } from 'react';
2
2
  import { useLocation } from 'react-router-dom';
3
+ import { useAddressValidation } from '../../hooks/useAddressValidation.js';
3
4
  import { useSendToWalletActions } from '../../stores/settings/useSendToWalletStore.js';
4
5
  import { formatInputAmount } from '../../utils/format.js';
6
+ import { useBookmarkActions } from '../bookmarks/useBookmarkActions.js';
5
7
  import { useFieldActions } from '../form/useFieldActions.js';
6
8
  import { useFieldValues } from '../form/useFieldValues.js';
7
9
  import { useTouchedFields } from '../form/useTouchedFields.js';
@@ -40,18 +42,51 @@ export const URLSearchParamsBuilder = () => {
40
42
  const touchedFields = useTouchedFields();
41
43
  const values = useFieldValues(...formValueKeys);
42
44
  const { setSendToWallet } = useSendToWalletActions();
45
+ const { setSelectedBookmark, addRecentWallet } = useBookmarkActions();
46
+ const { validateAddress } = useAddressValidation();
43
47
  // Using these methods as trying to use the touchedFields and values above
44
48
  // often has a lag that can effect the widgets initialisation sequence
45
49
  // and accidentally cause values to be wiped from the query string
46
50
  const { getFieldValues, isTouched, setUserAndDefaultValues } = useFieldActions();
47
51
  useEffect(() => {
48
- // get the initial values from the querysting
52
+ // get the initial values from the querystring
49
53
  const formValues = getDefaultValuesFromQueryString();
50
- if (formValues.toAddress) {
51
- setSendToWallet(true);
52
- }
54
+ /**
55
+ * When URL builder is enabled and user opens a page with toAddress parameter,
56
+ * validate the address and set it up as a bookmark. This allows direct linking
57
+ * to the widget with a pre-filled destination address that will be treated the
58
+ * same way as a manually entered and validated address.
59
+ */
60
+ const initializeFromAddress = async () => {
61
+ if (formValues.toAddress) {
62
+ try {
63
+ const validationResult = await validateAddress({
64
+ value: formValues.toAddress,
65
+ });
66
+ if (validationResult.isValid) {
67
+ const bookmark = {
68
+ address: validationResult.address,
69
+ chainType: validationResult.chainType,
70
+ };
71
+ setSelectedBookmark(bookmark);
72
+ addRecentWallet(bookmark);
73
+ setSendToWallet(true);
74
+ }
75
+ }
76
+ catch (_) {
77
+ // Address validation failed
78
+ }
79
+ }
80
+ };
81
+ initializeFromAddress();
53
82
  setUserAndDefaultValues(formValues);
54
- }, [setUserAndDefaultValues, setSendToWallet]);
83
+ }, [
84
+ setUserAndDefaultValues,
85
+ setSendToWallet,
86
+ validateAddress,
87
+ setSelectedBookmark,
88
+ addRecentWallet,
89
+ ]);
55
90
  // biome-ignore lint/correctness/useExhaustiveDependencies:
56
91
  useEffect(() => {
57
92
  // set the values on the querysting
@@ -1 +1 @@
1
- {"version":3,"file":"URLSearchParamsBuilder.js","sourceRoot":"","sources":["../../../../src/stores/form/URLSearchParamsBuilder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"URLSearchParamsBuilder.js","sourceRoot":"","sources":["../../../../src/stores/form/URLSearchParamsBuilder.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/widget",
3
- "version": "3.14.1",
3
+ "version": "3.14.2",
4
4
  "description": "LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/widget'
2
- export const version = '3.14.1'
2
+ export const version = '3.14.2'
@@ -56,8 +56,9 @@ export const FormUpdater: React.FC<{
56
56
  if (reactiveFormValues.toAddress) {
57
57
  setSendToWallet(true)
58
58
  }
59
-
60
- setSelectedBookmark(toAddress)
59
+ if (toAddress) {
60
+ setSelectedBookmark(toAddress)
61
+ }
61
62
 
62
63
  setUserAndDefaultValues(
63
64
  accountForChainId(reactiveFormValues, account.chainId)
@@ -1,7 +1,9 @@
1
1
  import { useEffect } from 'react'
2
2
  import { useLocation } from 'react-router-dom'
3
+ import { useAddressValidation } from '../../hooks/useAddressValidation.js'
3
4
  import { useSendToWalletActions } from '../../stores/settings/useSendToWalletStore.js'
4
5
  import { formatInputAmount } from '../../utils/format.js'
6
+ import { useBookmarkActions } from '../bookmarks/useBookmarkActions.js'
5
7
  import type { DefaultValues, FormFieldNames } from '../form/types.js'
6
8
  import { useFieldActions } from '../form/useFieldActions.js'
7
9
  import { useFieldValues } from '../form/useFieldValues.js'
@@ -49,6 +51,8 @@ export const URLSearchParamsBuilder = () => {
49
51
  const touchedFields = useTouchedFields()
50
52
  const values = useFieldValues(...formValueKeys)
51
53
  const { setSendToWallet } = useSendToWalletActions()
54
+ const { setSelectedBookmark, addRecentWallet } = useBookmarkActions()
55
+ const { validateAddress } = useAddressValidation()
52
56
 
53
57
  // Using these methods as trying to use the touchedFields and values above
54
58
  // often has a lag that can effect the widgets initialisation sequence
@@ -57,15 +61,45 @@ export const URLSearchParamsBuilder = () => {
57
61
  useFieldActions()
58
62
 
59
63
  useEffect(() => {
60
- // get the initial values from the querysting
64
+ // get the initial values from the querystring
61
65
  const formValues = getDefaultValuesFromQueryString()
62
66
 
63
- if (formValues.toAddress) {
64
- setSendToWallet(true)
67
+ /**
68
+ * When URL builder is enabled and user opens a page with toAddress parameter,
69
+ * validate the address and set it up as a bookmark. This allows direct linking
70
+ * to the widget with a pre-filled destination address that will be treated the
71
+ * same way as a manually entered and validated address.
72
+ */
73
+ const initializeFromAddress = async () => {
74
+ if (formValues.toAddress) {
75
+ try {
76
+ const validationResult = await validateAddress({
77
+ value: formValues.toAddress,
78
+ })
79
+ if (validationResult.isValid) {
80
+ const bookmark = {
81
+ address: validationResult.address,
82
+ chainType: validationResult.chainType,
83
+ }
84
+ setSelectedBookmark(bookmark)
85
+ addRecentWallet(bookmark)
86
+ setSendToWallet(true)
87
+ }
88
+ } catch (_) {
89
+ // Address validation failed
90
+ }
91
+ }
65
92
  }
66
93
 
94
+ initializeFromAddress()
67
95
  setUserAndDefaultValues(formValues)
68
- }, [setUserAndDefaultValues, setSendToWallet])
96
+ }, [
97
+ setUserAndDefaultValues,
98
+ setSendToWallet,
99
+ validateAddress,
100
+ setSelectedBookmark,
101
+ addRecentWallet,
102
+ ])
69
103
 
70
104
  // biome-ignore lint/correctness/useExhaustiveDependencies:
71
105
  useEffect(() => {