@velora-dex/widget 0.8.2 → 0.8.3-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/components/widget/BridgeList/hooks.d.ts +2 -2
  2. package/dist/components/widget/BridgeList/hooks.d.ts.map +1 -1
  3. package/dist/components/widget/BridgeList/hooks.js +79 -73
  4. package/dist/components/widget/BridgeList/hooks.js.map +1 -1
  5. package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.d.ts +2 -2
  6. package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.d.ts.map +1 -1
  7. package/dist/components/widget/BridgeSelectorExpandable/BridgeSelectorExpandable.js.map +1 -1
  8. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
  9. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  10. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +2 -2
  11. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  12. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts +2 -2
  13. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.d.ts.map +1 -1
  14. package/dist/components/widget/TradeOverview/TwapOrderTradeOverview.js.map +1 -1
  15. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts +4 -1
  16. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts.map +1 -1
  17. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js +1 -1
  18. package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js.map +1 -1
  19. package/dist/core/LimitOrderButton.d.ts.map +1 -1
  20. package/dist/core/LimitOrderButton.js +46 -52
  21. package/dist/core/LimitOrderButton.js.map +1 -1
  22. package/dist/core/TradeFlowScreenButton.d.ts +3 -4
  23. package/dist/core/TradeFlowScreenButton.d.ts.map +1 -1
  24. package/dist/core/TradeFlowScreenButton.js.map +1 -1
  25. package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
  26. package/dist/core/button/hooks/useWidgetButtonExtraProps.js +1 -4
  27. package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
  30. package/dist/core/inputs/hooks/useTokenFromInputProps.js +2 -2
  31. package/dist/core/inputs/hooks/useTokenFromInputProps.js.map +1 -1
  32. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  33. package/dist/core/inputs/hooks/useTokenToInputProps.js +2 -2
  34. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  35. package/dist/core/inputs/hooks/utils.d.ts.map +1 -1
  36. package/dist/core/inputs/hooks/utils.js +7 -5
  37. package/dist/core/inputs/hooks/utils.js.map +1 -1
  38. package/dist/core/limit/useLimitRate.d.ts +2 -3
  39. package/dist/core/limit/useLimitRate.d.ts.map +1 -1
  40. package/dist/core/limit/useLimitRate.js +54 -110
  41. package/dist/core/limit/useLimitRate.js.map +1 -1
  42. package/dist/core/limit/useLimitTokenToInputProps.d.ts.map +1 -1
  43. package/dist/core/limit/useLimitTokenToInputProps.js +1 -4
  44. package/dist/core/limit/useLimitTokenToInputProps.js.map +1 -1
  45. package/dist/core/swapDetails/fees.d.ts.map +1 -1
  46. package/dist/core/swapDetails/fees.js +16 -11
  47. package/dist/core/swapDetails/fees.js.map +1 -1
  48. package/dist/core/swapDetails/maxToPay.d.ts.map +1 -1
  49. package/dist/core/swapDetails/maxToPay.js +18 -17
  50. package/dist/core/swapDetails/maxToPay.js.map +1 -1
  51. package/dist/core/twap/twapDetails/minimumReceiveable.d.ts +2 -2
  52. package/dist/core/twap/twapDetails/minimumReceiveable.d.ts.map +1 -1
  53. package/dist/core/twap/twapDetails/minimumReceiveable.js.map +1 -1
  54. package/dist/events/hooks/useOnPriceUpdates.js.map +1 -1
  55. package/dist/events/types/priceChange.d.ts +2 -2
  56. package/dist/events/types/priceChange.d.ts.map +1 -1
  57. package/dist/events/types/swap.d.ts +2 -2
  58. package/dist/events/types/swap.d.ts.map +1 -1
  59. package/dist/events/types/twap.d.ts +2 -2
  60. package/dist/events/types/twap.d.ts.map +1 -1
  61. package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.d.ts +3 -4
  62. package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.d.ts.map +1 -1
  63. package/dist/hooks/swap/prices/delta/bridge/useSelectedBridgePrice.js.map +1 -1
  64. package/dist/hooks/swap/prices/delta/bridge/utils.d.ts +6 -3
  65. package/dist/hooks/swap/prices/delta/bridge/utils.d.ts.map +1 -1
  66. package/dist/hooks/swap/prices/delta/bridge/utils.js +20 -17
  67. package/dist/hooks/swap/prices/delta/bridge/utils.js.map +1 -1
  68. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts +2 -2
  69. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.d.ts.map +1 -1
  70. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js +5 -5
  71. package/dist/hooks/swap/prices/delta/mutations/twap/useCreateTwapOrder.js.map +1 -1
  72. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts +2 -2
  73. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.d.ts.map +1 -1
  74. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js +2 -2
  75. package/dist/hooks/swap/prices/delta/mutations/twap/usePostTwapOrder.js.map +1 -1
  76. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.d.ts.map +1 -1
  77. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js +27 -28
  78. package/dist/hooks/swap/prices/delta/mutations/twap/useTwapOrderToPost.js.map +1 -1
  79. package/dist/hooks/swap/prices/delta/mutations/types.d.ts +3 -3
  80. package/dist/hooks/swap/prices/delta/mutations/types.d.ts.map +1 -1
  81. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js +2 -2
  82. package/dist/hooks/swap/prices/delta/mutations/useCancelDeltaOrders.js.map +1 -1
  83. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts +2 -2
  84. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.d.ts.map +1 -1
  85. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js +5 -5
  86. package/dist/hooks/swap/prices/delta/mutations/useCreateDeltaOrder.js.map +1 -1
  87. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.d.ts.map +1 -1
  88. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js +27 -28
  89. package/dist/hooks/swap/prices/delta/mutations/useDeltaOrderToPost.js.map +1 -1
  90. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts +2 -2
  91. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
  92. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +2 -2
  93. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
  94. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js +1 -1
  95. package/dist/hooks/swap/prices/delta/mutations/useSendDepositPreSignDeltaOrderTx.js.map +1 -1
  96. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js +1 -1
  97. package/dist/hooks/swap/prices/delta/mutations/useWithdrawAndCancelDeltaOrder.js.map +1 -1
  98. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +5 -6
  99. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -1
  100. package/dist/hooks/swap/prices/delta/mutations/utils.js +6 -6
  101. package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
  102. package/dist/hooks/swap/prices/delta/orders/types.d.ts +2 -1
  103. package/dist/hooks/swap/prices/delta/orders/types.d.ts.map +1 -1
  104. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts +3 -3
  105. package/dist/hooks/swap/prices/delta/orders/unposted/utils.js +3 -3
  106. package/dist/hooks/swap/prices/delta/orders/unposted/utils.js.map +1 -1
  107. package/dist/hooks/swap/prices/delta/orders/utils.d.ts +2 -2
  108. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  109. package/dist/hooks/swap/prices/delta/orders/utils.js +6 -3
  110. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  111. package/dist/hooks/swap/prices/delta/queries/errors.js.map +1 -1
  112. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +16 -33
  113. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
  114. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +6 -6
  115. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
  116. package/dist/hooks/swap/prices/factory.d.ts.map +1 -1
  117. package/dist/hooks/swap/prices/factory.js +1 -1
  118. package/dist/hooks/swap/prices/factory.js.map +1 -1
  119. package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +1 -1
  120. package/dist/hooks/swap/prices/types.d.ts +2 -3
  121. package/dist/hooks/swap/prices/types.d.ts.map +1 -1
  122. package/dist/hooks/swap/prices/useSwapPrices.d.ts +3 -3
  123. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  124. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  125. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +3 -3
  126. package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
  127. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts +2 -2
  128. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.d.ts.map +1 -1
  129. package/dist/hooks/swap/prices/useTokenInputsFromTwapPrice.js.map +1 -1
  130. package/dist/hooks/swap/prices/useTwapPrices.d.ts +4 -5
  131. package/dist/hooks/swap/prices/useTwapPrices.d.ts.map +1 -1
  132. package/dist/hooks/swap/prices/useTwapPrices.js.map +1 -1
  133. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts +10 -17
  134. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.d.ts.map +1 -1
  135. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js +6 -6
  136. package/dist/hooks/swap/tradeFlow/common/factory/depositAndSubmitOrderFactory.js.map +1 -1
  137. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +5 -5
  138. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  139. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +119 -124
  140. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  141. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -2
  142. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  143. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +159 -196
  144. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  145. package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts +5 -5
  146. package/dist/hooks/swap/tradeFlow/useTwapFlow.d.ts.map +1 -1
  147. package/dist/hooks/swap/tradeFlow/useTwapFlow.js +217 -229
  148. package/dist/hooks/swap/tradeFlow/useTwapFlow.js.map +1 -1
  149. package/dist/hooks/useSDK.d.ts +19 -3
  150. package/dist/hooks/useSDK.d.ts.map +1 -1
  151. package/dist/hooks/useSDK.js +65 -35
  152. package/dist/hooks/useSDK.js.map +1 -1
  153. package/dist/lib/queryClient.js +1 -1
  154. package/dist/lib/queryClient.js.map +1 -1
  155. package/dist/lib/utils/price.d.ts +5 -2
  156. package/dist/lib/utils/price.d.ts.map +1 -1
  157. package/dist/lib/utils/price.js +8 -5
  158. package/dist/lib/utils/price.js.map +1 -1
  159. package/dist/lib/utils/twap.d.ts +2 -2
  160. package/dist/lib/utils/twap.d.ts.map +1 -1
  161. package/dist/lib/utils/twap.js +2 -2
  162. package/dist/lib/utils/twap.js.map +1 -1
  163. package/package.json +2 -2
  164. package/dist/hooks/swap/prices/delta/bridge/const.d.ts +0 -8
  165. package/dist/hooks/swap/prices/delta/bridge/const.d.ts.map +0 -1
  166. package/dist/hooks/swap/prices/delta/bridge/const.js +0 -13
  167. package/dist/hooks/swap/prices/delta/bridge/const.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useSwapAmountsWithSlippage.js","names":["useSlippage","useSwapSide","formatUnits","parseUnits","applySlippage","DeltaOrMarketPrice","Token","SwapSideUnion","MarkOptional","isDeltaPrice","SwapAmounts","Pick","UseSwapAmountsWithSlippageInput","submittedSwapWei","SwapSideAmounts","usedPriceWei","formDataUnit","fromToken","toToken","price","swapSide","useSwapAmountsWithSlippage","t0","$","_c","resolvedSlippage","swapSideFromInput","t1","srcToken","toLowerCase","destToken","shouldNotApplySlippage","shouldApplySlippage","amounts","destAmount","srcAmount","BigInt","decimals","amountsAfterSlippage","weiFromAmount","weiToAmount","amountsAfterSlippage_0","toString","t2"],"sources":["../../../../../src/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.ts"],"sourcesContent":["import { useSlippage } from \"@/hooks/useSlippage\";\nimport { useSwapSide } from \"../../SwapModeSwitcher/state/swapSideAtom\";\nimport { formatUnits, parseUnits } from \"viem\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport type { Token } from \"@/tokens/state/types\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport type { MarkOptional } from \"ts-essentials\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\n\ntype SwapAmounts = Pick<DeltaOrMarketPrice, \"srcAmount\" | \"destAmount\">;\ntype UseSwapAmountsWithSlippageInput = {\n submittedSwapWei?: SwapSideAmounts; // submitted Swap Order or Tx (highest priority)\n usedPriceWei?: SwapSideAmounts; // used price by the flow (medium priority)\n formDataUnit: MarkOptional<SwapSideAmounts, \"swapSide\">; // initial data before we have prices or have submitted Swap Order or Tx (lowest priority)\n fromToken: Pick<Token, \"decimals\">;\n toToken: Pick<Token, \"decimals\">;\n price?: DeltaOrMarketPrice;\n};\n\nexport type SwapSideAmounts = SwapAmounts & {\n swapSide: SwapSideUnion;\n};\n\n/**\n * Takes in the submitted/used/form amounts and applies slippage where necessary.\n * Used for display purposes in Trade Overview\n */\nexport function useSwapAmountsWithSlippage({\n submittedSwapWei,\n usedPriceWei,\n formDataUnit,\n fromToken,\n toToken,\n price,\n}: UseSwapAmountsWithSlippageInput): SwapSideAmounts {\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSideFromInput = useSwapSide();\n\n const swapSide =\n submittedSwapWei?.swapSide ||\n usedPriceWei?.swapSide ||\n formDataUnit.swapSide ||\n swapSideFromInput;\n\n // for the usual swaps we apply slippage, either on srcAmount for BUY or destAmount for SELL,\n // but if it's a crosschain swap and the srcToken and destToken from BridgePrice are the same,\n // we shouldn't apply slippage because there is no Delta swap happening, only bridge.\n const shouldNotApplySlippage =\n price &&\n isDeltaPrice(price) &&\n price.srcToken.toLowerCase() === price.destToken.toLowerCase();\n\n const shouldApplySlippage = !shouldNotApplySlippage;\n\n const amounts: SwapAmounts = {\n srcAmount: formDataUnit.srcAmount,\n destAmount: formDataUnit.destAmount,\n };\n\n if (submittedSwapWei) {\n amounts.srcAmount = formatUnits(\n BigInt(submittedSwapWei.srcAmount),\n fromToken.decimals\n );\n amounts.destAmount = formatUnits(\n BigInt(submittedSwapWei.destAmount),\n toToken.decimals\n );\n } else if (usedPriceWei) {\n const amountsAfterSlippage = shouldApplySlippage\n ? applySlippage(usedPriceWei, resolvedSlippage, swapSide)\n : usedPriceWei;\n amounts.srcAmount = formatUnits(\n BigInt(amountsAfterSlippage.srcAmount),\n fromToken.decimals\n );\n amounts.destAmount = formatUnits(\n BigInt(amountsAfterSlippage.destAmount),\n toToken.decimals\n );\n } else if (shouldApplySlippage) {\n const weiFromAmount = parseUnits(\n formDataUnit.srcAmount,\n fromToken.decimals\n );\n const weiToAmount = parseUnits(formDataUnit.destAmount, toToken.decimals);\n // applySlippage on unit amount directly would lose precision and drop decimals\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: weiFromAmount.toString(),\n destAmount: weiToAmount.toString(),\n },\n resolvedSlippage,\n swapSide\n );\n amounts.srcAmount = formatUnits(\n BigInt(amountsAfterSlippage.srcAmount),\n fromToken.decimals\n );\n amounts.destAmount = formatUnits(\n BigInt(amountsAfterSlippage.destAmount),\n toToken.decimals\n );\n }\n\n return {\n ...amounts,\n swapSide,\n };\n}\n"],"mappings":";;;;;;;AA4BA,SAAOqB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAoC,EAAAX,qBAAAE,iBAAAC,iBAAAC,cAAAC,YAAAC,aAAAG,GAQzC,EAAAG,wBAA6BzB,EAAY,OAAO,EAChD0B,IAA0BzB,GAAa,EAEvCmB,IACEP,GAAgBO,YAChBL,GAAYK,YACZJ,EAAYI,YAFZM,GAGkBC;CAAA,AAAAJ,EAAA,OAAAJ,IAQ4CQ,IAAAJ,EAAA,MAF9DI,IAAAR,KACAV,EAAaU,EACiD,IAA9DA,EAAKS,SAASC,aAAc,KAAKV,EAAKW,UAAUD,aAAc,EAAAN,EAAA,KAAAJ,GAAAI,EAAA,KAAAI;CAEhE,IAAAK,IAA4B,CAACD,GAAuBE;CAAA,IAAAV,EAAA,OAAAP,EAAAkB,cAAAX,EAAA,OAAAP,EAAAmB,aAAAZ,EAAA,OAAAN,KAAAM,EAAA,OAAAE,KAAAF,EAAA,OAAAS,KAAAT,EAAA,OAAAV,KAAAU,EAAA,OAAAH,KAAAG,EAAA,OAAAL,KAAAK,EAAA,QAAAR,GAAA;EAOpD,IALAkB,IAA6B;GAAAE,WAChBnB,EAAYmB;GAAUD,YACrBlB,EAAYkB;GACzB,EAEGrB,GAKFoB,AAJAA,EAAOE,YAAajC,EAClBkC,OAAOvB,EAAgBsB,UAAW,EAClClB,EAASoB,SAFM,EAIjBJ,EAAOC,aAAchC,EACnBkC,OAAOvB,EAAgBqB,WAAY,EACnChB,EAAOmB,SAFS;OAIb,IAAItB,GAAY;GACrB,IAAAuB,IAA6BN,IACzB5B,EAAcW,GAAcU,GAAkBL,EAClC,GAFaL;GAO7BkB,AAJAA,EAAOE,YAAajC,EAClBkC,OAAOE,EAAoBH,UAAW,EACtClB,EAASoB,SAFM,EAIjBJ,EAAOC,aAAchC,EACnBkC,OAAOE,EAAoBJ,WAAY,EACvChB,EAAOmB,SAFS;SAIb,IAAIL,GAAmB;GAC5B,IAAAO,IAAsBpC,EACpBa,EAAYmB,WACZlB,EAASoB,SACV,EACDG,IAAoBrC,EAAWa,EAAYkB,YAAahB,EAAOmB,SAAU,EAEzEI,IAA6BrC,EAC3B;IAAA+B,WACaI,EAAaG,UAAW;IAAAR,YACvBM,EAAWE,UAAU;IAClC,EACDjB,GACAL,EACD;GAKDa,AAJAA,EAAOE,YAAajC,EAClBkC,OAAOE,EAAoBH,UAAW,EACtClB,EAASoB,SAFM,EAIjBJ,EAAOC,aAAchC,EACnBkC,OAAOE,EAAoBJ,WAAY,EACvChB,EAAOmB,SAFS;;EAInBd,AAAAA,EAAA,KAAAP,EAAAkB,YAAAX,EAAA,KAAAP,EAAAmB,WAAAZ,EAAA,KAAAN,GAAAM,EAAA,KAAAE,GAAAF,EAAA,KAAAS,GAAAT,EAAA,KAAAV,GAAAU,EAAA,KAAAH,GAAAG,EAAA,KAAAL,GAAAK,EAAA,MAAAR,GAAAQ,EAAA,MAAAU;QAAAA,IAAAV,EAAA;CAAA,IAAAoB;CAKA,OALApB,EAAA,QAAAU,KAAAV,EAAA,QAAAH,KAEMuB,IAAA;EAAA,GACFV;EAAOb;EAEX,EAAAG,EAAA,MAAAU,GAAAV,EAAA,MAAAH,GAAAG,EAAA,MAAAoB,KAAAA,IAAApB,EAAA,KAHMoB"}
1
+ {"version":3,"file":"useSwapAmountsWithSlippage.js","names":["useSlippage","useSwapSide","formatUnits","parseUnits","applySlippage","DeltaOrMarketPrice","Token","SwapSideUnion","MarkOptional","isDeltaPrice","SwapAmounts","srcAmount","destAmount","UseSwapAmountsWithSlippageInput","submittedSwapWei","SwapSideAmounts","usedPriceWei","formDataUnit","fromToken","Pick","toToken","price","swapSide","useSwapAmountsWithSlippage","t0","$","_c","resolvedSlippage","swapSideFromInput","t1","inputToken","address","toLowerCase","outputToken","shouldNotApplySlippage","shouldApplySlippage","amounts","BigInt","decimals","amountsAfterSlippage","weiFromAmount","weiToAmount","amountsAfterSlippage_0","toString","t2"],"sources":["../../../../../src/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.ts"],"sourcesContent":["import { useSlippage } from \"@/hooks/useSlippage\";\nimport { useSwapSide } from \"../../SwapModeSwitcher/state/swapSideAtom\";\nimport { formatUnits, parseUnits } from \"viem\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport type { Token } from \"@/tokens/state/types\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport type { MarkOptional } from \"ts-essentials\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\n\ntype SwapAmounts = { srcAmount: string; destAmount: string };\ntype UseSwapAmountsWithSlippageInput = {\n submittedSwapWei?: SwapSideAmounts; // submitted Swap Order or Tx (highest priority)\n usedPriceWei?: SwapSideAmounts; // used price by the flow (medium priority)\n formDataUnit: MarkOptional<SwapSideAmounts, \"swapSide\">; // initial data before we have prices or have submitted Swap Order or Tx (lowest priority)\n fromToken: Pick<Token, \"decimals\">;\n toToken: Pick<Token, \"decimals\">;\n price?: DeltaOrMarketPrice;\n};\n\nexport type SwapSideAmounts = SwapAmounts & {\n swapSide: SwapSideUnion;\n};\n\n/**\n * Takes in the submitted/used/form amounts and applies slippage where necessary.\n * Used for display purposes in Trade Overview\n */\nexport function useSwapAmountsWithSlippage({\n submittedSwapWei,\n usedPriceWei,\n formDataUnit,\n fromToken,\n toToken,\n price,\n}: UseSwapAmountsWithSlippageInput): SwapSideAmounts {\n const { resolvedSlippage } = useSlippage(\"swap\");\n const swapSideFromInput = useSwapSide();\n\n const swapSide =\n submittedSwapWei?.swapSide ||\n usedPriceWei?.swapSide ||\n formDataUnit.swapSide ||\n swapSideFromInput;\n\n // for the usual swaps we apply slippage, either on srcAmount for BUY or destAmount for SELL,\n // but if it's a crosschain swap and the input and output tokens are the same address,\n // we shouldn't apply slippage because there is no Delta swap happening, only bridge.\n const shouldNotApplySlippage =\n price &&\n isDeltaPrice(price) &&\n price.inputToken.address.toLowerCase() ===\n price.outputToken.address.toLowerCase();\n\n const shouldApplySlippage = !shouldNotApplySlippage;\n\n const amounts: SwapAmounts = {\n srcAmount: formDataUnit.srcAmount,\n destAmount: formDataUnit.destAmount,\n };\n\n if (submittedSwapWei) {\n amounts.srcAmount = formatUnits(\n BigInt(submittedSwapWei.srcAmount),\n fromToken.decimals\n );\n amounts.destAmount = formatUnits(\n BigInt(submittedSwapWei.destAmount),\n toToken.decimals\n );\n } else if (usedPriceWei) {\n const amountsAfterSlippage = shouldApplySlippage\n ? applySlippage(usedPriceWei, resolvedSlippage, swapSide)\n : usedPriceWei;\n amounts.srcAmount = formatUnits(\n BigInt(amountsAfterSlippage.srcAmount),\n fromToken.decimals\n );\n amounts.destAmount = formatUnits(\n BigInt(amountsAfterSlippage.destAmount),\n toToken.decimals\n );\n } else if (shouldApplySlippage) {\n const weiFromAmount = parseUnits(\n formDataUnit.srcAmount,\n fromToken.decimals\n );\n const weiToAmount = parseUnits(formDataUnit.destAmount, toToken.decimals);\n // applySlippage on unit amount directly would lose precision and drop decimals\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: weiFromAmount.toString(),\n destAmount: weiToAmount.toString(),\n },\n resolvedSlippage,\n swapSide\n );\n amounts.srcAmount = formatUnits(\n BigInt(amountsAfterSlippage.srcAmount),\n fromToken.decimals\n );\n amounts.destAmount = formatUnits(\n BigInt(amountsAfterSlippage.destAmount),\n toToken.decimals\n );\n }\n\n return {\n ...amounts,\n swapSide,\n };\n}\n"],"mappings":";;;;;;;AA4BA,SAAOuB,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,EAAoC,EAAAZ,qBAAAE,iBAAAC,iBAAAC,cAAAE,YAAAC,aAAAG,GAQzC,EAAAG,wBAA6B3B,EAAY,OAAO,EAChD4B,IAA0B3B,GAAa,EAEvCqB,IACER,GAAgBQ,YAChBN,GAAYM,YACZL,EAAYK,YAFZM,GAGkBC;CAAA,AAAAJ,EAAA,OAAAJ,IASuBQ,IAAAJ,EAAA,MAHzCI,IAAAR,KACAZ,EAAaY,EAE4B,IADzCA,EAAKS,WAAWC,QAAQC,aAAc,KACpCX,EAAKY,YAAYF,QAAQC,aAAc,EAAAP,EAAA,KAAAJ,GAAAI,EAAA,KAAAI;CAE3C,IAAAM,IAA4B,CAACD,GAAuBE;CAAA,IAAAX,EAAA,OAAAR,EAAAL,cAAAa,EAAA,OAAAR,EAAAN,aAAAc,EAAA,OAAAP,KAAAO,EAAA,OAAAE,KAAAF,EAAA,OAAAU,KAAAV,EAAA,OAAAX,KAAAW,EAAA,OAAAH,KAAAG,EAAA,OAAAL,KAAAK,EAAA,QAAAT,GAAA;EAOpD,IALAoB,IAA6B;GAAAzB,WAChBM,EAAYN;GAAUC,YACrBK,EAAYL;GACzB,EAEGE,GAKFsB,AAJAA,EAAOzB,YAAaT,EAClBmC,OAAOvB,EAAgBH,UAAW,EAClCO,EAASoB,SAFM,EAIjBF,EAAOxB,aAAcV,EACnBmC,OAAOvB,EAAgBF,WAAY,EACnCQ,EAAOkB,SAFS;OAIb,IAAItB,GAAY;GACrB,IAAAuB,IAA6BJ,IACzB/B,EAAcY,GAAcW,GAAkBL,EAClC,GAFaN;GAO7BoB,AAJAA,EAAOzB,YAAaT,EAClBmC,OAAOE,EAAoB5B,UAAW,EACtCO,EAASoB,SAFM,EAIjBF,EAAOxB,aAAcV,EACnBmC,OAAOE,EAAoB3B,WAAY,EACvCQ,EAAOkB,SAFS;SAIb,IAAIH,GAAmB;GAC5B,IAAAK,IAAsBrC,EACpBc,EAAYN,WACZO,EAASoB,SACV,EACDG,IAAoBtC,EAAWc,EAAYL,YAAaQ,EAAOkB,SAAU,EAEzEI,IAA6BtC,EAC3B;IAAAO,WACa6B,EAAaG,UAAW;IAAA/B,YACvB6B,EAAWE,UAAU;IAClC,EACDhB,GACAL,EACD;GAKDc,AAJAA,EAAOzB,YAAaT,EAClBmC,OAAOE,EAAoB5B,UAAW,EACtCO,EAASoB,SAFM,EAIjBF,EAAOxB,aAAcV,EACnBmC,OAAOE,EAAoB3B,WAAY,EACvCQ,EAAOkB,SAFS;;EAInBb,AAAAA,EAAA,KAAAR,EAAAL,YAAAa,EAAA,KAAAR,EAAAN,WAAAc,EAAA,KAAAP,GAAAO,EAAA,KAAAE,GAAAF,EAAA,KAAAU,GAAAV,EAAA,KAAAX,GAAAW,EAAA,KAAAH,GAAAG,EAAA,KAAAL,GAAAK,EAAA,MAAAT,GAAAS,EAAA,MAAAW;QAAAA,IAAAX,EAAA;CAAA,IAAAmB;CAKA,OALAnB,EAAA,QAAAW,KAAAX,EAAA,QAAAH,KAEMsB,IAAA;EAAA,GACFR;EAAOd;EAEX,EAAAG,EAAA,MAAAW,GAAAX,EAAA,MAAAH,GAAAG,EAAA,MAAAmB,KAAAA,IAAAnB,EAAA,KAHMmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"LimitOrderButton.d.ts","sourceRoot":"","sources":["../../src/core/LimitOrderButton.tsx"],"names":[],"mappings":"AAmDA,wBAAgB,gBAAgB,4CAuE/B"}
1
+ {"version":3,"file":"LimitOrderButton.d.ts","sourceRoot":"","sources":["../../src/core/LimitOrderButton.tsx"],"names":[],"mappings":"AAkDA,wBAAgB,gBAAgB,4CAiD/B"}
@@ -1,71 +1,65 @@
1
1
  import { useAtomValue as e } from "./store.js";
2
- import { isBridgePrice as t } from "../hooks/swap/prices/delta/queries/useDeltaPriceQuery.js";
3
- import { limitPayInputAmountWeiAtom as n, limitReceiveInputAmountWeiAtom as r } from "./limit/state/limitInputAmountAtom.js";
4
- import { useDeltaSwapPriceForLimit as i } from "./limit/useLimitRate.js";
5
- import { useLimitTokenFromInputProps as a } from "./limit/useLimitTokenFromInputProps.js";
6
- import { useLimitTokenToInputProps as o } from "./limit/useLimitTokenToInputProps.js";
7
- import { useLimitButtonExtraProps as s } from "./button/hooks/useWidgetButtonExtraProps.js";
8
- import { LimitTradeFlowScreenButton as c } from "./TradeFlowScreenButton.js";
9
- import { ConnectWalletDrawerButton as l } from "./ConnectWalletDrawerButton.js";
10
- import { c as u } from "react-compiler-runtime";
11
- import { jsx as d } from "react/jsx-runtime";
12
- import { useAccount as f } from "wagmi";
2
+ import { limitPayInputAmountWeiAtom as t, limitReceiveInputAmountWeiAtom as n } from "./limit/state/limitInputAmountAtom.js";
3
+ import { useDeltaSwapPriceForLimit as r } from "./limit/useLimitRate.js";
4
+ import { useLimitTokenFromInputProps as i } from "./limit/useLimitTokenFromInputProps.js";
5
+ import { useLimitTokenToInputProps as a } from "./limit/useLimitTokenToInputProps.js";
6
+ import { useLimitButtonExtraProps as o } from "./button/hooks/useWidgetButtonExtraProps.js";
7
+ import { LimitTradeFlowScreenButton as s } from "./TradeFlowScreenButton.js";
8
+ import { ConnectWalletDrawerButton as c } from "./ConnectWalletDrawerButton.js";
9
+ import { c as l } from "react-compiler-runtime";
10
+ import { jsx as u } from "react/jsx-runtime";
11
+ import { useAccount as d } from "wagmi";
13
12
  //#region src/core/LimitOrderButton.tsx
14
- function p(e) {
15
- let t = u(14), n, r, i, a, o;
13
+ function f(e) {
14
+ let t = l(14), n, r, i, a, o;
16
15
  t[0] === e ? (n = t[1], r = t[2], i = t[3], a = t[4], o = t[5]) : ({orderProps: o, drawerContainer: r, limitPrice: a, labelOverride: i, ...n} = e, t[0] = e, t[1] = n, t[2] = r, t[3] = i, t[4] = a, t[5] = o);
17
- let { isConnected: s } = f();
18
- if (!s) {
16
+ let { isConnected: f } = d();
17
+ if (!f) {
19
18
  let e;
20
- return t[6] !== n || t[7] !== r ? (e = /* @__PURE__ */ d(l, {
19
+ return t[6] !== n || t[7] !== r ? (e = /* @__PURE__ */ u(c, {
21
20
  drawerContainer: r,
22
21
  ...n
23
22
  }), t[6] = n, t[7] = r, t[8] = e) : e = t[8], e;
24
23
  }
25
24
  let p;
26
- return t[9] !== n || t[10] !== i || t[11] !== a || t[12] !== o ? (p = /* @__PURE__ */ d(c, {
25
+ return t[9] !== n || t[10] !== i || t[11] !== a || t[12] !== o ? (p = /* @__PURE__ */ u(s, {
27
26
  orderProps: o,
28
27
  limitPrice: a,
29
28
  labelOverride: i,
30
29
  ...n
31
30
  }), t[9] = n, t[10] = i, t[11] = a, t[12] = o, t[13] = p) : p = t[13], p;
32
31
  }
33
- function m() {
34
- let c = u(23), l = a(), f = o(), m = e(n), h = e(r), g;
35
- c[0] !== l.amount || c[1] !== l.token || c[2] !== f.amount || c[3] !== f.token ? (g = l.token && f.token ? {
36
- fromToken: l.token,
37
- toToken: f.token,
38
- fromAmount: l.amount,
39
- toAmount: f.amount
40
- } : void 0, c[0] = l.amount, c[1] = l.token, c[2] = f.amount, c[3] = f.token, c[4] = g) : g = c[4];
41
- let _ = g, v = l.token && f.token && l.token.network !== f.token.network, y;
42
- c[5] === v ? y = c[6] : (y = {
43
- enabled: v,
44
- tradeMode: "limit"
45
- }, c[5] = v, c[6] = y);
46
- let { price: b } = i(y), x;
47
- c[7] !== b || c[8] !== v || c[9] !== m || c[10] !== h || c[11] !== l.token || c[12] !== f.token ? (x = l.token && f.token && h && Number(m) > 0 && Number(h) > 0 ? {
48
- srcTokenAddress: l.token.address,
49
- destTokenAddress: f.token.address,
50
- srcAmount: m,
51
- destAmount: h,
52
- bridgePrice: v && b && t(b) ? b : void 0
53
- } : void 0, v && x && (b && t(b) ? x.bridgePrice = b : x = void 0), c[7] = b, c[8] = v, c[9] = m, c[10] = h, c[11] = l.token, c[12] = f.token, c[13] = x) : x = c[13];
54
- let S;
55
- c[14] !== l.token || c[15] !== f.token ? (S = {
56
- tokenFrom: l.token,
57
- tokenTo: f.token
58
- }, c[14] = l.token, c[15] = f.token, c[16] = S) : S = c[16];
59
- let C = s(S), w;
60
- return c[17] !== C.className || c[18] !== C.disabled || c[19] !== C.labelOverride || c[20] !== x || c[21] !== _ ? (w = /* @__PURE__ */ d(p, {
61
- orderProps: _,
62
- limitPrice: x,
63
- disabled: C.disabled,
64
- labelOverride: C.labelOverride,
65
- className: C.className
66
- }), c[17] = C.className, c[18] = C.disabled, c[19] = C.labelOverride, c[20] = x, c[21] = _, c[22] = w) : w = c[22], w;
32
+ function p() {
33
+ let s = l(20), c = i(), d = a(), p = e(t), m = e(n), h;
34
+ s[0] !== c.amount || s[1] !== c.token || s[2] !== d.amount || s[3] !== d.token ? (h = c.token && d.token ? {
35
+ fromToken: c.token,
36
+ toToken: d.token,
37
+ fromAmount: c.amount,
38
+ toAmount: d.amount
39
+ } : void 0, s[0] = c.amount, s[1] = c.token, s[2] = d.amount, s[3] = d.token, s[4] = h) : h = s[4];
40
+ let g = h, { price: _ } = r(), v;
41
+ s[5] !== _ || s[6] !== p || s[7] !== m || s[8] !== c.token || s[9] !== d.token ? (v = c.token && d.token && m && Number(p) > 0 && Number(m) > 0 && _ ? {
42
+ srcTokenAddress: c.token.address,
43
+ destTokenAddress: d.token.address,
44
+ srcAmount: p,
45
+ destAmount: m,
46
+ route: _.route
47
+ } : void 0, s[5] = _, s[6] = p, s[7] = m, s[8] = c.token, s[9] = d.token, s[10] = v) : v = s[10];
48
+ let y = v, b;
49
+ s[11] !== c.token || s[12] !== d.token ? (b = {
50
+ tokenFrom: c.token,
51
+ tokenTo: d.token
52
+ }, s[11] = c.token, s[12] = d.token, s[13] = b) : b = s[13];
53
+ let x = o(b), S;
54
+ return s[14] !== x.className || s[15] !== x.disabled || s[16] !== x.labelOverride || s[17] !== y || s[18] !== g ? (S = /* @__PURE__ */ u(f, {
55
+ orderProps: g,
56
+ limitPrice: y,
57
+ disabled: x.disabled,
58
+ labelOverride: x.labelOverride,
59
+ className: x.className
60
+ }), s[14] = x.className, s[15] = x.disabled, s[16] = x.labelOverride, s[17] = y, s[18] = g, s[19] = S) : S = s[19], S;
67
61
  }
68
62
  //#endregion
69
- export { m as LimitOrderButton };
63
+ export { p as LimitOrderButton };
70
64
 
71
65
  //# sourceMappingURL=LimitOrderButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LimitOrderButton.js","names":["Button","MinTradeOverviewProps","useAccount","ConnectWalletDrawerButton","LimitTradeFlowScreenButton","UserDefinedLimitPrice","useLimitTokenToInputProps","useLimitTokenFromInputProps","useLimitButtonExtraProps","useAtomValue","limitPayInputAmountWeiAtom","limitReceiveInputAmountWeiAtom","useDeltaSwapPriceForLimit","isBridgePrice","ButtonWithDrawerProps","React","ComponentProps","orderProps","drawerContainer","HTMLDivElement","limitPrice","labelOverride","LimitOrderDrawerButton","t0","$","_c","buttonProps","isConnected","t1","LimitOrderButton","tokenFromInputProps","tokenToInputProps","payAmountWei","receiveAmountWei","amount","token","fromToken","toToken","fromAmount","toAmount","undefined","isCrosschainOrder","network","enabled","tradeMode","price","deltaCrosschainPrice","Number","srcTokenAddress","address","destTokenAddress","srcAmount","destAmount","bridgePrice","t2","tokenFrom","tokenTo","extraProps","t3","className","disabled"],"sources":["../../src/core/LimitOrderButton.tsx"],"sourcesContent":["import type { Button } from \"@/components/ui/button\";\nimport type { MinTradeOverviewProps } from \"@/components/widget/TradeOverview/TradeOverview\";\nimport { useAccount } from \"wagmi\";\nimport { ConnectWalletDrawerButton } from \"./ConnectWalletDrawerButton\";\nimport { LimitTradeFlowScreenButton } from \"./TradeFlowScreenButton\";\nimport type { UserDefinedLimitPrice } from \"@/hooks/swap/tradeFlow/useLimitOrderFlow\";\nimport { useLimitTokenToInputProps } from \"./limit/useLimitTokenToInputProps\";\nimport { useLimitTokenFromInputProps } from \"./limit/useLimitTokenFromInputProps\";\nimport { useLimitButtonExtraProps } from \"./button/hooks/useWidgetButtonExtraProps\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n limitPayInputAmountWeiAtom,\n limitReceiveInputAmountWeiAtom,\n} from \"./limit/state/limitInputAmountAtom\";\nimport { useDeltaSwapPriceForLimit } from \"./limit/useLimitRate\";\nimport { isBridgePrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\n\ntype ButtonWithDrawerProps = React.ComponentProps<typeof Button> & {\n orderProps?: MinTradeOverviewProps;\n drawerContainer?: HTMLDivElement | null;\n limitPrice?: UserDefinedLimitPrice;\n labelOverride?: string;\n};\n\nfunction LimitOrderDrawerButton({\n orderProps,\n drawerContainer,\n limitPrice,\n labelOverride,\n ...buttonProps\n}: ButtonWithDrawerProps) {\n const { isConnected } = useAccount();\n\n if (!isConnected)\n return (\n <ConnectWalletDrawerButton\n drawerContainer={drawerContainer}\n {...buttonProps}\n />\n );\n\n return (\n <LimitTradeFlowScreenButton\n orderProps={orderProps}\n limitPrice={limitPrice}\n labelOverride={labelOverride}\n {...buttonProps}\n />\n );\n}\n\nexport function LimitOrderButton() {\n const tokenFromInputProps = useLimitTokenFromInputProps();\n const tokenToInputProps = useLimitTokenToInputProps();\n\n const payAmountWei = useAtomValue(limitPayInputAmountWeiAtom);\n const receiveAmountWei = useAtomValue(limitReceiveInputAmountWeiAtom);\n\n const orderProps =\n tokenFromInputProps.token && tokenToInputProps.token\n ? {\n fromToken: tokenFromInputProps.token,\n toToken: tokenToInputProps.token,\n fromAmount: tokenFromInputProps.amount,\n toAmount: tokenToInputProps.amount,\n }\n : undefined;\n\n const isCrosschainOrder =\n tokenFromInputProps.token &&\n tokenToInputProps.token &&\n tokenFromInputProps.token.network !== tokenToInputProps.token.network;\n\n const { price: deltaCrosschainPrice } = useDeltaSwapPriceForLimit({\n enabled: isCrosschainOrder,\n tradeMode: \"limit\",\n });\n\n let limitPrice: UserDefinedLimitPrice | undefined =\n tokenFromInputProps.token &&\n tokenToInputProps.token &&\n receiveAmountWei &&\n Number(payAmountWei) > 0 &&\n Number(receiveAmountWei) > 0\n ? {\n srcTokenAddress: tokenFromInputProps.token.address,\n destTokenAddress: tokenToInputProps.token.address,\n srcAmount: payAmountWei,\n destAmount: receiveAmountWei,\n bridgePrice:\n isCrosschainOrder &&\n deltaCrosschainPrice &&\n isBridgePrice(deltaCrosschainPrice)\n ? deltaCrosschainPrice\n : undefined,\n }\n : undefined;\n\n if (isCrosschainOrder && limitPrice) {\n // for Crosschain LOrder bridgePrice is required\n if (deltaCrosschainPrice && isBridgePrice(deltaCrosschainPrice)) {\n limitPrice.bridgePrice = deltaCrosschainPrice;\n } else {\n // this will disable the button\n limitPrice = undefined;\n }\n }\n\n const extraProps = useLimitButtonExtraProps({\n tokenFrom: tokenFromInputProps.token,\n tokenTo: tokenToInputProps.token,\n });\n\n return (\n <LimitOrderDrawerButton\n orderProps={orderProps}\n limitPrice={limitPrice}\n disabled={extraProps.disabled}\n labelOverride={extraProps.labelOverride}\n className={extraProps.className}\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"LimitOrderButton.js","names":["Button","MinTradeOverviewProps","useAccount","ConnectWalletDrawerButton","LimitTradeFlowScreenButton","UserDefinedLimitPrice","useLimitTokenToInputProps","useLimitTokenFromInputProps","useLimitButtonExtraProps","useAtomValue","limitPayInputAmountWeiAtom","limitReceiveInputAmountWeiAtom","useDeltaSwapPriceForLimit","ButtonWithDrawerProps","React","ComponentProps","orderProps","drawerContainer","HTMLDivElement","limitPrice","labelOverride","LimitOrderDrawerButton","t0","$","_c","buttonProps","isConnected","t1","LimitOrderButton","tokenFromInputProps","tokenToInputProps","payAmountWei","receiveAmountWei","amount","token","fromToken","toToken","fromAmount","toAmount","undefined","price","deltaPrice","Number","srcTokenAddress","address","destTokenAddress","srcAmount","destAmount","route","t2","tokenFrom","tokenTo","extraProps","t3","className","disabled"],"sources":["../../src/core/LimitOrderButton.tsx"],"sourcesContent":["import type { Button } from \"@/components/ui/button\";\nimport type { MinTradeOverviewProps } from \"@/components/widget/TradeOverview/TradeOverview\";\nimport { useAccount } from \"wagmi\";\nimport { ConnectWalletDrawerButton } from \"./ConnectWalletDrawerButton\";\nimport { LimitTradeFlowScreenButton } from \"./TradeFlowScreenButton\";\nimport type { UserDefinedLimitPrice } from \"@/hooks/swap/tradeFlow/useLimitOrderFlow\";\nimport { useLimitTokenToInputProps } from \"./limit/useLimitTokenToInputProps\";\nimport { useLimitTokenFromInputProps } from \"./limit/useLimitTokenFromInputProps\";\nimport { useLimitButtonExtraProps } from \"./button/hooks/useWidgetButtonExtraProps\";\nimport { useAtomValue } from \"@/core/store\";\nimport {\n limitPayInputAmountWeiAtom,\n limitReceiveInputAmountWeiAtom,\n} from \"./limit/state/limitInputAmountAtom\";\nimport { useDeltaSwapPriceForLimit } from \"./limit/useLimitRate\";\n\ntype ButtonWithDrawerProps = React.ComponentProps<typeof Button> & {\n orderProps?: MinTradeOverviewProps;\n drawerContainer?: HTMLDivElement | null;\n limitPrice?: UserDefinedLimitPrice;\n labelOverride?: string;\n};\n\nfunction LimitOrderDrawerButton({\n orderProps,\n drawerContainer,\n limitPrice,\n labelOverride,\n ...buttonProps\n}: ButtonWithDrawerProps) {\n const { isConnected } = useAccount();\n\n if (!isConnected)\n return (\n <ConnectWalletDrawerButton\n drawerContainer={drawerContainer}\n {...buttonProps}\n />\n );\n\n return (\n <LimitTradeFlowScreenButton\n orderProps={orderProps}\n limitPrice={limitPrice}\n labelOverride={labelOverride}\n {...buttonProps}\n />\n );\n}\n\nexport function LimitOrderButton() {\n const tokenFromInputProps = useLimitTokenFromInputProps();\n const tokenToInputProps = useLimitTokenToInputProps();\n\n const payAmountWei = useAtomValue(limitPayInputAmountWeiAtom);\n const receiveAmountWei = useAtomValue(limitReceiveInputAmountWeiAtom);\n\n const orderProps =\n tokenFromInputProps.token && tokenToInputProps.token\n ? {\n fromToken: tokenFromInputProps.token,\n toToken: tokenToInputProps.token,\n fromAmount: tokenFromInputProps.amount,\n toAmount: tokenToInputProps.amount,\n }\n : undefined;\n\n const { price: deltaPrice } = useDeltaSwapPriceForLimit();\n\n const limitPrice: UserDefinedLimitPrice | undefined =\n tokenFromInputProps.token &&\n tokenToInputProps.token &&\n receiveAmountWei &&\n Number(payAmountWei) > 0 &&\n Number(receiveAmountWei) > 0 &&\n deltaPrice\n ? {\n srcTokenAddress: tokenFromInputProps.token.address,\n destTokenAddress: tokenToInputProps.token.address,\n srcAmount: payAmountWei,\n destAmount: receiveAmountWei,\n route: deltaPrice.route,\n }\n : undefined;\n\n const extraProps = useLimitButtonExtraProps({\n tokenFrom: tokenFromInputProps.token,\n tokenTo: tokenToInputProps.token,\n });\n\n return (\n <LimitOrderDrawerButton\n orderProps={orderProps}\n limitPrice={limitPrice}\n disabled={extraProps.disabled}\n labelOverride={extraProps.labelOverride}\n className={extraProps.className}\n />\n );\n}\n"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { Button } from '../components/ui/button';
2
2
  import { MinTradeOverviewProps } from '../components/widget/TradeOverview/TradeOverview';
3
- import { BridgePrice, DeltaPrice, OptimalRate } from '@velora-dex/sdk';
3
+ import { DeltaPriceV2, OptimalRate } from '@velora-dex/sdk';
4
4
  import { UserDefinedLimitPrice } from '../hooks/swap/tradeFlow/useLimitOrderFlow';
5
5
  import { UserDefinedOtcPrice } from '../hooks/otc/tradeFlow/useOtcOrderFlow';
6
- import { DeltaOrBridgePrice } from '../hooks/swap/prices/types';
7
6
  type BaseTradeFlowButtonProps = React.ComponentProps<typeof Button> & {
8
7
  orderProps?: MinTradeOverviewProps;
9
8
  labelOverride?: string;
@@ -12,7 +11,7 @@ type SwapTradeFlowButtonProps = BaseTradeFlowButtonProps & ({
12
11
  price?: OptimalRate;
13
12
  priceMode: "market";
14
13
  } | {
15
- price?: DeltaPrice | BridgePrice;
14
+ price?: DeltaPriceV2;
16
15
  priceMode: "delta";
17
16
  });
18
17
  export declare function SwapTradeFlowScreenButton({ orderProps, price, priceMode, labelOverride, ...buttonProps }: SwapTradeFlowButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -25,7 +24,7 @@ type OtcOrderTradeFlowButtonProps = BaseTradeFlowButtonProps & {
25
24
  };
26
25
  export declare function OtcTradeFlowScreenButton({ orderProps, otcPrice, labelOverride, ...buttonProps }: OtcOrderTradeFlowButtonProps): import("react/jsx-runtime").JSX.Element;
27
26
  type TwapTradeFlowButtonProps = BaseTradeFlowButtonProps & {
28
- twapPrice?: DeltaOrBridgePrice;
27
+ twapPrice?: DeltaPriceV2;
29
28
  };
30
29
  export declare function TwapTradeFlowScreenButton({ orderProps, twapPrice, labelOverride, ...buttonProps }: TwapTradeFlowButtonProps): import("react/jsx-runtime").JSX.Element;
31
30
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"TradeFlowScreenButton.d.ts","sourceRoot":"","sources":["../../src/core/TradeFlowScreenButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAE7F,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,KAAK,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACpE,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,wBAAwB,GAAG,wBAAwB,GACtD,CACI;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAA;CAAE,GAC5C;IAAE,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAC3D,CAAC;AACJ,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EACV,KAAK,EACL,SAAS,EACT,aAAa,EACb,GAAG,WAAW,EACf,EAAE,wBAAwB,2CAgE1B;AAED,KAAK,8BAA8B,GAAG,wBAAwB,GAAG;IAC/D,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,EACzC,UAAU,EACV,UAAU,EACV,aAAa,EACb,GAAG,WAAW,EACf,EAAE,8BAA8B,2CA2ChC;AAED,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,WAAW,EACf,EAAE,4BAA4B,2CA2C9B;AAED,KAAK,wBAAwB,GAAG,wBAAwB,GAAG;IACzD,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EACV,SAAS,EACT,aAAa,EACb,GAAG,WAAW,EACf,EAAE,wBAAwB,2CA2C1B"}
1
+ {"version":3,"file":"TradeFlowScreenButton.d.ts","sourceRoot":"","sources":["../../src/core/TradeFlowScreenButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAE7F,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,KAAK,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACpE,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,wBAAwB,GAAG,wBAAwB,GACtD,CACI;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAA;CAAE,GAC5C;IAAE,KAAK,CAAC,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAC/C,CAAC;AACJ,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EACV,KAAK,EACL,SAAS,EACT,aAAa,EACb,GAAG,WAAW,EACf,EAAE,wBAAwB,2CAgE1B;AAED,KAAK,8BAA8B,GAAG,wBAAwB,GAAG;IAC/D,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,EACzC,UAAU,EACV,UAAU,EACV,aAAa,EACb,GAAG,WAAW,EACf,EAAE,8BAA8B,2CA2ChC;AAED,KAAK,4BAA4B,GAAG,wBAAwB,GAAG;IAC7D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,WAAW,EACf,EAAE,4BAA4B,2CA2C9B;AAED,KAAK,wBAAwB,GAAG,wBAAwB,GAAG;IACzD,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EACV,SAAS,EACT,aAAa,EACb,GAAG,WAAW,EACf,EAAE,wBAAwB,2CA2C1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"TradeFlowScreenButton.js","names":["Button","MinTradeOverviewProps","cn","BridgePrice","DeltaPrice","OptimalRate","useAccount","useSetScreen","useWidgetEvents","UserDefinedLimitPrice","UserDefinedOtcPrice","DeltaOrBridgePrice","BaseTradeFlowButtonProps","React","ComponentProps","orderProps","labelOverride","SwapTradeFlowButtonProps","price","priceMode","SwapTradeFlowScreenButton","t0","$","_c","buttonProps","onSwap","showTradeOverviewScreen","closeScreen","isConnected","disabled","onClick","event","name","params","swapMode","flowType","flowProps","marketPrice","onClose","deltaPrice","T0","t1","t2","t3","className","t4","t5","LimitOrderTradeFlowButtonProps","limitPrice","LimitTradeFlowScreenButton","onLimitOrder","OtcOrderTradeFlowButtonProps","otcPrice","OtcTradeFlowScreenButton","onOTCOrder","TwapTradeFlowButtonProps","twapPrice","TwapTradeFlowScreenButton","onTwapOrder"],"sources":["../../src/core/TradeFlowScreenButton.tsx"],"sourcesContent":["import { Button } from \"@/components/ui/button\";\nimport type { MinTradeOverviewProps } from \"@/components/widget/TradeOverview/TradeOverview\";\nimport { cn } from \"@/lib/utils\";\nimport type { BridgePrice, DeltaPrice, OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount } from \"wagmi\";\nimport { useSetScreen } from \"./screen/state/hooks/useSetScreen\";\nimport { useWidgetEvents } from \"./state/widgetEventsAtom\";\n\nimport type { UserDefinedLimitPrice } from \"@/hooks/swap/tradeFlow/useLimitOrderFlow\";\nimport type { UserDefinedOtcPrice } from \"@/hooks/otc/tradeFlow/useOtcOrderFlow\";\nimport type { DeltaOrBridgePrice } from \"@/hooks/swap/prices/types\";\n\ntype BaseTradeFlowButtonProps = React.ComponentProps<typeof Button> & {\n orderProps?: MinTradeOverviewProps;\n labelOverride?: string;\n};\n\ntype SwapTradeFlowButtonProps = BaseTradeFlowButtonProps &\n (\n | { price?: OptimalRate; priceMode: \"market\" }\n | { price?: DeltaPrice | BridgePrice; priceMode: \"delta\" }\n );\nexport function SwapTradeFlowScreenButton({\n orderProps,\n price,\n priceMode,\n labelOverride,\n ...buttonProps\n}: SwapTradeFlowButtonProps) {\n const { onSwap } = useWidgetEvents();\n const { showTradeOverviewScreen, closeScreen } = useSetScreen();\n\n const { isConnected } = useAccount();\n\n const disabled =\n buttonProps.disabled || !isConnected || !orderProps || !price;\n\n const onClick =\n orderProps && price\n ? () => {\n if (priceMode === \"market\") {\n onSwap?.({\n event: {\n name: \"Swap:click\",\n params: {\n swapMode: priceMode,\n price,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"marketSwap\",\n flowProps: {\n orderProps,\n marketPrice: price,\n onClose: closeScreen,\n },\n });\n } else if (priceMode === \"delta\") {\n onSwap?.({\n event: {\n name: \"Swap:click\",\n params: {\n swapMode: priceMode,\n price,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"deltaOrder\",\n flowProps: {\n orderProps,\n deltaPrice: price,\n onClose: closeScreen,\n },\n });\n }\n }\n : buttonProps.onClick;\n\n return (\n <Button\n variant=\"cta\"\n radius=\"lg\"\n {...buttonProps}\n className={cn(\"w-full mt-4 h-[48px] text-md\", buttonProps.className)}\n onClick={onClick}\n disabled={disabled}\n >\n {labelOverride || \"Swap\"}\n </Button>\n );\n}\n\ntype LimitOrderTradeFlowButtonProps = BaseTradeFlowButtonProps & {\n limitPrice?: UserDefinedLimitPrice;\n};\n\nexport function LimitTradeFlowScreenButton({\n orderProps,\n limitPrice,\n labelOverride,\n ...buttonProps\n}: LimitOrderTradeFlowButtonProps) {\n const { onLimitOrder } = useWidgetEvents();\n const { showTradeOverviewScreen, closeScreen } = useSetScreen();\n\n const { isConnected } = useAccount();\n\n const disabled =\n buttonProps.disabled || !isConnected || !orderProps || !limitPrice;\n\n const onClick =\n orderProps && limitPrice\n ? () => {\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:click\",\n params: {\n price: limitPrice,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"limitOrder\",\n flowProps: {\n orderProps,\n limitPrice,\n onClose: closeScreen,\n },\n });\n }\n : buttonProps.onClick;\n\n return (\n <Button\n variant=\"cta\"\n radius=\"lg\"\n {...buttonProps}\n className={cn(\"w-full mt-4 h-[48px] text-md\", buttonProps.className)}\n onClick={onClick}\n disabled={disabled}\n >\n {labelOverride || \"Review Order\"}\n </Button>\n );\n}\n\ntype OtcOrderTradeFlowButtonProps = BaseTradeFlowButtonProps & {\n otcPrice?: UserDefinedOtcPrice;\n};\n\nexport function OtcTradeFlowScreenButton({\n orderProps,\n otcPrice,\n labelOverride,\n ...buttonProps\n}: OtcOrderTradeFlowButtonProps) {\n const { onOTCOrder } = useWidgetEvents();\n const { showTradeOverviewScreen, closeScreen } = useSetScreen();\n\n const { isConnected } = useAccount();\n\n const disabled =\n buttonProps.disabled || !isConnected || !orderProps || !otcPrice;\n\n const onClick =\n orderProps && otcPrice\n ? () => {\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:click\",\n params: {\n price: otcPrice,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"otcOrder\",\n flowProps: {\n orderProps,\n otcPrice,\n onClose: closeScreen,\n },\n });\n }\n : buttonProps.onClick;\n\n return (\n <Button\n variant=\"cta\"\n radius=\"lg\"\n {...buttonProps}\n className={cn(\"w-full mt-4 h-[48px] text-md\", buttonProps.className)}\n onClick={onClick}\n disabled={disabled}\n >\n {labelOverride || \"Review Order\"}\n </Button>\n );\n}\n\ntype TwapTradeFlowButtonProps = BaseTradeFlowButtonProps & {\n twapPrice?: DeltaOrBridgePrice;\n};\n\nexport function TwapTradeFlowScreenButton({\n orderProps,\n twapPrice,\n labelOverride,\n ...buttonProps\n}: TwapTradeFlowButtonProps) {\n const { onTwapOrder } = useWidgetEvents();\n const { showTradeOverviewScreen, closeScreen } = useSetScreen();\n\n const { isConnected } = useAccount();\n\n const disabled =\n buttonProps.disabled || !isConnected || !orderProps || !twapPrice;\n\n const onClick =\n orderProps && twapPrice\n ? () => {\n onTwapOrder?.({\n event: {\n name: \"TwapOrder:click\",\n params: {\n price: twapPrice,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"twapOrder\",\n flowProps: {\n orderProps,\n twapPrice,\n onClose: closeScreen,\n },\n });\n }\n : buttonProps.onClick;\n\n return (\n <Button\n variant=\"cta\"\n radius=\"lg\"\n {...buttonProps}\n className={cn(\"w-full mt-4 h-[48px] text-md\", buttonProps.className)}\n onClick={onClick}\n disabled={disabled}\n >\n {labelOverride || \"Confirm\"}\n </Button>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TradeFlowScreenButton.js","names":["Button","MinTradeOverviewProps","cn","DeltaPriceV2","OptimalRate","useAccount","useSetScreen","useWidgetEvents","UserDefinedLimitPrice","UserDefinedOtcPrice","BaseTradeFlowButtonProps","React","ComponentProps","orderProps","labelOverride","SwapTradeFlowButtonProps","price","priceMode","SwapTradeFlowScreenButton","t0","$","_c","buttonProps","onSwap","showTradeOverviewScreen","closeScreen","isConnected","disabled","onClick","event","name","params","swapMode","flowType","flowProps","marketPrice","onClose","deltaPrice","T0","t1","t2","t3","className","t4","t5","LimitOrderTradeFlowButtonProps","limitPrice","LimitTradeFlowScreenButton","onLimitOrder","OtcOrderTradeFlowButtonProps","otcPrice","OtcTradeFlowScreenButton","onOTCOrder","TwapTradeFlowButtonProps","twapPrice","TwapTradeFlowScreenButton","onTwapOrder"],"sources":["../../src/core/TradeFlowScreenButton.tsx"],"sourcesContent":["import { Button } from \"@/components/ui/button\";\nimport type { MinTradeOverviewProps } from \"@/components/widget/TradeOverview/TradeOverview\";\nimport { cn } from \"@/lib/utils\";\nimport type { DeltaPriceV2, OptimalRate } from \"@velora-dex/sdk\";\nimport { useAccount } from \"wagmi\";\nimport { useSetScreen } from \"./screen/state/hooks/useSetScreen\";\nimport { useWidgetEvents } from \"./state/widgetEventsAtom\";\n\nimport type { UserDefinedLimitPrice } from \"@/hooks/swap/tradeFlow/useLimitOrderFlow\";\nimport type { UserDefinedOtcPrice } from \"@/hooks/otc/tradeFlow/useOtcOrderFlow\";\n\ntype BaseTradeFlowButtonProps = React.ComponentProps<typeof Button> & {\n orderProps?: MinTradeOverviewProps;\n labelOverride?: string;\n};\n\ntype SwapTradeFlowButtonProps = BaseTradeFlowButtonProps &\n (\n | { price?: OptimalRate; priceMode: \"market\" }\n | { price?: DeltaPriceV2; priceMode: \"delta\" }\n );\nexport function SwapTradeFlowScreenButton({\n orderProps,\n price,\n priceMode,\n labelOverride,\n ...buttonProps\n}: SwapTradeFlowButtonProps) {\n const { onSwap } = useWidgetEvents();\n const { showTradeOverviewScreen, closeScreen } = useSetScreen();\n\n const { isConnected } = useAccount();\n\n const disabled =\n buttonProps.disabled || !isConnected || !orderProps || !price;\n\n const onClick =\n orderProps && price\n ? () => {\n if (priceMode === \"market\") {\n onSwap?.({\n event: {\n name: \"Swap:click\",\n params: {\n swapMode: priceMode,\n price,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"marketSwap\",\n flowProps: {\n orderProps,\n marketPrice: price,\n onClose: closeScreen,\n },\n });\n } else if (priceMode === \"delta\") {\n onSwap?.({\n event: {\n name: \"Swap:click\",\n params: {\n swapMode: priceMode,\n price,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"deltaOrder\",\n flowProps: {\n orderProps,\n deltaPrice: price,\n onClose: closeScreen,\n },\n });\n }\n }\n : buttonProps.onClick;\n\n return (\n <Button\n variant=\"cta\"\n radius=\"lg\"\n {...buttonProps}\n className={cn(\"w-full mt-4 h-[48px] text-md\", buttonProps.className)}\n onClick={onClick}\n disabled={disabled}\n >\n {labelOverride || \"Swap\"}\n </Button>\n );\n}\n\ntype LimitOrderTradeFlowButtonProps = BaseTradeFlowButtonProps & {\n limitPrice?: UserDefinedLimitPrice;\n};\n\nexport function LimitTradeFlowScreenButton({\n orderProps,\n limitPrice,\n labelOverride,\n ...buttonProps\n}: LimitOrderTradeFlowButtonProps) {\n const { onLimitOrder } = useWidgetEvents();\n const { showTradeOverviewScreen, closeScreen } = useSetScreen();\n\n const { isConnected } = useAccount();\n\n const disabled =\n buttonProps.disabled || !isConnected || !orderProps || !limitPrice;\n\n const onClick =\n orderProps && limitPrice\n ? () => {\n onLimitOrder?.({\n event: {\n name: \"LimitOrder:click\",\n params: {\n price: limitPrice,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"limitOrder\",\n flowProps: {\n orderProps,\n limitPrice,\n onClose: closeScreen,\n },\n });\n }\n : buttonProps.onClick;\n\n return (\n <Button\n variant=\"cta\"\n radius=\"lg\"\n {...buttonProps}\n className={cn(\"w-full mt-4 h-[48px] text-md\", buttonProps.className)}\n onClick={onClick}\n disabled={disabled}\n >\n {labelOverride || \"Review Order\"}\n </Button>\n );\n}\n\ntype OtcOrderTradeFlowButtonProps = BaseTradeFlowButtonProps & {\n otcPrice?: UserDefinedOtcPrice;\n};\n\nexport function OtcTradeFlowScreenButton({\n orderProps,\n otcPrice,\n labelOverride,\n ...buttonProps\n}: OtcOrderTradeFlowButtonProps) {\n const { onOTCOrder } = useWidgetEvents();\n const { showTradeOverviewScreen, closeScreen } = useSetScreen();\n\n const { isConnected } = useAccount();\n\n const disabled =\n buttonProps.disabled || !isConnected || !orderProps || !otcPrice;\n\n const onClick =\n orderProps && otcPrice\n ? () => {\n onOTCOrder?.({\n event: {\n name: \"OTCOrder:click\",\n params: {\n price: otcPrice,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"otcOrder\",\n flowProps: {\n orderProps,\n otcPrice,\n onClose: closeScreen,\n },\n });\n }\n : buttonProps.onClick;\n\n return (\n <Button\n variant=\"cta\"\n radius=\"lg\"\n {...buttonProps}\n className={cn(\"w-full mt-4 h-[48px] text-md\", buttonProps.className)}\n onClick={onClick}\n disabled={disabled}\n >\n {labelOverride || \"Review Order\"}\n </Button>\n );\n}\n\ntype TwapTradeFlowButtonProps = BaseTradeFlowButtonProps & {\n twapPrice?: DeltaPriceV2;\n};\n\nexport function TwapTradeFlowScreenButton({\n orderProps,\n twapPrice,\n labelOverride,\n ...buttonProps\n}: TwapTradeFlowButtonProps) {\n const { onTwapOrder } = useWidgetEvents();\n const { showTradeOverviewScreen, closeScreen } = useSetScreen();\n\n const { isConnected } = useAccount();\n\n const disabled =\n buttonProps.disabled || !isConnected || !orderProps || !twapPrice;\n\n const onClick =\n orderProps && twapPrice\n ? () => {\n onTwapOrder?.({\n event: {\n name: \"TwapOrder:click\",\n params: {\n price: twapPrice,\n },\n },\n });\n showTradeOverviewScreen({\n flowType: \"twapOrder\",\n flowProps: {\n orderProps,\n twapPrice,\n onClose: closeScreen,\n },\n });\n }\n : buttonProps.onClick;\n\n return (\n <Button\n variant=\"cta\"\n radius=\"lg\"\n {...buttonProps}\n className={cn(\"w-full mt-4 h-[48px] text-md\", buttonProps.className)}\n onClick={onClick}\n disabled={disabled}\n >\n {labelOverride || \"Confirm\"}\n </Button>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useWidgetButtonExtraProps.d.ts","sourceRoot":"","sources":["../../../../src/core/button/hooks/useWidgetButtonExtraProps.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAwE5D,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AACF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CAsD7D;AAED,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CAgE7D;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CAyC7D;AAED,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CA+C7D"}
1
+ {"version":3,"file":"useWidgetButtonExtraProps.d.ts","sourceRoot":"","sources":["../../../../src/core/button/hooks/useWidgetButtonExtraProps.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAwE5D,KAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AACF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CAsD7D;AAED,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CA8D7D;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CAyC7D;AAED,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,mBAAmB,CA+C7D"}
@@ -86,10 +86,7 @@ function C(e) {
86
86
  tradeMode: "limit"
87
87
  }, n[0] = r, n[1] = i, n[2] = a) : a = n[2];
88
88
  let { wrongNetwork: o, isTokenFromInsufficientBalance: s, tokensAreSame: l, isConnected: u } = b(a), f = d(), { unsupportedTokens: h } = m(), _ = r && i && r.network !== i.network, y = _, x;
89
- n[3] === Symbol.for("react.memo_cache_sentinel") ? (x = {
90
- tradeMode: "limit",
91
- enabled: !1
92
- }, n[3] = x) : x = n[3];
89
+ n[3] === Symbol.for("react.memo_cache_sentinel") ? (x = { enabled: !1 }, n[3] = x) : x = n[3];
93
90
  let { error: S } = p(x), C = y ? S : void 0, w = t(), T = c().data?.isContract;
94
91
  if (!u) {
95
92
  let e;
@@ -1 +1 @@
1
- {"version":3,"file":"useWidgetButtonExtraProps.js","names":["useSwapReceiverAddressValue","useIsAccountContract","useCurrentSwapPriceError","useCurrentTwapPriceError","useIsTokenFromInsufficientBalance","Token","areTokensSame","useIsCrossChain","useOtcReceiverAddressValue","useUnsupportedLimitChain","useUnsupportedOtcChain","TradeMode","useUnsupportedLimitTokens","useDeltaSwapPriceForLimit","useLimitReceiverAddressValue","useChainMatches","useDegenMode","useTwapSliceTooShort","errorMessageByApiErrorMessage","Record","ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT","GetButtonLabelOverrideBaseInput","priceMode","priceError","Error","wrongNetwork","isTokenFromInsufficientBalance","receiverRequiredButNotSet","getButtonLabelOverrideBase","message","getSwapButtonLabelOverride","isDangerSwap","baseParams","baseOverride","useWidgetButtonConditions","t0","$","_c","tokenFrom","tokenTo","tradeMode","walletChainMatchesAppChain","isConnected","t1","tokensAreSame","t2","UseExtraPropsInput","UseExtraPropsReturn","disabled","labelOverride","className","dangerSwapBtnClassName","useWidgetButtonExtraProps","cachedError","getPriceImpact","degenMode","priceImpact","isHighImpact","isUnavailable","isAccountContract","data","isContract","isCrosschain","receiver","t3","t4","undefined","t5","useLimitButtonExtraProps","unsupportedChain","unsupportedTokens","network","isCrosschainLimitOrder","Symbol","for","enabled","error","limitPriceError","limitReceiverAddress","connectedButNoReceiver","useOtcButtonExtraProps","otcReceiverAddress","useTwapButtonExtraProps","isSliceTooShort"],"sources":["../../../../src/core/button/hooks/useWidgetButtonExtraProps.ts"],"sourcesContent":["import { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport { useIsAccountContract } from \"@/hooks/getCode/useIsAccountContract\";\nimport { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useCurrentTwapPriceError } from \"@/hooks/swap/prices/useTwapPrices\";\n\nimport { useIsTokenFromInsufficientBalance } from \"@/hooks/tokens/balances/useIsInsufficientTokenBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport { useOtcReceiverAddressValue } from \"@/core/otc/state/receiverAddressAtom\";\nimport { useUnsupportedLimitChain } from \"@/core/limit/useLimitNotSupported\";\nimport { useUnsupportedOtcChain } from \"@/core/otc/useOtcNotSupported\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useUnsupportedLimitTokens } from \"@/core/limit/useLimitTokenToInputProps\";\nimport { useDeltaSwapPriceForLimit } from \"@/core/limit/useLimitRate\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useDegenMode } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\nimport { useTwapSliceTooShort } from \"@/core/twap/state/twapParamsAtom\";\n\nconst errorMessageByApiErrorMessage: Record<string, string> = {\n ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT: \"Price Impact Too High\",\n \"No routes found with enough liquidity\": \"No Liquidity\",\n \"Bad USD price\": \"Price Error\",\n};\n\ntype GetButtonLabelOverrideBaseInput = {\n priceMode?: \"market\" | \"delta\";\n priceError?: Error | null;\n wrongNetwork: boolean;\n isTokenFromInsufficientBalance: boolean;\n receiverRequiredButNotSet?: boolean;\n};\n\nfunction getButtonLabelOverrideBase({\n priceMode,\n priceError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n}: GetButtonLabelOverrideBaseInput) {\n if (priceMode === \"market\" && priceError)\n return errorMessageByApiErrorMessage[priceError.message];\n\n if (wrongNetwork) return \"You are on the wrong network\";\n if (isTokenFromInsufficientBalance) return \"Insufficient funds\";\n if (receiverRequiredButNotSet) return \"Add a receiving address\";\n}\n\nfunction getSwapButtonLabelOverride({\n isDangerSwap,\n ...baseParams\n}: {\n isDangerSwap?: boolean;\n} & GetButtonLabelOverrideBaseInput): string | undefined {\n const baseOverride = getButtonLabelOverrideBase(baseParams);\n if (baseOverride) return baseOverride;\n if (isDangerSwap) return \"Swap Anyway\";\n}\n\nfunction useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode,\n}: UseExtraPropsInput) {\n const { walletChainMatchesAppChain, isConnected } = useChainMatches();\n\n const wrongNetwork = !walletChainMatchesAppChain;\n\n // protection against same tokens, because we cannot rely on setTokenAtom() to handle ALL possible cases\n const tokensAreSame =\n tokenFrom && tokenTo && areTokensSame(tokenFrom, tokenTo);\n\n const isTokenFromInsufficientBalance =\n useIsTokenFromInsufficientBalance(tradeMode);\n\n return {\n isConnected,\n wrongNetwork,\n tokensAreSame,\n isTokenFromInsufficientBalance,\n };\n}\n\ntype UseExtraPropsInput = {\n tokenFrom?: Token;\n tokenTo?: Token;\n tradeMode: TradeMode;\n};\ntype UseExtraPropsReturn = {\n disabled: boolean;\n labelOverride?: string;\n className?: string;\n isConnected: boolean;\n};\n\nconst dangerSwapBtnClassName = \"bg-secondary-radical-red-1\";\n\nexport function useWidgetButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"swap\",\n });\n\n const { priceMode, cachedError, getPriceImpact } = useCurrentSwapPriceError();\n const degenMode = useDegenMode();\n\n const priceImpact = getPriceImpact();\n\n const isDangerSwap = !!(\n priceImpact.isHighImpact || priceImpact.isUnavailable\n );\n\n const isAccountContract = useIsAccountContract().data?.isContract;\n const isCrosschain = useIsCrossChain();\n const receiver = useSwapReceiverAddressValue();\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const receiverRequiredButNotSet =\n !!isAccountContract && isCrosschain && !receiver;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n receiverRequiredButNotSet ||\n (!degenMode && isDangerSwap);\n\n const labelOverride = getSwapButtonLabelOverride({\n isDangerSwap,\n priceMode,\n priceError: cachedError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n });\n\n return {\n disabled,\n labelOverride,\n isConnected,\n className: isDangerSwap ? dangerSwapBtnClassName : undefined,\n };\n}\n\nexport function useLimitButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"limit\",\n });\n const unsupportedChain = useUnsupportedLimitChain();\n\n const { unsupportedTokens } = useUnsupportedLimitTokens();\n\n const isCrosschain =\n tokenFrom && tokenTo && tokenFrom.network !== tokenTo.network;\n\n const isCrosschainLimitOrder = isCrosschain;\n\n const { error: limitPriceError } = useDeltaSwapPriceForLimit({\n // DeltaPrice is required for crosschain Limit orders only\n tradeMode: \"limit\",\n enabled: false,\n });\n\n const priceError = isCrosschainLimitOrder ? limitPriceError : undefined;\n\n const limitReceiverAddress = useLimitReceiverAddressValue();\n const isAccountContract = useIsAccountContract().data?.isContract;\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n const connectedButNoReceiver = !limitReceiverAddress;\n\n const receiverRequiredButNotSet =\n // require receiver address filled when wallet=Smart Contract and Order is crosschain\n !!isAccountContract && !!isCrosschain && connectedButNoReceiver;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n !!unsupportedTokens ||\n !!priceError ||\n receiverRequiredButNotSet;\n\n const labelOverride = getButtonLabelOverrideBase({\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n priceError,\n priceMode: \"delta\",\n });\n\n const className = unsupportedChain ? \"pointer-events-none\" : undefined;\n\n return {\n disabled,\n labelOverride,\n className,\n isConnected,\n };\n}\n\nexport function useOtcButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"otc\",\n });\n\n const otcReceiverAddress = useOtcReceiverAddressValue();\n const unsupportedChain = useUnsupportedOtcChain();\n\n const className = unsupportedChain ? \"pointer-events-none\" : undefined;\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const connectedButNoReceiver = isConnected && !otcReceiverAddress;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n connectedButNoReceiver;\n\n const labelOverride = getButtonLabelOverrideBase({\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet: connectedButNoReceiver, // receiver always required for OTC\n });\n\n return {\n labelOverride,\n disabled,\n className,\n isConnected,\n };\n}\n\nexport function useTwapButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"twap\",\n });\n const isSliceTooShort = useTwapSliceTooShort();\n\n const { cachedError, getPriceImpact } = useCurrentTwapPriceError();\n const degenMode = useDegenMode();\n\n const priceImpact = getPriceImpact();\n\n const isDangerSwap = !!(\n priceImpact.isHighImpact || priceImpact.isUnavailable\n );\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n (!degenMode && isDangerSwap) ||\n isSliceTooShort;\n\n const labelOverride = getSwapButtonLabelOverride({\n isDangerSwap,\n priceMode: \"delta\",\n priceError: cachedError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n });\n\n return {\n disabled,\n labelOverride,\n isConnected,\n className: isDangerSwap ? dangerSwapBtnClassName : undefined,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useWidgetButtonExtraProps.js","names":["useSwapReceiverAddressValue","useIsAccountContract","useCurrentSwapPriceError","useCurrentTwapPriceError","useIsTokenFromInsufficientBalance","Token","areTokensSame","useIsCrossChain","useOtcReceiverAddressValue","useUnsupportedLimitChain","useUnsupportedOtcChain","TradeMode","useUnsupportedLimitTokens","useDeltaSwapPriceForLimit","useLimitReceiverAddressValue","useChainMatches","useDegenMode","useTwapSliceTooShort","errorMessageByApiErrorMessage","Record","ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT","GetButtonLabelOverrideBaseInput","priceMode","priceError","Error","wrongNetwork","isTokenFromInsufficientBalance","receiverRequiredButNotSet","getButtonLabelOverrideBase","message","getSwapButtonLabelOverride","isDangerSwap","baseParams","baseOverride","useWidgetButtonConditions","t0","$","_c","tokenFrom","tokenTo","tradeMode","walletChainMatchesAppChain","isConnected","t1","tokensAreSame","t2","UseExtraPropsInput","UseExtraPropsReturn","disabled","labelOverride","className","dangerSwapBtnClassName","useWidgetButtonExtraProps","cachedError","getPriceImpact","degenMode","priceImpact","isHighImpact","isUnavailable","isAccountContract","data","isContract","isCrosschain","receiver","t3","t4","undefined","t5","useLimitButtonExtraProps","unsupportedChain","unsupportedTokens","network","isCrosschainLimitOrder","Symbol","for","enabled","error","limitPriceError","limitReceiverAddress","connectedButNoReceiver","useOtcButtonExtraProps","otcReceiverAddress","useTwapButtonExtraProps","isSliceTooShort"],"sources":["../../../../src/core/button/hooks/useWidgetButtonExtraProps.ts"],"sourcesContent":["import { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport { useIsAccountContract } from \"@/hooks/getCode/useIsAccountContract\";\nimport { useCurrentSwapPriceError } from \"@/hooks/swap/prices/useSwapPrices\";\nimport { useCurrentTwapPriceError } from \"@/hooks/swap/prices/useTwapPrices\";\n\nimport { useIsTokenFromInsufficientBalance } from \"@/hooks/tokens/balances/useIsInsufficientTokenBalance\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { areTokensSame } from \"@/tokens/utils/areTokensSame\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport { useOtcReceiverAddressValue } from \"@/core/otc/state/receiverAddressAtom\";\nimport { useUnsupportedLimitChain } from \"@/core/limit/useLimitNotSupported\";\nimport { useUnsupportedOtcChain } from \"@/core/otc/useOtcNotSupported\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport { useUnsupportedLimitTokens } from \"@/core/limit/useLimitTokenToInputProps\";\nimport { useDeltaSwapPriceForLimit } from \"@/core/limit/useLimitRate\";\nimport { useLimitReceiverAddressValue } from \"@/core/limit/state/receiverAddressAtom\";\nimport { useChainMatches } from \"@/hooks/useChainMatches\";\nimport { useDegenMode } from \"@/components/widget/TradeParameters/state/degenModeParamAtom\";\nimport { useTwapSliceTooShort } from \"@/core/twap/state/twapParamsAtom\";\n\nconst errorMessageByApiErrorMessage: Record<string, string> = {\n ESTIMATED_LOSS_GREATER_THAN_MAX_IMPACT: \"Price Impact Too High\",\n \"No routes found with enough liquidity\": \"No Liquidity\",\n \"Bad USD price\": \"Price Error\",\n};\n\ntype GetButtonLabelOverrideBaseInput = {\n priceMode?: \"market\" | \"delta\";\n priceError?: Error | null;\n wrongNetwork: boolean;\n isTokenFromInsufficientBalance: boolean;\n receiverRequiredButNotSet?: boolean;\n};\n\nfunction getButtonLabelOverrideBase({\n priceMode,\n priceError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n}: GetButtonLabelOverrideBaseInput) {\n if (priceMode === \"market\" && priceError)\n return errorMessageByApiErrorMessage[priceError.message];\n\n if (wrongNetwork) return \"You are on the wrong network\";\n if (isTokenFromInsufficientBalance) return \"Insufficient funds\";\n if (receiverRequiredButNotSet) return \"Add a receiving address\";\n}\n\nfunction getSwapButtonLabelOverride({\n isDangerSwap,\n ...baseParams\n}: {\n isDangerSwap?: boolean;\n} & GetButtonLabelOverrideBaseInput): string | undefined {\n const baseOverride = getButtonLabelOverrideBase(baseParams);\n if (baseOverride) return baseOverride;\n if (isDangerSwap) return \"Swap Anyway\";\n}\n\nfunction useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode,\n}: UseExtraPropsInput) {\n const { walletChainMatchesAppChain, isConnected } = useChainMatches();\n\n const wrongNetwork = !walletChainMatchesAppChain;\n\n // protection against same tokens, because we cannot rely on setTokenAtom() to handle ALL possible cases\n const tokensAreSame =\n tokenFrom && tokenTo && areTokensSame(tokenFrom, tokenTo);\n\n const isTokenFromInsufficientBalance =\n useIsTokenFromInsufficientBalance(tradeMode);\n\n return {\n isConnected,\n wrongNetwork,\n tokensAreSame,\n isTokenFromInsufficientBalance,\n };\n}\n\ntype UseExtraPropsInput = {\n tokenFrom?: Token;\n tokenTo?: Token;\n tradeMode: TradeMode;\n};\ntype UseExtraPropsReturn = {\n disabled: boolean;\n labelOverride?: string;\n className?: string;\n isConnected: boolean;\n};\n\nconst dangerSwapBtnClassName = \"bg-secondary-radical-red-1\";\n\nexport function useWidgetButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"swap\",\n });\n\n const { priceMode, cachedError, getPriceImpact } = useCurrentSwapPriceError();\n const degenMode = useDegenMode();\n\n const priceImpact = getPriceImpact();\n\n const isDangerSwap = !!(\n priceImpact.isHighImpact || priceImpact.isUnavailable\n );\n\n const isAccountContract = useIsAccountContract().data?.isContract;\n const isCrosschain = useIsCrossChain();\n const receiver = useSwapReceiverAddressValue();\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const receiverRequiredButNotSet =\n !!isAccountContract && isCrosschain && !receiver;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n receiverRequiredButNotSet ||\n (!degenMode && isDangerSwap);\n\n const labelOverride = getSwapButtonLabelOverride({\n isDangerSwap,\n priceMode,\n priceError: cachedError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n });\n\n return {\n disabled,\n labelOverride,\n isConnected,\n className: isDangerSwap ? dangerSwapBtnClassName : undefined,\n };\n}\n\nexport function useLimitButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"limit\",\n });\n const unsupportedChain = useUnsupportedLimitChain();\n\n const { unsupportedTokens } = useUnsupportedLimitTokens();\n\n const isCrosschain =\n tokenFrom && tokenTo && tokenFrom.network !== tokenTo.network;\n\n const isCrosschainLimitOrder = isCrosschain;\n\n const { error: limitPriceError } = useDeltaSwapPriceForLimit({\n enabled: false,\n });\n\n const priceError = isCrosschainLimitOrder ? limitPriceError : undefined;\n\n const limitReceiverAddress = useLimitReceiverAddressValue();\n const isAccountContract = useIsAccountContract().data?.isContract;\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n const connectedButNoReceiver = !limitReceiverAddress;\n\n const receiverRequiredButNotSet =\n // require receiver address filled when wallet=Smart Contract and Order is crosschain\n !!isAccountContract && !!isCrosschain && connectedButNoReceiver;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n !!unsupportedTokens ||\n !!priceError ||\n receiverRequiredButNotSet;\n\n const labelOverride = getButtonLabelOverrideBase({\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet,\n priceError,\n priceMode: \"delta\",\n });\n\n const className = unsupportedChain ? \"pointer-events-none\" : undefined;\n\n return {\n disabled,\n labelOverride,\n className,\n isConnected,\n };\n}\n\nexport function useOtcButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"otc\",\n });\n\n const otcReceiverAddress = useOtcReceiverAddressValue();\n const unsupportedChain = useUnsupportedOtcChain();\n\n const className = unsupportedChain ? \"pointer-events-none\" : undefined;\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const connectedButNoReceiver = isConnected && !otcReceiverAddress;\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n connectedButNoReceiver;\n\n const labelOverride = getButtonLabelOverrideBase({\n wrongNetwork,\n isTokenFromInsufficientBalance,\n receiverRequiredButNotSet: connectedButNoReceiver, // receiver always required for OTC\n });\n\n return {\n labelOverride,\n disabled,\n className,\n isConnected,\n };\n}\n\nexport function useTwapButtonExtraProps({\n tokenFrom,\n tokenTo,\n}: Omit<UseExtraPropsInput, \"tradeMode\">): UseExtraPropsReturn {\n const {\n wrongNetwork,\n isTokenFromInsufficientBalance,\n tokensAreSame,\n isConnected,\n } = useWidgetButtonConditions({\n tokenFrom,\n tokenTo,\n tradeMode: \"twap\",\n });\n const isSliceTooShort = useTwapSliceTooShort();\n\n const { cachedError, getPriceImpact } = useCurrentTwapPriceError();\n const degenMode = useDegenMode();\n\n const priceImpact = getPriceImpact();\n\n const isDangerSwap = !!(\n priceImpact.isHighImpact || priceImpact.isUnavailable\n );\n\n if (!isConnected) {\n return { disabled: false, isConnected };\n }\n\n const disabled =\n wrongNetwork ||\n tokensAreSame ||\n isTokenFromInsufficientBalance ||\n (!degenMode && isDangerSwap) ||\n isSliceTooShort;\n\n const labelOverride = getSwapButtonLabelOverride({\n isDangerSwap,\n priceMode: \"delta\",\n priceError: cachedError,\n wrongNetwork,\n isTokenFromInsufficientBalance,\n });\n\n return {\n disabled,\n labelOverride,\n isConnected,\n className: isDangerSwap ? dangerSwapBtnClassName : undefined,\n };\n}\n"],"mappings":"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"}