@lifi/widget 3.8.2 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/esm/components/Header/WalletHeader.js +9 -3
- package/dist/esm/components/Header/WalletHeader.js.map +1 -1
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js +16 -1
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
- package/dist/esm/components/TokenList/TokenList.js +6 -4
- package/dist/esm/components/TokenList/TokenList.js.map +1 -1
- package/dist/esm/components/TokenList/TokenListItem.js +1 -1
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
- package/dist/esm/components/TokenList/types.d.ts +2 -2
- package/dist/esm/components/TokenList/useTokenSelect.d.ts +4 -0
- package/dist/esm/components/TokenList/useTokenSelect.js +19 -10
- package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useAvailableChains.d.ts +2 -1
- package/dist/esm/hooks/useAvailableChains.js.map +1 -1
- package/dist/esm/hooks/useChain.d.ts +1 -0
- package/dist/esm/hooks/useChain.js +1 -0
- package/dist/esm/hooks/useChain.js.map +1 -1
- package/dist/esm/hooks/useChains.d.ts +1 -1
- package/dist/esm/hooks/useGasSufficiency.d.ts +1 -1
- package/dist/esm/hooks/useGasSufficiency.js +2 -12
- package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
- package/dist/esm/hooks/useIsContractAddress.d.ts +2 -0
- package/dist/esm/hooks/useIsContractAddress.js +16 -0
- package/dist/esm/hooks/useIsContractAddress.js.map +1 -0
- package/dist/esm/hooks/useToAddressAutoPopulate.d.ts +12 -0
- package/dist/esm/hooks/useToAddressAutoPopulate.js +68 -0
- package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -0
- package/dist/esm/hooks/useToAddressRequirements.d.ts +1 -1
- package/dist/esm/hooks/useToAddressRequirements.js +9 -1
- package/dist/esm/hooks/useToAddressRequirements.js.map +1 -1
- package/dist/esm/hooks/useToAddressReset.js +15 -8
- package/dist/esm/hooks/useToAddressReset.js.map +1 -1
- package/dist/esm/pages/SendToWallet/BookmarksPage.js +1 -0
- package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
- package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js +1 -0
- package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
- package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js +1 -0
- package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
- package/dist/esm/pages/SendToWallet/RecentWalletsPage.js +1 -0
- package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -1
- package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js +4 -1
- package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -1
- package/dist/esm/stores/form/createFormStore.js +1 -0
- package/dist/esm/stores/form/createFormStore.js.map +1 -1
- package/dist/esm/stores/form/types.d.ts +1 -0
- package/dist/esm/stores/form/types.js.map +1 -1
- package/dist/esm/stores/form/useFieldActions.d.ts +1 -0
- package/dist/esm/stores/form/useFieldActions.js +1 -0
- package/dist/esm/stores/form/useFieldActions.js.map +1 -1
- package/package.json +8 -8
- package/src/components/Header/WalletHeader.tsx +14 -5
- package/src/components/ReverseTokensButton/ReverseTokensButton.tsx +25 -6
- package/src/components/TokenList/TokenList.tsx +7 -4
- package/src/components/TokenList/TokenListItem.tsx +1 -1
- package/src/components/TokenList/types.ts +2 -2
- package/src/components/TokenList/useTokenSelect.ts +39 -16
- package/src/config/version.ts +1 -1
- package/src/hooks/useAvailableChains.ts +6 -1
- package/src/hooks/useChain.ts +1 -0
- package/src/hooks/useGasSufficiency.ts +7 -19
- package/src/hooks/useIsContractAddress.ts +21 -0
- package/src/hooks/useToAddressAutoPopulate.ts +95 -0
- package/src/hooks/useToAddressRequirements.ts +13 -2
- package/src/hooks/useToAddressReset.ts +15 -8
- package/src/pages/SendToWallet/BookmarksPage.tsx +1 -0
- package/src/pages/SendToWallet/ConfirmAddressSheet.tsx +1 -0
- package/src/pages/SendToWallet/ConnectedWalletsPage.tsx +1 -0
- package/src/pages/SendToWallet/RecentWalletsPage.tsx +1 -0
- package/src/pages/SendToWallet/SendToConfiguredWalletPage.tsx +4 -1
- package/src/stores/form/createFormStore.ts +2 -0
- package/src/stores/form/types.ts +1 -0
- package/src/stores/form/useFieldActions.ts +1 -0
- package/src/stores/header/useHeaderStore.tsx +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
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.9.0](https://github.com/lifinance/widget/compare/v3.8.2...v3.9.0) (2024-10-28)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add active account tracking to the internal wallet management ([0872fe2](https://github.com/lifinance/widget/commit/0872fe2da2d2b3bd450d4cad181f5b50dd064c41))
|
|
11
|
+
* add support for okx bitcoin wallet ([175c5fb](https://github.com/lifinance/widget/commit/175c5fb6b251dd591d14530303aeb8f41788f071))
|
|
12
|
+
* try to auto-populate destination address for cross-ecosystem transfers ([323d3a1](https://github.com/lifinance/widget/commit/323d3a16255763e44caa0b3126641bb92a320da2))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* always update the destination chain to match the source one ([4d428ea](https://github.com/lifinance/widget/commit/4d428ea566763e77fdbde73c0bd78f6adea41e67))
|
|
18
|
+
* make destination address required if source address is a smart contract wallet ([34d8528](https://github.com/lifinance/widget/commit/34d8528a770198132b67d4af373961dce5d0ebe5))
|
|
19
|
+
|
|
5
20
|
### [3.8.2](https://github.com/lifinance/widget/compare/v3.8.1...v3.8.2) (2024-10-24)
|
|
6
21
|
|
|
7
22
|
|
|
@@ -7,6 +7,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
7
7
|
import { useChain } from '../../hooks/useChain.js';
|
|
8
8
|
import { useHasExternalWalletProvider } from '../../providers/WalletProvider/useHasExternalWalletProvider.js';
|
|
9
9
|
import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
|
|
10
|
+
import { useFieldValues } from '../../stores/form/useFieldValues.js';
|
|
10
11
|
import { HiddenUI } from '../../types/widget.js';
|
|
11
12
|
import { shortenAddress } from '../../utils/wallet.js';
|
|
12
13
|
import { SmallAvatar } from '../Avatar/SmallAvatar.js';
|
|
@@ -27,12 +28,17 @@ export const SplitWalletMenuButton = () => {
|
|
|
27
28
|
return !hasExternalProvider && !hiddenUI?.includes(HiddenUI.WalletMenu) ? (_jsx(WalletMenuButton, {})) : null;
|
|
28
29
|
};
|
|
29
30
|
export const WalletMenuButton = () => {
|
|
30
|
-
const { account } = useAccount();
|
|
31
31
|
const { variant, hiddenUI } = useWidgetConfig();
|
|
32
|
+
const { account, accounts } = useAccount();
|
|
33
|
+
const [fromChainId] = useFieldValues('fromChain');
|
|
34
|
+
const { chain: fromChain } = useChain(fromChainId);
|
|
35
|
+
const activeAccount = (fromChain
|
|
36
|
+
? accounts.find((account) => account.chainType === fromChain.chainType)
|
|
37
|
+
: undefined) || account;
|
|
32
38
|
if (variant === 'drawer') {
|
|
33
|
-
return (_jsxs(DrawerWalletContainer, { children: [
|
|
39
|
+
return (_jsxs(DrawerWalletContainer, { children: [activeAccount.isConnected ? (_jsx(ConnectedButton, { account: activeAccount })) : (_jsx(ConnectButton, {})), !hiddenUI?.includes(HiddenUI.DrawerCloseButton) ? (_jsx(CloseDrawerButton, { header: "wallet" })) : null] }));
|
|
34
40
|
}
|
|
35
|
-
return
|
|
41
|
+
return activeAccount.isConnected ? (_jsx(ConnectedButton, { account: activeAccount })) : (_jsx(ConnectButton, {}));
|
|
36
42
|
};
|
|
37
43
|
const ConnectButton = () => {
|
|
38
44
|
const { t } = useTranslation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletHeader.js","sourceRoot":"","sources":["../../../../src/components/Header/WalletHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,aAAa,GACd,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gEAAgE,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,YAAY,GAAa,GAAG,EAAE;IACzC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAA;IAClD,MAAM,EAAE,mBAAmB,EAAE,GAAG,4BAA4B,EAAE,CAAA;IAC9D,OAAO,CAAC,mBAAmB;QACzB,UAAU,KAAK,OAAO;QACtB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAC3C,KAAC,YAAY,IAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,YAC5D,KAAC,gBAAgB,KAAG,GACP,CAChB,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAa,GAAG,EAAE;IAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,EAAE,mBAAmB,EAAE,GAAG,4BAA4B,EAAE,CAAA;IAC9D,OAAO,CAAC,mBAAmB,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACxE,KAAC,gBAAgB,KAAG,CACrB,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAa,GAAG,EAAE;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"WalletHeader.js","sourceRoot":"","sources":["../../../../src/components/Header/WalletHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,aAAa,GACd,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gEAAgE,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,YAAY,GAAa,GAAG,EAAE;IACzC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAA;IAClD,MAAM,EAAE,mBAAmB,EAAE,GAAG,4BAA4B,EAAE,CAAA;IAC9D,OAAO,CAAC,mBAAmB;QACzB,UAAU,KAAK,OAAO;QACtB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAC3C,KAAC,YAAY,IAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,YAC5D,KAAC,gBAAgB,KAAG,GACP,CAChB,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAa,GAAG,EAAE;IAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,EAAE,mBAAmB,EAAE,GAAG,4BAA4B,EAAE,CAAA;IAC9D,OAAO,CAAC,mBAAmB,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACxE,KAAC,gBAAgB,KAAG,CACrB,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAa,GAAG,EAAE;IAC7C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAA;IAC/C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAA;IAE1C,MAAM,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAElD,MAAM,aAAa,GACjB,CAAC,SAAS;QACR,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,CAAC;QACvE,CAAC,CAAC,SAAS,CAAC,IAAI,OAAO,CAAA;IAE3B,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,CACL,MAAC,qBAAqB,eACnB,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAC3B,KAAC,eAAe,IAAC,OAAO,EAAE,aAAa,GAAI,CAC5C,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,KAAG,CAClB,EACA,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CACjD,KAAC,iBAAiB,IAAC,MAAM,EAAC,QAAQ,GAAG,CACtC,CAAC,CAAC,CAAC,IAAI,IACc,CACzB,CAAA;IACH,CAAC;IACD,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CACjC,KAAC,eAAe,IAAC,OAAO,EAAE,aAAa,GAAI,CAC5C,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,KAAG,CAClB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9B,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAA;IAC/D,MAAM,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,CAAA;IAC1C,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,YAAY,EAAE,SAAS,EAAE,CAAC;YAC5B,YAAY,CAAC,SAAS,EAAE,CAAA;YACxB,OAAM;QACR,CAAC;QACD,cAAc,EAAE,CAAA;IAClB,CAAC,CAAA;IAED,OAAO,CACL,KAAC,YAAY,IACX,UAAU,EAAE,UAAU,EACtB,OAAO,EACL,OAAO,KAAK,QAAQ,IAAI,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,KAAC,MAAM,KAAG,CAAC,CAAC,CAAC,SAAS,EAEzE,SAAS,EACP,OAAO,KAAK,QAAQ,IAAI,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CAC/C,KAAC,MAAM,IAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE,GAAI,CACtC,CAAC,CAAC,CAAC,SAAS,EAEf,OAAO,EAAE,OAAO,YAEf,CAAC,CAAC,sBAAsB,CAAC,GACb,CAChB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAAwB,EAAE,EAAE;IAC5D,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAA;IAClE,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAErD,MAAM,WAAW,GAAG,CAAC,KAAoC,EAAE,EAAE;QAC3D,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,OAAO,CACL,8BACE,KAAC,YAAY,IACX,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,KAAC,UAAU,KAAG,EACvB,SAAS,EACP,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CACf,KAAC,KAAK,IACJ,OAAO,EAAC,UAAU,EAClB,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EACzD,YAAY,EACV,KAAC,WAAW,IACV,GAAG,EAAE,KAAK,EAAE,OAAO,EACnB,GAAG,EAAE,KAAK,EAAE,IAAI,EAChB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAE5B,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,GACH,YAGhB,KAAC,YAAY,IACX,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,EACxC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,YAE3B,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GACd,GACT,CACT,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,IACL,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,EACxC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAC5B,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAE5B,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GACpB,CACV,EAEH,OAAO,EAAE,WAAW,YAEnB,aAAa,GACD,EACf,KAAC,mBAAmB,IAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EACvB,OAAO,EAAE,WAAW,YAEpB,KAAC,UAAU,IAAC,OAAO,EAAE,WAAW,GAAI,GAChB,IACrB,CACJ,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { ArrowDownward, ArrowForward } from '@mui/icons-material';
|
|
3
3
|
import { useAvailableChains } from '../../hooks/useAvailableChains.js';
|
|
4
|
+
import { useToAddressAutoPopulate } from '../../hooks/useToAddressAutoPopulate.js';
|
|
4
5
|
import { useToAddressReset } from '../../hooks/useToAddressReset.js';
|
|
5
6
|
import { useFieldActions } from '../../stores/form/useFieldActions.js';
|
|
6
7
|
import { IconCard, ReverseContainer } from './ReverseTokensButton.style.js';
|
|
@@ -8,13 +9,27 @@ export const ReverseTokensButton = ({ vertical, }) => {
|
|
|
8
9
|
const { setFieldValue, getFieldValues } = useFieldActions();
|
|
9
10
|
const { getChainById } = useAvailableChains();
|
|
10
11
|
const { tryResetToAddress } = useToAddressReset();
|
|
12
|
+
const autoPopulateToAddress = useToAddressAutoPopulate();
|
|
11
13
|
const handleClick = () => {
|
|
12
|
-
const [fromChainId, fromToken, toChainId, toToken] = getFieldValues('fromChain', 'fromToken', 'toChain', 'toToken');
|
|
14
|
+
const [fromChainId, fromToken, toChainId, toToken, toAddress] = getFieldValues('fromChain', 'fromToken', 'toChain', 'toToken', 'toAddress');
|
|
13
15
|
setFieldValue('fromAmount', '', { isTouched: true });
|
|
14
16
|
setFieldValue('fromChain', toChainId, { isTouched: true });
|
|
15
17
|
setFieldValue('fromToken', toToken, { isTouched: true });
|
|
16
18
|
setFieldValue('toChain', fromChainId, { isTouched: true });
|
|
17
19
|
setFieldValue('toToken', fromToken, { isTouched: true });
|
|
20
|
+
const autoPopulatedToAddress = autoPopulateToAddress({
|
|
21
|
+
formType: 'from',
|
|
22
|
+
selectedToAddress: toAddress,
|
|
23
|
+
selectedChainId: toChainId,
|
|
24
|
+
selectedOppositeChainId: fromChainId,
|
|
25
|
+
selectedOppositeTokenAddress: fromToken,
|
|
26
|
+
});
|
|
27
|
+
// Returning early as a compatible connected wallet was found, and toAddress has been populated
|
|
28
|
+
if (autoPopulatedToAddress) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Auto-population applies in certain scenarios, but otherwise,
|
|
32
|
+
// we attempt to reset `toAddress` when bridging across ecosystems
|
|
18
33
|
// fromChainId becomes toChainId after using reverse
|
|
19
34
|
const toChain = getChainById(fromChainId);
|
|
20
35
|
if (toChain) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReverseTokensButton.js","sourceRoot":"","sources":["../../../../src/components/ReverseTokensButton/ReverseTokensButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAE3E,MAAM,CAAC,MAAM,mBAAmB,GAAqC,CAAC,EACpE,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,CAAA;IAC3D,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAC7C,MAAM,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"ReverseTokensButton.js","sourceRoot":"","sources":["../../../../src/components/ReverseTokensButton/ReverseTokensButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAE3E,MAAM,CAAC,MAAM,mBAAmB,GAAqC,CAAC,EACpE,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,CAAA;IAC3D,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAC7C,MAAM,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAAA;IACjD,MAAM,qBAAqB,GAAG,wBAAwB,EAAE,CAAA;IAExD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,GAC3D,cAAc,CACZ,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,EACT,WAAW,CACZ,CAAA;QACH,aAAa,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1D,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAExD,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;YACnD,QAAQ,EAAE,MAAM;YAChB,iBAAiB,EAAE,SAAS;YAC5B,eAAe,EAAE,SAAS;YAC1B,uBAAuB,EAAE,WAAW;YACpC,4BAA4B,EAAE,SAAS;SACxC,CAAC,CAAA;QAEF,+FAA+F;QAC/F,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QAED,+DAA+D;QAC/D,kEAAkE;QAClE,oDAAoD;QACpD,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC,CAAA;IACD,OAAO,CACL,KAAC,gBAAgB,cACf,KAAC,QAAQ,IAAC,OAAO,EAAE,WAAW,YAC3B,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,aAAa,IAAC,QAAQ,EAAC,SAAS,GAAG,CACrC,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IAAC,QAAQ,EAAC,SAAS,GAAG,CACpC,GACQ,GACM,CACpB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -14,8 +14,10 @@ import { filteredTokensComparator } from './utils.js';
|
|
|
14
14
|
export const TokenList = ({ formType, parentRef, height, onClick, }) => {
|
|
15
15
|
const [selectedChainId] = useFieldValues(FormKeyHelper.getChainKey(formType));
|
|
16
16
|
const [tokenSearchFilter] = useDebouncedWatch(320, 'tokenSearchFilter');
|
|
17
|
-
const { chain, isLoading:
|
|
18
|
-
const { account } = useAccount({
|
|
17
|
+
const { chain: selectedChain, isLoading: isSelectedChainLoading } = useChain(selectedChainId);
|
|
18
|
+
const { account } = useAccount({
|
|
19
|
+
chainType: selectedChain?.chainType,
|
|
20
|
+
});
|
|
19
21
|
const { tokens: chainTokens, tokensWithBalance, isLoading: isTokensLoading, isBalanceLoading, featuredTokens, popularTokens, } = useTokenBalances(selectedChainId);
|
|
20
22
|
let filteredTokens = (tokensWithBalance ?? chainTokens ?? []);
|
|
21
23
|
const normalizedSearchFilter = tokenSearchFilter?.replaceAll('$', '');
|
|
@@ -33,7 +35,7 @@ export const TokenList = ({ formType, parentRef, height, onClick, }) => {
|
|
|
33
35
|
!!selectedChainId;
|
|
34
36
|
const { token: searchedToken, isLoading: isSearchedTokenLoading } = useTokenSearch(selectedChainId, normalizedSearchFilter, tokenSearchEnabled);
|
|
35
37
|
const isLoading = isTokensLoading ||
|
|
36
|
-
|
|
38
|
+
isSelectedChainLoading ||
|
|
37
39
|
(tokenSearchEnabled && isSearchedTokenLoading);
|
|
38
40
|
const tokens = filteredTokens.length
|
|
39
41
|
? filteredTokens
|
|
@@ -43,6 +45,6 @@ export const TokenList = ({ formType, parentRef, height, onClick, }) => {
|
|
|
43
45
|
const handleTokenClick = useTokenSelect(formType, onClick);
|
|
44
46
|
const showCategories = Boolean(featuredTokens?.length || popularTokens?.length) &&
|
|
45
47
|
!tokenSearchFilter;
|
|
46
|
-
return (_jsxs(Box, { ref: parentRef, style: { height, overflow: 'auto' }, children: [!tokens.length && !isLoading ? (_jsx(TokenNotFound, { formType: formType })) : null, _jsx(VirtualizedTokenList, { account: account, tokens: tokens, scrollElementRef: parentRef, chainId: selectedChainId, chain:
|
|
48
|
+
return (_jsxs(Box, { ref: parentRef, style: { height, overflow: 'auto' }, children: [!tokens.length && !isLoading ? (_jsx(TokenNotFound, { formType: formType })) : null, _jsx(VirtualizedTokenList, { account: account, tokens: tokens, scrollElementRef: parentRef, chainId: selectedChainId, chain: selectedChain, isLoading: isLoading, isBalanceLoading: isBalanceLoading, showCategories: showCategories, onClick: handleTokenClick })] }));
|
|
47
49
|
};
|
|
48
50
|
//# sourceMappingURL=TokenList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenList.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAErD,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAC5C,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE,EAAE;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7E,MAAM,CAAC,iBAAiB,CAAC,GAAa,iBAAiB,CACrD,GAAG,EACH,mBAAmB,CACpB,CAAA;IAED,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"TokenList.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import { IconButton, ListItem } from './TokenList.style.js';
|
|
|
13
13
|
export const TokenListItem = ({ onClick, size, start, token, chain, accountAddress, isBalanceLoading, startAdornment, endAdornment, }) => {
|
|
14
14
|
const handleClick = (e) => {
|
|
15
15
|
e.stopPropagation();
|
|
16
|
-
onClick?.(token.address);
|
|
16
|
+
onClick?.(token.address, chain?.id);
|
|
17
17
|
};
|
|
18
18
|
return (_jsxs(ListItem, { style: {
|
|
19
19
|
height: `${size}px`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenListItem.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EACL,MAAM,EACN,GAAG,EACH,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAG3D,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,OAAO,EACP,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,EAAE,EAAE;IACH,MAAM,WAAW,GAAsC,CAAC,CAAC,EAAE,EAAE;QAC3D,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"TokenListItem.js","sourceRoot":"","sources":["../../../../src/components/TokenList/TokenListItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,10 @@ export interface VirtualizedTokenListProps {
|
|
|
18
18
|
chainId?: number;
|
|
19
19
|
chain?: ExtendedChain;
|
|
20
20
|
showCategories?: boolean;
|
|
21
|
-
onClick(tokenAddress: string): void;
|
|
21
|
+
onClick(tokenAddress: string, chainId?: number): void;
|
|
22
22
|
}
|
|
23
23
|
export interface TokenListItemBaseProps {
|
|
24
|
-
onClick?(tokenAddress: string): void;
|
|
24
|
+
onClick?(tokenAddress: string, chainId?: number): void;
|
|
25
25
|
size: number;
|
|
26
26
|
start: number;
|
|
27
27
|
}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
import type { FormType } from '../../stores/form/types.js';
|
|
2
|
+
export type UseTokenSelectArgs = {
|
|
3
|
+
formType: FormType;
|
|
4
|
+
onClick?: () => void;
|
|
5
|
+
};
|
|
2
6
|
export declare const useTokenSelect: (formType: FormType, onClick?: () => void) => (tokenAddress: string, chainId?: number) => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
|
+
import { useToAddressAutoPopulate } from '../../hooks/useToAddressAutoPopulate.js';
|
|
2
3
|
import { useWidgetEvents } from '../../hooks/useWidgetEvents.js';
|
|
3
4
|
import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
|
|
4
5
|
import { useChainOrderStoreContext } from '../../stores/chains/ChainOrderStore.js';
|
|
@@ -10,9 +11,10 @@ export const useTokenSelect = (formType, onClick) => {
|
|
|
10
11
|
const { subvariant, disabledUI } = useWidgetConfig();
|
|
11
12
|
const emitter = useWidgetEvents();
|
|
12
13
|
const { setFieldValue, getFieldValues } = useFieldActions();
|
|
14
|
+
const autoPopulateToAddress = useToAddressAutoPopulate();
|
|
15
|
+
const chainOrderStore = useChainOrderStoreContext();
|
|
13
16
|
const tokenKey = FormKeyHelper.getTokenKey(formType);
|
|
14
17
|
const { onChange } = useFieldController({ name: tokenKey });
|
|
15
|
-
const chainOrderStore = useChainOrderStoreContext();
|
|
16
18
|
return useCallback((tokenAddress, chainId) => {
|
|
17
19
|
onChange(tokenAddress);
|
|
18
20
|
const selectedChainId = chainId ?? getFieldValues(FormKeyHelper.getChainKey(formType))[0];
|
|
@@ -26,9 +28,9 @@ export const useTokenSelect = (formType, onClick) => {
|
|
|
26
28
|
setFieldValue(amountKey, '');
|
|
27
29
|
}
|
|
28
30
|
const oppositeFormType = formType === 'from' ? 'to' : 'from';
|
|
29
|
-
const [
|
|
31
|
+
const [selectedOppositeTokenAddress, selectedOppositeChainId, selectedToAddress,] = getFieldValues(FormKeyHelper.getTokenKey(oppositeFormType), FormKeyHelper.getChainKey(oppositeFormType), 'toAddress');
|
|
30
32
|
// TODO: remove when we enable same chain/token transfers
|
|
31
|
-
if (
|
|
33
|
+
if (selectedOppositeTokenAddress === tokenAddress &&
|
|
32
34
|
selectedOppositeChainId === selectedChainId &&
|
|
33
35
|
subvariant !== 'custom') {
|
|
34
36
|
setFieldValue(FormKeyHelper.getTokenKey(oppositeFormType), '', {
|
|
@@ -36,17 +38,23 @@ export const useTokenSelect = (formType, onClick) => {
|
|
|
36
38
|
isTouched: true,
|
|
37
39
|
});
|
|
38
40
|
}
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
selectedChainId &&
|
|
44
|
-
chainOrderStore.getState().chainOrder.to.includes(selectedChainId)) {
|
|
45
|
-
setFieldValue(FormKeyHelper.getChainKey('to'), selectedChainId, {
|
|
41
|
+
// If no opposite token is selected, synchronize the opposite chain to match the currently selected chain
|
|
42
|
+
const { setChain } = chainOrderStore.getState();
|
|
43
|
+
if (!selectedOppositeTokenAddress && selectedChainId) {
|
|
44
|
+
setFieldValue(FormKeyHelper.getChainKey(oppositeFormType), selectedChainId, {
|
|
46
45
|
isDirty: true,
|
|
47
46
|
isTouched: true,
|
|
48
47
|
});
|
|
48
|
+
setChain(selectedChainId, oppositeFormType);
|
|
49
49
|
}
|
|
50
|
+
// Automatically populate toAddress field if bridging across ecosystems and compatible wallet is connected
|
|
51
|
+
autoPopulateToAddress({
|
|
52
|
+
formType,
|
|
53
|
+
selectedToAddress,
|
|
54
|
+
selectedChainId,
|
|
55
|
+
selectedOppositeChainId,
|
|
56
|
+
selectedOppositeTokenAddress,
|
|
57
|
+
});
|
|
50
58
|
const eventToEmit = formType === 'from'
|
|
51
59
|
? WidgetEvent.SourceChainTokenSelected
|
|
52
60
|
: WidgetEvent.DestinationChainTokenSelected;
|
|
@@ -58,6 +66,7 @@ export const useTokenSelect = (formType, onClick) => {
|
|
|
58
66
|
}
|
|
59
67
|
onClick?.();
|
|
60
68
|
}, [
|
|
69
|
+
autoPopulateToAddress,
|
|
61
70
|
chainOrderStore,
|
|
62
71
|
disabledUI,
|
|
63
72
|
emitter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenSelect.js","sourceRoot":"","sources":["../../../../src/components/TokenList/useTokenSelect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"useTokenSelect.js","sourceRoot":"","sources":["../../../../src/components/TokenList/useTokenSelect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/widget";
|
|
2
|
-
export declare const version = "3.
|
|
2
|
+
export declare const version = "3.9.0";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ExtendedChain } from '@lifi/sdk';
|
|
2
2
|
import { ChainType } from '@lifi/sdk';
|
|
3
|
+
export type GetChainById = (chainId?: number, chains?: ExtendedChain[]) => ExtendedChain | undefined;
|
|
3
4
|
export declare const useAvailableChains: (chainTypes?: ChainType[]) => {
|
|
4
5
|
chains: ExtendedChain[] | undefined;
|
|
5
|
-
getChainById:
|
|
6
|
+
getChainById: GetChainById;
|
|
6
7
|
isLoading: boolean;
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAvailableChains.js","sourceRoot":"","sources":["../../../src/hooks/useAvailableChains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"useAvailableChains.js","sourceRoot":"","sources":["../../../src/hooks/useAvailableChains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAOhD,MAAM,mBAAmB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAwB,EAAE,EAAE;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAA;IACpC,wDAAwD;IACxD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QACnC,QAAQ,EAAE;YACR,QAAQ;YACR,aAAa;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,EAAE;SACF;QACV,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE;YACpD,MAAM,iBAAiB,GAAG,mBAAmB;gBAC3C,yDAAyD;iBACxD,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;YAEpE,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC;gBACtC,UAAU,EAAE,UAAU,IAAI,iBAAiB;aAC5C,CAAC,CAAA;YACF,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;YACjC,OAAO,eAAe,CAAA;QACxB,CAAC;QACD,eAAe,EAAE,MAAO;QACxB,SAAS,EAAE,MAAO;KACnB,CAAC,CAAA;IAEF,MAAM,YAAY,GAAiB,WAAW,CAC5C,CAAC,OAAgB,EAAE,SAAsC,IAAI,EAAE,EAAE;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;QAC3D,gBAAgB;QAChB,+DAA+D;QAC/D,IAAI;QACJ,OAAO,KAAK,CAAA;IACd,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,YAAY;QACZ,SAAS;KACV,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChain.js","sourceRoot":"","sources":["../../../src/hooks/useChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC3C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAExD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAE3E,OAAO;QACL,KAAK;QACL,SAAS;
|
|
1
|
+
{"version":3,"file":"useChain.js","sourceRoot":"","sources":["../../../src/hooks/useChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC3C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAExD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;IAE3E,OAAO;QACL,KAAK;QACL,SAAS;QACT,YAAY;KACb,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -2,6 +2,6 @@ import type { ChainType } from '@lifi/sdk';
|
|
|
2
2
|
import type { FormType } from '../stores/form/types.js';
|
|
3
3
|
export declare const useChains: (type?: FormType, chainTypes?: ChainType[]) => {
|
|
4
4
|
chains: import("@lifi/sdk").ExtendedChain[] | undefined;
|
|
5
|
-
getChainById:
|
|
5
|
+
getChainById: import("./useAvailableChains.js").GetChainById;
|
|
6
6
|
isLoading: boolean;
|
|
7
7
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ChainType, } from '@lifi/sdk';
|
|
2
1
|
import { useAccount } from '@lifi/wallet-management';
|
|
3
2
|
import { useQuery } from '@tanstack/react-query';
|
|
4
|
-
import { useBytecode } from 'wagmi';
|
|
5
3
|
import { useAvailableChains } from './useAvailableChains.js';
|
|
4
|
+
import { useIsContractAddress } from './useIsContractAddress.js';
|
|
6
5
|
import { getTokenBalancesWithRetry } from './useTokenBalance.js';
|
|
7
6
|
const refetchInterval = 30000;
|
|
8
7
|
export const useGasSufficiency = (route) => {
|
|
@@ -10,16 +9,7 @@ export const useGasSufficiency = (route) => {
|
|
|
10
9
|
const { account } = useAccount({
|
|
11
10
|
chainType: getChainById(route?.fromChainId)?.chainType,
|
|
12
11
|
});
|
|
13
|
-
const
|
|
14
|
-
address: account.chainType === ChainType.EVM
|
|
15
|
-
? account.address
|
|
16
|
-
: undefined,
|
|
17
|
-
query: {
|
|
18
|
-
refetchInterval: 300000,
|
|
19
|
-
staleTime: 300000,
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
const isContractAddress = !!contractCode;
|
|
12
|
+
const isContractAddress = useIsContractAddress(account.address, route?.fromChainId, account.chainType);
|
|
23
13
|
const { data: insufficientGas, isLoading } = useQuery({
|
|
24
14
|
queryKey: ['gas-sufficiency-check', account.address, route?.id],
|
|
25
15
|
queryFn: async ({ queryKey: [, accountAddress] }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGasSufficiency.js","sourceRoot":"","sources":["../../../src/hooks/useGasSufficiency.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGasSufficiency.js","sourceRoot":"","sources":["../../../src/hooks/useGasSufficiency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChainType } from '@lifi/sdk';
|
|
2
|
+
import { useBytecode } from 'wagmi';
|
|
3
|
+
export const useIsContractAddress = (address, chainId, chainType) => {
|
|
4
|
+
const { data: contractCode } = useBytecode({
|
|
5
|
+
address: address,
|
|
6
|
+
chainId: chainId,
|
|
7
|
+
query: {
|
|
8
|
+
refetchInterval: 300000,
|
|
9
|
+
staleTime: 300000,
|
|
10
|
+
enabled: Boolean(chainType === ChainType.EVM && chainId),
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
const isContractAddress = !!contractCode;
|
|
14
|
+
return isContractAddress;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=useIsContractAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsContractAddress.js","sourceRoot":"","sources":["../../../src/hooks/useIsContractAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAgB,EAChB,OAAgB,EAChB,SAAqB,EACrB,EAAE;IACF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;QACzC,OAAO,EAAE,OAAkB;QAC3B,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE;YACL,eAAe,EAAE,MAAO;YACxB,SAAS,EAAE,MAAO;YAClB,OAAO,EAAE,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,GAAG,IAAI,OAAO,CAAC;SACzD;KACF,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG,CAAC,CAAC,YAAY,CAAA;IACxC,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FormType } from '../stores/form/types.js';
|
|
2
|
+
export type UpdateToAddressArgs = {
|
|
3
|
+
formType: FormType;
|
|
4
|
+
selectedToAddress?: string;
|
|
5
|
+
selectedChainId?: number;
|
|
6
|
+
selectedOppositeTokenAddress?: string;
|
|
7
|
+
selectedOppositeChainId?: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Automatically populates toAddress field if bridging across ecosystems and compatible wallet is connected
|
|
11
|
+
*/
|
|
12
|
+
export declare const useToAddressAutoPopulate: () => ({ formType, selectedToAddress, selectedChainId, selectedOppositeTokenAddress, selectedOppositeChainId, }: UpdateToAddressArgs) => string | undefined;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { useAccount } from '@lifi/wallet-management';
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { useBookmarkActions } from '../stores/bookmarks/useBookmarkActions.js';
|
|
4
|
+
import { useFieldActions } from '../stores/form/useFieldActions.js';
|
|
5
|
+
import { useSendToWalletActions } from '../stores/settings/useSendToWalletStore.js';
|
|
6
|
+
import { getChainTypeFromAddress } from '../utils/chainType.js';
|
|
7
|
+
import { useAvailableChains } from './useAvailableChains.js';
|
|
8
|
+
/**
|
|
9
|
+
* Automatically populates toAddress field if bridging across ecosystems and compatible wallet is connected
|
|
10
|
+
*/
|
|
11
|
+
export const useToAddressAutoPopulate = () => {
|
|
12
|
+
const { setFieldValue } = useFieldActions();
|
|
13
|
+
const { setSendToWallet } = useSendToWalletActions();
|
|
14
|
+
const { setSelectedBookmark } = useBookmarkActions();
|
|
15
|
+
const { getChainById } = useAvailableChains();
|
|
16
|
+
const { accounts } = useAccount();
|
|
17
|
+
return useCallback(({ formType, selectedToAddress, selectedChainId, selectedOppositeTokenAddress, selectedOppositeChainId, }) => {
|
|
18
|
+
if (!selectedOppositeTokenAddress ||
|
|
19
|
+
!selectedOppositeChainId ||
|
|
20
|
+
!selectedChainId ||
|
|
21
|
+
!accounts?.length) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const selectedChain = getChainById?.(selectedChainId);
|
|
25
|
+
const selectedOppositeChain = getChainById?.(selectedOppositeChainId);
|
|
26
|
+
// Proceed if both chains are defined and of different ecosystem types (indicating cross-ecosystem bridging)
|
|
27
|
+
if (!selectedChain ||
|
|
28
|
+
!selectedOppositeChain ||
|
|
29
|
+
selectedChain.chainType === selectedOppositeChain.chainType) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Identify the destination chain type based on the bridge direction ('from' or 'to')
|
|
33
|
+
const destinationChainType = formType === 'from'
|
|
34
|
+
? selectedOppositeChain.chainType
|
|
35
|
+
: selectedChain.chainType;
|
|
36
|
+
// If toAddress is already selected, verify that it matches the destination chain type
|
|
37
|
+
if (selectedToAddress) {
|
|
38
|
+
const selectedToAddressChainType = getChainTypeFromAddress(selectedToAddress);
|
|
39
|
+
if (destinationChainType === selectedToAddressChainType) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Find connected account compatible with the destination chain type
|
|
44
|
+
const destinationAccount = accounts?.find((account) => account.chainType === destinationChainType);
|
|
45
|
+
// If a compatible destination account is found, set toAddress as if selecting it from the "Send to Wallet" connected wallets page
|
|
46
|
+
if (destinationAccount?.address) {
|
|
47
|
+
setFieldValue('toAddress', destinationAccount.address, {
|
|
48
|
+
isDirty: false,
|
|
49
|
+
isTouched: true,
|
|
50
|
+
});
|
|
51
|
+
setSelectedBookmark({
|
|
52
|
+
name: destinationAccount.connector?.name,
|
|
53
|
+
address: destinationAccount.address,
|
|
54
|
+
chainType: destinationAccount.chainType,
|
|
55
|
+
isConnectedAccount: true,
|
|
56
|
+
});
|
|
57
|
+
setSendToWallet(true);
|
|
58
|
+
return destinationAccount.address;
|
|
59
|
+
}
|
|
60
|
+
}, [
|
|
61
|
+
accounts,
|
|
62
|
+
getChainById,
|
|
63
|
+
setFieldValue,
|
|
64
|
+
setSelectedBookmark,
|
|
65
|
+
setSendToWallet,
|
|
66
|
+
]);
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=useToAddressAutoPopulate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useToAddressAutoPopulate.js","sourceRoot":"","sources":["../../../src/hooks/useToAddressAutoPopulate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAA;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAU5D;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE,CAAA;IAC3C,MAAM,EAAE,eAAe,EAAE,GAAG,sBAAsB,EAAE,CAAA;IACpD,MAAM,EAAE,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACpD,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAA;IAC7C,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAA;IAEjC,OAAO,WAAW,CAChB,CAAC,EACC,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,uBAAuB,GACH,EAAE,EAAE;QACxB,IACE,CAAC,4BAA4B;YAC7B,CAAC,uBAAuB;YACxB,CAAC,eAAe;YAChB,CAAC,QAAQ,EAAE,MAAM,EACjB,CAAC;YACD,OAAM;QACR,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC,eAAe,CAAC,CAAA;QACrD,MAAM,qBAAqB,GAAG,YAAY,EAAE,CAAC,uBAAuB,CAAC,CAAA;QACrE,4GAA4G;QAC5G,IACE,CAAC,aAAa;YACd,CAAC,qBAAqB;YACtB,aAAa,CAAC,SAAS,KAAK,qBAAqB,CAAC,SAAS,EAC3D,CAAC;YACD,OAAM;QACR,CAAC;QACD,qFAAqF;QACrF,MAAM,oBAAoB,GACxB,QAAQ,KAAK,MAAM;YACjB,CAAC,CAAC,qBAAqB,CAAC,SAAS;YACjC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAA;QAC7B,sFAAsF;QACtF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,0BAA0B,GAC9B,uBAAuB,CAAC,iBAAiB,CAAC,CAAA;YAC5C,IAAI,oBAAoB,KAAK,0BAA0B,EAAE,CAAC;gBACxD,OAAM;YACR,CAAC;QACH,CAAC;QACD,oEAAoE;QACpE,MAAM,kBAAkB,GAAG,QAAQ,EAAE,IAAI,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,oBAAoB,CACxD,CAAA;QACD,kIAAkI;QAClI,IAAI,kBAAkB,EAAE,OAAO,EAAE,CAAC;YAChC,aAAa,CAAC,WAAW,EAAE,kBAAkB,CAAC,OAAO,EAAE;gBACrD,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,IAAI;aAChB,CAAC,CAAA;YACF,mBAAmB,CAAC;gBAClB,IAAI,EAAE,kBAAkB,CAAC,SAAS,EAAE,IAAI;gBACxC,OAAO,EAAE,kBAAkB,CAAC,OAAO;gBACnC,SAAS,EAAE,kBAAkB,CAAC,SAAS;gBACvC,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAA;YACF,eAAe,CAAC,IAAI,CAAC,CAAA;YACrB,OAAO,kBAAkB,CAAC,OAAO,CAAA;QACnC,CAAC;IACH,CAAC,EACD;QACE,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,mBAAmB;QACnB,eAAe;KAChB,CACF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
+
import { useAccount } from '@lifi/wallet-management';
|
|
1
2
|
import { useChain } from '../hooks/useChain.js';
|
|
2
3
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
3
4
|
import { useFieldValues } from '../stores/form/useFieldValues.js';
|
|
4
5
|
import { RequiredUI } from '../types/widget.js';
|
|
6
|
+
import { useIsContractAddress } from './useIsContractAddress.js';
|
|
5
7
|
export const useToAddressRequirements = () => {
|
|
6
8
|
const { requiredUI } = useWidgetConfig();
|
|
7
9
|
const [fromChainId, toChainId] = useFieldValues('fromChain', 'toChain');
|
|
8
10
|
const { chain: fromChain } = useChain(fromChainId);
|
|
9
11
|
const { chain: toChain } = useChain(toChainId);
|
|
12
|
+
const { account } = useAccount({
|
|
13
|
+
chainType: fromChain?.chainType,
|
|
14
|
+
});
|
|
15
|
+
const isFromContractAddress = useIsContractAddress(account.address, fromChainId, account.chainType);
|
|
10
16
|
const isDifferentChainType = fromChain && toChain && fromChain.chainType !== toChain.chainType;
|
|
11
|
-
const requiredToAddress = requiredUI?.includes(RequiredUI.ToAddress) ||
|
|
17
|
+
const requiredToAddress = requiredUI?.includes(RequiredUI.ToAddress) ||
|
|
18
|
+
isDifferentChainType ||
|
|
19
|
+
isFromContractAddress;
|
|
12
20
|
return {
|
|
13
21
|
requiredToAddress,
|
|
14
22
|
requiredToChainType: toChain?.chainType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToAddressRequirements.js","sourceRoot":"","sources":["../../../src/hooks/useToAddressRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"useToAddressRequirements.js","sourceRoot":"","sources":["../../../src/hooks/useToAddressRequirements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACvE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAClD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAC7B,SAAS,EAAE,SAAS,EAAE,SAAS;KAChC,CAAC,CAAA;IACF,MAAM,qBAAqB,GAAG,oBAAoB,CAChD,OAAO,CAAC,OAAO,EACf,WAAW,EACX,OAAO,CAAC,SAAS,CAClB,CAAA;IAED,MAAM,oBAAoB,GACxB,SAAS,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAA;IAEnE,MAAM,iBAAiB,GACrB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QAC1C,oBAAoB;QACpB,qBAAqB,CAAA;IAEvB,OAAO;QACL,iBAAiB;QACjB,mBAAmB,EAAE,OAAO,EAAE,SAAS;KACxC,CAAA;AACH,CAAC,CAAA"}
|