pancake-frontend icon indicating copy to clipboard operation
pancake-frontend copied to clipboard

feat: Swap widget

Open memoyil opened this issue 11 months ago • 3 comments


PR-Codex overview

This PR introduces various updates to the Swap package, including adding new interfaces, hooks, components, and configurations related to swapping functionalities.

Detailed summary

  • Added Block interface in types.ts
  • Added SettingsMode enum in types.ts
  • Added useSessionChainId hook
  • Added SwapWidget component
  • Added multiple components and hooks related to V3Swap
  • Added currencyId utility function
  • Added useAllowRecipient hook
  • Added useIsWrapping hook
  • Added useUserChart hook
  • Added useIsMMSupportChain hook
  • Added safeGetAddress utility function
  • Added useStableSwapPairs function
  • Added useUserShowTestnet hook
  • Added enums and types related to ConfirmModalState
  • Added erc20Bytes32ABI constant
  • Added FormContainer component
  • Added ETH_WARNING_LIST constant
  • Added styled components for SwapContainer and InputCurrencyWrapper
  • Added useCurrentBlockTimestamp hook
  • Updated tsup.config.ts
  • Added useNativeCurrency hook
  • Added getTokenAddress utility function
  • Added styled component for AdvancedDetailsFooter
  • Added useAccountActiveChain hook

The following files were skipped due to too many changes: packages/swap/src/hooks/useAccountActiveChain.ts, packages/swap/src/utils/addressHelpers.ts, packages/swap/src/state/types.ts, packages/swap/src/utils/errors.ts, packages/swap/src/utils/requestWithTimeout.ts, packages/swap/tsconfig.json, packages/swap/src/state/multicall/chunkArray.ts, packages/swap/src/view/V3Swap/hooks/useSlippageAdjustedAmounts.ts, packages/swap/src/view/components/SwapWarningModal/56/GalaWarning.tsx, packages/swap/src/view/components/SwapWarningModal/56/ABNBWarning.tsx, packages/swap/src/view/components/SwapWarningModal/56/FREEWarning.tsx, packages/swap/src/view/V3Swap/hooks/useRouterAddress.ts, packages/swap/src/view/V3Swap/containers/RiskCheck.tsx, packages/swap/src/config/abi/revenueSharingPoolGateway.ts, packages/swap/src/view/components/FormattedPriceImpact.tsx, packages/swap/src/view/components/SwapWarningModal/56/ItamWarning.tsx, packages/swap/src/view/V3Swap/hooks/useIsWrapping.ts, packages/swap/src/Menu/hooks/usePotteryStatus.ts, packages/swap/src/view/V3Swap/containers/FormHeader.tsx, packages/swap/src/Menu/GlobalSettings/index.tsx, packages/swap/src/state/queries/getDerivedPrices.ts, packages/swap/src/utils/isUserRejected.ts, packages/swap/src/swap.tsx, packages/swap/src/utils/node/pokt.ts, packages/swap/src/utils/maxAmountSpend.ts, packages/swap/src/hooks/useCurrencyUsdPrice.ts, packages/swap/src/utils/contractHelpers.ts, packages/swap/src/Menu/UserMenu/ClaimYourNFT.tsx, packages/swap/src/view/MMLinkPools/components/MMSlippageTolerance.tsx, packages/swap/src/utils/batcher.ts, packages/swap/src/view/components/SwapWarningModal/56/CcarWarning.tsx, packages/swap/src/state/user/hooks/useUserAddedTokens.ts, packages/swap/src/view/hooks/useCanBuyCrypto.ts, packages/swap/src/view/MMLinkPools/hooks/useMMParam.ts, packages/swap/src/view/components/SwapWarningModal/56/LUSDWarning.tsx, packages/swap/src/view/components/SwapWarningModal/56/METISWarning.tsx, packages/swap/src/Menu/hooks/useCompetitionStatus.ts, packages/swap/src/view/components/SwapWarningModal/56/BTTWarning.tsx, packages/swap/src/view/hooks/useEstimatedAmount.ts, packages/swap/src/Menu/hooks/useTradingRewardStatus.ts, packages/swap/src/view/hooks/useRefreshBlockNumber.ts, packages/swap/src/view/components/SwapRoute.tsx, packages/swap/src/view/components/SwapWarningModal/1/ALETHWarning.tsx, packages/swap/src/utils/client.ts, packages/swap/src/view/components/CommitButton.tsx, packages/swap/src/view/MMLinkPools/hooks/useMMQuoteCountDown.ts, packages/swap/src/view/components/SwapWarningModal/56/SafemoonWarning.tsx, packages/swap/src/view/V3Swap/containers/BuyCryptoLink.tsx, packages/swap/src/view/components/SwapWarningModal/Acknowledgement.tsx, packages/swap/src/hooks/useTransactionDeadline.ts, packages/swap/src/Menu/hooks/useMenuItemsStatus.ts, packages/swap/src/utils/node/nodeReal.ts, packages/swap/src/view/components/SwapWarningModal/56/XCADWarning.tsx, packages/swap/src/hooks/useGetENSAddressByName.ts, packages/swap/src/Menu/UserMenu/WalletUserMenuItem.tsx, packages/swap/src/Menu/utils.ts, packages/swap/src/config/abi/bCakeFarmBoosterProxyFactory.ts, packages/swap/src/view/components/ConfirmSwapModalContainer.tsx, packages/swap/src/state/actions.ts, packages/swap/src/config/constants/index.ts, packages/swap/src/hooks/useMulticallGasLimit.ts, packages/swap/src/utils/getBlockExplorerLink.ts, packages/swap/src/hooks/useWorker.ts, packages/swap/src/state/fetch/fetchBestPriceWithRouter.ts, packages/swap/src/Widget.tsx, packages/swap/src/view/V3Swap/hooks/useParsedAmounts.ts, packages/swap/src/view/V3Swap/containers/Recipient.tsx, packages/swap/src/Menu/hooks/useVotingStatus.ts, packages/swap/src/view/V3Swap/hooks/useCheckSufficient.ts, packages/swap/src/Menu/UserMenu/ProfileUserMenuItem.tsx, packages/swap/src/view/MMLinkPools/constants.ts, packages/swap/src/constants/locales.ts, packages/swap/src/hooks/useTokenAllowance.ts, packages/swap/src/view/V3Swap/containers/PricingAndSlippage.tsx, packages/swap/src/Menu/UserMenu/WalletWrongNetwork.tsx, packages/swap/src/utils/infoQueryHelpers.ts, packages/swap/src/Menu/hooks/useIfoStatus.ts, packages/swap/src/state/normalizers.ts, packages/swap/src/utils/viem.ts, packages/swap/src/state/useSwapActionHandlers.ts, packages/swap/src/view/components/SwapTransactionErrorContent.tsx, packages/swap/src/state/transactions/actions.ts, packages/swap/src/hooks/useActiveChainId.ts, packages/swap/src/view/V3Swap/containers/FlipButton.tsx, packages/swap/src/state/user/smartRouter.ts, packages/swap/src/view/components/SwapWarningModal/index.tsx, packages/swap/package.json, packages/swap/src/view/components/SwapWarningModal/56/index.tsx, packages/swap/src/hooks/useContract.ts, packages/swap/src/state/multicall/retry.ts, packages/swap/src/view/hooks/useTradingRewardTokenList.tsx, packages/swap/src/view/MMLinkPools/hooks/useMMTradeInfo.ts, packages/swap/src/state/multicall/actions.ts, packages/swap/src/Menu/GlobalSettings/GasSettings.tsx, packages/swap/src/config/chains.ts, packages/swap/src/config/abi/stableSwapNativeHelper.ts, packages/swap/src/view/V3Swap/hooks/useSwapBestTrade.ts, packages/swap/src/Menu/GlobalSettings/WebNotiToggle.tsx, packages/swap/src/Menu/UserMenu/WalletTransactions.tsx, packages/swap/src/view/V3Swap/index.tsx, packages/swap/src/config/abi/bCakeProxy.ts, packages/swap/src/hooks/useV2Pools.ts, packages/swap/src/view/components/ProgressSteps.tsx, packages/swap/src/config/pools.ts, packages/swap/src/view/MMLinkPools/hooks/useIsMMTradeBetter.tsx, packages/swap/src/utils/worker.ts, packages/swap/src/view/V3Swap/components/RoutesBreakdown.tsx, packages/swap/src/Menu/UserMenu/TransactionRow.tsx, packages/swap/src/view/V3Swap/containers/TradeDetails.tsx, packages/swap/src/utils/index.ts, packages/swap/src/view/MMLinkPools/apis/index.ts, packages/swap/src/state/index.ts, packages/swap/src/view/MMLinkPools/hooks/useIsMMQuotingPair.ts, packages/swap/src/view/components/styleds.tsx, packages/swap/src/view/SwapFeaturesContext.tsx, packages/swap/src/config/abi/pointCenterIfo.ts, packages/swap/src/state/user/actions.ts, packages/swap/src/state/transactions/reducer.ts, packages/swap/src/state/multicall/fetchChunk.ts, packages/swap/src/view/MMLinkPools/types.ts, packages/swap/src/utils/getBlocksFromTimestamps.ts, packages/swap/src/view/MMLinkPools/hooks/useSwapCallArguments.ts, packages/swap/src/view/hooks/useWarningImport.tsx, packages/swap/src/utils/graphql.ts, packages/swap/src/Menu/UserMenu/WalletModal.tsx, packages/swap/src/hooks/usePoolsOnChain.ts, packages/swap/src/view/V3Swap/hooks/useSwapInputError.ts, packages/swap/src/config/abi/Quoter.json, packages/swap/src/config/abi/weth.ts, packages/swap/src/view/V3Swap/containers/ApproveStepFlow.tsx, packages/swap/src/view/V3Swap/containers/MMCommitButton.tsx, packages/swap/src/state/useLPApr.ts, packages/swap/src/hooks/useCommonPools.ts, packages/swap/src/Menu/hooks/useMenuItems.ts, packages/swap/src/state/reducer.ts, packages/swap/src/Menu/index.tsx, packages/swap/src/view/V3Swap/hooks/useSwapCallback.ts, packages/swap/src/state/transactions/updater.tsx, packages/swap/src/config/abi/v3Airdrop.ts, packages/swap/src/view/V3Swap/hooks/useSwapCallArguments.ts, packages/swap/src/state/block/hooks.ts, packages/swap/src/hooks/useCallWithGasPrice.ts, packages/swap/src/config/abi/v3PoolState.ts, packages/swap/src/view/MMLinkPools/hooks/useDerivedSwapInfoWithMM.ts, packages/swap/src/state/multicall/reducer.ts, packages/swap/src/view/hooks/useStableConfig.ts, packages/swap/src/config/constants/endpoints.ts, packages/swap/src/view/hooks/Tokens.ts, packages/swap/src/utils/wagmi.ts, packages/swap/src/view/V3Swap/utils/exchange.ts, packages/swap/src/view/components/AddressInputPanel.tsx, packages/swap/src/config/abi/SIDResolver.ts, packages/swap/src/config/abi/anniversaryAchievement.ts, packages/swap/src/view/components/RouterViewer.tsx, packages/swap/src/hooks/useWrapCallback.ts, packages/swap/src/config/constants/info.ts, packages/swap/src/utils/exchange.ts, packages/swap/src/hooks/useV3Pools.ts, packages/swap/src/config/abi/Multicall.ts, packages/swap/src/config/abi/stableLP.ts, packages/swap/src/config/abi/bunnyFactory.ts, packages/swap/src/config/abi/ifoV1.ts, packages/swap/src/config/abi/QuoterV2.json, packages/swap/src/view/V3Swap/components/RouteDisplayModal.tsx, packages/swap/src/view/MMLinkPools/hooks/useGetRFQTrade.ts, packages/swap/src/Menu/UserMenu/index.tsx, packages/swap/src/config/abi/infoStableSwap.ts, packages/swap/src/config/abi/v3Migrator.ts, packages/swap/src/Menu/UserMenu/hooks/useCakeBenefits.ts, packages/swap/src/config/abi/pancakeSwapSmartRouter.json, packages/swap/src/config/abi/SID.ts, packages/swap/src/view/index.tsx, packages/swap/src/view/components/SwapModalHeader.tsx, packages/swap/src/view/V3Swap/components/TransactionConfirmSwapContent.tsx, packages/swap/src/Menu/GlobalSettings/TransactionSettings.tsx, packages/swap/src/Menu/config/config.ts, packages/swap/src/config/abi/crossFarmingProxy.ts, packages/swap/src/wallet/hooks.ts, packages/swap/src/config/abi/vCake.ts, packages/swap/src/view/V3Swap/containers/FormMain.tsx, packages/swap/src/view/V3Swap/hooks/useConfirmModalState.tsx, packages/swap/src/config/nodes.ts, packages/swap/src/state/transactions/hooks.tsx, packages/swap/src/view/components/AdvancedSwapDetails.tsx, packages/swap/src/state/fetch/fetchDerivedPriceData.ts, packages/swap/src/state/multicall/updater.tsx, packages/swap/src/config/abi/chainlinkOracle.ts, packages/swap/src/config/abi/mmLinkedPool.ts, packages/swap/src/view/MMLinkPools/hooks/useSwapCallback.ts, packages/swap/src/hooks/useApproveCallback.ts, packages/swap/src/view/MMLinkPools/utils/exchange.ts, packages/swap/src/config/abi/tradingCompetitionEaster.ts, packages/swap/src/view/components/CurrencyInputHeader.tsx, packages/swap/src/config/abi/revenueSharingPool.ts, packages/swap/src/config/abi/bCakeFarmBooster.ts, packages/swap/src/config/abi/ifoV2.ts, packages/swap/src/state/user/reducer.ts, packages/swap/src/view/V3Swap/components/SwapModalFooter.tsx, packages/swap/src/view/MMLinkPools/hooks/useMMOrderBookTrade.ts, packages/swap/src/view/V3Swap/containers/ConfirmSwapModal.tsx, packages/swap/src/config/abi/tradingCompetitionMoD.ts, packages/swap/src/view/MMLinkPools/components/MMCommitButton.tsx, packages/swap/src/config/abi/affiliateProgram.ts, packages/swap/src/view/V3Swap/hooks/useSendSwapTransaction.ts, packages/swap/src/Menu/UserMenu/WalletInfo.tsx, packages/swap/src/config/constants/contracts.ts, packages/swap/src/config/abi/pancakeBunnies.ts, packages/swap/src/config/constants/exchange.ts, packages/swap/src/config/abi/pancakeSquad.ts, packages/swap/src/config/abi/erc721collection.ts, packages/swap/src/config/abi/zap.ts, packages/swap/src/config/abi/lpTokenAbi.ts, packages/swap/src/config/abi/crossFarmingReceiver.ts, packages/swap/src/hooks/Trades.ts, packages/swap/src/view/components/CurrencyInputPanel/index.tsx, packages/swap/src/view/V3Swap/hooks/useWallchain.ts, packages/swap/src/config/abi/tradingCompetitionFanToken.ts, packages/swap/src/config/abi/revenueSharingPoolProxy.ts, packages/swap/src/config/abi/tradingCompetitionMobox.ts, packages/swap/src/config/abi/farmAuction.ts, packages/swap/src/config/abi/AngleProtocolDistributor.ts, packages/swap/src/config/abi/potteryDrawAbi.ts, packages/swap/src/state/hooks.ts, packages/swap/src/state/multicall/hooks.ts, packages/swap/src/config/abi/nonBscVault.ts, packages/swap/src/config/abi/crossFarmingSender.ts, packages/swap/src/config/abi/nftSale.ts, packages/swap/src/config/abi/unwrappedEth.ts, pnpm-lock.yaml, packages/swap/src/view/V3Swap/containers/SwapCommitButton.tsx, packages/swap/src/config/abi/lotteryV2.ts, packages/swap/src/hooks/useBestAMMTrade.ts, packages/swap/src/config/abi/IPancakeRouter02.ts, packages/swap/src/config/abi/masterchefV2.ts, packages/swap/src/Menu/GlobalSettings/SettingsModal.tsx, packages/swap/src/config/abi/pancakeProfile.ts, packages/swap/src/config/abi/potteryVaultAbi.ts, packages/swap/src/config/abi/stableSwapAbi.ts, packages/swap/src/config/abi/nftMarket.ts, packages/swap/src/state/user/hooks/index.tsx, packages/swap/src/config/abi/tradingReward.ts, packages/swap/src/config/abi/fixedStaking.ts, packages/swap/src/config/abi/snBNB.ts, packages/swap/src/config/abi/ifoV3.ts, packages/swap/src/config/abi/wbethETH.ts, packages/swap/src/config/abi/wbethBSC.ts, packages/swap/src/config/abi/veCake.ts

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

memoyil avatar Mar 04 '24 19:03 memoyil

⚠️ No Changeset found

Latest commit: 1e1800db12df840b1bb54b0503a6e40c2db66fb0

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

changeset-bot[bot] avatar Mar 04 '24 19:03 changeset-bot[bot]

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
aptos-web ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 4, 2024 7:51pm
blog ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 4, 2024 7:51pm
bridge ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 4, 2024 7:51pm
games ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 4, 2024 7:51pm
uikit ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 4, 2024 7:51pm
web ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 4, 2024 7:51pm

vercel[bot] avatar Mar 04 '24 19:03 vercel[bot]

Can we rename the package to swap-widget for clearer meaning?

chefjackson avatar Mar 06 '24 02:03 chefjackson