{"version":3,"file":"static/chunks/774-e8aaca9f65b9458e.js","mappings":"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","sources":["webpack://_N_E/./hooks/useFetchUserTokenApproval.ts","webpack://_N_E/./components/Button/LoadingBtn.tsx","webpack://_N_E/./components/Button/ApprovalBtn.tsx","webpack://_N_E/./views/style.ts","webpack://_N_E/<anon>"],"sourcesContent":["import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { IERC20__factory } from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport useSWR from \"swr/immutable\";\nimport { Address, PublicClient, formatUnits } from \"viem\";\nimport { useAccount } from \"wagmi\";\n\nexport function useFetchUserTokenApproval(\n  tokenAddress: string,\n  decimals: number,\n  spender: string\n) {\n  const { address: walletAddress, isConnected } = useAccount();\n  const { networkId, publicClient } = useNetwork();\n  const showFetch =\n    isConnected &&\n    networkId &&\n    walletAddress &&\n    networkId === publicClient.chain?.id;\n  return useSWR(\n    showFetch\n      ? `user-token-allowance-${walletAddress}-${tokenAddress}-${spender}`\n      : null,\n    () =>\n      getTokenAllowance(\n        publicClient,\n        walletAddress!,\n        tokenAddress as Address,\n        decimals,\n        spender as Address\n      )\n  );\n}\n\nasync function getTokenAllowance(\n  client: PublicClient,\n  walletAddress: Address,\n  tokenAddress: Address,\n  decimals: number,\n  spender: Address\n) {\n  const allowanceBN = await client.readContract({\n    address: tokenAddress,\n    abi: IERC20__factory.abi,\n    functionName: \"allowance\",\n    args: [walletAddress, spender],\n  });\n\n  return {\n    allowanceBN,\n    allowance: formatUnits(allowanceBN, decimals),\n  };\n}\n","import { AccessoryIcons } from \"@aperture/assetkit\";\nimport styled from \"styled-components\";\n\nexport interface LoadingProps {\n  loadingColor?: string;\n  loadingWidth?: number;\n  loadingHeight?: number;\n}\n\nexport const Loading = styled(AccessoryIcons.AnimationLoading)<{\n  loadingColor?: string;\n  loadingWidth?: number;\n  loadingHeight?: number;\n}>`\n  width: ${({ loadingWidth }) => loadingWidth || 20}px;\n  height: ${({ loadingHeight }) => loadingHeight || 20}px;\n  > circle {\n    stroke: ${({ loadingColor }) => loadingColor || \"white\"};\n  }\n`;\n","import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { useFetchUserTokenApproval } from \"@/hooks/useFetchUserTokenApproval\";\nimport { useWaitForTransaction } from \"@/hooks/useWaitForTransaction\";\nimport { useSendTransactionWithGas } from \"@/hooks/wagmi/useSendTransactionWithGas\";\nimport { MAX_UINT256 } from \"@/utils/helper\";\nimport { AccessoryIcons } from \"@aperture/assetkit\";\nimport { IToken } from \"@aperture/types\";\nimport { Button, Spinner } from \"@aperture/uikit\";\nimport {\n  IERC20__factory,\n  getLogger,\n} from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport { Color } from \"@ui/components/Button/types\";\nimport bigDecimal from \"js-big-decimal\";\nimport { CSSProperties, useEffect, useMemo, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { Address } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { useSnackbarV2 } from \"../SnackbarContext/SnackbarContextV2\";\nimport { Loading, LoadingProps } from \"./LoadingBtn\";\n\nconst ApprovalButton = styled(Button)<{ btntype: string }>`\n  ${({ btntype, theme, disabled }) =>\n    btntype == \"success\"\n      ? `\n    background: ${theme.colors.global.background.BG3} !important;\n    color: ${theme.colors.global.success} !important;\n    border: 2px solid ${theme.colors.global.background.BG3} !important;\n    opacity: ${disabled ? 0.5 : 1};\n    :hover {\n        background: ${theme.colors.global.background.BG3} !important;\n        opacity: ${disabled ? 0.5 : 0.8}\n    }\n  `\n      : btntype == \"connect\"\n      ? `\n    background: none !important;\n    color: ${theme.colors.global.primary} !important;\n    border: 2px solid ${theme.colors.global.primary} !important;\n    opacity: ${disabled ? 0.3 : 1};\n    :hover {\n        background: none !important;\n        opacity: ${disabled ? 0.3 : 0.8}\n    }\n  `\n      : `\n    background: none !important;\n    color: ${theme.colors.global.primary} !important;\n    border: 2px solid ${theme.colors.global.primary} !important;\n    opacity: ${disabled ? 0.5 : 1};\n    :hover {\n        background: none !important;\n        opacity: ${disabled ? 0.5 : 0.8}\n    }\n  `};\n  cursor: ${({ disabled }) => (disabled ? \"auto\" : \"pointer\")};\n  padding: 0;\n  padding-inline: 0;\n  font-family: \"Roboto Flex\";\n  font-size: 16px;\n  font-style: normal;\n  font-weight: 500;\n  line-height: 20px;\n`;\n\nexport const ApproveTokenBtn: React.FC<\n  {\n    token?: IToken;\n    contractAddress: Address;\n    amount: string;\n    canBeZero?: boolean;\n    approveOnChange: (approved: boolean) => void;\n    variant?: \"contained\" | \"outlined\";\n    color?: Color;\n    style?: CSSProperties;\n    useNative?: boolean;\n    hidden?: boolean;\n    loading?: boolean;\n    useSpecificAmount?: boolean;\n  } & LoadingProps\n> = ({\n  token,\n  contractAddress,\n  amount,\n  useSpecificAmount = false,\n  canBeZero = false,\n  approveOnChange,\n  variant = \"contained\",\n  color = \"primary\",\n  style,\n  useNative,\n  hidden,\n  loading = false,\n  loadingColor,\n  loadingWidth,\n  loadingHeight,\n}) => {\n  const { isConnected, address: walletAddress } = useAccount();\n  const { isChainSupported } = useNetwork();\n  const { addSnackbar } = useSnackbarV2();\n  const [waiting, setWaiting] = useState(-1); // -1 initial state; 0 waiting for approval data; 1 got approval data\n  const [txHash, setTxHash] = useState<Address>(undefined);\n  const tokenAddress = token?.address!;\n\n  const approveRequest = useMemo(() => {\n    const amountToApprove = useSpecificAmount\n      ? bigDecimal.round(\n          bigDecimal.multiply(amount, 10 ** token?.decimals),\n          0,\n          bigDecimal.RoundingModes.UP\n        )\n      : MAX_UINT256;\n    return {\n      from: walletAddress,\n      to: tokenAddress,\n      data: IERC20__factory.createInterface().encodeFunctionData(\"approve\", [\n        contractAddress,\n        amountToApprove,\n      ]),\n    };\n  }, [\n    amount,\n    contractAddress,\n    token?.decimals,\n    tokenAddress,\n    useSpecificAmount,\n    walletAddress,\n  ]);\n\n  const {\n    data: approvalData,\n    isLoading: isApprovalLoading,\n    mutate: approvalMutate,\n  } = useFetchUserTokenApproval(\n    tokenAddress,\n    token ? token.decimals : 18,\n    contractAddress\n  );\n\n  useEffect(() => {\n    if (!isApprovalLoading && approvalData) {\n      getLogger().debug(\"Token.ApprovalData\", {\n        approvalData,\n      });\n    }\n  }, [isApprovalLoading, approvalData]);\n\n  const {\n    ready,\n    data: txData,\n    sendTransaction,\n    isPending: isTxLoading,\n    isSuccess: isTxSuccess,\n  } = useSendTransactionWithGas(approveRequest);\n\n  const {\n    data: waitTxData,\n    isError: isWaitTxError,\n    isLoading: isWaitTxLoading,\n  } = useWaitForTransaction({\n    hash: txHash,\n  });\n\n  useEffect(() => {\n    approvalMutate();\n  }, [isConnected, isChainSupported]);\n\n  useEffect(() => {\n    if (!isTxLoading && isTxSuccess) {\n      setWaiting(0);\n    }\n  }, [isTxLoading, isTxSuccess]);\n\n  useEffect(() => {\n    if (txData) {\n      setTxHash(txData);\n      addSnackbar({\n        info: \"Your approve request has been sent.\",\n        status: \"completed\",\n        transaction: {\n          hash: txData,\n          successMsg: `You have successfully approved ${\n            token?.ticker || \"token\"\n          }`,\n          failureMsg: `${token?.ticker || \"Token\"} approval failed`,\n        },\n      });\n    }\n  }, [txData]);\n\n  const timerRef = useRef(null);\n  useEffect(() => {\n    if (!isWaitTxLoading && waitTxData && waitTxData.status === \"success\") {\n      if (timerRef.current) {\n        clearTimeout(timerRef.current);\n      }\n      timerRef.current = setTimeout(() => {\n        approvalMutate();\n        setTxHash(undefined);\n        setWaiting(1);\n      }, 500);\n    }\n  }, [waitTxData, isWaitTxLoading]);\n\n  useEffect(() => {\n    if (isWaitTxError) {\n      setTxHash(undefined);\n      setWaiting(1);\n    }\n  }, [isWaitTxError]);\n\n  useEffect(() => {\n    if (isConnected)\n      approveOnChange(\n        useNative\n          ? true\n          : bigDecimal.compareTo(amount, approvalData?.allowance ?? \"0\") <= 0\n      );\n  }, [approvalData, useNative, amount, isConnected]);\n\n  const isDisabled = useMemo(() => {\n    return (\n      !isConnected ||\n      !isChainSupported ||\n      !approvalData ||\n      (canBeZero\n        ? bigDecimal.compareTo(amount, \"0\") < 0\n        : bigDecimal.compareTo(amount, \"0\") <= 0) ||\n      bigDecimal.compareTo(amount, approvalData?.allowance ?? \"0\") <= 0 ||\n      isApprovalLoading ||\n      isTxLoading ||\n      waiting === 0 ||\n      !token\n    );\n  }, [\n    isConnected,\n    isChainSupported,\n    token,\n    amount,\n    approvalData,\n    isApprovalLoading,\n    isTxLoading,\n    waiting,\n  ]);\n\n  const approvalButtonText = useMemo(() => {\n    if (!isConnected) {\n      return \"Connect Wallet\";\n    } else if (!isChainSupported) {\n      return \"Wrong Network\";\n    } else if (!token) {\n      return \"Select Token\";\n    } else if (\n      canBeZero\n        ? bigDecimal.compareTo(amount, \"0\") < 0\n        : bigDecimal.compareTo(amount, \"0\") <= 0\n    ) {\n      return \"Input Token Amount\";\n    } else if (!approvalData || isApprovalLoading) {\n      return (\n        <>\n          <Spinner /> Loading\n        </>\n      );\n    } else if (isTxLoading || waiting === 0) {\n      return (\n        <>\n          <Spinner /> Approving\n        </>\n      );\n    } else if (\n      bigDecimal.compareTo(amount, approvalData?.allowance ?? \"0\") <= 0\n    ) {\n      return (\n        <>\n          <AccessoryIcons.CheckMarkIcon width={20} height={20} />\n          Approved {token?.ticker}\n        </>\n      );\n    } else {\n      return `Approve ${token?.ticker}`;\n    }\n  }, [\n    isConnected,\n    isChainSupported,\n    token,\n    amount,\n    approvalData,\n    isApprovalLoading,\n    isTxLoading,\n    waiting,\n  ]);\n\n  const approvalButtonType = useMemo(() => {\n    if (!isConnected) {\n      return \"connect\";\n    } else if (!isChainSupported) {\n      return \"\";\n    } else if (!token) {\n      return \"\";\n    } else if (\n      canBeZero\n        ? bigDecimal.compareTo(amount, \"0\") < 0\n        : bigDecimal.compareTo(amount, \"0\") <= 0\n    ) {\n      return \"\";\n    } else if (!approvalData || isApprovalLoading) {\n      return \"\";\n    } else if (isTxLoading || waiting === 0) {\n      return \"\";\n    } else if (\n      bigDecimal.compareTo(amount, approvalData?.allowance ?? \"0\") <= 0\n    ) {\n      return \"success\";\n    } else {\n      return \"\";\n    }\n  }, [\n    isConnected,\n    isChainSupported,\n    token,\n    amount,\n    approvalData,\n    isApprovalLoading,\n    isTxLoading,\n    waiting,\n  ]);\n\n  return (\n    <>\n      {!(useNative || hidden) && (\n        <ApprovalButton\n          variant={variant}\n          size=\"lg\"\n          width=\"100%\"\n          style={style}\n          onClick={() => sendTransaction?.()}\n          disabled={isDisabled}\n          btntype={approvalButtonType}\n        >\n          {loading ? (\n            <Loading\n              loadingColor={loadingColor}\n              loadingWidth={loadingWidth}\n              loadingHeight={loadingHeight}\n            />\n          ) : (\n            approvalButtonText\n          )}\n        </ApprovalButton>\n      )}\n    </>\n  );\n};\n\nexport default ApproveTokenBtn;\n","import { ApertureLogos } from \"@aperture/assetkit\";\nimport {\n  CommonLgText,\n  FlexColumn,\n  Headline1,\n  Headline5,\n  T1Regular,\n} from \"@aperture/uikit\";\nimport styled from \"styled-components\";\nimport { LayoutProps, SpaceProps, compose, layout, space } from \"styled-system\";\n\nexport const Headline = styled(T1Regular)`\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  font-family: \"Roboto Flex\";\n`;\n\nexport const Title = styled.div`\n  display: flex;\n  align-items: center;\n  flex-direction: row;\n`;\n\nexport const TitleText = styled(Headline1)`\n  width: 100%;\n  font-weight: 500;\n  font-family: \"Dunbar Tall\";\n  text-align: start;\n  color: ${({ theme }) => theme.colors.global.text.T1};\n`;\n\nexport const Container = styled.div`\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  gap: ${({ theme }) => theme.spacing.xl};\n`;\n\nexport const Row = styled.div`\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n`;\n\nexport const RowWithGap = styled.div<{ gap: string }>`\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: ${({ gap }) => gap};\n`;\n\nexport const PageContainer = styled(FlexColumn)`\n  margin-top: 20px;\n  align-items: center;\n  gap: ${({ theme }) => theme.spacing[\"3xl\"]};\n  width: 100%;\n  max-width: calc(100vw * 0.75);\n  padding-bottom: 30px;\n`;\n\nexport const EmptyBox = styled.div<LayoutProps & SpaceProps>`\n  width: 100%;\n  height: 276px;\n  font-weight: 500;\n  border-radius: ${({ theme }) => theme.radii.md};\n  display: flex;\n  flex-direction: column;\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  > svg,\n  path {\n    fill: ${({ theme }) => theme.colors.global.text.T1};\n  }\n  ${compose(layout, space)}\n`;\n\nexport const CommonContainer = styled.div<LayoutProps & { padding?: string }>`\n  padding: ${({ padding }) => padding || \"0\"};\n  background: ${({ theme }) => theme.colors.global.background.BG2};\n  color: ${({ theme }) => theme.colors.global.text.T1};\n  border: ${({ padding }) =>\n    !padding\n      ? \"none\"\n      : `1px solid ${({ theme }) => theme.colors.global.line.Line2};`};\n  border-radius: ${({ theme }) => theme.radii.md};\n  box-sizing: border-box;\n  ${layout}\n`;\n\nexport const PositionContainer = styled(CommonContainer)`\n  width: 100%;\n`;\n\nexport const OtherInfo = styled(CommonContainer)<{ gap?: string }>`\n  display: flex;\n  flex-direction: column;\n  gap: ${({ theme, gap }) => gap ?? theme.spacing.md};\n  color: ${({ theme }) => theme.colors.global.text.T1};\n`;\n\nexport const RowTitle = styled(Headline5)`\n  color: ${({ theme }) => theme.colors.global.text.T1};\n`;\nexport const Text1 = styled(Headline5)`\n  font-size: 16px;\n  line-height: 20px;\n  font-weight: 500;\n  color: ${({ theme }) => theme.colors.global.text.T1};\n`;\nexport const Text2 = styled(Text1)`\n  font-weight: 400;\n  font-size: 14px;\n  line-height: 16px;\n`;\n\nexport const Expires = styled(FlexColumn)`\n  width: 160px;\n  align-items: flex-end;\n  justify-content: center;\n  gap: ${({ theme }) => theme.spacing.xl};\n  color: ${({ theme }) => theme.colors.global.text.T1};\n`;\n\nexport const DividerHorizontal = styled.div`\n  height: 1px;\n  width: 100%;\n  background-color: ${({ theme }) => theme.colors.global.line.Line2};\n  align-self: stretch;\n`;\n\nexport const DividerVertical = styled.div`\n  ::after {\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    content: \"\";\n    width: 1px;\n    height: 100%;\n    background-color: ${({ theme }) => theme.colors.global.line.Line2};\n  }\n`;\n\nexport const TimeZone = styled(CommonLgText)`\n  text-align: right;\n  color: ${({ theme }) => theme.colors.global.text.T3};\n  margin-top: -8px;\n`;\n\nexport const IconDiv = styled.div<{ width: number; height: number }>`\n  height: ${({ height }) => height}px;\n  width: ${({ width }) => width}px;\n  flex: 1 1 0%;\n  display: flex;\n  align-items: center;\n  gap: ${({ theme }) => theme.spacing.md};\n`;\n\nexport const Loader = styled(ApertureLogos.TransparentLogo)`\n  height: 80px;\n  width: 80px;\n  animation: rotation infinite 3s linear;\n\n  @keyframes rotation {\n    from {\n      transform: rotate(0deg);\n    }\n\n    to {\n      transform: rotate(360deg);\n    }\n  }\n`;\n"],"names":["getTokenAllowance","client","walletAddress","tokenAddress","decimals","spender","allowanceBN","readContract","address","abi","IERC20__factory","functionName","args","allowance","formatUnits","Loading","styled","AccessoryIcons","withConfig","loadingWidth","param","loadingHeight","loadingColor","ApprovalButton","Button","btntype","theme","disabled","colors","global","background","BG3","success","concat","primary","ApproveTokenBtn","token","contractAddress","amount","useSpecificAmount","canBeZero","approveOnChange","variant","color","style","useNative","hidden","loading","isConnected","useAccount","isChainSupported","useNetwork","addSnackbar","useSnackbarV2","waiting","setWaiting","useState","txHash","setTxHash","undefined","approveRequest","useMemo","amountToApprove","bigDecimal","MAX_UINT256","from","to","data","encodeFunctionData","approvalData","isLoading","isApprovalLoading","mutate","approvalMutate","useFetchUserTokenApproval","publicClient","networkId","showFetch","chain","id","useSWR","useEffect","getLogger","debug","ready","txData","sendTransaction","isPending","isTxLoading","isSuccess","isTxSuccess","useSendTransactionWithGas","waitTxData","isError","isWaitTxError","isWaitTxLoading","useWaitForTransaction","hash","info","status","transaction","successMsg","ticker","failureMsg","timerRef","useRef","current","clearTimeout","setTimeout","isDisabled","approvalButtonText","jsx_runtime","jsxs","Fragment","jsx","Spinner","width","height","approvalButtonType","size","onClick","ApprovalBtn","Headline","T1Regular","Title","TitleText","Headline1","text","T1","Container","spacing","xl","Row","RowWithGap","gap","PageContainer","FlexColumn","EmptyBox","radii","md","lg","line","Line1","T3","compose","layout","space","CommonContainer","padding","BG2","Line2","OtherInfo","RowTitle","Headline5","Text1","Text2","Expires","DividerHorizontal","TimeZone","CommonLgText","IconDiv","Loader","ApertureLogos"],"sourceRoot":""}