{"version":3,"file":"static/chunks/pages/limit-orders-e53dccf999ed1c29.js","mappings":"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","sources":["webpack://_N_E/?9998","webpack://_N_E/./components/Button/ApproveOnChainBtn.tsx","webpack://_N_E/./components/Button/SignPayloadBtn.tsx","webpack://_N_E/./hooks/position/useFetchPositionTypedData.ts","webpack://_N_E/./node_modules/@wagmi/core/dist/esm/actions/signTypedData.js","webpack://_N_E/./node_modules/@wagmi/core/dist/esm/query/signTypedData.js","webpack://_N_E/./node_modules/wagmi/dist/esm/hooks/useSignTypedData.js","webpack://_N_E/./components/Button/SignPositionPermitBtn.tsx","webpack://_N_E/./components/Modal/TokenSelectModal.tsx","webpack://_N_E/./views/LimitOrder/OpenOrder/LimitOrderCard.tsx","webpack://_N_E/./views/LimitOrder/OpenOrder/OpenOrderContent.tsx","webpack://_N_E/./views/LimitOrder/OpenOrder/index.tsx","webpack://_N_E/./components/Modal/StepsModal.tsx","webpack://_N_E/./views/LimitOrder/ConfirmLimitOrder/index.tsx","webpack://_N_E/./views/LimitOrder/LimitOrderPreview.tsx","webpack://_N_E/./views/LimitOrder/PlaceOrder/style.ts","webpack://_N_E/./views/LimitOrder/PlaceOrder/PlaceOrderContent.tsx","webpack://_N_E/./views/LimitOrder/PlaceOrder/index.tsx","webpack://_N_E/./pages/limit-orders.tsx","webpack://_N_E/./views/Swap/style.ts","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/signMessage.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/signTypedData.js","webpack://_N_E/<anon>"],"sourcesContent":["\n    (window.__NEXT_P = window.__NEXT_P || []).push([\n      \"/limit-orders\",\n      function () {\n        return require(\"private-next-pages/limit-orders.tsx\");\n      }\n    ]);\n    if(module.hot) {\n      module.hot.dispose(function () {\n        window.__NEXT_P.push([\"/limit-orders\"])\n      });\n    }\n  ","import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { useWaitForTransaction } from \"@/hooks/useWaitForTransaction\";\nimport { useSendTransactionWithGas } from \"@/hooks/wagmi/useSendTransactionWithGas\";\nimport { Button, Spinner } from \"@aperture/uikit\";\nimport {\n  ICommonNonfungiblePositionManager__factory,\n  getChainInfo,\n} from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport { Color } from \"@ui/components/Button/types\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useSnackbarV2 } from \"../SnackbarContext/SnackbarContextV2\";\n\nconst SpinnerWrapper = styled.div`\n  margin: auto;\n`;\n\nconst StyledButton = styled(Button)`\n  font-size: 16px;\n  line-height: 20px;\n`;\n\nconst ApproveOnChainBtn: React.FC<{\n  text: string;\n  positionIdBN: bigint;\n  color?: Color;\n  tokenPair?: string;\n  disabled?: boolean;\n  onApproved: () => void;\n  handleError?: (error: string) => void;\n}> = ({\n  text,\n  positionIdBN,\n  color = \"primary\",\n  tokenPair,\n  disabled,\n  onApproved,\n  handleError,\n  ...props\n}) => {\n  const { ammEnum, networkId } = useNetwork();\n  const { addSnackbar } = useSnackbarV2();\n  const [txnHash, setTxnHash] = useState<any>(undefined);\n\n  const approveRequest = useMemo(() => {\n    const chainInfo = getChainInfo(networkId);\n    return {\n      to: chainInfo.amms[ammEnum].nonfungiblePositionManager,\n      data: ICommonNonfungiblePositionManager__factory.createInterface().encodeFunctionData(\n        \"approve\",\n        [chainInfo.amms[ammEnum].apertureAutoman, positionIdBN]\n      ),\n    };\n  }, [networkId, positionIdBN]);\n\n  const {\n    ready,\n    data: txData,\n    sendTransaction,\n    error: txErrorMsg,\n    isError: isTxError,\n    isPending: isTxLoading,\n    isSuccess: isTxSuccess,\n  } = useSendTransactionWithGas(approveRequest);\n\n  const {\n    data: waitTxData,\n    error: waitTxErrorMsg,\n    isError: isWaitTxError,\n    isLoading: isWaitTxLoading,\n    isSuccess: isWaitTxSuccess,\n  } = useWaitForTransaction({\n    hash: txnHash,\n  });\n\n  const onError = useCallback(\n    (err: string) => {\n      handleError?.(err);\n      addSnackbar({ info: \"Failed: \" + err, status: \"failed\" });\n    },\n    [addSnackbar, handleError]\n  );\n\n  useEffect(() => {\n    if (isTxSuccess && txData) {\n      setTxnHash(txData);\n    }\n  }, [isTxSuccess, txData]);\n\n  useEffect(() => {\n    if (isWaitTxSuccess && waitTxData) {\n      onApproved();\n      addSnackbar({\n        info: `You have successfully set up on-chain approval for your ${\n          tokenPair ?? positionIdBN.toString()\n        } position.`,\n        status: \"completed\",\n      });\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [isWaitTxSuccess, waitTxData]);\n\n  useEffect(() => {\n    if (isTxError) {\n      onError(txErrorMsg!.message);\n    }\n  }, [isTxError, onError, txErrorMsg]);\n\n  useEffect(() => {\n    if (isWaitTxError) {\n      onError(waitTxErrorMsg!.message);\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [isWaitTxError, waitTxErrorMsg]);\n\n  return (\n    <StyledButton\n      onClick={() => sendTransaction?.()}\n      disabled={\n        !ready ||\n        isTxLoading ||\n        isWaitTxLoading ||\n        isTxSuccess ||\n        isWaitTxSuccess ||\n        disabled\n      }\n      variant=\"contained\"\n      color={color}\n      size=\"lg\"\n      invalid={false}\n      width=\"100%\"\n      {...props}\n    >\n      {isTxLoading || isWaitTxLoading ? (\n        <SpinnerWrapper>\n          <Spinner />\n        </SpinnerWrapper>\n      ) : (\n        text\n      )}\n    </StyledButton>\n  );\n};\n\nexport default ApproveOnChainBtn;\n","import { AccessoryIcons } from \"@aperture/assetkit\";\nimport { Button, Spinner } from \"@aperture/uikit\";\nimport { Color } from \"@ui/components/Button/types\";\nimport stringify from \"json-stable-stringify\";\nimport { useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { useAccount, useSignMessage } from \"wagmi\";\nimport { useSnackbarV2 } from \"../SnackbarContext/SnackbarContextV2\";\n\nconst SpinnerWrapper = styled.div`\n  margin: auto;\n`;\n\nconst SignPayloadBtn: React.FC<{\n  isLoading?: boolean;\n  text: string;\n  payload: any;\n  color?: Color;\n  setSignedPayload: React.Dispatch<React.SetStateAction<any>>;\n  handleError?: (error: string) => void;\n  showStartIcon?: boolean;\n  noFeeNotification?: React.ReactNode;\n  width?: string;\n  disabled?: boolean;\n}> = ({\n  isLoading,\n  text,\n  payload,\n  color = \"primary\",\n  setSignedPayload,\n  handleError,\n  showStartIcon = false,\n  noFeeNotification = <></>,\n  width = \"100%\",\n  disabled = false,\n  ...props\n}) => {\n  const { address } = useAccount();\n  const { addSnackbar } = useSnackbarV2();\n  const payloadInString = stringify(payload);\n  const {\n    data,\n    error,\n    isPending: isSignLoading,\n    isSuccess,\n    signMessage,\n    isError,\n  } = useSignMessage();\n\n  useEffect(() => {\n    if (isSuccess) {\n      setSignedPayload(data);\n    }\n  }, [isSuccess]);\n\n  useEffect(() => {\n    if (isError && error) {\n      handleError?.(error!.message);\n      addSnackbar({ info: \"Failed: \" + error!.message, status: \"failed\" });\n    }\n  }, [isError]);\n\n  const isLoadingStatus = isSignLoading || isLoading;\n\n  return (\n    <Button\n      {...props}\n      onClick={() =>\n        !isLoadingStatus &&\n        signMessage({ account: address, message: payloadInString })\n      }\n      disabled={isLoadingStatus || disabled}\n      variant=\"contained\"\n      color={color}\n      size=\"lg\"\n      invalid={false}\n      width={width}\n      startIcon={\n        !isLoadingStatus &&\n        showStartIcon && <AccessoryIcons.CheckMarkIcon width={16} height={16} />\n      }\n    >\n      {isLoadingStatus ? (\n        <SpinnerWrapper>\n          <Spinner />\n        </SpinnerWrapper>\n      ) : (\n        text\n      )}\n      {!isLoadingStatus && noFeeNotification}\n    </Button>\n  );\n};\n\nexport default SignPayloadBtn;\n","import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { getPositionDeadline } from \"@/helper/deadlineHelper\";\nimport { AmmEnum } from \"@aperture/uikit\";\nimport {\n  ApertureSupportedChainId,\n  viem,\n} from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport useSWR from \"swr\";\nimport { PublicClient } from \"viem\";\nimport { useAccount } from \"wagmi\";\n\nexport const useFetchPositionTypedData = (positionId: bigint) => {\n  const { ammEnum, networkId, publicClient } = useNetwork();\n  const { address: walletAddress, isConnected } = useAccount();\n\n  const shouldFetch = walletAddress && isConnected && ammEnum && networkId;\n\n  return useSWR(\n    shouldFetch\n      ? `position-typed-data-${positionId}-${ammEnum}-${networkId}`\n      : null,\n    () => getPositionTypedData(positionId, ammEnum, networkId, publicClient)\n  );\n};\n\nasync function getPositionTypedData(\n  positionId: bigint,\n  amm: AmmEnum,\n  chainId: ApertureSupportedChainId,\n  client: PublicClient\n) {\n  const deadline = BigInt(getPositionDeadline());\n  return viem.generateTypedDataForPermit(\n    chainId,\n    amm,\n    positionId,\n    deadline,\n    client\n  );\n}\n","import { signTypedData as viem_signTypedData, } from 'viem/actions';\nimport { getAction } from '../utils/getAction.js';\nimport { getConnectorClient, } from './getConnectorClient.js';\n/** https://wagmi.sh/core/api/actions/signTypedData */\nexport async function signTypedData(config, parameters) {\n    const { account, connector, ...rest } = parameters;\n    let client;\n    if (typeof account === 'object' && account.type === 'local')\n        client = config.getClient();\n    else\n        client = await getConnectorClient(config, { account, connector });\n    const action = getAction(client, viem_signTypedData, 'signTypedData');\n    return action({\n        ...rest,\n        ...(account ? { account } : {}),\n    });\n}\n//# sourceMappingURL=signTypedData.js.map","import { signTypedData, } from '../actions/signTypedData.js';\nexport function signTypedDataMutationOptions(config) {\n    return {\n        mutationFn(variables) {\n            return signTypedData(config, variables);\n        },\n        mutationKey: ['signTypedData'],\n    };\n}\n//# sourceMappingURL=signTypedData.js.map","'use client';\nimport { useMutation } from '@tanstack/react-query';\nimport { signTypedDataMutationOptions, } from '@wagmi/core/query';\nimport { useConfig } from './useConfig.js';\n/** https://wagmi.sh/react/api/hooks/useSignTypedData */\nexport function useSignTypedData(parameters = {}) {\n    const { mutation } = parameters;\n    const config = useConfig(parameters);\n    const mutationOptions = signTypedDataMutationOptions(config);\n    const { mutate, mutateAsync, ...result } = useMutation({\n        ...mutation,\n        ...mutationOptions,\n    });\n    return {\n        ...result,\n        signTypedData: mutate,\n        signTypedDataAsync: mutateAsync,\n    };\n}\n//# sourceMappingURL=useSignTypedData.js.map","import { useFetchPositionTypedData } from \"@/hooks/position/useFetchPositionTypedData\";\nimport { useEventCallback } from \"@/hooks/useEventCallback\";\nimport { Button, Spinner } from \"@aperture/uikit\";\nimport { PermitInfo } from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport { ButtonProps } from \"@ui/components/Button/types\";\nimport React, { useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { useSignTypedData } from \"wagmi\";\nimport { useSnackbarV2 } from \"../SnackbarContext/SnackbarContextV2\";\n\nconst SpinnerWrapper = styled.div`\n  margin: auto;\n`;\n\nconst StyledButton = styled(Button)`\n  font-size: 16px;\n  line-height: 20px;\n`;\n\nexport const SignPositionPermitBtn: React.FC<\n  ButtonProps & {\n    positionId: bigint;\n    tokenPair?: string;\n    setPermitInfo: (permitInfo: PermitInfo) => void;\n    handleError?: (error: string) => void;\n  }\n> = ({\n  positionId,\n  tokenPair,\n  disabled,\n  setPermitInfo,\n  handleError,\n  ...props\n}) => {\n  const { isPending, disabledSign, signPositionPermit } = useSignPositionPermit(\n    {\n      positionId,\n      setPermitInfo,\n      successTips: `You have successfully set up a single-use authorization for your ${\n        tokenPair ?? positionId.toString()\n      } position.`,\n      onError: handleError,\n    }\n  );\n\n  return (\n    <PureSignPositionPermitBtn\n      {...props}\n      disabled={disabled || disabledSign}\n      onClick={signPositionPermit}\n      isLoading={isPending}\n    />\n  );\n};\n\nconst PureSignPositionPermitButtonComponent = (\n  props: ButtonProps & {\n    isLoading: boolean;\n  }\n) => {\n  const {\n    color = \"primary\",\n    isLoading,\n    children = \"Sign Position Permit\",\n  } = props;\n\n  return (\n    <StyledButton\n      variant=\"contained\"\n      size=\"lg\"\n      color={color}\n      invalid={false}\n      width=\"100%\"\n      {...props}\n    >\n      {isLoading ? (\n        <SpinnerWrapper>\n          <Spinner />\n        </SpinnerWrapper>\n      ) : (\n        children\n      )}\n    </StyledButton>\n  );\n};\n\nconst PureSignPositionPermitBtn = React.memo(\n  PureSignPositionPermitButtonComponent\n);\n\ntype SignPositionPermitProps = {\n  positionId: bigint;\n  setPermitInfo: (permitInfo: PermitInfo) => void;\n  onError?: (err: string) => void;\n  successTips: string;\n};\n\nfunction useSignPositionPermit(props: SignPositionPermitProps) {\n  const { positionId, setPermitInfo, successTips } = props;\n  const { addSnackbar } = useSnackbarV2();\n\n  const handleError = useEventCallback((err: string) => {\n    props.onError?.(err);\n    addSnackbar({ info: \"Failed: \" + err, status: \"failed\" });\n  });\n\n  const { data: signTypedDataConfig, error } =\n    useFetchPositionTypedData(positionId);\n\n  useEffect(() => {\n    if (error) {\n      handleError(error);\n    }\n  }, [error, handleError]);\n\n  const { signTypedData, isPending, isSuccess } = useSignTypedData();\n\n  const signPositionPermit = useEventCallback(() => {\n    signTypedData(signTypedDataConfig as any, {\n      onSuccess: (data) => {\n        if (data) {\n          setPermitInfo({\n            signature: data,\n            deadline: signTypedDataConfig?.message.deadline as string, // deadline is actually a bigint, should be fine here\n          });\n          addSnackbar({ info: successTips, status: \"completed\" });\n        }\n      },\n      onError: (err) => handleError(err.message),\n    });\n  });\n\n  return {\n    signPositionPermit,\n    isPending,\n    disabledSign: !signTypedDataConfig || isPending || isSuccess,\n  };\n}\n\nexport default SignPositionPermitBtn;\n","import { ITokenSelectContentProps, TokenSelectContent } from \"@aperture/uikit\";\n\nexport const TokenSelectModal: React.FC<ITokenSelectContentProps> = ({\n  commonTokens,\n  selectedToken = null,\n  selectToken,\n  selectUnknownToken,\n  handleUnknownAddress,\n  customClose,\n  onClose,\n}) => {\n  return (\n    <TokenSelectContent\n      commonTokens={commonTokens}\n      selectedToken={selectedToken}\n      selectToken={selectToken}\n      selectUnknownToken={selectUnknownToken}\n      handleUnknownAddress={handleUnknownAddress}\n      customClose={customClose}\n      onClose={onClose}\n    />\n  );\n};\n","import SignPayloadBtn from \"@/components/Button/SignPayloadBtn\";\nimport { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { usePage } from \"@/components/PageContext/PageContext\";\nimport { useSnackbarV2 } from \"@/components/SnackbarContext/SnackbarContextV2\";\nimport { LimitedOrderDetails } from \"@/config/order/orderConfig\";\nimport { getTokenIcon } from \"@/config/token/tokenIconConfig\";\nimport { deleteTrigger } from \"@/helper/triggerHelper\";\nimport { useFetchAllChainUserTriggers } from \"@/hooks/useFetchAllChainUserTriggers\";\nimport { CommonQueryKey } from \"@/utils/browserHistory\";\nimport { formatPrice, formatTokenAmount } from \"@/utils/numberFormat\";\nimport { timestampFormat } from \"@/utils/timeFormat\";\nimport { OrderCard } from \"@aperture/uikit\";\nimport { DeleteTriggerPayload } from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport { useRouter } from \"next/router\";\nimport React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useAccount } from \"wagmi\";\n\nconst StyledSignPayloadBtn = styled(SignPayloadBtn)`\n  width: 200px;\n  height: 38px;\n  padding: 0 12px;\n  font-size: 14px;\n  background: ${({ theme }) => theme.colors.global.background.BG2};\n  color: ${({ theme }) => theme.colors.global.primary};\n  border: 1px solid ${({ theme }) => theme.colors.global.primary};\n  &:hover {\n    background: ${({ theme }) => theme.colors.global.background.BG2};\n    opacity: 0.8;\n  }\n`;\n\nconst LimitOrderCard: React.FC<{\n  order: LimitedOrderDetails;\n}> = ({ order }) => {\n  const { address } = useAccount();\n  const { networkId } = useNetwork();\n  const { addSnackbar } = useSnackbarV2();\n  const { mutate } = useFetchAllChainUserTriggers(true);\n  const [payloadSig, setPayloadSig] = useState(\"\");\n  const cancelPayload: DeleteTriggerPayload = {\n    ownerAddr: address!,\n    chainId: networkId,\n    taskId: Number(order.orderId),\n  };\n  const router = useRouter();\n  const { setPositionPage } = usePage();\n\n  useEffect(() => {\n    if (payloadSig) {\n      deleteTrigger(cancelPayload, payloadSig)\n        .then((res) => {\n          addSnackbar({\n            info: `Your ${order.tokenBuy.ticker}-${order.tokenSell.ticker} limit order has been canceled.`,\n            status: \"completed\",\n          });\n          mutate();\n        })\n        .catch((e) => {\n          addSnackbar({\n            info: \"Your limit order cancel request has failed: \" + e,\n            status: \"failed\",\n          });\n        });\n    }\n  }, [payloadSig]);\n\n  return (\n    <OrderCard\n      key={`Order-${order.orderId}-${order.chainId}`}\n      from={{\n        ticker: order.tokenBuy.ticker,\n        Icon: getTokenIcon(\n          order.tokenBuy.address,\n          order.tokenBuy.ticker,\n          order.chainId\n        ),\n      }}\n      to={{\n        ticker: order.tokenSell.ticker,\n        Icon: getTokenIcon(\n          order.tokenSell.address,\n          order.tokenSell.ticker,\n          order.chainId\n        ),\n      }}\n      dateTime={timestampFormat(order.timestamp)}\n      info={{\n        buyAmount: formatTokenAmount(order.buyAmount),\n        sellAmount: formatTokenAmount(order.sellAmount),\n        limitPrice: formatPrice(order.buyRatio),\n        feeTier: order.feeTier,\n        min: formatPrice(order.amountMinimum),\n        max: formatPrice(order.amountMaximum),\n        revenue: {\n          earnedFeeInputToken: order.feeRevenue.earnedFeeInputToken,\n          earnedFeeOutputToken: order.feeRevenue.earnedFeeOutputToken,\n        },\n      }}\n      status={order.status}\n      notification={order.notification}\n      Btn={\n        <StyledSignPayloadBtn\n          text=\"Cancel Order\"\n          payload={cancelPayload}\n          setSignedPayload={setPayloadSig}\n          width={\"200px\"}\n        />\n      }\n      navTo={() => {\n        setPositionPage(\"details\");\n        router.push({\n          pathname: \"/liquidity-management\",\n          query: {\n            [CommonQueryKey.PID]: `${order.chainId}-${order.nftId}`,\n          },\n        });\n      }}\n    />\n  );\n};\n\nexport default LimitOrderCard;\n","import { ApertureLogos } from \"@aperture/assetkit\";\nimport {\n  FlexColumn,\n  Headline5,\n  LinearLoaderGroup,\n  OrderStatus,\n} from \"@aperture/uikit\";\nimport React from \"react\";\nimport styled, { useTheme } from \"styled-components\";\nimport { LayoutProps, SpaceProps, compose, layout, space } from \"styled-system\";\nimport { LimitedOrderDetails } from \"../../../config/order/orderConfig\";\nimport LimitOrderCard from \"./LimitOrderCard\";\n\nconst LoaderWrapper = styled.div`\n  margin-top: 12px;\n  color: ${({ theme }) => theme.colors.global.text.T1};\n`;\n\nconst OrderListBox = styled.div`\n  width: 100%;\n  min-height: 318px;\n  max-height: 747px;\n  overflow-y: auto;\n  margin-top: 12px;\n  gap: ${({ theme }) => theme.spacing.md};\n  background: ${({ theme }) => theme.colors.global.background.BG1};\n  color: ${({ theme }) => theme.colors.global.text.T1};\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n  align-items: center;\n  > div {\n    width: calc(100% - 32px);\n  }\n  ::-webkit-scrollbar {\n    width: 0;\n  }\n  padding: 1px;\n`;\nexport const EmptyBox = styled(FlexColumn)<LayoutProps & SpaceProps>`\n  width: 100%;\n  height: 276px;\n  margin-top: 12px;\n  font-weight: 500;\n  border-radius: ${({ theme }) => theme.radii.md};\n  justify-content: center;\n  align-items: center;\n  gap: ${({ theme }) => theme.spacing.lg};\n  border: 1px solid ${({ theme }) => theme.colors.global.line.Line1};\n  color: ${({ theme }) => theme.colors.global.text.T3};\n  ${compose(layout, space)}\n`;\n\nconst OpenOrderContent: React.FC<{\n  showFulfilled: boolean;\n  isLoading: boolean;\n  limitOrders: LimitedOrderDetails[];\n}> = ({ showFulfilled, isLoading, limitOrders }) => {\n  const theme = useTheme();\n  const filteredLimitOrders = showFulfilled\n    ? limitOrders\n    : limitOrders.filter(\n        (x: LimitedOrderDetails) =>\n          x.status === OrderStatus.ACTIVE ||\n          x.status === OrderStatus.UNAUTHORIZED\n      );\n\n  return (\n    <>\n      {isLoading ? (\n        <LoaderWrapper>\n          <LinearLoaderGroup size=\"100%\" height=\"85px\" />\n        </LoaderWrapper>\n      ) : filteredLimitOrders && filteredLimitOrders.length > 0 ? (\n        <OrderListBox>\n          {filteredLimitOrders.map((order: LimitedOrderDetails) => (\n            <LimitOrderCard\n              key={\"limit-order-id\" + order.orderId}\n              {...{ order }}\n            />\n          ))}\n        </OrderListBox>\n      ) : (\n        <EmptyBox height={\"318px\"}>\n          <ApertureLogos.OutlineLogo fill={theme.colors.global.text.T1} />\n          <Headline5>Your Limit Order will appear here.</Headline5>\n        </EmptyBox>\n      )}\n    </>\n  );\n};\n\nexport default OpenOrderContent;\n","import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { triggerToLimitOrder } from \"@/helper/triggerHelper\";\nimport { useMutateWarningTokens } from \"@/hooks/globalState/useWarningTokens\";\nimport { useFetchAllChainUserTriggers } from \"@/hooks/useFetchAllChainUserTriggers\";\nimport { Headline } from \"@/views/style\";\nimport { Flex } from \"@aperture/uikit\";\nimport { StatusTab } from \"@ui/components\";\nimport { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { useAccount } from \"wagmi\";\nimport { LimitedOrderDetails } from \"../../../config/order/orderConfig\";\nimport OpenOrderContent from \"./OpenOrderContent\";\n\nexport const HeaderTag = styled.div`\n  color: ${({ theme }) => theme.colors.global.text.T1};\n  width: 100%;\n  height: 124px;\n  text-align: left;\n  font-family: \"Dunbar Tall\";\n  font-size: 24px;\n  font-style: normal;\n  font-weight: 500;\n  line-height: 32px;\n  text-transform: capitalize;\n`;\n\nconst FlexDiv = styled(Flex)`\n  align-items: center;\n  color: ${({ theme }) => theme.colors.global.text.T1};\n  font-family: \"Roboto Flex\";\n  font-size: 16px;\n  font-style: normal;\n  font-weight: 500;\n  line-height: 20px;\n  text-transform: capitalize;\n`;\n\nconst Text = styled.div`\n  color: ${({ theme }) => theme.colors.global.text.T1};\n  width: 168px;\n  text-align: right;\n  font-family: \"Roboto Flex\";\n  font-size: 16px;\n  font-style: normal;\n  font-weight: 400;\n  line-height: 20px;\n  text-transform: capitalize;\n`;\n\nexport default function OpenOrder() {\n  const { ammEnum, networkId, publicClient } = useNetwork();\n  const { data: allChainsTriggerObj, isLoading } =\n    useFetchAllChainUserTriggers(true);\n  const { isConnected } = useAccount();\n  const [show, setShow] = useState(true);\n  const [isFiltering, setIsFiltering] = useState<boolean>(false);\n  const [limitOrders, setLimitOrders] = useState<LimitedOrderDetails[]>([]);\n\n  const { mutateWarningTokens } = useMutateWarningTokens();\n\n  useEffect(() => {\n    if (allChainsTriggerObj) {\n      setIsFiltering(true);\n      triggerToLimitOrder(\n        allChainsTriggerObj[networkId]?.triggers ?? [],\n        networkId,\n        ammEnum,\n        mutateWarningTokens,\n        publicClient\n      ).then((limitOrders: LimitedOrderDetails[]) => {\n        setLimitOrders(limitOrders);\n        setIsFiltering(false);\n      });\n    }\n  }, [allChainsTriggerObj]);\n\n  return (\n    <div>\n      <HeaderTag></HeaderTag>\n      <Headline>\n        Open Orders\n        <FlexDiv>\n          <StatusTab\n            noText\n            onStatus={show}\n            onChange={(status) => {\n              setShow(status);\n            }}\n          />\n          <Text>{show ? \"Show\" : \"Hide\"} Fulfilled Orders</Text>\n        </FlexDiv>\n      </Headline>\n      <OpenOrderContent\n        showFulfilled={show}\n        isLoading={isLoading || isFiltering}\n        limitOrders={isConnected ? limitOrders : []}\n      />\n    </div>\n  );\n}\n","import ApproveOnChainBtn from \"@/components/Button/ApproveOnChainBtn\";\nimport SignPayloadBtn from \"@/components/Button/SignPayloadBtn\";\nimport { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { getDeadline, getPositionDeadline } from \"@/helper/deadlineHelper\";\nimport { useCurrentChainToken } from \"@/hooks/globalState/useCurrentChainToken\";\nimport { useMutatePositionMap } from \"@/hooks/useCurrentChainPositions\";\nimport { useIfAuthorized } from \"@/hooks/useFetchUserAuthentication\";\nimport { useFetchUserTokensBalance } from \"@/hooks/useFetchUserTokensBalance\";\nimport { useIsWalletContract } from \"@/hooks/useIsWalletContract\";\nimport { useWaitForTransaction } from \"@/hooks/useWaitForTransaction\";\nimport { getTokenMap } from \"@/utils/helper\";\nimport {\n  IPermitForm,\n  IPositionForm,\n} from \"@/views/LimitOrder/ConfirmLimitOrder\";\nimport { Button, Spinner, StepsContent } from \"@aperture/uikit\";\nimport { PermitInfo, viem } from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport bigDecimal from \"js-big-decimal\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { TransactionReceipt, getAddress } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport SignPositionPermitBtn from \"../Button/SignPositionPermitBtn\";\nimport { useSnackbarV2 } from \"../SnackbarContext/SnackbarContextV2\";\n\ninterface StepsModalProps {\n  txdata: { outerLimitPrice?: string; inputCurrencyAmount?: string };\n  txHash: any;\n  tokenPair: string;\n  gasCeiling: string;\n  deadlineInDays: number;\n  createTrigger: (\n    payload: any,\n    signedPayload: any,\n    signatureInfo?: {\n      deadline: string;\n      signature: any;\n    }\n  ) => void;\n  onclose: () => void;\n}\n\nconst ButtonWrapper = styled.div`\n  display: flex;\n  padding-top: 24px;\n  gap: ${({ theme }) => theme.spacing.md};\n\n  > div {\n    width: 100%;\n  }\n`;\n\nexport const StepsModal: React.FC<StepsModalProps> = ({\n  txdata,\n  txHash,\n  tokenPair,\n  gasCeiling,\n  deadlineInDays,\n  createTrigger,\n  onclose,\n}) => {\n  const { address } = useAccount();\n  const { ammEnum, networkId, publicClient } = useNetwork();\n  const { ifAuthorized } = useIfAuthorized();\n  const { data: isWalletContract } = useIsWalletContract();\n  const { addSnackbar } = useSnackbarV2();\n  const { mutate: balanceMutate } = useFetchUserTokensBalance();\n  const { mutatePositionMap } = useMutatePositionMap();\n  const { currentTokenPrice: tokensPrice } = useCurrentChainToken(networkId);\n  const {\n    data: txReceipt,\n    isLoading,\n    isSuccess,\n  } = useWaitForTransaction({ hash: txHash });\n  const [step, setStep] = useState(0);\n  const [positionId, setPositionId] = useState<bigint>(0n);\n  const [positionForm, setPositionForm] = useState<IPositionForm>({\n    onSuccess: false,\n    outerLimitPrice: undefined,\n    inputCurrencyAmount: undefined,\n    txReceipt: undefined,\n  });\n  const [payload, setPayload] = useState<any>(undefined);\n  const [signedPayload, setSignedPayload] = useState(undefined);\n  const [onChainApproved, setOnChainApproved] = useState<boolean>(false);\n  const [permitForm, setPermitForm] = useState<IPermitForm>({\n    approved: false,\n    positionId,\n    deadline: getPositionDeadline(),\n    signature: undefined,\n  });\n  const isPayloadReady = useMemo(\n    () =>\n      positionForm.onSuccess &&\n      (ifAuthorized || onChainApproved || permitForm.approved),\n    [ifAuthorized, onChainApproved, permitForm.approved, positionForm.onSuccess]\n  );\n\n  useEffect(() => {\n    const trackLimitOrderOpen = async (positionId: bigint) => {\n      const tokenMap = getTokenMap(networkId);\n      const positionDetails = await viem.PositionDetails.fromPositionId(\n        networkId,\n        ammEnum,\n        positionId,\n        publicClient\n      );\n      // Get token annotation, such as symbol from token map.\n      const token0 = tokenMap.get(positionDetails.token0.address);\n      const token1 = tokenMap.get(positionDetails.token1.address);\n      const amount0 = positionDetails.position.amount0.toExact();\n      const amount1 = positionDetails.position.amount1.toExact();\n\n      // Get token prices.\n      const token0Price = tokensPrice?.[token0.address]?.price;\n      const token1Price = tokensPrice?.[token1.address]?.price;\n\n      const token0Value = bigDecimal.multiply(amount0, token0Price);\n      const token1Value = bigDecimal.multiply(amount1, token1Price);\n      const totalValue = bigDecimal.add(token0Value, token1Value);\n    };\n    if (txReceipt && !isLoading && isSuccess && tokensPrice) {\n      balanceMutate();\n      mutatePositionMap();\n      txReceipt.logs.forEach((log: any) => {\n        log.blockNumber = Number(log.blockNumber);\n        log.address = getAddress(log.address);\n      });\n      const positionId = viem.getMintedPositionIdFromTxReceipt(\n        networkId,\n        ammEnum,\n        txReceipt as TransactionReceipt,\n        address!\n      );\n      if (positionId === undefined) {\n        addSnackbar({ info: \"Failed: No position found\", status: \"failed\" });\n        onclose();\n      } else {\n        trackLimitOrderOpen(positionId);\n        setPositionForm({\n          onSuccess: true,\n          outerLimitPrice: txdata.outerLimitPrice,\n          inputCurrencyAmount: txdata.inputCurrencyAmount,\n          txReceipt: txReceipt as TransactionReceipt,\n        });\n        setPositionId(positionId);\n        setStep(ifAuthorized || onChainApproved ? 2 : 1);\n      }\n    }\n  }, [txReceipt]);\n\n  const handleError = (txErrorMsg: string) => {\n    onclose();\n  };\n\n  useEffect(() => {\n    if (isPayloadReady) {\n      const payload = viem.generateLimitOrderCloseRequestPayload(\n        address ?? \"0x\",\n        networkId,\n        ammEnum,\n        positionId!.toString(),\n        positionForm.outerLimitPrice,\n        Number(gasCeiling) / 100,\n        getDeadline(deadlineInDays)\n      );\n      setPayload(payload);\n    }\n  }, [isPayloadReady]);\n\n  useEffect(() => {\n    if (signedPayload) {\n      createTrigger(\n        payload!,\n        signedPayload,\n        ifAuthorized || onChainApproved\n          ? undefined\n          : {\n              deadline: String(permitForm.deadline),\n              signature: permitForm.signature!,\n            }\n      );\n      onclose();\n    }\n  }, [signedPayload]);\n\n  return (\n    <>\n      <StepsContent\n        amm={ammEnum}\n        step={step}\n        approveOnChain={isWalletContract}\n      />\n      {step === 0 && (\n        <ButtonWrapper>\n          <Button\n            disabled={true}\n            variant=\"contained\"\n            color=\"primary\"\n            size=\"lg\"\n            invalid={false}\n            width=\"100%\"\n          >\n            <Spinner />\n          </Button>\n        </ButtonWrapper>\n      )}\n      {step === 1 && (\n        <ButtonWrapper>\n          {isWalletContract ? (\n            <ApproveOnChainBtn\n              text=\"Approve on-chain\"\n              color=\"secondary\"\n              tokenPair={tokenPair}\n              positionIdBN={BigInt(positionId)}\n              onApproved={() => {\n                setOnChainApproved(true);\n                setStep(2);\n              }}\n            />\n          ) : (\n            <SignPositionPermitBtn\n              color=\"secondary\"\n              positionId={positionId}\n              setPermitInfo={(permitInfo: PermitInfo) => {\n                setPermitForm({\n                  approved: true,\n                  positionId,\n                  deadline: parseFloat(permitInfo.deadline),\n                  signature: permitInfo.signature,\n                });\n                setStep(2);\n              }}\n              handleError={handleError}\n            >\n              Sign Position\n            </SignPositionPermitBtn>\n          )}\n        </ButtonWrapper>\n      )}\n      {step === 2 && (\n        <ButtonWrapper>\n          <SignPayloadBtn\n            text=\"Sign Payload\"\n            color=\"secondary\"\n            payload={payload}\n            setSignedPayload={setSignedPayload}\n            handleError={handleError}\n          />\n        </ButtonWrapper>\n      )}\n    </>\n  );\n};\n","import { useTheme } from \"@/Providers\";\nimport { StepsModal } from \"@/components/Modal/StepsModal\";\nimport { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { useSnackbarV2 } from \"@/components/SnackbarContext/SnackbarContextV2\";\nimport {\n  LOToken,\n  getTransactionForLimitOrder,\n} from \"@/helper/limitOrderHelper\";\nimport { createTrigger, getCreateTriggerFailure } from \"@/helper/triggerHelper\";\nimport { useFetchAllChainUserTriggers } from \"@/hooks/useFetchAllChainUserTriggers\";\nimport { useSendTransactionWithGas } from \"@/hooks/wagmi/useSendTransactionWithGas\";\nimport { calculateGasMargin } from \"@/utils/helper\";\nimport { Button, Spinner, openSnackBar } from \"@aperture/uikit\";\nimport { E_ModalKey, Modal, useModal } from \"@aperture/uikitv2\";\nimport { getLogger } from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport { FeeAmount } from \"@aperture_finance/uniswap-v3-sdk\";\nimport { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { EstimateGasExecutionError, TransactionReceipt } from \"viem\";\nimport { useAccount } from \"wagmi\";\n\nconst ButtonBox = styled(Button)`\n  background-color: ${({ theme, disabled }) =>\n    disabled\n      ? theme.colors.global.primaryDisable\n      : theme.colors.global.primary};\n\n  :hover {\n    background-color: ${({ theme, disabled }) =>\n      disabled\n        ? theme.colors.global.primaryDisable\n        : theme.colors.global.primary};\n    opacity: 0.8;\n  }\n`;\n\nexport interface IPositionForm {\n  onSuccess: boolean;\n  outerLimitPrice: any;\n  inputCurrencyAmount: any;\n  txReceipt: TransactionReceipt | undefined;\n}\n\nexport interface IPermitForm {\n  approved: boolean;\n  positionId: bigint;\n  deadline: number;\n  signature: string | undefined;\n}\n\nexport interface IConfirmLimitOrder {\n  sellToken: LOToken;\n  buyToken: LOToken;\n  feeTier: FeeAmount;\n  rangeWidth: number;\n  gasCeiling: string;\n  deadlineInDays: number;\n  goBack: () => void;\n}\n\nexport const ConfirmLimitOrder: React.FC<IConfirmLimitOrder> = (props) => {\n  const {\n    sellToken,\n    buyToken,\n    feeTier,\n    rangeWidth,\n    gasCeiling,\n    deadlineInDays,\n    goBack,\n  } = props;\n\n  const { address } = useAccount();\n  const { ammEnum, networkId, publicClient } = useNetwork();\n  const { addSnackbar } = useSnackbarV2();\n  const { theme } = useTheme();\n  const { state, setModalState } = useModal();\n  const { isOpen } = state.STEPS_MODAL;\n  const [tx, setTx] = useState<any>(undefined);\n  const [txdata, setData] = useState({\n    outerLimitPrice: undefined,\n    inputCurrencyAmount: undefined,\n  });\n  const [error, setError] = useState(undefined);\n\n  const { mutate } = useFetchAllChainUserTriggers(true);\n  const { ready, data, sendTransaction, isError, isPending, isSuccess } =\n    useSendTransactionWithGas(tx);\n\n  const handleCreateTrigger = (\n    payload: any,\n    signedPayload: any,\n    signatureInfo?: {\n      deadline: string;\n      signature: any;\n    }\n  ) => {\n    openSnackBar({\n      status: \"completed\",\n      info: \"Setting up limit order in progress.\",\n      currentTheme: theme,\n    });\n    createTrigger(payload, signedPayload, signatureInfo)\n      .then((res) => {\n        addSnackbar({\n          info: `You have successfully set up an ${buyToken.ticker}-${sellToken.ticker} limit order.`,\n          status: \"completed\",\n        });\n        mutate();\n      })\n      .catch((err) => {\n        addSnackbar({ info: getCreateTriggerFailure(err), status: \"failed\" });\n      });\n  };\n\n  useEffect(() => {\n    // when is success, send success message to snack bar\n    if (data && isSuccess) {\n      addSnackbar({\n        info: \"Your limit order set up request has been sent.\",\n        status: \"completed\",\n        transaction: {\n          hash: data,\n        },\n      });\n\n      setModalState(E_ModalKey.STEPS_MODAL, true);\n    }\n  }, [isSuccess]);\n\n  useEffect(() => {\n    // when is error, send error message to snack bar\n    if (isError) {\n      addSnackbar({ info: \"Failed: \" + error, status: \"failed\" });\n    }\n  }, [isError]);\n\n  useEffect(() => {\n    getTransactionForLimitOrder(\n      ammEnum,\n      networkId,\n      address!,\n      sellToken,\n      buyToken,\n      feeTier,\n      rangeWidth,\n      publicClient\n    )\n      .then(({ tx, outerLimitPrice, inputCurrencyAmount }) => {\n        publicClient\n          .estimateGas({\n            ...tx,\n            account: address,\n          })\n          .then((gas) => {\n            setTx({ ...tx, gas: calculateGasMargin(gas) });\n            setData({\n              outerLimitPrice: outerLimitPrice,\n              inputCurrencyAmount: inputCurrencyAmount,\n            });\n          })\n          .catch((gasError) => {\n            const error = gasError as EstimateGasExecutionError;\n            getLogger().error(\n              \"Failed to estimate gas on CreatePositionTxForLimitOrder: \",\n              {\n                error: JSON.stringify(error.message),\n              }\n            );\n            setError(error.details);\n          });\n      })\n      .catch((err) => {\n        setError(err.toString());\n        getLogger().error(\"Failed to getTransactionForLimitOrder: \", {\n          ammEnum,\n          networkId,\n          address,\n          sellToken,\n          buyToken,\n          feeTier,\n          rangeWidth,\n          error: JSON.stringify(err),\n        });\n      });\n  }, [sellToken, buyToken, feeTier]);\n\n  return (\n    <>\n      <ButtonBox\n        onClick={() => {\n          sendTransaction?.();\n        }}\n        variant=\"contained\"\n        color=\"primary\"\n        size=\"lg\"\n        invalid={false}\n        disabled={!tx || !ready || isPending || error || isPending || isSuccess}\n        width=\"100%\"\n      >\n        {error ? (\n          error\n        ) : isError ? (\n          \"Execution Reverted\"\n        ) : isPending ? (\n          <Spinner />\n        ) : (\n          \"Confirm Limit Order\"\n        )}\n      </ButtonBox>\n      <Modal\n        isModalOpen={isOpen}\n        disableBackgroundOnClose={true}\n        closeIcon={false}\n        onClose={() => setModalState(E_ModalKey.STEPS_MODAL, false)}\n      >\n        <StepsModal\n          {...{\n            txdata: txdata,\n            txHash: data ?? undefined,\n            tokenPair: `${buyToken.ticker}-${sellToken.ticker}`,\n            gasCeiling: gasCeiling,\n            createTrigger: handleCreateTrigger,\n            deadlineInDays: deadlineInDays,\n            onclose: () => {\n              setModalState(E_ModalKey.STEPS_MODAL, false);\n              goBack();\n            },\n          }}\n        />\n      </Modal>\n    </>\n  );\n};\n","import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { useOnNetworkAccountChange } from \"@/hooks/globalState/useOnNetworkAccountChange\";\nimport { DEFAULT_APERTURE_FEE, DEFAULT_FEE_TIER } from \"@/utils/helper\";\nimport { formatTokenAmount, formatUSDAmount } from \"@/utils/numberFormat\";\nimport {\n  Body1,\n  DrawerTitle,\n  FeeInfoCard,\n  FlexColumn,\n  Headline4,\n  InfoCard,\n  SwitchMenuTab,\n  TokenCard,\n  TokenCardProps,\n} from \"@aperture/uikit\";\nimport { FeeAmount } from \"@aperture_finance/uniswap-v3-sdk\";\nimport bigDecimal from \"js-big-decimal\";\nimport moment from \"moment\";\nimport momentTimeZone from \"moment-timezone\";\nimport { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { ConfirmLimitOrder } from \"./ConfirmLimitOrder\";\nimport { IPlaceOrderForm } from \"./PlaceOrder/types\";\n\nconst Container = styled.div`\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  margin-top: 12px;\n  gap: ${({ theme }) => theme.spacing.xl};\n`;\nconst TokenWrapper = styled.div`\n  display: flex;\n  flex-direction: column;\n  gap: ${({ theme }) => theme.spacing.md};\n`;\nconst TokenTitle = styled(Body1)`\n  font-weight: 500;\n  color: ${({ theme }) => theme.colors.global.text.T1};\n`;\nconst InfoCards = styled.div`\n  display: flex;\n  flex-direction: column;\n  gap: ${({ theme }) => theme.spacing.sm2};\n`;\nconst TabWrapper = styled.div`\n  position: relative;\n  height: 37px;\n`;\nconst Tab = styled(SwitchMenuTab)`\n  position: absolute;\n  right: 0;\n`;\nconst CutLine = styled.div`\n  height: 1px;\n  width: 100%;\n  background: ${({ theme }) => theme.colors.global.line.Line2};\n  margin: 8px 0;\n`;\nconst TimeZone = styled.div`\n  font-size: 12px;\n  line-height: 12px;\n  color: ${({ theme }) => theme.colors.global.text.T2};\n  width: 100%;\n  text-align: right;\n  margin-top: -4px;\n`;\n\nexport const LimitOrderPreview: React.FC<{\n  sellToken: TokenCardProps;\n  buyToken: TokenCardProps;\n  feeTier: FeeAmount;\n  rangeWidth: number;\n  feeRevenue: string;\n  gasCeiling: string;\n  form: IPlaceOrderForm;\n  onTitleClick: () => void;\n}> = ({\n  form,\n  sellToken,\n  buyToken,\n  feeTier,\n  rangeWidth,\n  feeRevenue,\n  gasCeiling,\n  onTitleClick,\n}) => {\n  const { ammEnum } = useNetwork();\n  const [tab, setTab] = useState<\"Buy\" | \"Sell\">(\"Sell\");\n  const ifBuy = tab === \"Buy\";\n  const timeZone = momentTimeZone.tz.guess();\n  const getMinTriggerPrice = () => {\n    return ifBuy\n      ? formatTokenAmount(form.buy.minPrice)\n      : formatTokenAmount(form.sell.maxPrice);\n  };\n  const deadline = new Date().getTime() + form.deadline * 24 * 60 * 60 * 1000;\n\n  useOnNetworkAccountChange(() => {\n    onTitleClick();\n  });\n\n  return (\n    <Container>\n      <DrawerTitle onClick={onTitleClick} isDrawer>\n        <Headline4 fontWeight={500}>Preview Limit Order</Headline4>\n      </DrawerTitle>\n      <FlexColumn gap=\"md\">\n        <TokenWrapper>\n          <TokenTitle>You Sell</TokenTitle>\n          <TokenCard {...sellToken} />\n        </TokenWrapper>\n        <TokenWrapper>\n          <TokenTitle>You Buy</TokenTitle>\n          <TokenCard {...buyToken} />\n        </TokenWrapper>\n      </FlexColumn>\n      <TabWrapper>\n        <Tab\n          width={140}\n          menu={[buyToken.ticker, sellToken.ticker]}\n          defaultSelected={[buyToken.ticker, sellToken.ticker].indexOf(\n            buyToken.ticker\n          )}\n          onSelect={(value: string) =>\n            setTab(buyToken.ticker === value ? \"Buy\" : \"Sell\")\n          }\n        />\n      </TabWrapper>\n      <InfoCards>\n        <InfoCard\n          title={`${tab} ${ifBuy ? buyToken.ticker : sellToken.ticker} Price`}\n          content={`${formatTokenAmount(\n            bigDecimal.divide(\n              !ifBuy ? buyToken.amount : sellToken.amount,\n              !ifBuy ? sellToken.amount : buyToken.amount,\n              18\n            )\n          )} ${ifBuy ? sellToken.ticker : buyToken.ticker}`}\n        />\n        <InfoCard\n          title={`${ifBuy ? buyToken.ticker : sellToken.ticker} Market Price`}\n          content={`${formatTokenAmount(\n            ifBuy ? form.marketPrice.buy : form.marketPrice.sell\n          )} ${ifBuy ? sellToken.ticker : buyToken.ticker}`}\n        />\n        <InfoCard\n          title={`Min. Trigger Price`}\n          content={`${getMinTriggerPrice()} ${\n            ifBuy ? sellToken.ticker : buyToken.ticker\n          }`}\n        />\n        <InfoCard\n          title={`Underlying Range`}\n          content={`${formatTokenAmount(\n            ifBuy ? form.buy.minPrice : form.sell.minPrice\n          )} - ${formatTokenAmount(\n            ifBuy ? form.buy.maxPrice : form.sell.maxPrice\n          )} ${ifBuy ? sellToken.ticker : buyToken.ticker}`}\n        />\n        <CutLine />\n        <InfoCard\n          title=\"LP Fee Tier\"\n          content={`${feeTier / 10000}%`}\n          hint={`Default fee tier is set to ${\n            DEFAULT_FEE_TIER[ammEnum] / 10000\n          }%.`}\n        />\n        <InfoCard\n          title=\"Min. Fee Revenue To Earn\"\n          content={`${formatTokenAmount(feeRevenue)} ${sellToken.ticker}`}\n        />\n        <InfoCard\n          title=\"Gas Ceiling\"\n          content={`${gasCeiling}% of Limit Order (${formatUSDAmount(\n            form.gasInDollar\n          )})`}\n        />\n        <InfoCard\n          title=\"Expiration Date\"\n          content={`${moment(deadline).format(\"MMM Do, YYYY\")} (${moment(\n            deadline\n          ).diff(moment(), \"days\")} Days)`}\n        />\n        <TimeZone>\n          {`${timeZone} (GMT${momentTimeZone.tz(timeZone).format(\"Z\")})`}\n        </TimeZone>\n        <FeeInfoCard\n          styles={{ size: \"md\" }}\n          amm={ammEnum}\n          feeInfo={{\n            fee: DEFAULT_APERTURE_FEE,\n            amount:\n              form.sell.token?.price && form.sell.token?.price !== \"-\"\n                ? bigDecimal.multiply(form.sell.value, form.sell.token?.price)\n                : \"-\",\n          }}\n          hint={`${DEFAULT_APERTURE_FEE * 100}% of the order size.`}\n        />\n      </InfoCards>\n      <ConfirmLimitOrder\n        {...{\n          sellToken,\n          buyToken,\n          feeTier,\n          rangeWidth,\n          gasCeiling,\n          deadlineInDays: form.deadline,\n        }}\n        goBack={onTitleClick}\n      />\n    </Container>\n  );\n};\n","import { AccessoryIcons } from \"@aperture/assetkit\";\nimport { ChainAMMLabel, Headline1, Subtitle2 } from \"@aperture/uikit\";\nimport styled from \"styled-components\";\n\nexport const HeaderTag = styled(Headline1)`\n  color: ${({ theme }) => theme.colors.global.text.T1};\n  font-family: \"Dunbar Tall\";\n  font-weight: 500;\n  text-transform: capitalize;\n`;\n\nexport const ContentContainer = styled.div`\n  width: 420px;\n  margin-top: 12px;\n  color: ${({ theme }) => theme.colors.global.text.T1};\n`;\n\nexport const SwapButton = styled.button`\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 40px;\n  height: 40px;\n  padding: 2px;\n  cursor: pointer;\n  border-radius: ${({ theme }) => theme.radii.round};\n  background: ${({ theme }) => theme.colors.global.primary};\n  border: 0;\n  position: absolute;\n  top: 112px;\n`;\n\nexport const SwapButtonIcon = styled(AccessoryIcons.ExchangeIcon2)`\n  fill: ${({ theme }) => theme.colors.global.textAlt.T1};\n  transition: transform ${({ theme }) => theme.transitions.default} ease;\n`;\n\nexport const Gap = styled.div`\n  height: 16px;\n`;\n\nexport const GapSmall = styled.div`\n  height: 8px;\n`;\n\nexport const TokenWrapper = styled.div`\n  display: flex;\n  gap: ${({ theme }) => theme.spacing.sm};\n`;\n\nexport const RevenueValue = styled(Subtitle2)`\n  overflow: hidden;\n  text-overflow: ellipsis;\n`;\n\nexport const ButtonWrapper = styled.div`\n  display: flex;\n  flex-direction: column;\n  margin-top: 20px;\n  gap: ${({ theme }) => theme.spacing.lg};\n`;\n\nexport const StyledChainAMMLabel = styled(ChainAMMLabel)`\n  margin: ${({ theme }) => `${theme.spacing[\"2xl\"]} 0`};\n`;\n","import { ApproveTokenBtn } from \"@/components/Button/ApprovalBtn\";\nimport { TokenSelectModal } from \"@/components/Modal/TokenSelectModal\";\nimport { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { getExplorerURL } from \"@/config/chain\";\nimport { getNewTick } from \"@/helper/liquiditySelectorHelper\";\nimport { useMutateWarningTokens } from \"@/hooks/globalState/useWarningTokens\";\nimport { useFetchCurrentChainMarketPrice } from \"@/hooks/useFetchMarketPrice\";\nimport { fetchUnknownToken, useFetchTokenMap } from \"@/hooks/useFetchTokenMap\";\nimport {\n  DEFAULT_FEE_TIER,\n  DEFAULT_REVENUE,\n  checkAddresses,\n  gasCeilingButtonError,\n  gasCeilingInputError,\n  getGasCeiling,\n  isProdEnv,\n} from \"@/utils/helper\";\nimport { formatTokenAmount, trimNumber } from \"@/utils/numberFormat\";\nimport { SwapInputWrapper } from \"@/views/Swap/style\";\nimport { IToken } from \"@aperture/types\";\nimport {\n  AdvancedSetting,\n  Button,\n  Notification,\n  SupportedFeeAmount,\n  SwapInput,\n  TokenSwap,\n  TokenWarningContent,\n} from \"@aperture/uikit\";\nimport { E_ModalKey, Modal, useModal } from \"@aperture/uikitv2\";\nimport {\n  AUTOMATION_EXPIRATION_IN_DAYS,\n  getChainInfo,\n  parsePrice,\n  priceToClosestTickSafe,\n  tickToLimitOrderRange,\n  viem,\n} from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport {\n  FeeAmount,\n  Pool,\n  TICK_SPACINGS,\n  tickToPrice,\n} from \"@aperture_finance/uniswap-v3-sdk\";\nimport { Token } from \"@uniswap/sdk-core\";\nimport bigDecimal from \"js-big-decimal\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { Address } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport {\n  ButtonWrapper,\n  ContentContainer,\n  Gap,\n  GapSmall,\n  SwapButton,\n  SwapButtonIcon,\n} from \"./style\";\nimport { IPlaceOrder } from \"./types\";\n\ninterface ITokenWarning {\n  token: IToken;\n  isSell: boolean;\n}\n\nconst PlaceOrderContent = ({ onConfirm }: IPlaceOrder) => {\n  const { isConnected, address: walletAddress } = useAccount();\n  const { ammEnum, networkId, publicClient, isChainSupported } = useNetwork();\n  const { data: tokenMap, isLoading: isTokenMapLoading } = useFetchTokenMap();\n\n  const { mutateWarningTokens } = useMutateWarningTokens();\n  const { state, setModalState } = useModal();\n  const { isOpen } = state[E_ModalKey.TOKEN_SELECT_MODAL];\n  const [isSell, setIsSell] = useState<boolean>();\n  const { isOpen: isTokenWarningOpen } = state[E_ModalKey.TOKEN_WARNING_MODAL];\n  const [tokenWarning, setTokenWarning] = useState<ITokenWarning>();\n\n  const [disabled, setDisabled] = useState(true);\n  const [sellToken, setSellToken] = useState<IToken | null>(null);\n  const [buyToken, setBuyToken] = useState<IToken | null>(null);\n  const [sellAmount, setSellAmount] = useState<string | null>(null);\n  const [buyAmount, setBuyAmount] = useState<string | null>(null);\n  const [price, setPrice] = useState<string>(\"\");\n  const [base, setBase] = useState<\"sell\" | \"buy\">(\"buy\");\n  const [approved, setApproved] = useState<boolean>(false);\n  const [feeTier, setFeeTier] = useState<FeeAmount | undefined>(undefined);\n  const [rangeWidth, setRangeWidth] = useState<number | undefined>(1);\n  const gasCeilingAmount = useMemo(\n    () =>\n      bigDecimal.multiply(\n        sellAmount ?? \"0\",\n        sellToken?.price && sellToken?.price !== \"-\" ? sellToken.price : \"0\"\n      ),\n    [sellAmount, sellToken]\n  );\n  const [gasCeiling, setGasCeiling] = useState(\n    getGasCeiling(networkId, gasCeilingAmount)\n  );\n  const [showNotification, setShowNotification] = useState<boolean>(false);\n  const [error, setError] = useState(\"\");\n  const [pool, setPool] = useState<Pool | null>(null);\n  const [tick, setTick] = useState<number | null>(null);\n  const [priorityList, setPriorityList] = useState<string[]>([\n    \"sell\",\n    \"buy\",\n    \"price\",\n  ]);\n  const [expireDays, setExpireDays] = useState<string>(\"\");\n  const [expireDaysOnError, setExpireDaysOnError] = useState<boolean>(false);\n  const [poolError, setPoolError] = useState<string | null>(null);\n\n  const ifSellToken0 =\n    sellToken && buyToken\n      ? sellToken.address.toLowerCase() < buyToken.address.toLowerCase()\n      : null;\n\n  const { data: marketPrice, isLoading: marketPriceLoading } =\n    useFetchCurrentChainMarketPrice(\n      ifSellToken0 ? sellToken?.address : buyToken?.address,\n      ifSellToken0 ? buyToken?.address : sellToken?.address,\n      [], // TODO: support slipstream\n      !!sellToken && !!buyToken\n    );\n\n  const supportedFeeTier = useMemo(() => {\n    const feeTierMatch: Set<FeeAmount> = new Set();\n    SupportedFeeAmount[ammEnum].map((feeAmount) => {\n      if (marketPrice && marketPrice[feeAmount]) {\n        feeTierMatch.add(feeAmount);\n      }\n    });\n    return feeTierMatch;\n  }, [marketPrice]);\n\n  const commonTokens = useMemo(\n    () =>\n      Object.values(tokenMap ?? {}).sort((a, b) =>\n        bigDecimal.compareTo(b.amount, a.amount)\n      ),\n    [tokenMap]\n  );\n\n  useEffect(() => {\n    setDisabled(true);\n    setSellToken(null);\n    setBuyToken(null);\n    setSellAmount(null);\n    setBuyAmount(null);\n    setPrice(\"\");\n    setBase(\"buy\");\n    setApproved(false);\n    setGasCeiling(0);\n    setShowNotification(false);\n    setError(\"\");\n    setPool(null);\n    setTick(null);\n    setPriorityList([\"sell\", \"buy\", \"price\"]);\n    setExpireDays(\"\");\n    setExpireDaysOnError(false);\n  }, [networkId]);\n\n  const tickSpacing = feeTier ? TICK_SPACINGS[feeTier] : 0;\n\n  useEffect(() => {\n    if (sellToken && buyToken && !marketPriceLoading) {\n      if (supportedFeeTier?.size) {\n        if (supportedFeeTier.has(feeTier)) {\n          setShowNotification(false);\n          viem\n            .getPool(\n              sellToken.address,\n              buyToken.address,\n              feeTier,\n              networkId,\n              ammEnum,\n              publicClient\n            )\n            .then((pool) => {\n              setPool(pool);\n              const newTick = tickToLimitOrderRange(\n                getNewTick(\n                  null,\n                  ifSellToken0 ? \"Increment\" : \"Decrement\",\n                  tickSpacing,\n                  pool,\n                  rangeWidth\n                ),\n                pool.fee,\n                rangeWidth\n              ).tickAvg;\n              setTick(newTick);\n              setPoolError(null);\n            })\n            .catch((e) => {\n              setPoolError(\"No pools found for this token pair\");\n            });\n        }\n      } else {\n        // else show notification\n        setShowNotification(true);\n      }\n    } else {\n      // when selection has not been completed yet, don't show notification\n      setShowNotification(false);\n      setPool(null);\n      setTick(null);\n    }\n  }, [sellToken, buyToken, feeTier, rangeWidth, marketPriceLoading]);\n\n  const updatePriceByTick = () => {\n    const newPrice = tickToPrice(pool.token0, pool.token1, tick);\n    if (\n      (ifSellToken0 && base === \"buy\") ||\n      (!ifSellToken0 && base === \"sell\")\n    ) {\n      setPrice(trimNumber(newPrice.toFixed(18)));\n    } else {\n      setPrice(trimNumber(newPrice.invert().toFixed(18)));\n    }\n    if (sellAmount && buyAmount) {\n      if (\n        priorityList[0] === \"sell\" ||\n        (priorityList[0] === \"price\" && priorityList[1] === \"sell\")\n      ) {\n        setSellAmount(\n          trimNumber(\n            bigDecimal.multiply(\n              buyAmount,\n              ifSellToken0\n                ? newPrice.invert().toFixed(18)\n                : newPrice.toFixed(18)\n            )\n          )\n        );\n      } else {\n        setBuyAmount(\n          trimNumber(\n            bigDecimal.multiply(\n              !ifSellToken0\n                ? newPrice.invert().toFixed(18)\n                : newPrice.toFixed(18),\n              sellAmount\n            )\n          )\n        );\n      }\n    }\n  };\n\n  useEffect(() => {\n    if (pool && tick) updatePriceByTick();\n  }, [tick]);\n\n  useEffect(() => {\n    if (!isConnected || !isChainSupported) setDisabled(true);\n    else setDisabled(false);\n    // eslint-disable-next-line\n  }, [isConnected, isChainSupported]);\n\n  useEffect(() => {\n    if (sellToken && sellAmount) {\n      setGasCeiling(getGasCeiling(networkId, gasCeilingAmount));\n    }\n  }, [sellToken, sellAmount]);\n\n  const handleSwap = () => {\n    setError(\"\");\n\n    const tempSell = sellToken;\n    setSellToken(buyToken);\n    setBuyToken(tempSell);\n\n    const tempSellAmount = sellAmount;\n    setSellAmount(buyAmount);\n    setBuyAmount(tempSellAmount);\n\n    const buyIndex = priorityList.findIndex((item) => item === \"buy\");\n    const sellIndex = priorityList.findIndex((item) => item === \"sell\");\n    priorityList[buyIndex] = \"sell\";\n    priorityList[sellIndex] = \"buy\";\n    setPriorityList(priorityList);\n  };\n\n  useEffect(() => {\n    if (sellToken && sellToken.native) {\n      setApproved(true);\n    }\n  }, [sellToken]);\n\n  useEffect(() => {\n    if (!sellToken) setError(`Select Sell Token`);\n    else if (!sellAmount) setError(`Enter Sell Amount`);\n    else if (\n      bigDecimal.compareTo(sellAmount ?? \"0\", sellToken?.amount ?? \"0\") > 0\n    )\n      setError(`Insufficient ${sellToken?.ticker} Balance`);\n    else\n      setError(gasCeilingButtonError(networkId, gasCeiling, gasCeilingAmount));\n  }, [sellToken, sellAmount, gasCeiling]);\n\n  const handleConfirm = () => {\n    const marketPrice = tickToPrice(pool.token0, pool.token1, pool.tickCurrent);\n    const tickRange = tickToLimitOrderRange(tick, pool.fee, rangeWidth);\n    const form = {\n      sell: {\n        value: sellAmount || \"0\",\n        token: sellToken || null,\n        minPrice: ifSellToken0\n          ? tickToPrice(pool.token0, pool.token1, tickRange.tickLower).toFixed(\n              18\n            )\n          : tickToPrice(pool.token0, pool.token1, tickRange.tickUpper)\n              .invert()\n              .toFixed(18),\n        maxPrice: ifSellToken0\n          ? tickToPrice(pool.token0, pool.token1, tickRange.tickUpper).toFixed(\n              18\n            )\n          : tickToPrice(pool.token0, pool.token1, tickRange.tickLower)\n              .invert()\n              .toFixed(18),\n      },\n      buy: {\n        value: buyAmount || \"0\",\n        token: buyToken || null,\n        minPrice: !ifSellToken0\n          ? tickToPrice(pool.token0, pool.token1, tickRange.tickLower).toFixed(\n              18\n            )\n          : tickToPrice(pool.token0, pool.token1, tickRange.tickUpper)\n              .invert()\n              .toFixed(18),\n        maxPrice: !ifSellToken0\n          ? tickToPrice(pool.token0, pool.token1, tickRange.tickUpper).toFixed(\n              18\n            )\n          : tickToPrice(pool.token0, pool.token1, tickRange.tickLower)\n              .invert()\n              .toFixed(18),\n      },\n      marketPrice: {\n        sell: ifSellToken0\n          ? marketPrice.toFixed(18)\n          : marketPrice.invert().toFixed(18),\n        buy: !ifSellToken0\n          ? marketPrice.toFixed(18)\n          : marketPrice.invert().toFixed(18),\n      },\n      feeTier: feeTier,\n      rangeWidth: rangeWidth,\n      gasCeiling: gasCeiling,\n      gasInDollar: bigDecimal.multiply(gasCeilingAmount, gasCeiling),\n      deadline:\n        Number(expireDays.replace(\" Days\", \"\")) === 0\n          ? 30\n          : Number(expireDays.replace(\" Days\", \"\")),\n    };\n    onConfirm(form);\n  };\n\n  const getMarketPrice = () => {\n    if (sellToken && buyToken && pool) {\n      const marketPrice = tickToPrice(\n        pool.token0,\n        pool.token1,\n        pool.tickCurrent\n      );\n\n      return {\n        sell: formatTokenAmount(\n          ifSellToken0\n            ? marketPrice.toFixed(18)\n            : marketPrice.invert().toFixed(18)\n        ),\n        buy: formatTokenAmount(\n          !ifSellToken0\n            ? marketPrice.toFixed(18)\n            : marketPrice.invert().toFixed(18)\n        ),\n      };\n    } else {\n      return {\n        sell: \"0\",\n        buy: \"0\",\n      };\n    }\n  };\n\n  const updatePriority = (priority: \"sell\" | \"buy\" | \"price\") => {\n    // if update sell => [buy, price, sell]\n    const newPriorityList = [...priorityList]; // Create a copy of the priorityList\n    const index = newPriorityList.indexOf(priority);\n\n    if (index !== -1) {\n      newPriorityList.splice(index, 1); // Remove the element at index position\n      newPriorityList.push(priority); // Add the priority at the end of the array\n      setPriorityList(newPriorityList);\n    }\n  };\n\n  useEffect(() => {\n    if (\n      sellToken &&\n      !isTokenMapLoading &&\n      tokenMap &&\n      tokenMap[`${sellToken.address}-${sellToken.native}`]\n    ) {\n      setSellToken(tokenMap[`${sellToken.address}-${sellToken.native}`]);\n    }\n    if (\n      buyToken &&\n      !isTokenMapLoading &&\n      tokenMap &&\n      tokenMap[`${buyToken.address}-${buyToken.native}`]\n    ) {\n      setBuyToken(tokenMap[`${buyToken.address}-${buyToken.native}`]);\n    }\n  }, [isConnected, isTokenMapLoading, tokenMap]);\n\n  const onPlusMinusClick = (action: \"plus\" | \"minus\") => {\n    updatePriority(\"price\");\n    if (sellToken && buyToken && pool) {\n      let newTickRange;\n      if (\n        (ifSellToken0 && base === \"buy\") ||\n        (!ifSellToken0 && base === \"sell\")\n      ) {\n        newTickRange = tickToLimitOrderRange(\n          getNewTick(\n            tick,\n            action === \"minus\" ? \"Decrement\" : \"Increment\",\n            tickSpacing,\n            pool\n          ),\n          pool.fee,\n          rangeWidth\n        );\n      } else {\n        newTickRange = tickToLimitOrderRange(\n          getNewTick(\n            tick,\n            action === \"minus\" ? \"Increment\" : \"Decrement\",\n            tickSpacing,\n            pool\n          ),\n          pool.fee,\n          rangeWidth\n        );\n      }\n      if (\n        (ifSellToken0 && newTickRange.tickLower > pool.tickCurrent) ||\n        (!ifSellToken0 && newTickRange.tickUpper < pool.tickCurrent)\n      ) {\n        setTick(newTickRange.tickAvg);\n      }\n    }\n  };\n  const tickRange =\n    tick && feeTier && tickToLimitOrderRange(tick, feeTier, rangeWidth);\n\n  const handleUnknownAddress = async (tokenAddress: string) => {\n    return await fetchUnknownToken(\n      tokenAddress,\n      networkId,\n      publicClient,\n      isConnected,\n      walletAddress\n    );\n  };\n\n  const handleSelectToken = async (token: IToken, isSell: boolean) => {\n    if (isSell) {\n      if (checkAddresses(token, buyToken)) setBuyToken(null);\n      // if sell = null, buy selected with amount, auto fill sell amount\n      if (\n        !sellToken &&\n        buyToken &&\n        bigDecimal.compareTo(buyAmount, \"0\") !== 0\n      ) {\n        setSellAmount(\"0\");\n      }\n      setSellToken(token);\n    } else {\n      if (checkAddresses(token, sellToken)) setSellToken(null);\n      // if buy = null, sell selected with amount, auto fill buy amount\n      if (\n        !buyToken &&\n        sellToken &&\n        bigDecimal.compareTo(sellAmount, \"0\") !== 0\n      ) {\n        setBuyAmount(\"0\");\n      }\n      setBuyToken(token);\n    }\n    toggleSelectTokenModal(false);\n  };\n\n  const toggleSelectTokenModal = (open: boolean) => {\n    setModalState(E_ModalKey.TOKEN_SELECT_MODAL, open);\n  };\n  const toggleTokenWarningModal = (open: boolean) => {\n    setModalState(E_ModalKey.TOKEN_WARNING_MODAL, open);\n  };\n\n  return (\n    <>\n      <ContentContainer>\n        <SwapInputWrapper>\n          <SwapInput\n            title=\"Sell\"\n            token={sellToken}\n            price={sellToken?.price ?? \"\"}\n            value={sellAmount}\n            showMax={true}\n            showBalance={isConnected}\n            openTokenSelectModal={() => {\n              setIsSell(true);\n              toggleSelectTokenModal(true);\n            }}\n            onValueChange={(value) => {\n              updatePriority(\"sell\");\n              // update sell amount\n              setSellAmount(value);\n              // if buy token is selected\n              if (buyToken && pool) {\n                // price base on sell token\n                const price = tickToPrice(\n                  ifSellToken0 ? pool.token0 : pool.token1,\n                  ifSellToken0 ? pool.token1 : pool.token0,\n                  tick\n                );\n                // if buy token selected but amount not entered\n                if (\n                  !buyAmount ||\n                  priorityList[0] === \"buy\" ||\n                  Number(buyAmount) === 0 ||\n                  Number(value) === 0\n                ) {\n                  const amount = trimNumber(\n                    bigDecimal.multiply(value, price.toFixed(18))\n                  );\n                  setBuyAmount(amount);\n                } else {\n                  const humanReadableAmount =\n                    bigDecimal.compareTo(value, 0) === 0\n                      ? \"0\"\n                      : bigDecimal.divide(buyAmount, value, 18);\n                  const newPrice = parsePrice(\n                    ifSellToken0 ? pool.token0 : pool.token1,\n                    ifSellToken0 ? pool.token1 : pool.token0,\n                    humanReadableAmount\n                  );\n                  const newTickRange = tickToLimitOrderRange(\n                    priceToClosestTickSafe(newPrice),\n                    pool.fee,\n                    rangeWidth\n                  );\n                  if (\n                    newTickRange.tickAvg !== tick &&\n                    ((ifSellToken0 &&\n                      newTickRange.tickLower > pool.tickCurrent) ||\n                      (!ifSellToken0 &&\n                        newTickRange.tickUpper < pool.tickCurrent))\n                  ) {\n                    setTick(newTickRange.tickAvg);\n                  } else {\n                    const amount = trimNumber(\n                      bigDecimal.multiply(value, price.toFixed(18))\n                    );\n                    setBuyAmount(amount);\n                  }\n                }\n              }\n            }}\n            size=\"small\"\n            decimalScale={sellToken?.decimals}\n          />\n          <GapSmall />\n          <SwapButton onClick={handleSwap}>\n            <SwapButtonIcon />\n          </SwapButton>\n          <SwapInput\n            title=\"Buy\"\n            token={buyToken}\n            price={buyToken?.price ?? \"\"}\n            value={buyAmount}\n            showMax={false}\n            showBalance={isConnected}\n            openTokenSelectModal={() => {\n              setIsSell(false);\n              toggleSelectTokenModal(true);\n            }}\n            onValueChange={(value) => {\n              updatePriority(\"buy\");\n              // update buy amount\n              setBuyAmount(value);\n              // if sell token is selected\n              if (sellToken && pool) {\n                // price base on buy token\n                const price = tickToPrice(\n                  !ifSellToken0 ? pool.token0 : pool.token1,\n                  !ifSellToken0 ? pool.token1 : pool.token0,\n                  tick\n                );\n                // if sell token selected but amount not entered\n                if (\n                  !sellAmount ||\n                  priorityList[0] === \"sell\" ||\n                  Number(sellAmount) === 0 ||\n                  Number(value) === 0\n                ) {\n                  const amount = trimNumber(\n                    bigDecimal.multiply(value, price.toFixed(18))\n                  );\n                  setSellAmount(amount);\n                } else {\n                  const humanReadableAmount = bigDecimal.divide(\n                    value,\n                    sellAmount,\n                    18\n                  );\n\n                  const newPrice = parsePrice(\n                    ifSellToken0 ? pool.token0 : pool.token1,\n                    ifSellToken0 ? pool.token1 : pool.token0,\n                    humanReadableAmount\n                  );\n                  const newTickRange = tickToLimitOrderRange(\n                    priceToClosestTickSafe(newPrice),\n                    pool.fee,\n                    rangeWidth\n                  );\n                  if (\n                    newTickRange.tickAvg !== tick &&\n                    ((ifSellToken0 &&\n                      newTickRange.tickLower > pool.tickCurrent) ||\n                      (!ifSellToken0 &&\n                        newTickRange.tickUpper < pool.tickCurrent))\n                  ) {\n                    setTick(newTickRange.tickAvg);\n                  } else {\n                    const amount = trimNumber(\n                      bigDecimal.multiply(value, price.toFixed(18))\n                    );\n                    setSellAmount(amount);\n                  }\n                }\n              }\n            }}\n            size=\"small\"\n            decimalScale={buyToken?.decimals}\n          />\n        </SwapInputWrapper>\n        <Gap />\n        <TokenSwap\n          onCloseToMarketClick={() => {\n            if (pool) {\n              updatePriority(\"price\");\n              const newTick = tickToLimitOrderRange(\n                getNewTick(\n                  null,\n                  ifSellToken0 ? \"Increment\" : \"Decrement\",\n                  tickSpacing,\n                  pool,\n                  rangeWidth\n                ),\n                pool.fee,\n                rangeWidth\n              ).tickAvg;\n              setTick(newTick);\n            }\n          }}\n          onMinusClick={() => onPlusMinusClick(\"minus\")}\n          onPlusClick={() => onPlusMinusClick(\"plus\")}\n          sellTicker={sellToken?.ticker ?? \"-\"}\n          buyTicker={buyToken?.ticker ?? \"-\"}\n          disabled={!sellToken || !buyToken || !pool}\n          //@ts-ignore\n          value={price}\n          onChange={(value: string) => setPrice(value)}\n          onBlur={(value: string) => {\n            updatePriority(\"price\");\n            const price = parsePrice(\n              ifSellToken0 ? pool.token0 : pool.token1,\n              ifSellToken0 ? pool.token1 : pool.token0,\n              base === \"buy\" || bigDecimal.compareTo(value, 0) === 0\n                ? value\n                : bigDecimal.divide(\"1\", value, 18)\n            );\n            const newTickRange = tickToLimitOrderRange(\n              priceToClosestTickSafe(price),\n              feeTier,\n              rangeWidth\n            );\n            // if valid tick\n            if (\n              newTickRange.tickAvg !== tick &&\n              ((ifSellToken0 && newTickRange.tickLower > pool.tickCurrent) ||\n                (!ifSellToken0 && newTickRange.tickUpper < pool.tickCurrent))\n            ) {\n              setTick(newTickRange.tickAvg);\n            } else {\n              // tick stay the same && bring price back to the valid price\n              updatePriceByTick();\n            }\n          }}\n          action={base}\n          setAction={(base: \"sell\" | \"buy\") => {\n            setBase(base);\n            if (bigDecimal.compareTo(price, \"0\") !== 0)\n              setPrice(bigDecimal.divide(\"1\", price, 18));\n          }}\n          marketPrice={getMarketPrice()}\n        />\n        <AdvancedSetting\n          amm={ammEnum}\n          sellToken={sellToken}\n          sellAmount={sellAmount}\n          feeTier={feeTier}\n          defaultFeeTier={DEFAULT_FEE_TIER[ammEnum]}\n          defaultRevenue={DEFAULT_REVENUE}\n          supportedFeeTier={supportedFeeTier}\n          onFeeTierChange={(value) => setFeeTier(value)}\n          rangeWidth={rangeWidth}\n          onRangeWidthChange={(value) => setRangeWidth(value)}\n          gasCeilingAmount={bigDecimal.multiply(\n            sellAmount ?? \"0\",\n            sellToken?.price && sellToken?.price !== \"-\" ? sellToken.price : \"0\"\n          )}\n          gasCeilingPercentage={gasCeiling}\n          onGasCeilingChange={(percentage) => setGasCeiling(percentage)}\n          onGasCeilingError={\n            !!sellToken\n              ? (percentage) =>\n                  gasCeilingInputError(networkId, percentage, gasCeilingAmount)\n              : undefined\n          }\n          expireDays={expireDays}\n          maxExpireDays={AUTOMATION_EXPIRATION_IN_DAYS}\n          expireDaysOnError={expireDaysOnError}\n          onExpireInput={(value: string) => {\n            if (Number(value) === 0) {\n              setExpireDays(\"\");\n            } else {\n              setExpireDays(value + \" Days\");\n            }\n            if (Number(value) > AUTOMATION_EXPIRATION_IN_DAYS) {\n              setExpireDaysOnError(true);\n            } else {\n              setExpireDaysOnError(false);\n            }\n          }}\n        />\n        {showNotification && (\n          <Notification\n            variant=\"error\"\n            text=\"Token pair is not supported\"\n            //@ts-ignore\n            style={{ marginTop: \"8px\" }}\n          />\n        )}\n        {poolError && sellToken && buyToken && !showNotification && (\n          <Notification\n            variant=\"error\"\n            text={poolError}\n            //@ts-ignore\n            style={{ marginTop: \"8px\" }}\n          />\n        )}\n        <ButtonWrapper>\n          <ApproveTokenBtn\n            token={sellToken}\n            contractAddress={\n              getChainInfo(networkId).amms[ammEnum]\n                .nonfungiblePositionManager as Address\n            }\n            amount={sellAmount ?? \"0\"}\n            approveOnChange={(approve: boolean) => setApproved(approve)}\n            useNative={sellToken?.native}\n          />\n          <Button\n            variant=\"contained\"\n            color=\"secondary\"\n            size=\"lg\"\n            width=\"100%\"\n            onClick={handleConfirm}\n            disabled={\n              expireDaysOnError ||\n              !!error ||\n              disabled ||\n              !buyToken ||\n              Number(buyAmount) <= 0 ||\n              !sellToken ||\n              Number(sellAmount) <= 0 ||\n              !approved ||\n              showNotification\n            }\n          >\n            {error ? error : \"Place Limit Order\"}\n          </Button>\n        </ButtonWrapper>\n        <br />\n        {!isProdEnv() && (\n          <>\n            tick:{\" \"}\n            {tickRange && (\n              <>\n                {tickRange.tickLower} {tickRange.tickAvg} {tickRange.tickUpper}\n              </>\n            )}{\" \"}\n            <br />\n            pool current tick: {pool?.tickCurrent} <br />\n            if sell token 0: {String(ifSellToken0)} <br />\n            priorityList: {String(priorityList)}\n          </>\n        )}\n      </ContentContainer>\n      <Modal\n        isModalOpen={isOpen}\n        onClose={() => toggleSelectTokenModal(false)}\n        padding={20}\n      >\n        <TokenSelectModal\n          {...{\n            commonTokens: commonTokens,\n            selectedToken: isSell ? sellToken : buyToken,\n            selectToken: (token: IToken) => handleSelectToken(token, isSell),\n            selectUnknownToken: (token: IToken) => {\n              setTokenWarning({ token, isSell });\n              toggleTokenWarningModal(true);\n            },\n            handleUnknownAddress,\n          }}\n        />\n      </Modal>\n      <Modal\n        isModalOpen={isTokenWarningOpen}\n        onClose={() => toggleTokenWarningModal(false)}\n        closeIcon={false}\n      >\n        <TokenWarningContent\n          {...{\n            amm: ammEnum,\n            token: tokenWarning?.token,\n            exploreURL: getExplorerURL(networkId),\n            confirmClick: (token: IToken) => {\n              handleSelectToken(token, tokenWarning?.isSell);\n              // Add new warning token with the useLocalStorageState in the web app\n              mutateWarningTokens(\n                networkId,\n                new Token(\n                  networkId,\n                  token.address,\n                  token.decimals,\n                  token.ticker,\n                  token.name\n                )\n              );\n              toggleTokenWarningModal(false);\n            },\n            cancelClick: () => toggleTokenWarningModal(false),\n          }}\n        />\n      </Modal>\n    </>\n  );\n};\n\nexport default PlaceOrderContent;\n","import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport {\n  DEFAULT_FEE_TIER,\n  DEFAULT_GAS_CEILING,\n  DEFAULT_REVENUE,\n} from \"@/utils/helper\";\nimport { formatUSDAmount } from \"@/utils/numberFormat\";\nimport { IPlaceOrderForm } from \"@/views/LimitOrder/PlaceOrder/types\";\nimport { Headline } from \"@/views/style\";\nimport { NetworkIcons } from \"@aperture/assetkit\";\nimport { TokenCardProps } from \"@aperture/uikit\";\nimport { FeeAmount } from \"@aperture_finance/uniswap-v3-sdk\";\nimport bigDecimal from \"js-big-decimal\";\nimport { useState } from \"react\";\nimport { Address } from \"viem\";\nimport { LimitOrderPreview } from \"../LimitOrderPreview\";\nimport PlaceOrderContent from \"./PlaceOrderContent\";\nimport { HeaderTag, StyledChainAMMLabel } from \"./style\";\n\nconst PlaceOrder = () => {\n  const { amm, ammEnum, network } = useNetwork();\n  const [preview, setPreview] = useState<boolean>(false);\n  const [form, setForm] = useState<IPlaceOrderForm | null>(null);\n  const [sell, setSell] = useState<TokenCardProps>({\n    Icon: <NetworkIcons.EthereumIcon width={28} height={28} />,\n    ticker: \"ticker\",\n    name: \"name\",\n    amount: \"0\",\n    subText: \"~$0\",\n    address: \"0x\",\n    native: true,\n  });\n  const [buy, setBuy] = useState<TokenCardProps>({\n    Icon: <NetworkIcons.EthereumIcon width={28} height={28} />,\n    ticker: \"ticker\",\n    name: \"name\",\n    amount: \"0\",\n    subText: \"~$0\",\n    address: \"0x\",\n    native: false,\n  });\n  const [feeTier, setFeeTier] = useState<FeeAmount | undefined>(\n    DEFAULT_FEE_TIER[ammEnum]\n  );\n  const [rangeWidth, setRangeWidth] = useState<number | undefined>(1);\n  const [gasCeiling, setGasCeiling] = useState(DEFAULT_GAS_CEILING);\n  const handlePlaceOrderConfirm = (form: IPlaceOrderForm) => {\n    setSell({\n      Icon: form.sell.token!.Icon,\n      ticker: form.sell.token!.ticker,\n      name: form.sell.token!.name ?? form.sell.token!.ticker,\n      amount: form.sell.value,\n      subText: formatUSDAmount(\n        bigDecimal.multiply(form.sell.value, form.sell.token!.price ?? \"0\")\n      ),\n      address: form.sell.token!.address as Address,\n      native: form.sell.token!.native,\n    });\n    setBuy({\n      Icon: form.buy.token!.Icon,\n      ticker: form.buy.token!.ticker,\n      name: form.buy.token!.name ?? form.buy.token!.ticker,\n      amount: form.buy.value,\n      subText: formatUSDAmount(\n        bigDecimal.multiply(form.buy.value, form.buy.token!.price ?? \"0\")\n      ),\n      address: form.buy.token!.address as Address,\n      native: form.buy.token!.native,\n    });\n    setFeeTier(form.feeTier);\n    setRangeWidth(form.rangeWidth);\n    setGasCeiling(form.gasCeiling);\n    setForm(form);\n    setPreview(true);\n  };\n\n  return (\n    <div>\n      <HeaderTag>\n        Revenue Earning <br /> Limit Order\n        <StyledChainAMMLabel amm={amm} chainId={network} />\n      </HeaderTag>\n      <Headline>Place Orders</Headline>\n      <div>\n        {!preview ? (\n          <PlaceOrderContent onConfirm={handlePlaceOrderConfirm} />\n        ) : (\n          <LimitOrderPreview\n            form={form}\n            sellToken={sell}\n            buyToken={buy}\n            feeTier={feeTier}\n            rangeWidth={rangeWidth}\n            feeRevenue={bigDecimal.multiply(sell.amount, DEFAULT_REVENUE)}\n            gasCeiling={bigDecimal.multiply(gasCeiling, 100)}\n            onTitleClick={() => setPreview(false)}\n          />\n        )}\n      </div>\n    </div>\n  );\n};\n\nexport default PlaceOrder;\n","import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { DEFAULT_AMM, DEFAULT_NETWORK, isManta } from \"@/utils/networkHelper\";\nimport OpenOrder from \"@/views/LimitOrder/OpenOrder\";\nimport PlaceOrder from \"@/views/LimitOrder/PlaceOrder\";\nimport { EmptyBox, PageContainer } from \"@/views/style\";\nimport { Headline5 } from \"@aperture/uikit\";\nimport { useEffect } from \"react\";\nimport styled from \"styled-components\";\nimport { useAccount } from \"wagmi\";\n\nconst Body = styled.div`\n  display: grid;\n  grid-template-columns: 420px 40px 629px;\n`;\n\nexport default function LimitOrders() {\n  const { network, setNetwork, ammEnum } = useNetwork();\n  const { isConnected } = useAccount();\n  const notSupported = isManta(network) || ammEnum === \"SLIPSTREAM\";\n\n  useEffect(() => {\n    if (!isConnected) {\n      if (notSupported) setNetwork(DEFAULT_AMM, DEFAULT_NETWORK);\n    }\n  }, []);\n\n  return (\n    <PageContainer>\n      {notSupported ? (\n        <EmptyBox>\n          <Headline5>Coming Soon!</Headline5>\n        </EmptyBox>\n      ) : (\n        <Body>\n          <PlaceOrder />\n          <div />\n          <OpenOrder />\n        </Body>\n      )}\n    </PageContainer>\n  );\n}\n","import { AccessoryIcons } from \"@aperture/assetkit\";\nimport { Headline5 } from \"@aperture/uikit\";\nimport styled from \"styled-components\";\n\nexport const Container = styled.div`\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  box-sizing: border-box;\n  gap: ${({ theme }) => theme.spacing[\"3xl\"]};\n`;\n\nexport const Subtitle = styled(Headline5)`\n  color: ${({ theme }) => theme.colors.grey.darkGrey2};\n  margin-bottom: 16px;\n  span:first-child {\n    margin-right: 4px;\n  }\n`;\n\nexport const Header = styled.div`\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n`;\n\nexport const HeadlineWrapper = styled.div`\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  gap: ${({ theme }) => theme.spacing.xl};\n`;\n\nexport const SwapContainer = styled.div`\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  box-sizing: border-box;\n  width: 100%;\n  border-radius: ${({ theme }) => theme.radii.md};\n  gap: ${({ theme }) => theme.spacing[\"2xl\"]};\n  position: relative;\n  overflow: auto;\n`;\n\nexport const SwapInputWrapper = styled.div<{ gap?: number }>`\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  box-sizing: border-box;\n  width: 100%;\n  gap: ${({ gap }) => gap || 0}px;\n  position: relative;\n`;\n\nexport const ExchangeWrapper = styled.div`\n  width: 100%;\n`;\n\nexport const SwapButton = styled.button<{ disabled: boolean }>`\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 48px;\n  height: 48px;\n  cursor: ${({ disabled }) => (disabled ? \"default\" : \"pointer\")};\n  border-radius: ${({ theme }) => theme.radii.round};\n  background: ${({ theme }) => theme.colors.global.primary};\n  border: 0;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translateY(-50%) translateX(-50%);\n`;\n\nexport const SwapButtonIcon = styled(AccessoryIcons.ExchangeIcon2)<{\n  disabled: boolean;\n}>`\n  transform: rotate(0deg);\n  transition: transform ${({ theme }) => theme.transitions.default} ease;\n  fill: ${({ theme }) => theme.colors.global.textAlt.T1};\n`;\n\nexport const ButtonWrapper = styled.div`\n  display: flex;\n  width: 100%;\n\n  > div {\n    width: 100%;\n  }\n`;\n\nexport const DivideDiv = styled.div`\n  position: relative;\n  height: 100%;\n  width: 100%;\n  padding: 2px 0;\n`;\n\nexport const DivideY = styled.div`\n  border: 1px solid ${({ theme }) => theme.colors.global.line.Line1};\n`;\n","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { stringToHex, toHex, } from '../../utils/encoding/toHex.js';\n/**\n * Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signMessage\n * - JSON-RPC Methods:\n *   - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\n *   - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * With the calculated signature, you can:\n * - use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\n *\n * @param client - Client to use\n * @param parameters - {@link SignMessageParameters}\n * @returns The signed message. {@link SignMessageReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   message: 'hello world',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n *   message: 'hello world',\n * })\n */\nexport async function signMessage(client, { account: account_ = client.account, message, }) {\n    if (!account_)\n        throw new AccountNotFoundError({\n            docsPath: '/docs/actions/wallet/signMessage',\n        });\n    const account = parseAccount(account_);\n    if (account.type === 'local')\n        return account.signMessage({ message });\n    const message_ = (() => {\n        if (typeof message === 'string')\n            return stringToHex(message);\n        if (message.raw instanceof Uint8Array)\n            return toHex(message.raw);\n        return message.raw;\n    })();\n    return client.request({\n        method: 'personal_sign',\n        params: [message_, account.address],\n    }, { retryCount: 0 });\n}\n//# sourceMappingURL=signMessage.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../../utils/typedData.js';\n/**\n * Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712): `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTypedData\n * - JSON-RPC Methods:\n *   - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\n *   - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param parameters - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const signature = await signTypedData(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   domain: {\n *     name: 'Ether Mail',\n *     version: '1',\n *     chainId: 1,\n *     verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n *   },\n *   types: {\n *     Person: [\n *       { name: 'name', type: 'string' },\n *       { name: 'wallet', type: 'address' },\n *     ],\n *     Mail: [\n *       { name: 'from', type: 'Person' },\n *       { name: 'to', type: 'Person' },\n *       { name: 'contents', type: 'string' },\n *     ],\n *   },\n *   primaryType: 'Mail',\n *   message: {\n *     from: {\n *       name: 'Cow',\n *       wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n *     },\n *     to: {\n *       name: 'Bob',\n *       wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n *     },\n *     contents: 'Hello, Bob!',\n *   },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const signature = await signTypedData(client, {\n *   domain: {\n *     name: 'Ether Mail',\n *     version: '1',\n *     chainId: 1,\n *     verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n *   },\n *   types: {\n *     Person: [\n *       { name: 'name', type: 'string' },\n *       { name: 'wallet', type: 'address' },\n *     ],\n *     Mail: [\n *       { name: 'from', type: 'Person' },\n *       { name: 'to', type: 'Person' },\n *       { name: 'contents', type: 'string' },\n *     ],\n *   },\n *   primaryType: 'Mail',\n *   message: {\n *     from: {\n *       name: 'Cow',\n *       wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n *     },\n *     to: {\n *       name: 'Bob',\n *       wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n *     },\n *     contents: 'Hello, Bob!',\n *   },\n * })\n */\nexport async function signTypedData(client, parameters) {\n    const { account: account_ = client.account, domain, message, primaryType, } = parameters;\n    if (!account_)\n        throw new AccountNotFoundError({\n            docsPath: '/docs/actions/wallet/signTypedData',\n        });\n    const account = parseAccount(account_);\n    const types = {\n        EIP712Domain: getTypesForEIP712Domain({ domain }),\n        ...parameters.types,\n    };\n    // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n    // as we can't statically check this with TypeScript.\n    validateTypedData({ domain, message, primaryType, types });\n    if (account.type === 'local')\n        return account.signTypedData({ domain, message, primaryType, types });\n    const typedData = stringify({ domain: domain ?? {}, message, primaryType, types }, (_, value) => (isHex(value) ? value.toLowerCase() : value));\n    return client.request({\n        method: 'eth_signTypedData_v4',\n        params: [account.address, typedData],\n    }, { retryCount: 0 });\n}\n//# sourceMappingURL=signTypedData.js.map"],"names":["window","__NEXT_P","push","__webpack_require__","SpinnerWrapper","styled","StyledButton","Button","ApproveOnChainBtn","text","positionIdBN","color","tokenPair","disabled","onApproved","handleError","props","param","ammEnum","networkId","useNetwork","addSnackbar","useSnackbarV2","txnHash","setTxnHash","useState","undefined","approveRequest","useMemo","chainInfo","getChainInfo","to","amms","nonfungiblePositionManager","data","ICommonNonfungiblePositionManager__factory","encodeFunctionData","apertureAutoman","ready","txData","sendTransaction","error","txErrorMsg","isError","isTxError","isPending","isTxLoading","isSuccess","isTxSuccess","useSendTransactionWithGas","waitTxData","waitTxErrorMsg","isWaitTxError","isLoading","isWaitTxLoading","isWaitTxSuccess","useWaitForTransaction","hash","onError","useCallback","err","info","status","useEffect","concat","toString","message","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","jsx","onClick","variant","size","invalid","width","Spinner","__webpack_exports__","SignPayloadBtn","payload","setSignedPayload","showStartIcon","noFeeNotification","Fragment","address","useAccount","payloadInString","stringify","isSignLoading","signMessage","useSignMessage","isLoadingStatus","jsxs","account","startIcon","AccessoryIcons","height","useFetchPositionTypedData","publicClient","walletAddress","isConnected","useSWR","shouldFetch","positionId","getPositionTypedData","amm","chainId","client","deadline","BigInt","getPositionDeadline","viem","signTypedData_signTypedData","config","parameters","connector","rest","type","getClient","getConnectorClient","e","action","getAction","s","signTypedData","x","SignPositionPermitBtn","setPermitInfo","disabledSign","signPositionPermit","useSignPositionPermit","successTips","useEventCallback","signTypedDataConfig","useSignTypedData","mutation","useConfig","Z","mutate","mutateAsync","result","useMutation","D","mutationFn","variables","mutationKey","signTypedDataAsync","onSuccess","signature","jsx_runtime","PureSignPositionPermitBtn","PureSignPositionPermitButtonComponent","children","React","Button_SignPositionPermitBtn","TokenSelectModal","commonTokens","selectedToken","selectToken","selectUnknownToken","handleUnknownAddress","customClose","onClose","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","TokenSelectContent","StyledSignPayloadBtn","theme","colors","global","background","BG2","primary","LimitOrderCard","order","useFetchAllChainUserTriggers","payloadSig","setPayloadSig","cancelPayload","ownerAddr","taskId","Number","orderId","router","useRouter","setPositionPage","usePage","deleteTrigger","then","tokenBuy","ticker","tokenSell","catch","OrderCard","from","Icon","getTokenIcon","dateTime","timestampFormat","timestamp","buyAmount","formatTokenAmount","sellAmount","limitPrice","formatPrice","buyRatio","feeTier","min","amountMinimum","max","amountMaximum","revenue","earnedFeeInputToken","feeRevenue","earnedFeeOutputToken","notification","Btn","navTo","pathname","query","CommonQueryKey","nftId","LoaderWrapper","T1","OrderListBox","spacing","md","BG1","EmptyBox","FlexColumn","radii","lg","line","Line1","T3","compose","layout","space","OpenOrderContent","showFulfilled","limitOrders","useTheme","filteredLimitOrders","filter","OrderStatus","LinearLoaderGroup","length","map","ApertureLogos","fill","Headline5","HeaderTag","FlexDiv","Flex","Text","OpenOrder","allChainsTriggerObj","show","setShow","isFiltering","setIsFiltering","setLimitOrders","mutateWarningTokens","useMutateWarningTokens","triggerToLimitOrder","triggers","div","Headline","StatusTab","noText","onStatus","onChange","ButtonWrapper","StepsModal","txdata","txHash","gasCeiling","deadlineInDays","createTrigger","onclose","ifAuthorized","useIfAuthorized","isWalletContract","useIsWalletContract","balanceMutate","useFetchUserTokensBalance","mutatePositionMap","useMutatePositionMap","currentTokenPrice","tokensPrice","useCurrentChainToken","txReceipt","step","setStep","setPositionId","positionForm","setPositionForm","outerLimitPrice","inputCurrencyAmount","setPayload","signedPayload","onChainApproved","setOnChainApproved","permitForm","setPermitForm","approved","isPayloadReady","trackLimitOrderOpen","tokenMap","getTokenMap","positionDetails","token0","get","token1","amount0","position","toExact","amount1","token0Price","price","token1Price","token0Value","bigDecimal","token1Value","logs","forEach","log","blockNumber","getAddress","getDeadline","String","StepsContent","approveOnChain","parseFloat","permitInfo","ButtonBox","primaryDisable","ConfirmLimitOrder","sellToken","buyToken","rangeWidth","goBack","state","setModalState","useModal","isOpen","STEPS_MODAL","tx","setTx","setData","setError","handleCreateTrigger","signatureInfo","openSnackBar","currentTheme","getCreateTriggerFailure","transaction","E_ModalKey","getTransactionForLimitOrder","estimateGas","gas","calculateGasMargin","getLogger","JSON","details","Modal","isModalOpen","disableBackgroundOnClose","closeIcon","Container","xl","TokenWrapper","TokenTitle","Body1","InfoCards","sm2","TabWrapper","Tab","SwitchMenuTab","CutLine","Line2","TimeZone","T2","LimitOrderPreview","form","onTitleClick","tab","setTab","ifBuy","timeZone","momentTimeZone","Date","getTime","useOnNetworkAccountChange","DrawerTitle","isDrawer","Headline4","fontWeight","gap","TokenCard","menu","defaultSelected","indexOf","onSelect","value","InfoCard","title","content","amount","marketPrice","buy","sell","minPrice","maxPrice","hint","DEFAULT_FEE_TIER","formatUSDAmount","gasInDollar","moment","format","diff","FeeInfoCard","styles","feeInfo","fee","DEFAULT_APERTURE_FEE","token","Headline1","ContentContainer","SwapButton","round","SwapButtonIcon","withConfig","textAlt","transitions","default","Gap","GapSmall","sm","Subtitle2","StyledChainAMMLabel","ChainAMMLabel","PlaceOrderContent","onConfirm","isChainSupported","isTokenMapLoading","useFetchTokenMap","isSell","setIsSell","isTokenWarningOpen","tokenWarning","setTokenWarning","setDisabled","setSellToken","setBuyToken","setSellAmount","setBuyAmount","setPrice","base","setBase","setApproved","setFeeTier","setRangeWidth","gasCeilingAmount","setGasCeiling","getGasCeiling","showNotification","setShowNotification","pool","setPool","tick","setTick","priorityList","setPriorityList","expireDays","setExpireDays","expireDaysOnError","setExpireDaysOnError","poolError","setPoolError","ifSellToken0","toLowerCase","marketPriceLoading","useFetchCurrentChainMarketPrice","supportedFeeTier","feeTierMatch","Set","SupportedFeeAmount","feeAmount","add","Object","values","sort","a","b","tickSpacing","TICK_SPACINGS","has","newTick","tickToLimitOrderRange","getNewTick","tickAvg","updatePriceByTick","newPrice","tickToPrice","trimNumber","toFixed","invert","handleSwap","buyIndex","findIndex","item","sellIndex","native","gasCeilingButtonError","handleConfirm","tickCurrent","tickRange","tickLower","tickUpper","replace","updatePriority","newPriorityList","index","priority","splice","onPlusMinusClick","newTickRange","tokenAddress","fetchUnknownToken","handleSelectToken","checkAddresses","toggleSelectTokenModal","open","toggleTokenWarningModal","SwapInputWrapper","SwapInput","showMax","showBalance","openTokenSelectModal","onValueChange","humanReadableAmount","parsePrice","priceToClosestTickSafe","decimalScale","decimals","TokenSwap","onCloseToMarketClick","onMinusClick","onPlusClick","sellTicker","buyTicker","onBlur","setAction","getMarketPrice","AdvancedSetting","defaultFeeTier","defaultRevenue","DEFAULT_REVENUE","onFeeTierChange","onRangeWidthChange","gasCeilingPercentage","onGasCeilingChange","percentage","onGasCeilingError","gasCeilingInputError","maxExpireDays","AUTOMATION_EXPIRATION_IN_DAYS","onExpireInput","Notification","style","marginTop","ApproveTokenBtn","contractAddress","approveOnChange","approve","useNative","br","isProdEnv","padding","TokenWarningContent","exploreURL","getExplorerURL","confirmClick","Token","name","cancelClick","PlaceOrder","network","preview","setPreview","setForm","setSell","NetworkIcons","subText","setBuy","DEFAULT_GAS_CEILING","handlePlaceOrderConfirm","Body","LimitOrders","setNetwork","notSupported","isManta","DEFAULT_AMM","DEFAULT_NETWORK","PageContainer","grey","darkGrey2","Header","SwapContainer","ExchangeWrapper","DivideDiv","DivideY","account_","_errors_account_js__WEBPACK_IMPORTED_MODULE_0__","o","docsPath","_accounts_utils_parseAccount_js__WEBPACK_IMPORTED_MODULE_1__","T","message_","_utils_encoding_toHex_js__WEBPACK_IMPORTED_MODULE_2__","$G","raw","Uint8Array","NC","request","method","params","retryCount","domain","primaryType","types","EIP712Domain","_utils_typedData_js__WEBPACK_IMPORTED_MODULE_2__","cj","iC","typedData","_utils_stringify_js__WEBPACK_IMPORTED_MODULE_3__","P","_","_utils_data_isHex_js__WEBPACK_IMPORTED_MODULE_4__","v"],"sourceRoot":""}