@lifi/widget 3.40.11 → 3.40.13
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 +9 -0
- package/dist/esm/components/Card/CardIconButton.d.ts +1 -1
- package/dist/esm/components/Tabs/NavigationTabs.d.ts +1 -1
- package/dist/esm/components/Tabs/Tabs.style.d.ts +1 -1
- package/dist/esm/components/TokenList/TokenList.style.d.ts +2 -2
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useFromTokenSufficiency.js +2 -2
- package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -1
- package/dist/esm/hooks/useRoutes.js +3 -3
- package/dist/esm/hooks/useRoutes.js.map +1 -1
- package/dist/esm/utils/parseInputAmount.d.ts +9 -0
- package/dist/esm/utils/parseInputAmount.js +17 -0
- package/dist/esm/utils/parseInputAmount.js.map +1 -0
- package/dist/esm/utils/parseInputAmount.test.d.ts +1 -0
- package/dist/esm/utils/parseInputAmount.test.js +31 -0
- package/dist/esm/utils/parseInputAmount.test.js.map +1 -0
- package/package.json +12 -12
- package/package.json.tmp +11 -11
- package/src/config/version.ts +1 -1
- package/src/hooks/useFromTokenSufficiency.ts +2 -2
- package/src/hooks/useRoutes.ts +6 -3
- package/src/utils/parseInputAmount.test.ts +35 -0
- package/src/utils/parseInputAmount.ts +17 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
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.40.13](https://github.com/lifinance/widget/compare/v3.40.12...v3.40.13) (2026-10-20)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* handle empty amounts before parseUnits for viem 2.55.4+ ([#915](https://github.com/lifinance/widget/issues/915)) ([9200a01](https://github.com/lifinance/widget/commit/9200a01c5fd35b1d832e9b5adc86ff736622e85e))
|
|
11
|
+
|
|
12
|
+
### [3.40.12](https://github.com/lifinance/widget/compare/v3.40.11...v3.40.12) (2026-03-12)
|
|
13
|
+
|
|
5
14
|
### [3.40.11](https://github.com/lifinance/widget/compare/v3.40.10...v3.40.11) (2026-02-27)
|
|
6
15
|
|
|
7
16
|
### [3.40.10](https://github.com/lifinance/widget/compare/v3.40.9...v3.40.10) (2026-02-27)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LinkProps } from '@mui/material';
|
|
2
2
|
export declare const CardIconButton: import("@emotion/styled").StyledComponent<import("@mui/material").IconButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "color" | "children" | "sx" | "style" | "className" | "tabIndex" | "classes" | "size" | "action" | "disabled" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
3
|
-
component?: React.ElementType;
|
|
3
|
+
component?: React.ElementType | undefined;
|
|
4
4
|
} & Pick<LinkProps, "rel" | "target" | "href">, {}, {}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const NavigationTabs: import("@emotion/styled").StyledComponent<Pick<import("@mui/material").TabsOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "sx" | "style" | "className" | "aria-label" | "aria-labelledby" | "onChange" | "classes" | "variant" | "orientation" | "value" | "action" | "slots" | "slotProps" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar">, "title" | "color" | "content" | "translate" | "children" | "ref" | "sx" | "slot" | "style" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "classes" | "variant" | "orientation" | "value" | "action" | "slots" | "slotProps" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
2
2
|
export declare const NavigationTab: import("@emotion/styled").StyledComponent<Pick<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "sx" | "label" | "style" | "className" | "tabIndex" | "classes" | "value" | "action" | "icon" | "disabled" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "iconPosition" | "wrapped"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
3
|
-
component?: React.ElementType;
|
|
3
|
+
component?: React.ElementType | undefined;
|
|
4
4
|
}, "title" | "color" | "content" | "translate" | "children" | "ref" | "sx" | "label" | "slot" | "style" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "classes" | "value" | "action" | "icon" | "component" | "theme" | "disabled" | "as" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "iconPosition" | "wrapped"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const CardTabs: import("@emotion/styled").StyledComponent<import("@mui/material").TabsOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "sx" | "style" | "className" | "aria-label" | "aria-labelledby" | "onChange" | "classes" | "variant" | "orientation" | "value" | "action" | "slots" | "slotProps" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
2
2
|
export declare const Tab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "sx" | "label" | "style" | "className" | "tabIndex" | "classes" | "value" | "action" | "icon" | "disabled" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "iconPosition" | "wrapped"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
3
|
-
component?: React.ElementType;
|
|
3
|
+
component?: React.ElementType | undefined;
|
|
4
4
|
}, {}, {}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const ListItem: import("@emotion/styled").StyledComponent<import("@mui/material").ListItemOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "alignItems" | "children" | "sx" | "style" | "className" | "classes" | "slots" | "slotProps" | "componentsProps" | "divider" | "dense" | "components" | "disableGutters" | "ContainerComponent" | "ContainerProps" | "disablePadding" | "secondaryAction"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
2
2
|
export declare const List: import("@emotion/styled").StyledComponent<import("@mui/material").ListOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "children" | "sx" | "style" | "className" | "classes" | "dense" | "disablePadding" | "subheader"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
3
3
|
export declare const IconButton: import("@emotion/styled").StyledComponent<import("@mui/material").IconButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "color" | "children" | "sx" | "style" | "className" | "tabIndex" | "classes" | "size" | "action" | "disabled" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
|
|
4
|
-
component?: React.ElementType;
|
|
4
|
+
component?: React.ElementType | undefined;
|
|
5
5
|
} & import("@mui/material").LinkOwnProps & Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "color" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "p" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform" | "children" | "sx" | "style" | "className" | "classes" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variant" | "variantMapping" | "underline" | "TypographyClasses"> & {
|
|
6
|
-
component?: React.ElementType;
|
|
6
|
+
component?: React.ElementType | undefined;
|
|
7
7
|
}, {}, {}>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const name = "@lifi/widget";
|
|
2
|
-
export declare const version = "3.40.
|
|
2
|
+
export declare const version = "3.40.13";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useAccount } from '@lifi/wallet-management';
|
|
2
2
|
import { keepPreviousData, useQuery } from '@tanstack/react-query';
|
|
3
|
-
import { parseUnits } from 'viem';
|
|
4
3
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
5
4
|
import { useFieldValues } from '../stores/form/useFieldValues.js';
|
|
6
5
|
import { isRouteDone } from '../stores/routes/utils.js';
|
|
6
|
+
import { parseInputAmount } from '../utils/parseInputAmount.js';
|
|
7
7
|
import { getQueryKey } from '../utils/queries.js';
|
|
8
8
|
import { useTokenAddressBalance } from './useTokenAddressBalance.js';
|
|
9
9
|
import { getTokenBalancesWithRetry } from './useTokenBalance.js';
|
|
@@ -31,9 +31,9 @@ export const useFromTokenSufficiency = (route) => {
|
|
|
31
31
|
if (!accountAddress || !token) {
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
|
-
const parsedFromAmount = parseUnits(fromAmount, token.decimals);
|
|
35
34
|
let currentTokenBalance = token.amount ?? 0n;
|
|
36
35
|
if (!route || isRouteDone(route)) {
|
|
36
|
+
const parsedFromAmount = parseInputAmount(fromAmount, token.decimals);
|
|
37
37
|
const insufficientFunds = currentTokenBalance < parsedFromAmount;
|
|
38
38
|
return insufficientFunds;
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFromTokenSufficiency.js","sourceRoot":"","sources":["../../../src/hooks/useFromTokenSufficiency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useFromTokenSufficiency.js","sourceRoot":"","sources":["../../../src/hooks/useFromTokenSufficiency.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import { ChainType, convertQuoteToRoute, getContractCallsQuote, getRelayerQuote,
|
|
|
2
2
|
import { useAccount } from '@lifi/wallet-management';
|
|
3
3
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
4
4
|
import { useCallback, useMemo } from 'react';
|
|
5
|
-
import { parseUnits } from 'viem';
|
|
6
5
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js';
|
|
7
6
|
import { useFieldValues } from '../stores/form/useFieldValues.js';
|
|
8
7
|
import { useIntermediateRoutesStore } from '../stores/routes/useIntermediateRoutesStore.js';
|
|
@@ -11,6 +10,7 @@ import { defaultSlippage } from '../stores/settings/createSettingsStore.js';
|
|
|
11
10
|
import { useSettings } from '../stores/settings/useSettings.js';
|
|
12
11
|
import { WidgetEvent } from '../types/events.js';
|
|
13
12
|
import { getChainTypeFromAddress } from '../utils/chainType.js';
|
|
13
|
+
import { parseInputAmount } from '../utils/parseInputAmount.js';
|
|
14
14
|
import { getQueryKey } from '../utils/queries.js';
|
|
15
15
|
import { updateTokenInCache } from '../utils/token.js';
|
|
16
16
|
import { useChain } from './useChain.js';
|
|
@@ -136,8 +136,8 @@ export const useRoutes = ({ observableRoute } = {}) => {
|
|
|
136
136
|
queryFn: async ({ queryKey: [_, fromAddress, fromChainId, fromTokenAddress, fromTokenAmount, toAddress, toChainId, toTokenAddress, toTokenAmount, contractCalls, slippage = defaultSlippage, swapOnly, disabledBridges, disabledExchanges, allowedBridges, allowedExchanges, routePriority, subvariant, allowSwitchChain, enabledRefuel, gasRecommendationFromAmount, fee, disableMessageSigning, isBatchingSupported,
|
|
137
137
|
// _observableRouteId must be the last element in the query key
|
|
138
138
|
_observableRouteId,], signal, }) => {
|
|
139
|
-
const fromAmount =
|
|
140
|
-
const toAmount =
|
|
139
|
+
const fromAmount = parseInputAmount(fromTokenAmount, fromToken.decimals);
|
|
140
|
+
const toAmount = parseInputAmount(toTokenAmount, toToken.decimals);
|
|
141
141
|
const formattedSlippage = slippage
|
|
142
142
|
? Number.parseFloat(slippage) / 100
|
|
143
143
|
: defaultSlippage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRoutes.js","sourceRoot":"","sources":["../../../src/hooks/useRoutes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useRoutes.js","sourceRoot":"","sources":["../../../src/hooks/useRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse an amount string from the form to the smallest token unit.
|
|
3
|
+
* An amount without digits ('', '-', '.', '-.') parses to 0n.
|
|
4
|
+
* viem 2.55.4+ throws on these values, older versions returned 0n.
|
|
5
|
+
* @param amount amount to parse.
|
|
6
|
+
* @param decimals token decimals.
|
|
7
|
+
* @returns parsed amount.
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseInputAmount(amount: string, decimals: number): bigint;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { parseUnits } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Parse an amount string from the form to the smallest token unit.
|
|
4
|
+
* An amount without digits ('', '-', '.', '-.') parses to 0n.
|
|
5
|
+
* viem 2.55.4+ throws on these values, older versions returned 0n.
|
|
6
|
+
* @param amount amount to parse.
|
|
7
|
+
* @param decimals token decimals.
|
|
8
|
+
* @returns parsed amount.
|
|
9
|
+
*/
|
|
10
|
+
export function parseInputAmount(amount, decimals) {
|
|
11
|
+
const value = amount.trim();
|
|
12
|
+
if (/^-?\.?$/.test(value)) {
|
|
13
|
+
return 0n;
|
|
14
|
+
}
|
|
15
|
+
return parseUnits(value, decimals);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=parseInputAmount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseInputAmount.js","sourceRoot":"","sources":["../../../src/utils/parseInputAmount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAAgB;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { parseUnits } from 'viem';
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
|
+
import { parseInputAmount } from './parseInputAmount.js';
|
|
4
|
+
vi.mock('viem', async (importOriginal) => {
|
|
5
|
+
const viem = await importOriginal();
|
|
6
|
+
return { ...viem, parseUnits: vi.fn(viem.parseUnits) };
|
|
7
|
+
});
|
|
8
|
+
describe('parseInputAmount', () => {
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
vi.mocked(parseUnits).mockClear();
|
|
11
|
+
});
|
|
12
|
+
it('should return 0n for an empty amount', () => {
|
|
13
|
+
expect(parseInputAmount('', 18)).toBe(0n);
|
|
14
|
+
expect(parseInputAmount(' ', 18)).toBe(0n);
|
|
15
|
+
expect(parseInputAmount('-', 18)).toBe(0n);
|
|
16
|
+
expect(parseInputAmount('.', 18)).toBe(0n);
|
|
17
|
+
expect(parseInputAmount('-.', 18)).toBe(0n);
|
|
18
|
+
// viem 2.55.4+ throws on these values, so they must not reach parseUnits
|
|
19
|
+
expect(parseUnits).not.toHaveBeenCalled();
|
|
20
|
+
});
|
|
21
|
+
it('should parse decimal amounts', () => {
|
|
22
|
+
expect(parseInputAmount('1', 6)).toBe(1000000n);
|
|
23
|
+
expect(parseInputAmount('1.', 6)).toBe(1000000n);
|
|
24
|
+
expect(parseInputAmount('.5', 6)).toBe(500000n);
|
|
25
|
+
expect(parseInputAmount(' 1.5 ', 6)).toBe(1500000n);
|
|
26
|
+
});
|
|
27
|
+
it('should throw for invalid amounts', () => {
|
|
28
|
+
expect(() => parseInputAmount('abc', 6)).toThrow();
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=parseInputAmount.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseInputAmount.test.js","sourceRoot":"","sources":["../../../src/utils/parseInputAmount.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACvC,MAAM,IAAI,GAAG,MAAM,cAAc,EAAyB,CAAA;IAC1D,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAA;AACxD,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACzC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,yEAAyE;QACzE,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAU,CAAC,CAAA;QACjD,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAU,CAAC,CAAA;QAClD,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAA;QAChD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAU,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IACpD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.40.
|
|
3
|
+
"version": "3.40.13",
|
|
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",
|
|
@@ -30,29 +30,29 @@
|
|
|
30
30
|
"lifi"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@bigmi/client": "^0.7.
|
|
34
|
-
"@bigmi/core": "^0.7.
|
|
33
|
+
"@bigmi/client": "^0.7.1",
|
|
34
|
+
"@bigmi/core": "^0.7.1",
|
|
35
35
|
"@emotion/react": "^11.14.0",
|
|
36
36
|
"@emotion/styled": "^11.14.1",
|
|
37
|
-
"@lifi/sdk": "^3.
|
|
38
|
-
"@mui/icons-material": "^7.3.
|
|
39
|
-
"@mui/material": "^7.3.
|
|
40
|
-
"@mui/system": "^7.3.
|
|
37
|
+
"@lifi/sdk": "^3.16.1",
|
|
38
|
+
"@mui/icons-material": "^7.3.9",
|
|
39
|
+
"@mui/material": "^7.3.9",
|
|
40
|
+
"@mui/system": "^7.3.9",
|
|
41
41
|
"@mysten/sui": "^1.45.2",
|
|
42
42
|
"@solana/wallet-adapter-base": "^0.9.27",
|
|
43
43
|
"@solana/wallet-adapter-coinbase": "^0.1.23",
|
|
44
44
|
"@solana/web3.js": "^1.98.4",
|
|
45
|
-
"@tanstack/react-virtual": "^3.13.
|
|
46
|
-
"i18next": "^25.8.
|
|
45
|
+
"@tanstack/react-virtual": "^3.13.21",
|
|
46
|
+
"i18next": "^25.8.18",
|
|
47
47
|
"microdiff": "^1.5.0",
|
|
48
48
|
"mitt": "^3.0.1",
|
|
49
|
-
"react-i18next": "^16.5.
|
|
49
|
+
"react-i18next": "^16.5.8",
|
|
50
50
|
"react-intersection-observer": "^9.16.0",
|
|
51
51
|
"react-router-dom": "^6.30.3",
|
|
52
52
|
"react-transition-group": "^4.4.5",
|
|
53
|
-
"viem": "^2.
|
|
53
|
+
"viem": "^2.47.2",
|
|
54
54
|
"zustand": "^5.0.11",
|
|
55
|
-
"@lifi/wallet-management": "^3.22.
|
|
55
|
+
"@lifi/wallet-management": "^3.22.8"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@bigmi/react": ">=0.6.0",
|
package/package.json.tmp
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/widget",
|
|
3
|
-
"version": "3.40.
|
|
3
|
+
"version": "3.40.13",
|
|
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": "./src/index.ts",
|
|
@@ -49,28 +49,28 @@
|
|
|
49
49
|
"lifi"
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@bigmi/client": "^0.7.
|
|
53
|
-
"@bigmi/core": "^0.7.
|
|
52
|
+
"@bigmi/client": "^0.7.1",
|
|
53
|
+
"@bigmi/core": "^0.7.1",
|
|
54
54
|
"@emotion/react": "^11.14.0",
|
|
55
55
|
"@emotion/styled": "^11.14.1",
|
|
56
|
-
"@lifi/sdk": "^3.
|
|
56
|
+
"@lifi/sdk": "^3.16.1",
|
|
57
57
|
"@lifi/wallet-management": "workspace:^",
|
|
58
|
-
"@mui/icons-material": "^7.3.
|
|
59
|
-
"@mui/material": "^7.3.
|
|
60
|
-
"@mui/system": "^7.3.
|
|
58
|
+
"@mui/icons-material": "^7.3.9",
|
|
59
|
+
"@mui/material": "^7.3.9",
|
|
60
|
+
"@mui/system": "^7.3.9",
|
|
61
61
|
"@mysten/sui": "^1.45.2",
|
|
62
62
|
"@solana/wallet-adapter-base": "^0.9.27",
|
|
63
63
|
"@solana/wallet-adapter-coinbase": "^0.1.23",
|
|
64
64
|
"@solana/web3.js": "^1.98.4",
|
|
65
|
-
"@tanstack/react-virtual": "^3.13.
|
|
66
|
-
"i18next": "^25.8.
|
|
65
|
+
"@tanstack/react-virtual": "^3.13.21",
|
|
66
|
+
"i18next": "^25.8.18",
|
|
67
67
|
"microdiff": "^1.5.0",
|
|
68
68
|
"mitt": "^3.0.1",
|
|
69
|
-
"react-i18next": "^16.5.
|
|
69
|
+
"react-i18next": "^16.5.8",
|
|
70
70
|
"react-intersection-observer": "^9.16.0",
|
|
71
71
|
"react-router-dom": "^6.30.3",
|
|
72
72
|
"react-transition-group": "^4.4.5",
|
|
73
|
-
"viem": "^2.
|
|
73
|
+
"viem": "^2.47.2",
|
|
74
74
|
"zustand": "^5.0.11"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
package/src/config/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/widget'
|
|
2
|
-
export const version = '3.40.
|
|
2
|
+
export const version = '3.40.13'
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { RouteExtended } from '@lifi/sdk'
|
|
2
2
|
import { useAccount } from '@lifi/wallet-management'
|
|
3
3
|
import { keepPreviousData, useQuery } from '@tanstack/react-query'
|
|
4
|
-
import { parseUnits } from 'viem'
|
|
5
4
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
|
|
6
5
|
import { useFieldValues } from '../stores/form/useFieldValues.js'
|
|
7
6
|
import { isRouteDone } from '../stores/routes/utils.js'
|
|
7
|
+
import { parseInputAmount } from '../utils/parseInputAmount.js'
|
|
8
8
|
import { getQueryKey } from '../utils/queries.js'
|
|
9
9
|
import { useTokenAddressBalance } from './useTokenAddressBalance.js'
|
|
10
10
|
import { getTokenBalancesWithRetry } from './useTokenBalance.js'
|
|
@@ -46,10 +46,10 @@ export const useFromTokenSufficiency = (route?: RouteExtended) => {
|
|
|
46
46
|
if (!accountAddress || !token) {
|
|
47
47
|
return
|
|
48
48
|
}
|
|
49
|
-
const parsedFromAmount = parseUnits(fromAmount, token.decimals)
|
|
50
49
|
let currentTokenBalance = token.amount ?? 0n
|
|
51
50
|
|
|
52
51
|
if (!route || isRouteDone(route)) {
|
|
52
|
+
const parsedFromAmount = parseInputAmount(fromAmount, token.decimals)
|
|
53
53
|
const insufficientFunds = currentTokenBalance < parsedFromAmount
|
|
54
54
|
return insufficientFunds
|
|
55
55
|
}
|
package/src/hooks/useRoutes.ts
CHANGED
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
import { useAccount } from '@lifi/wallet-management'
|
|
14
14
|
import { useQuery, useQueryClient } from '@tanstack/react-query'
|
|
15
15
|
import { useCallback, useMemo } from 'react'
|
|
16
|
-
import { parseUnits } from 'viem'
|
|
17
16
|
import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
|
|
18
17
|
import { useFieldValues } from '../stores/form/useFieldValues.js'
|
|
19
18
|
import { useIntermediateRoutesStore } from '../stores/routes/useIntermediateRoutesStore.js'
|
|
@@ -23,6 +22,7 @@ import { useSettings } from '../stores/settings/useSettings.js'
|
|
|
23
22
|
import { WidgetEvent } from '../types/events.js'
|
|
24
23
|
import type { TokensByChain } from '../types/token.js'
|
|
25
24
|
import { getChainTypeFromAddress } from '../utils/chainType.js'
|
|
25
|
+
import { parseInputAmount } from '../utils/parseInputAmount.js'
|
|
26
26
|
import { getQueryKey } from '../utils/queries.js'
|
|
27
27
|
import { updateTokenInCache } from '../utils/token.js'
|
|
28
28
|
import { useChain } from './useChain.js'
|
|
@@ -241,8 +241,11 @@ export const useRoutes = ({ observableRoute }: RoutesProps = {}) => {
|
|
|
241
241
|
],
|
|
242
242
|
signal,
|
|
243
243
|
}) => {
|
|
244
|
-
const fromAmount =
|
|
245
|
-
|
|
244
|
+
const fromAmount = parseInputAmount(
|
|
245
|
+
fromTokenAmount,
|
|
246
|
+
fromToken!.decimals
|
|
247
|
+
)
|
|
248
|
+
const toAmount = parseInputAmount(toTokenAmount, toToken!.decimals)
|
|
246
249
|
const formattedSlippage = slippage
|
|
247
250
|
? Number.parseFloat(slippage) / 100
|
|
248
251
|
: defaultSlippage
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { parseUnits } from 'viem'
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
|
+
import { parseInputAmount } from './parseInputAmount.js'
|
|
4
|
+
|
|
5
|
+
vi.mock('viem', async (importOriginal) => {
|
|
6
|
+
const viem = await importOriginal<typeof import('viem')>()
|
|
7
|
+
return { ...viem, parseUnits: vi.fn(viem.parseUnits) }
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
describe('parseInputAmount', () => {
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
vi.mocked(parseUnits).mockClear()
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('should return 0n for an empty amount', () => {
|
|
16
|
+
expect(parseInputAmount('', 18)).toBe(0n)
|
|
17
|
+
expect(parseInputAmount(' ', 18)).toBe(0n)
|
|
18
|
+
expect(parseInputAmount('-', 18)).toBe(0n)
|
|
19
|
+
expect(parseInputAmount('.', 18)).toBe(0n)
|
|
20
|
+
expect(parseInputAmount('-.', 18)).toBe(0n)
|
|
21
|
+
// viem 2.55.4+ throws on these values, so they must not reach parseUnits
|
|
22
|
+
expect(parseUnits).not.toHaveBeenCalled()
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('should parse decimal amounts', () => {
|
|
26
|
+
expect(parseInputAmount('1', 6)).toBe(1_000_000n)
|
|
27
|
+
expect(parseInputAmount('1.', 6)).toBe(1_000_000n)
|
|
28
|
+
expect(parseInputAmount('.5', 6)).toBe(500_000n)
|
|
29
|
+
expect(parseInputAmount(' 1.5 ', 6)).toBe(1_500_000n)
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
it('should throw for invalid amounts', () => {
|
|
33
|
+
expect(() => parseInputAmount('abc', 6)).toThrow()
|
|
34
|
+
})
|
|
35
|
+
})
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { parseUnits } from 'viem'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Parse an amount string from the form to the smallest token unit.
|
|
5
|
+
* An amount without digits ('', '-', '.', '-.') parses to 0n.
|
|
6
|
+
* viem 2.55.4+ throws on these values, older versions returned 0n.
|
|
7
|
+
* @param amount amount to parse.
|
|
8
|
+
* @param decimals token decimals.
|
|
9
|
+
* @returns parsed amount.
|
|
10
|
+
*/
|
|
11
|
+
export function parseInputAmount(amount: string, decimals: number) {
|
|
12
|
+
const value = amount.trim()
|
|
13
|
+
if (/^-?\.?$/.test(value)) {
|
|
14
|
+
return 0n
|
|
15
|
+
}
|
|
16
|
+
return parseUnits(value, decimals)
|
|
17
|
+
}
|