@velora-dex/widget 0.0.15 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +91 -29
- package/dist/assets/circle-check.svg.js +12 -0
- package/dist/assets/circle-check.svg.js.map +1 -0
- package/dist/assets/circle-exclamation.svg.js +12 -0
- package/dist/assets/circle-exclamation.svg.js.map +1 -0
- package/dist/assets/copy.svg.js +12 -0
- package/dist/assets/copy.svg.js.map +1 -0
- package/dist/assets/external-url.svg.js +12 -0
- package/dist/assets/external-url.svg.js.map +1 -0
- package/dist/assets/logout.svg.js +12 -0
- package/dist/assets/logout.svg.js.map +1 -0
- package/dist/assets/spinner.svg.js.map +1 -0
- package/dist/assets/wS.svg.js +12 -0
- package/dist/assets/wS.svg.js.map +1 -0
- package/dist/assets/wS.svg2.js +4 -0
- package/dist/assets/wS.svg2.js.map +1 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.js +1 -106
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/dialog.js +2 -116
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +2 -2
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +3 -334
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/progress.d.ts +13 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +120 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +33 -9
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/switch.d.ts +3 -1
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +30 -16
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +15 -4
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/web3/AccountButton.d.ts.map +1 -1
- package/dist/components/web3/AccountButton.js +98 -41
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts +2 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +92 -0
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -0
- package/dist/components/web3/ConnectWallets/index.js +1 -1
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts +9 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.d.ts.map +1 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js +211 -0
- package/dist/components/web3/ConnectedWallet/ConnectedWallet.js.map +1 -0
- package/dist/components/web3/providers.d.ts.map +1 -1
- package/dist/components/web3/providers.js +10 -6
- package/dist/components/web3/providers.js.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +2 -1
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js +126 -136
- package/dist/components/widget/Dialog/ReceiverAddressDialog/ReceiverAddressDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.d.ts.map +1 -1
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js +2 -3
- package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListBody.js.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts +7 -5
- package/dist/components/widget/Drawer/state/useDrawerControls.d.ts.map +1 -1
- package/dist/components/widget/Drawer/state/useDrawerControls.js +57 -46
- package/dist/components/widget/Drawer/state/useDrawerControls.js.map +1 -1
- package/dist/components/widget/Line/Line.d.ts +3 -1
- package/dist/components/widget/Line/Line.d.ts.map +1 -1
- package/dist/components/widget/Line/Line.js +22 -15
- package/dist/components/widget/Line/Line.js.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.d.ts.map +1 -1
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +22 -20
- package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
- package/dist/components/widget/NetworkIcon/assets/sqr/sonic.svg.js +12 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/sonic.svg.js.map +1 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/unichain.svg.js +12 -0
- package/dist/components/widget/NetworkIcon/assets/sqr/unichain.svg.js.map +1 -0
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +61 -52
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +106 -88
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +1 -1
- package/dist/components/widget/Toasts/CustomToast.d.ts +8 -0
- package/dist/components/widget/Toasts/CustomToast.d.ts.map +1 -0
- package/dist/components/widget/Toasts/CustomToast.js +222 -0
- package/dist/components/widget/Toasts/CustomToast.js.map +1 -0
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +122 -137
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenInput/types.d.ts +1 -0
- package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js +1 -1
- package/dist/components/widget/TokenSwitcher/TokenSwitcher.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +20 -16
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts +2 -2
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +20 -16
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step.js +1 -1
- package/dist/components/widget/TradeOverview/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +5 -40
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js +35 -6
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts +5 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js +55 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorDetails.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts +5 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js +43 -0
- package/dist/components/widget/TradeOverview/TradeError/TradeErrorFooter.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts +6 -0
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/index.js +55 -0
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts +4 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.js +30 -0
- package/dist/components/widget/TradeOverview/TradeError/utils.js.map +1 -0
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts +3 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +156 -101
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js +1 -1
- package/dist/components/widget/TradeOverview/TradeOverviewHeader.js.map +1 -1
- package/dist/components/widget/TradeOverview/assets/1_approving.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/1_approving.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/2_in_progress.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/2_in_progress.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/3_executing_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/3_executing_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/4_complete_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/4_complete_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/assets/5_error_step.lottie.js +4 -0
- package/dist/components/widget/TradeOverview/assets/5_error_step.lottie.js.map +1 -0
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts +8 -3
- package/dist/components/widget/TradeOverview/tradeFlowContext.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js +17 -1
- package/dist/components/widget/TradeOverview/tradeFlowContext.js.map +1 -1
- package/dist/components/widget/TradeParameters/EIP1559Parameter.d.ts +2 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js +56 -0
- package/dist/components/widget/TradeParameters/EIP1559Parameter.js.map +1 -0
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js +25 -16
- package/dist/components/widget/TradeParameters/SlippageParameter/SlippageParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/TradeParameters.js +61 -34
- package/dist/components/widget/TradeParameters/TradeParameters.js.map +1 -1
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.d.ts +2 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js +155 -0
- package/dist/components/widget/TradeParameters/TransactionSpeedParameter.js.map +1 -0
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.d.ts.map +1 -1
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js +24 -7
- package/dist/components/widget/TradeParameters/hooks/useIsNotDefaultAnyParameter.js.map +1 -1
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.d.ts +6 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.js +10 -0
- package/dist/components/widget/TradeParameters/state/eip1559ParamAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.d.ts +8 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js +13 -0
- package/dist/components/widget/TradeParameters/state/gasPresetParamAtom.js.map +1 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.d.ts +4 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.d.ts.map +1 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.js +16 -0
- package/dist/components/widget/TradeParameters/state/resetParamsAtom.js.map +1 -0
- package/dist/components/widget/WrapEth/WrapEthContent.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthContent.js +64 -66
- package/dist/components/widget/WrapEth/WrapEthContent.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +56 -47
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js +2 -1
- package/dist/components/widget/WrapEth/hooks/useSubmitDepositTxMutation.js.map +1 -1
- package/dist/components/widget/YouGet/YouGet.d.ts.map +1 -1
- package/dist/components/widget/YouGet/YouGet.js +97 -98
- package/dist/components/widget/YouGet/YouGet.js.map +1 -1
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js +1626 -0
- package/dist/external/.pnpm/vaul@1.1.2_patch_hash_07b36ba5def3805dde9d543a880ba9e4caf55e5eb58e544faaa2c186846bf3c1__15df56ff48174365d34843c037ea8a33/external/vaul/dist/index.js.map +1 -0
- package/dist/hooks/gas/config.d.ts.map +1 -1
- package/dist/hooks/gas/config.js +9 -5
- package/dist/hooks/gas/config.js.map +1 -1
- package/dist/hooks/gas/types.d.ts +1 -1
- package/dist/hooks/gas/types.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.d.ts +8 -0
- package/dist/hooks/gas/useGasPrices.d.ts.map +1 -1
- package/dist/hooks/gas/useGasPrices.js +30 -21
- package/dist/hooks/gas/useGasPrices.js.map +1 -1
- package/dist/hooks/gas/utils.d.ts +5 -0
- package/dist/hooks/gas/utils.d.ts.map +1 -1
- package/dist/hooks/gas/utils.js +5 -2
- package/dist/hooks/gas/utils.js.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.d.ts.map +1 -1
- package/dist/hooks/getCode/useIsAccountContract.js +21 -8
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignArbitraryTypedData.js → common/useSignArbitraryTypedData.js} +1 -1
- package/dist/hooks/permit/hooks/common/useSignArbitraryTypedData.js.map +1 -0
- package/dist/hooks/permit/hooks/{useSignPermit.d.ts → common/useSignPermit.d.ts} +1 -1
- package/dist/hooks/permit/hooks/common/useSignPermit.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignPermit.js → common/useSignPermit.js} +2 -2
- package/dist/hooks/permit/hooks/common/useSignPermit.js.map +1 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.d.ts +7 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js +25 -0
- package/dist/hooks/permit/hooks/common/useWalletSupportsPermit.js.map +1 -0
- package/dist/hooks/permit/hooks/{useGetPermitInfo.d.ts → permit1/useGetPermitInfo.d.ts} +2 -2
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useGetPermitInfo.js → permit1/useGetPermitInfo.js} +3 -3
- package/dist/hooks/permit/hooks/permit1/useGetPermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{useGetSafePermitInfo.d.ts → permit1/useGetSafePermitInfo.d.ts} +3 -3
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useGetSafePermitInfo.js → permit1/useGetSafePermitInfo.js} +1 -1
- package/dist/hooks/permit/hooks/permit1/useGetSafePermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{usePermit1Nonce.d.ts → permit1/usePermit1Nonce.d.ts} +5 -5
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{usePermit1Nonce.js → permit1/usePermit1Nonce.js} +4 -2
- package/dist/hooks/permit/hooks/permit1/usePermit1Nonce.js.map +1 -0
- package/dist/hooks/permit/hooks/{useSignTokenFromPermit1.d.ts → permit1/useSignTokenPermit1.d.ts} +15 -14
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useSignTokenFromPermit1.js → permit1/useSignTokenPermit1.js} +75 -68
- package/dist/hooks/permit/hooks/permit1/useSignTokenPermit1.js.map +1 -0
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.d.ts +10 -0
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermit1Nonce.js → permit1/useTokenFromPermit1Nonce.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermitInfo.d.ts → permit1/useTokenFromPermitInfo.d.ts} +1 -1
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTokenFromPermitInfo.js → permit1/useTokenFromPermitInfo.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTokenFromPermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/{useTryToSignPermit1.d.ts → permit1/useTryToSignPermit1.d.ts} +1 -1
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/{useTryToSignPermit1.js → permit1/useTryToSignPermit1.js} +2 -2
- package/dist/hooks/permit/hooks/permit1/useTryToSignPermit1.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts +21 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +79 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts +76 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js +143 -0
- package/dist/hooks/permit/hooks/permit2/usePermit2TransferFromNonce.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts +52 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +299 -0
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.d.ts +10 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js +55 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js.map +1 -0
- package/dist/hooks/permit/utils/abi.d.ts +173 -0
- package/dist/hooks/permit/utils/abi.d.ts.map +1 -1
- package/dist/hooks/permit/utils/abi.js +174 -1
- package/dist/hooks/permit/utils/abi.js.map +1 -1
- package/dist/hooks/permit/utils/construct.d.ts +3 -4
- package/dist/hooks/permit/utils/construct.d.ts.map +1 -1
- package/dist/hooks/permit/utils/construct.js +1 -1
- package/dist/hooks/permit/utils/construct.js.map +1 -1
- package/dist/hooks/permit/utils/deadlines.d.ts +8 -0
- package/dist/hooks/permit/utils/deadlines.d.ts.map +1 -0
- package/dist/hooks/permit/utils/deadlines.js +15 -0
- package/dist/hooks/permit/utils/deadlines.js.map +1 -0
- package/dist/hooks/permit/utils/encodeArgs.d.ts +22 -4
- package/dist/hooks/permit/utils/encodeArgs.d.ts.map +1 -1
- package/dist/hooks/permit/utils/encodeArgs.js +33 -4
- package/dist/hooks/permit/utils/encodeArgs.js.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.d.ts +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.d.ts.map +1 -1
- package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +4 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +87 -32
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +0 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +18 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +190 -0
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts +20 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js +81 -0
- package/dist/hooks/swap/tradeFlow/common/useConstructGasParams.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +53 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +308 -0
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts +25 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.d.ts.map +1 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js +103 -0
- package/dist/hooks/swap/tradeFlow/common/useTrackedPrice.js.map +1 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +2 -0
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +333 -397
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +3 -0
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +31 -10
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +4 -0
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +295 -362
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +3 -0
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +32 -11
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/types.d.ts +3 -0
- package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useTokenAllowance.js +32 -28
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts +1 -0
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js +41 -1
- package/dist/hooks/tokens/balances/useIsInsufficientTokenBalance.js.map +1 -1
- package/dist/hooks/tokens/useTokenLists.d.ts +1 -0
- package/dist/hooks/tokens/useTokenLists.d.ts.map +1 -1
- package/dist/hooks/tokens/useTokenLists.js +15 -2
- package/dist/hooks/tokens/useTokenLists.js.map +1 -1
- package/dist/hooks/tokens/useTokenTaxFee.d.ts +12 -0
- package/dist/hooks/tokens/useTokenTaxFee.d.ts.map +1 -0
- package/dist/hooks/tokens/useTokenTaxFee.js +54 -0
- package/dist/hooks/tokens/useTokenTaxFee.js.map +1 -0
- package/dist/hooks/txs/index.d.ts +1 -1
- package/dist/hooks/txs/mutations/useApprove.d.ts +5 -4
- package/dist/hooks/txs/mutations/useApprove.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useApprove.js +55 -39
- package/dist/hooks/txs/mutations/useApprove.js.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useDepositWeth.js +37 -27
- package/dist/hooks/txs/mutations/useDepositWeth.js.map +1 -1
- package/dist/hooks/useEIP1559Enabled.d.ts +6 -0
- package/dist/hooks/useEIP1559Enabled.d.ts.map +1 -0
- package/dist/hooks/useEIP1559Enabled.js +31 -0
- package/dist/hooks/useEIP1559Enabled.js.map +1 -0
- package/dist/index.d.ts +2 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -21
- package/dist/index.js.map +1 -1
- package/dist/lib/constants/delta.d.ts.map +1 -1
- package/dist/lib/constants/delta.js +3 -2
- package/dist/lib/constants/delta.js.map +1 -1
- package/dist/lib/constants/weth.d.ts.map +1 -1
- package/dist/lib/constants/weth.js +24 -17
- package/dist/lib/constants/weth.js.map +1 -1
- package/dist/lib/utils/copyToClipboard.d.ts +2 -0
- package/dist/lib/utils/copyToClipboard.d.ts.map +1 -0
- package/dist/lib/utils/copyToClipboard.js +14 -0
- package/dist/lib/utils/copyToClipboard.js.map +1 -0
- package/dist/lib/utils/logger.js +24 -0
- package/dist/lib/utils/logger.js.map +1 -0
- package/dist/lib/utils/price.js +1 -1
- package/dist/lib/utils/providerErrors.d.ts +12 -0
- package/dist/lib/utils/providerErrors.d.ts.map +1 -0
- package/dist/lib/utils/providerErrors.js +29 -0
- package/dist/lib/utils/providerErrors.js.map +1 -0
- package/dist/lib/utils/slippage.d.ts +5 -0
- package/dist/lib/utils/slippage.d.ts.map +1 -1
- package/dist/lib/utils/slippage.js.map +1 -1
- package/dist/lib/utils/toDecimal.d.ts +1 -0
- package/dist/lib/utils/toDecimal.d.ts.map +1 -1
- package/dist/lib/utils/toDecimal.js +9 -4
- package/dist/lib/utils/toDecimal.js.map +1 -1
- package/dist/lib/utils/toasts.d.ts +2 -0
- package/dist/lib/utils/toasts.d.ts.map +1 -1
- package/dist/lib/utils/toasts.js +48 -27
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts +333 -35
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/constants.d.ts +333 -35
- package/dist/lib/web3/wagmi/constants.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/constants.js +5 -4
- package/dist/lib/web3/wagmi/constants.js.map +1 -1
- package/dist/lib/web3/wagmi/supportedChains.d.ts +1 -1
- package/dist/lib/web3/wagmi/supportedChains.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/transports.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/transports.js +3 -2
- package/dist/lib/web3/wagmi/transports.js.map +1 -1
- package/dist/styles.css +2445 -2933
- package/dist/test/Configurator.d.ts.map +1 -1
- package/dist/tokens/constants.d.ts.map +1 -1
- package/dist/tokens/constants.js +4 -3
- package/dist/tokens/constants.js.map +1 -1
- package/dist/tokens/defaultTokens.d.ts.map +1 -1
- package/dist/tokens/defaultTokens.js +44 -22
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/tokens/lists/lists.json.d.ts +21 -0
- package/dist/tokens/lists/lists.json.js +21 -0
- package/dist/tokens/lists/lists.json.js.map +1 -1
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +10 -6
- package/dist/tokens/lists/state/tokenListsStateAtom.d.ts.map +1 -1
- package/dist/tokens/lists/state/types.d.ts +3 -2
- package/dist/tokens/lists/state/types.d.ts.map +1 -1
- package/dist/widget/ConnectWalletDrawerButton.d.ts +7 -0
- package/dist/widget/ConnectWalletDrawerButton.d.ts.map +1 -0
- package/dist/widget/ConnectWalletDrawerButton.js +95 -0
- package/dist/widget/ConnectWalletDrawerButton.js.map +1 -0
- package/dist/widget/Toaster.d.ts +2 -0
- package/dist/widget/Toaster.d.ts.map +1 -0
- package/dist/widget/Toaster.js +24 -0
- package/dist/widget/Toaster.js.map +1 -0
- package/dist/widget/TradeFlowButton.d.ts +16 -0
- package/dist/widget/TradeFlowButton.d.ts.map +1 -0
- package/dist/widget/TradeFlowButton.js +474 -0
- package/dist/widget/TradeFlowButton.js.map +1 -0
- package/dist/widget/Updaters.d.ts.map +1 -1
- package/dist/widget/Updaters.js +6 -2
- package/dist/widget/Updaters.js.map +1 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js +64 -31
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/widget/constants.d.ts +1 -0
- package/dist/widget/constants.d.ts.map +1 -1
- package/dist/widget/constants.js +2 -1
- package/dist/widget/constants.js.map +1 -1
- package/dist/widget/index.d.ts +1 -1
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +116 -461
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/inputs/hooks/types.d.ts +1 -1
- package/dist/widget/inputs/hooks/types.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js +66 -53
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.js +46 -20
- package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/widget/inputs/state/selectedTokenActionsAtom.js +1 -1
- package/dist/widget/state/chainToAtom.d.ts +2 -2
- package/dist/widget/state/chainToAtom.d.ts.map +1 -1
- package/dist/widget/state/configActionsAtom.d.ts.map +1 -1
- package/dist/widget/state/configActionsAtom.js +3 -1
- package/dist/widget/state/configActionsAtom.js.map +1 -1
- package/dist/widget/state/configAtom.d.ts +4 -1
- package/dist/widget/state/configAtom.d.ts.map +1 -1
- package/dist/widget/state/configAtom.js +2 -1
- package/dist/widget/state/configAtom.js.map +1 -1
- package/dist/widget/state/containerAtom.js +1 -1
- package/dist/widget/state/externalProviderAtom.d.ts +23 -0
- package/dist/widget/state/externalProviderAtom.d.ts.map +1 -0
- package/dist/widget/state/externalProviderAtom.js +20 -0
- package/dist/widget/state/externalProviderAtom.js.map +1 -0
- package/dist/widget/swapDetails/youGet.d.ts.map +1 -1
- package/dist/widget/swapDetails/youGet.js +2 -3
- package/dist/widget/swapDetails/youGet.js.map +1 -1
- package/dist/widget/types.d.ts +4 -0
- package/dist/widget/types.d.ts.map +1 -1
- package/package.json +8 -66
- package/dist/components/ui/counter.js +0 -33
- package/dist/components/ui/counter.js.map +0 -1
- package/dist/components/ui/header.js +0 -21
- package/dist/components/ui/header.js.map +0 -1
- package/dist/components/ui/select.js +0 -427
- package/dist/components/ui/select.js.map +0 -1
- package/dist/components/ui/vaul/browser.d.ts +0 -8
- package/dist/components/ui/vaul/browser.d.ts.map +0 -1
- package/dist/components/ui/vaul/browser.js +0 -27
- package/dist/components/ui/vaul/browser.js.map +0 -1
- package/dist/components/ui/vaul/constants.d.ts +0 -12
- package/dist/components/ui/vaul/constants.d.ts.map +0 -1
- package/dist/components/ui/vaul/constants.js +0 -14
- package/dist/components/ui/vaul/constants.js.map +0 -1
- package/dist/components/ui/vaul/context.d.ts +0 -38
- package/dist/components/ui/vaul/context.d.ts.map +0 -1
- package/dist/components/ui/vaul/context.js +0 -62
- package/dist/components/ui/vaul/context.js.map +0 -1
- package/dist/components/ui/vaul/helpers.d.ts +0 -17
- package/dist/components/ui/vaul/helpers.d.ts.map +0 -1
- package/dist/components/ui/vaul/helpers.js +0 -77
- package/dist/components/ui/vaul/helpers.js.map +0 -1
- package/dist/components/ui/vaul/index.d.ts +0 -140
- package/dist/components/ui/vaul/index.d.ts.map +0 -1
- package/dist/components/ui/vaul/index.js +0 -797
- package/dist/components/ui/vaul/index.js.map +0 -1
- package/dist/components/ui/vaul/types.d.ts +0 -7
- package/dist/components/ui/vaul/types.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-composed-refs.d.ts +0 -14
- package/dist/components/ui/vaul/use-composed-refs.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-composed-refs.js +0 -18
- package/dist/components/ui/vaul/use-composed-refs.js.map +0 -1
- package/dist/components/ui/vaul/use-controllable-state.d.ts +0 -9
- package/dist/components/ui/vaul/use-controllable-state.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-controllable-state.js +0 -124
- package/dist/components/ui/vaul/use-controllable-state.js.map +0 -1
- package/dist/components/ui/vaul/use-position-fixed.d.ts +0 -19
- package/dist/components/ui/vaul/use-position-fixed.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-position-fixed.js +0 -99
- package/dist/components/ui/vaul/use-position-fixed.js.map +0 -1
- package/dist/components/ui/vaul/use-prevent-scroll.d.ts +0 -18
- package/dist/components/ui/vaul/use-prevent-scroll.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-prevent-scroll.js +0 -172
- package/dist/components/ui/vaul/use-prevent-scroll.js.map +0 -1
- package/dist/components/ui/vaul/use-scale-background.d.ts +0 -2
- package/dist/components/ui/vaul/use-scale-background.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-scale-background.js +0 -58
- package/dist/components/ui/vaul/use-scale-background.js.map +0 -1
- package/dist/components/ui/vaul/use-snap-points.d.ts +0 -32
- package/dist/components/ui/vaul/use-snap-points.d.ts.map +0 -1
- package/dist/components/ui/vaul/use-snap-points.js +0 -212
- package/dist/components/ui/vaul/use-snap-points.js.map +0 -1
- package/dist/components/widget/Informative/Informative.js +0 -23
- package/dist/components/widget/Informative/Informative.js.map +0 -1
- package/dist/components/widget/NetworkIcon/assets/sqr/polygonZkEVM.svg.js +0 -12
- package/dist/components/widget/NetworkIcon/assets/sqr/polygonZkEVM.svg.js.map +0 -1
- package/dist/components/widget/TradeOverview/assets/spinner.svg.js.map +0 -1
- package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useGetPermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/usePermit1Nonce.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignPermit.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignPermit.js.map +0 -1
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts +0 -10
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js.map +0 -1
- package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts.map +0 -1
- package/dist/hooks/permit/hooks/useTryToSignPermit1.js.map +0 -1
- package/dist/styles2.css +0 -256
- package/dist/test/connect/AccountDisplay.js +0 -83
- package/dist/test/connect/AccountDisplay.js.map +0 -1
- package/dist/test/connect/App.js +0 -68
- package/dist/test/connect/App.js.map +0 -1
- package/dist/test/connect/ConnectWallet.js +0 -100
- package/dist/test/connect/ConnectWallet.js.map +0 -1
- package/dist/test/connect/WagmiProfile.js +0 -396
- package/dist/test/connect/WagmiProfile.js.map +0 -1
- package/dist/test/connect/WalletActions.js +0 -314
- package/dist/test/connect/WalletActions.js.map +0 -1
- package/dist/widget/DevTools.js +0 -24
- package/dist/widget/DevTools.js.map +0 -1
- /package/dist/{components/widget/TradeOverview/assets → assets}/spinner.svg.js +0 -0
- /package/dist/hooks/permit/hooks/{useSignArbitraryTypedData.d.ts → common/useSignArbitraryTypedData.d.ts} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { parseSignature,
|
|
2
|
-
import { EIP_2612_PERMIT_ABI, DAI_PERMIT_ABI } from './abi.js';
|
|
1
|
+
import { encodeAbiParameters, parseSignature, toHex, concatHex } from 'viem';
|
|
2
|
+
import { EIP_2612_PERMIT_ABI, DAI_PERMIT_ABI, PERMIT2_ABI } from './abi.js';
|
|
3
3
|
|
|
4
4
|
const EIP_2612_PERMIT_PARAMETERS = EIP_2612_PERMIT_ABI.find((abiItem) => abiItem.name === "permit").inputs;
|
|
5
5
|
const DAI_PERMIT_PARAMETERS = DAI_PERMIT_ABI.find((abiItem) => abiItem.name === "permit").inputs;
|
|
6
|
-
function
|
|
6
|
+
function encodePermit1MethodArgs(input) {
|
|
7
7
|
const {
|
|
8
8
|
r,
|
|
9
9
|
s,
|
|
@@ -14,6 +14,35 @@ function encodePermitMethodArgs(input) {
|
|
|
14
14
|
}
|
|
15
15
|
return encodeAbiParameters(DAI_PERMIT_PARAMETERS, [input.holder, input.spender, input.nonce, input.expiry, input.allowed, Number(v), r, s]);
|
|
16
16
|
}
|
|
17
|
+
const PERMIT2_TRANSFER_FROM_PARAMETERS = PERMIT2_ABI.find((abiItem) => abiItem.name === "permitTransferFrom").inputs;
|
|
18
|
+
function encodePermit2TransferFromMethodArgs(input) {
|
|
19
|
+
return encodeAbiParameters(PERMIT2_TRANSFER_FROM_PARAMETERS, [
|
|
20
|
+
{
|
|
21
|
+
permitted: {
|
|
22
|
+
token: input.token,
|
|
23
|
+
amount: input.amount
|
|
24
|
+
},
|
|
25
|
+
nonce: input.nonce,
|
|
26
|
+
deadline: input.expiration
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
to: input.spender,
|
|
30
|
+
requestedAmount: input.amount
|
|
31
|
+
},
|
|
32
|
+
input.owner,
|
|
33
|
+
input.signature
|
|
34
|
+
// this could work with Multisig signature, because it's bytes without fixed length in ABI,
|
|
35
|
+
// but the Contract only supports compact signature for Permit2 TransferFrom,
|
|
36
|
+
// and compactSignature is made from full-length signature through parsing and serializing.
|
|
37
|
+
// Multisig signature is non-standard length and it can't be parsed
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
function encodePermit2TransferFromSigDataForDelta(sigData) {
|
|
41
|
+
const nonceHex = toHex(sigData.nonce, {
|
|
42
|
+
size: 32
|
|
43
|
+
});
|
|
44
|
+
return concatHex([nonceHex, sigData.signature]);
|
|
45
|
+
}
|
|
17
46
|
|
|
18
|
-
export {
|
|
47
|
+
export { encodePermit1MethodArgs, encodePermit2TransferFromMethodArgs, encodePermit2TransferFromSigDataForDelta };
|
|
19
48
|
//# sourceMappingURL=encodeArgs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encodeArgs.js","sources":["../../../../src/hooks/permit/utils/encodeArgs.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"encodeArgs.js","sources":["../../../../src/hooks/permit/utils/encodeArgs.ts"],"sourcesContent":["import {\n encodeAbiParameters,\n parseSignature,\n concatHex,\n toHex,\n type Address,\n type Hash,\n} from \"viem\";\nimport { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI, PERMIT2_ABI } from \"./abi\";\nimport type { DaiPermitInput, Permit1Input, Permit2Input } from \"./construct\";\n\ntype EncodePermitMethodArgsInputEIP2612 = Pick<\n Permit1Input,\n \"owner\" | \"spender\" | \"value\" | \"nonce\" | \"deadline\" | \"type\"\n> & {\n signature: Hash;\n};\n\ntype EncodePermitMethodArgsInputDAI = Pick<\n DaiPermitInput,\n \"holder\" | \"spender\" | \"nonce\" | \"expiry\" | \"allowed\" | \"type\"\n> & {\n signature: Hash;\n};\n\nconst EIP_2612_PERMIT_PARAMETERS = EIP_2612_PERMIT_ABI.find(\n (abiItem) => abiItem.name === \"permit\"\n)!.inputs;\nconst DAI_PERMIT_PARAMETERS = DAI_PERMIT_ABI.find(\n (abiItem) => abiItem.name === \"permit\"\n)!.inputs;\n\nexport function encodePermit1MethodArgs(\n input: EncodePermitMethodArgsInputEIP2612 | EncodePermitMethodArgsInputDAI\n): Hash {\n // this is unusable with Multisig Smart Wallets, because signature is non-standard length and it can'be parsed\n // @TODO implement bundle txs (Approve + Swap) for Multisig Smart Wallets (and in general wallets that support bundle txs)\n const { r, s, v } = parseSignature(input.signature);\n if (input.type === \"permit1\") {\n return encodeAbiParameters(EIP_2612_PERMIT_PARAMETERS, [\n input.owner,\n input.spender,\n input.value,\n input.deadline,\n Number(v),\n r,\n s,\n ]);\n }\n return encodeAbiParameters(DAI_PERMIT_PARAMETERS, [\n input.holder,\n input.spender,\n input.nonce,\n input.expiry,\n input.allowed,\n Number(v),\n r,\n s,\n ]);\n}\n\n/// Permit2 TransferFrom /////\n\ntype EncodePermitMethodArgsInputPermit2TransferFrom = Pick<\n Permit2Input,\n \"token\" | \"spender\" | \"nonce\" | \"amount\" | \"expiration\" | \"chainId\"\n> & {\n variant: \"transferFrom\";\n signature: Hash;\n owner: Address;\n};\n\nconst PERMIT2_TRANSFER_FROM_PARAMETERS = PERMIT2_ABI.find(\n (abiItem) => abiItem.name === \"permitTransferFrom\"\n)!.inputs;\n\nexport function encodePermit2TransferFromMethodArgs(\n input: EncodePermitMethodArgsInputPermit2TransferFrom\n): Hash {\n return encodeAbiParameters(PERMIT2_TRANSFER_FROM_PARAMETERS, [\n {\n permitted: {\n token: input.token,\n amount: input.amount,\n },\n nonce: input.nonce,\n deadline: input.expiration,\n },\n {\n to: input.spender,\n requestedAmount: input.amount,\n },\n input.owner,\n input.signature,\n // this could work with Multisig signature, because it's bytes without fixed length in ABI,\n // but the Contract only supports compact signature for Permit2 TransferFrom,\n // and compactSignature is made from full-length signature through parsing and serializing.\n // Multisig signature is non-standard length and it can't be parsed\n ] as const);\n}\n\n/**\n * Builds the 96‑byte payload required by Permit2’s `permitTransferFrom`\n * Delta contract (bytes32 nonce · bytes64 signature).\n *\n * @param sigData.nonce – numeric nonce as a bigint\n * @param sigData.signature – compact 64‑byte (compact) signature (0x…128 hex digits)\n * @returns 0x‑prefixed hex string, length = 2 + 96 × 2 = 194 chars\n */\nexport function encodePermit2TransferFromSigDataForDelta(sigData: {\n nonce: bigint;\n signature: Hash;\n}): Hash {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n\n // 1. Convert nonce → BigInt → 32‑byte left‑padded hex (0x…64 hex digits)\n const nonceHex = toHex(sigData.nonce, { size: 32 });\n\n // 2. Join the fixed‑width pieces → bytes96\n return concatHex([nonceHex, sigData.signature]);\n // currently doesn't work with Multisig signature, because of the Delta Contract implementation\n}\n"],"names":["EIP_2612_PERMIT_PARAMETERS","EIP_2612_PERMIT_ABI","find","abiItem","name","inputs","DAI_PERMIT_PARAMETERS","DAI_PERMIT_ABI","encodePermit1MethodArgs","input","r","s","v","parseSignature","signature","type","encodeAbiParameters","owner","spender","value","deadline","Number","holder","nonce","expiry","allowed","PERMIT2_TRANSFER_FROM_PARAMETERS","PERMIT2_ABI","encodePermit2TransferFromMethodArgs","permitted","token","amount","expiration","to","requestedAmount","encodePermit2TransferFromSigDataForDelta","sigData","nonceHex","toHex","size","concatHex"],"mappings":";;;AAyBA,MAAMA,6BAA6BC,mBAAAA,CAAoBC,IAAAA,CACpDC,aAAYA,OAAAA,CAAQC,IAAAA,KAAS,QAChC,CAAA,CAAGC,MAAAA;AACH,MAAMC,wBAAwBC,cAAAA,CAAeL,IAAAA,CAC1CC,aAAYA,OAAAA,CAAQC,IAAAA,KAAS,QAChC,CAAA,CAAGC,MAAAA;AAEI,SAASG,wBACdC,KAAAA,EACM;AAGN,EAAA,MAAM;AAAA,IAAEC,CAAAA;AAAAA,IAAGC,CAAAA;AAAAA,IAAGC;AAAAA,GAAE,GAAIC,cAAAA,CAAeJ,KAAAA,CAAMK,SAAS,CAAA;AAClD,EAAA,IAAIL,KAAAA,CAAMM,SAAS,SAAA,EAAW;AAC5B,IAAA,OAAOC,oBAAoBhB,0BAAAA,EAA4B,CACrDS,KAAAA,CAAMQ,KAAAA,EACNR,MAAMS,OAAAA,EACNT,KAAAA,CAAMU,KAAAA,EACNV,KAAAA,CAAMW,UACNC,MAAAA,CAAOT,CAAC,CAAA,EACRF,CAAAA,EACAC,CAAC,CACF,CAAA;AAAA;AAEH,EAAA,OAAOK,oBAAoBV,qBAAAA,EAAuB,CAChDG,MAAMa,MAAAA,EACNb,KAAAA,CAAMS,SACNT,KAAAA,CAAMc,KAAAA,EACNd,KAAAA,CAAMe,MAAAA,EACNf,MAAMgB,OAAAA,EACNJ,MAAAA,CAAOT,CAAC,CAAA,EACRF,CAAAA,EACAC,CAAC,CACF,CAAA;AACH;AAaA,MAAMe,mCAAmCC,WAAAA,CAAYzB,IAAAA,CAClDC,aAAYA,OAAAA,CAAQC,IAAAA,KAAS,oBAChC,CAAA,CAAGC,MAAAA;AAEI,SAASuB,oCACdnB,KAAAA,EACM;AACN,EAAA,OAAOO,oBAAoBU,gCAAAA,EAAkC;AAAA,IAC3D;AAAA,MACEG,SAAAA,EAAW;AAAA,QACTC,OAAOrB,KAAAA,CAAMqB,KAAAA;AAAAA,QACbC,QAAQtB,KAAAA,CAAMsB;AAAAA,OAChB;AAAA,MACAR,OAAOd,KAAAA,CAAMc,KAAAA;AAAAA,MACbH,UAAUX,KAAAA,CAAMuB;AAAAA,KAClB;AAAA,IACA;AAAA,MACEC,IAAIxB,KAAAA,CAAMS,OAAAA;AAAAA,MACVgB,iBAAiBzB,KAAAA,CAAMsB;AAAAA,KACzB;AAAA,IACAtB,KAAAA,CAAMQ,KAAAA;AAAAA,IACNR,KAAAA,CAAMK;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAKE,CAAA;AACZ;AAUO,SAASqB,yCAAyCC,OAAAA,EAGhD;AAKP,EAAA,MAAMC,QAAAA,GAAWC,KAAAA,CAAMF,OAAAA,CAAQb,KAAAA,EAAO;AAAA,IAAEgB,IAAAA,EAAM;AAAA,GAAI,CAAA;AAGlD,EAAA,OAAOC,SAAAA,CAAU,CAACH,QAAAA,EAAUD,OAAAA,CAAQtB,SAAS,CAAC,CAAA;AAEhD;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Config } from '@wagmi/core';
|
|
2
2
|
import { Address } from 'viem';
|
|
3
3
|
import { NotDetectedPermitSupport, PermitSupportResult } from './detect';
|
|
4
|
-
import { NonceMethod } from '../hooks/usePermit1Nonce';
|
|
4
|
+
import { NonceMethod } from '../hooks/permit1/usePermit1Nonce';
|
|
5
5
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
6
6
|
export type TrySignPermitParams = {
|
|
7
7
|
config: Config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trySignPermit1.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/trySignPermit1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAY,KAAK,OAAO,EAA8B,MAAM,MAAM,CAAC;AAE1E,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"trySignPermit1.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/trySignPermit1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAY,KAAK,OAAO,EAA8B,MAAM,MAAM,CAAC;AAE1E,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,mBAAmB,GAAG,wBAAwB,CAAC;IAC3D,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,mBAAmB,CAAC;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,IAAI,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,mBAAmB,GAAG,wBAAwB,CAAC;IAC3D,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;AAU9E;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,EACnC,MAAM,EACN,OAAO,EACP,UAAU,EACV,YAAY,EACZ,cAAuC,EACvC,MAAwB,GACzB,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyOpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trySignPermit1.js","sources":["../../../../src/hooks/permit/utils/trySignPermit1.ts"],"sourcesContent":["import { type Config, readContracts } from \"@wagmi/core\";\nimport { type Hex, type Address, parseEther, parseSignature } from \"viem\";\nimport { generatePrivateKey, privateKeyToAccount } from \"viem/accounts\";\nimport {\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"./detect\";\nimport { constructPermitTypedData } from \"./construct\";\nimport { ERC_20_NONCES_ABI } from \"./constants\";\nimport { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI } from \"./abi\";\nimport type { NonceMethod } from \"../hooks/usePermit1Nonce\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport type TrySignPermitParams = {\n config: Config;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n tokenAddress: Address;\n spenderAddress?: Address;\n amount?: bigint;\n chainId: SupportedChainId;\n};\n\nexport type TrySignPermitSuccess = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult;\n success: true;\n error: null;\n nonceBefore: bigint;\n nonceAfter: bigint;\n nonceMethod: NonceMethod;\n};\n\nexport type TrySignPermitFailure = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n success: false;\n error: string;\n};\n\nexport type TrySignPermitResult = TrySignPermitSuccess | TrySignPermitFailure;\n\n// Create a random wallet for testing,\n// wallet starts with nonce=0 everywhere\nconst randomAcc = privateKeyToAccount(generatePrivateKey());\nconst randomAccAddress = randomAcc.address;\n\n// not ZERO_ADDRESS to avoid possible !=address(0) checks\nconst RANDOM_SPENDER_ADDRESS = \"0x0000000000000000000000000000000000000123\";\n\n/**\n * Ultimate check if signing a permit will succeed with detected permitInfo\n * Tests permit functionality by:\n * 1. Creating a random wallet\n * 2. Reading the wallet's nonce\n * 3. Signing permit data with the wallet\n * 4. Making a multicall with: [read nonce, permit(), read nonce]\n * 5. Verifying the nonce increased (indicating permit was processed)\n */\nexport async function trySignPermit1({\n config,\n chainId,\n permitInfo,\n tokenAddress,\n spenderAddress = RANDOM_SPENDER_ADDRESS,\n amount = parseEther(\"1\"),\n}: TrySignPermitParams): Promise<TrySignPermitResult> {\n if (permitInfo.type === \"NOT_DETECTED\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit not detected\",\n };\n }\n\n try {\n // Create a deadline 1 hour from now\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 3600);\n\n // Read nonce before permit\n const nonceBefore = await readNonce({\n config,\n tokenAddress,\n ownerAddress: randomAccAddress,\n chainId,\n });\n\n if (nonceBefore === null) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonce\",\n };\n }\n\n // Construct permit typed data\n const permitTypedData =\n permitInfo.type === \"dai\"\n ? constructPermitTypedData({\n type: \"dai\",\n permitInfo,\n holder: randomAccAddress,\n spender: spenderAddress,\n nonce: nonceBefore.nonce,\n expiry: deadline,\n allowed: true,\n })\n : constructPermitTypedData({\n type: \"permit1\",\n permitInfo,\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n });\n\n // Only support EIP-2612 and DAI permit types\n if (\n permitTypedData.primaryType !== \"Permit\" ||\n !(\"domain\" in permitTypedData && \"message\" in permitTypedData)\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error:\n \"Unsupported permit type for trySignPermit (only EIP-2612 and DAI supported)\",\n };\n }\n\n // Sign the permit data using the account's signTypedData method\n const signature = await randomAcc.signTypedData({\n domain: permitTypedData.domain,\n types: permitTypedData.types,\n primaryType: permitTypedData.primaryType,\n message: permitTypedData.message,\n });\n\n // Split signature into v, r, s\n const { v, r, s } = parseSignature(signature);\n\n // Ensure v is defined and convert to number for permit calls\n if (v === undefined) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to parse signature - v component is undefined\",\n };\n }\n\n // Convert v to number for permit calls\n const vNumber = Number(v);\n\n // Create permit call data\n let permitCallData: unknown[];\n if (permitInfo.type === \"dai\") {\n permitCallData = createPermitCallData({\n permitType: \"dai\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n } else {\n permitCallData = createPermitCallData({\n permitType: \"eip2612\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n }\n\n // Create multicall with: [read nonce, permit(), read nonce]\n const multicallContracts = [\n // 1. Read nonce before permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n // 2. Call permit function\n {\n chainId,\n address: tokenAddress,\n abi: permitInfo.type === \"dai\" ? DAI_PERMIT_ABI : EIP_2612_PERMIT_ABI,\n functionName: \"permit\",\n args: permitCallData as\n | [Address, Address, bigint, bigint, boolean, number, Hex, Hex]\n | [Address, Address, bigint, bigint, number, Hex, Hex],\n },\n // 3. Read nonce after permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n ] as const;\n\n // Execute the multicall\n const multicallResult = await readContracts(config, {\n allowFailure: true,\n contracts: multicallContracts,\n });\n\n // Extract results\n const [nonceBeforeResult, permitResult, nonceAfterResult] = multicallResult;\n\n // Check if all results exist\n if (!nonceBeforeResult || !permitResult || !nonceAfterResult) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Multicall returned incomplete results\",\n };\n }\n\n // Check if permit call succeeded\n if (permitResult.status === \"failure\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: `Permit call failed: ${permitResult.error?.message || \"Unknown error\"}`,\n };\n }\n\n // Check if we can read nonces\n if (\n nonceBeforeResult.status === \"failure\" ||\n nonceAfterResult.status === \"failure\"\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonces in multicall\",\n };\n }\n\n const nonceBeforeMulticall = nonceBeforeResult.result as bigint;\n const nonceAfterMulticall = nonceAfterResult.result as bigint;\n\n // Verify nonce increased (indicating permit was processed)\n const nonceIncreased = nonceAfterMulticall > nonceBeforeMulticall;\n\n if (!nonceIncreased) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit simulation failed - nonce did not increase\",\n };\n }\n\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: true,\n nonceBefore: nonceBeforeMulticall,\n nonceAfter: nonceAfterMulticall,\n nonceMethod: nonceBefore.nonceMethod,\n error: null,\n };\n } catch (error) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: error instanceof Error ? error.message : \"Unknown error occurred\",\n };\n }\n}\n\ntype ReadNonceParams = {\n config: Config;\n tokenAddress: Address;\n ownerAddress: Address;\n chainId: SupportedChainId;\n};\n\n/**\n * Reads the nonce for a given address and token\n */\nasync function readNonce({\n config,\n tokenAddress,\n ownerAddress,\n chainId,\n}: ReadNonceParams): Promise<{\n nonce: bigint;\n nonceMethod: NonceMethod;\n} | null> {\n const contractCalls = [\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n const results = await readContracts(config, {\n allowFailure: true,\n contracts: contractCalls,\n });\n\n const validNonceIndex = results.findIndex(\n (result) => result.status === \"success\"\n );\n\n if (validNonceIndex === -1) {\n return null;\n }\n\n const nonce = results[validNonceIndex]?.result as bigint;\n const nonceMethod = contractCalls[validNonceIndex]\n ?.functionName as NonceMethod;\n\n return { nonce, nonceMethod };\n}\n\n/**\n * Creates the call data for permit function based on permit type\n */\nfunction createPermitCallData({\n permitType,\n owner,\n spender,\n value,\n nonce,\n deadline,\n v,\n r,\n s,\n}: {\n permitType: \"eip2612\" | \"dai\";\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n v: number;\n r: Hex;\n s: Hex;\n}): unknown[] {\n if (permitType === \"dai\") {\n // DAI permit: (holder, spender, nonce, expiry, allowed, v, r, s)\n return [owner, spender, nonce, deadline, true, v, r, s];\n } else {\n // EIP2612 permit: (owner, spender, value, deadline, v, r, s)\n return [owner, spender, value, deadline, v, r, s];\n }\n}\n"],"names":["randomAcc","privateKeyToAccount","generatePrivateKey","randomAccAddress","address","RANDOM_SPENDER_ADDRESS","trySignPermit1","config","chainId","permitInfo","tokenAddress","spenderAddress","amount","parseEther","type","success","error","deadline","BigInt","Math","floor","Date","now","nonceBefore","readNonce","ownerAddress","permitTypedData","constructPermitTypedData","holder","spender","nonce","expiry","allowed","owner","value","primaryType","signature","signTypedData","domain","types","message","v","r","s","parseSignature","undefined","vNumber","Number","permitCallData","createPermitCallData","permitType","multicallContracts","abi","ERC_20_NONCES_ABI","functionName","nonceMethod","args","DAI_PERMIT_ABI","EIP_2612_PERMIT_ABI","multicallResult","readContracts","allowFailure","contracts","nonceBeforeResult","permitResult","nonceAfterResult","status","nonceBeforeMulticall","result","nonceAfterMulticall","nonceIncreased","nonceAfter","Error","contractCalls","results","validNonceIndex","findIndex"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trySignPermit1.js","sources":["../../../../src/hooks/permit/utils/trySignPermit1.ts"],"sourcesContent":["import { type Config, readContracts } from \"@wagmi/core\";\nimport { type Hex, type Address, parseEther, parseSignature } from \"viem\";\nimport { generatePrivateKey, privateKeyToAccount } from \"viem/accounts\";\nimport {\n type NotDetectedPermitSupport,\n type PermitSupportResult,\n} from \"./detect\";\nimport { constructPermitTypedData } from \"./construct\";\nimport { ERC_20_NONCES_ABI } from \"./constants\";\nimport { DAI_PERMIT_ABI, EIP_2612_PERMIT_ABI } from \"./abi\";\nimport type { NonceMethod } from \"../hooks/permit1/usePermit1Nonce\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\n\nexport type TrySignPermitParams = {\n config: Config;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n tokenAddress: Address;\n spenderAddress?: Address;\n amount?: bigint;\n chainId: SupportedChainId;\n};\n\nexport type TrySignPermitSuccess = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult;\n success: true;\n error: null;\n nonceBefore: bigint;\n nonceAfter: bigint;\n nonceMethod: NonceMethod;\n};\n\nexport type TrySignPermitFailure = {\n tokenAddress: Address;\n chainId: SupportedChainId;\n permitInfo: PermitSupportResult | NotDetectedPermitSupport;\n success: false;\n error: string;\n};\n\nexport type TrySignPermitResult = TrySignPermitSuccess | TrySignPermitFailure;\n\n// Create a random wallet for testing,\n// wallet starts with nonce=0 everywhere\nconst randomAcc = privateKeyToAccount(generatePrivateKey());\nconst randomAccAddress = randomAcc.address;\n\n// not ZERO_ADDRESS to avoid possible !=address(0) checks\nconst RANDOM_SPENDER_ADDRESS = \"0x0000000000000000000000000000000000000123\";\n\n/**\n * Ultimate check if signing a permit will succeed with detected permitInfo\n * Tests permit functionality by:\n * 1. Creating a random wallet\n * 2. Reading the wallet's nonce\n * 3. Signing permit data with the wallet\n * 4. Making a multicall with: [read nonce, permit(), read nonce]\n * 5. Verifying the nonce increased (indicating permit was processed)\n */\nexport async function trySignPermit1({\n config,\n chainId,\n permitInfo,\n tokenAddress,\n spenderAddress = RANDOM_SPENDER_ADDRESS,\n amount = parseEther(\"1\"),\n}: TrySignPermitParams): Promise<TrySignPermitResult> {\n if (permitInfo.type === \"NOT_DETECTED\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit not detected\",\n };\n }\n\n try {\n // Create a deadline 1 hour from now\n const deadline = BigInt(Math.floor(Date.now() / 1000) + 3600);\n\n // Read nonce before permit\n const nonceBefore = await readNonce({\n config,\n tokenAddress,\n ownerAddress: randomAccAddress,\n chainId,\n });\n\n if (nonceBefore === null) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonce\",\n };\n }\n\n // Construct permit typed data\n const permitTypedData =\n permitInfo.type === \"dai\"\n ? constructPermitTypedData({\n type: \"dai\",\n permitInfo,\n holder: randomAccAddress,\n spender: spenderAddress,\n nonce: nonceBefore.nonce,\n expiry: deadline,\n allowed: true,\n })\n : constructPermitTypedData({\n type: \"permit1\",\n permitInfo,\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n });\n\n // Only support EIP-2612 and DAI permit types\n if (\n permitTypedData.primaryType !== \"Permit\" ||\n !(\"domain\" in permitTypedData && \"message\" in permitTypedData)\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error:\n \"Unsupported permit type for trySignPermit (only EIP-2612 and DAI supported)\",\n };\n }\n\n // Sign the permit data using the account's signTypedData method\n const signature = await randomAcc.signTypedData({\n domain: permitTypedData.domain,\n types: permitTypedData.types,\n primaryType: permitTypedData.primaryType,\n message: permitTypedData.message,\n });\n\n // Split signature into v, r, s\n const { v, r, s } = parseSignature(signature);\n\n // Ensure v is defined and convert to number for permit calls\n if (v === undefined) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to parse signature - v component is undefined\",\n };\n }\n\n // Convert v to number for permit calls\n const vNumber = Number(v);\n\n // Create permit call data\n let permitCallData: unknown[];\n if (permitInfo.type === \"dai\") {\n permitCallData = createPermitCallData({\n permitType: \"dai\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n } else {\n permitCallData = createPermitCallData({\n permitType: \"eip2612\",\n owner: randomAccAddress,\n spender: spenderAddress,\n value: amount,\n nonce: nonceBefore.nonce,\n deadline,\n v: vNumber,\n r,\n s,\n });\n }\n\n // Create multicall with: [read nonce, permit(), read nonce]\n const multicallContracts = [\n // 1. Read nonce before permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n // 2. Call permit function\n {\n chainId,\n address: tokenAddress,\n abi: permitInfo.type === \"dai\" ? DAI_PERMIT_ABI : EIP_2612_PERMIT_ABI,\n functionName: \"permit\",\n args: permitCallData as\n | [Address, Address, bigint, bigint, boolean, number, Hex, Hex]\n | [Address, Address, bigint, bigint, number, Hex, Hex],\n },\n // 3. Read nonce after permit\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: nonceBefore.nonceMethod,\n args: [randomAccAddress],\n },\n ] as const;\n\n // Execute the multicall\n const multicallResult = await readContracts(config, {\n allowFailure: true,\n contracts: multicallContracts,\n });\n\n // Extract results\n const [nonceBeforeResult, permitResult, nonceAfterResult] = multicallResult;\n\n // Check if all results exist\n if (!nonceBeforeResult || !permitResult || !nonceAfterResult) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Multicall returned incomplete results\",\n };\n }\n\n // Check if permit call succeeded\n if (permitResult.status === \"failure\") {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: `Permit call failed: ${permitResult.error?.message || \"Unknown error\"}`,\n };\n }\n\n // Check if we can read nonces\n if (\n nonceBeforeResult.status === \"failure\" ||\n nonceAfterResult.status === \"failure\"\n ) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Failed to read nonces in multicall\",\n };\n }\n\n const nonceBeforeMulticall = nonceBeforeResult.result as bigint;\n const nonceAfterMulticall = nonceAfterResult.result as bigint;\n\n // Verify nonce increased (indicating permit was processed)\n const nonceIncreased = nonceAfterMulticall > nonceBeforeMulticall;\n\n if (!nonceIncreased) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: \"Permit simulation failed - nonce did not increase\",\n };\n }\n\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: true,\n nonceBefore: nonceBeforeMulticall,\n nonceAfter: nonceAfterMulticall,\n nonceMethod: nonceBefore.nonceMethod,\n error: null,\n };\n } catch (error) {\n return {\n tokenAddress,\n chainId,\n permitInfo,\n success: false,\n error: error instanceof Error ? error.message : \"Unknown error occurred\",\n };\n }\n}\n\ntype ReadNonceParams = {\n config: Config;\n tokenAddress: Address;\n ownerAddress: Address;\n chainId: SupportedChainId;\n};\n\n/**\n * Reads the nonce for a given address and token\n */\nasync function readNonce({\n config,\n tokenAddress,\n ownerAddress,\n chainId,\n}: ReadNonceParams): Promise<{\n nonce: bigint;\n nonceMethod: NonceMethod;\n} | null> {\n const contractCalls = [\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"_nonces\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"nonce\",\n args: [ownerAddress],\n },\n {\n chainId,\n address: tokenAddress,\n abi: ERC_20_NONCES_ABI,\n functionName: \"getNonce\",\n args: [ownerAddress],\n },\n ] as const;\n\n const results = await readContracts(config, {\n allowFailure: true,\n contracts: contractCalls,\n });\n\n const validNonceIndex = results.findIndex(\n (result) => result.status === \"success\"\n );\n\n if (validNonceIndex === -1) {\n return null;\n }\n\n const nonce = results[validNonceIndex]?.result as bigint;\n const nonceMethod = contractCalls[validNonceIndex]\n ?.functionName as NonceMethod;\n\n return { nonce, nonceMethod };\n}\n\n/**\n * Creates the call data for permit function based on permit type\n */\nfunction createPermitCallData({\n permitType,\n owner,\n spender,\n value,\n nonce,\n deadline,\n v,\n r,\n s,\n}: {\n permitType: \"eip2612\" | \"dai\";\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n v: number;\n r: Hex;\n s: Hex;\n}): unknown[] {\n if (permitType === \"dai\") {\n // DAI permit: (holder, spender, nonce, expiry, allowed, v, r, s)\n return [owner, spender, nonce, deadline, true, v, r, s];\n } else {\n // EIP2612 permit: (owner, spender, value, deadline, v, r, s)\n return [owner, spender, value, deadline, v, r, s];\n }\n}\n"],"names":["randomAcc","privateKeyToAccount","generatePrivateKey","randomAccAddress","address","RANDOM_SPENDER_ADDRESS","trySignPermit1","config","chainId","permitInfo","tokenAddress","spenderAddress","amount","parseEther","type","success","error","deadline","BigInt","Math","floor","Date","now","nonceBefore","readNonce","ownerAddress","permitTypedData","constructPermitTypedData","holder","spender","nonce","expiry","allowed","owner","value","primaryType","signature","signTypedData","domain","types","message","v","r","s","parseSignature","undefined","vNumber","Number","permitCallData","createPermitCallData","permitType","multicallContracts","abi","ERC_20_NONCES_ABI","functionName","nonceMethod","args","DAI_PERMIT_ABI","EIP_2612_PERMIT_ABI","multicallResult","readContracts","allowFailure","contracts","nonceBeforeResult","permitResult","nonceAfterResult","status","nonceBeforeMulticall","result","nonceAfterMulticall","nonceIncreased","nonceAfter","Error","contractCalls","results","validNonceIndex","findIndex"],"mappings":"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"}
|
|
@@ -32,5 +32,6 @@ export declare function useDeltaPriceQuery<TData = DeltaPrice>({ priceParams, qu
|
|
|
32
32
|
export declare function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({ priceParams, query, chainId, timeout, }: DeltaPriceQueryInput<TData> & {
|
|
33
33
|
destChainId?: number;
|
|
34
34
|
}): DeltaQueryResult<TData>;
|
|
35
|
+
export declare function isBridgePrice(price: DeltaPrice | BridgePrice): price is BridgePrice;
|
|
35
36
|
export {};
|
|
36
37
|
//# sourceMappingURL=useDeltaPriceQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaPriceQuery.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,IAAI,OAAO,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAG1D,KAAK,wBAAwB,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC7D,KAAK,gBAAgB,GAAG,YAAY,CAClC,wBAAwB,EACxB,WAAW,GAAG,cAAc,CAC7B,CAAC;AAEF,KAAK,gBAAgB,CAAC,KAAK,GAAG,UAAU,GAAG,WAAW,IAAI,IAAI,CAC5D,eAAe,CAAC,UAAU,GAAG,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAC3E,UAAU,GAAG,SAAS,CACvB,CAAC;AACF,KAAK,gBAAgB,CAAC,KAAK,GAAG,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEzE,KAAK,oBAAoB,CAAC,KAAK,GAAG,UAAU,IAAI;IAC9C,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,gBAAgB,GAAG;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CACF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,GAAG,WAAW,EAAE,EACtD,WAAW,EACX,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC5B,wBAAgB,kBAAkB,CAAC,KAAK,GAAG,UAAU,EAAE,EACrD,WAAW,EACX,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAC/B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC5B,wBAAgB,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,WAAW,EAAE,EACnE,WAAW,EACX,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"useDeltaPriceQuery.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,IAAI,OAAO,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAG1D,KAAK,wBAAwB,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC7D,KAAK,gBAAgB,GAAG,YAAY,CAClC,wBAAwB,EACxB,WAAW,GAAG,cAAc,CAC7B,CAAC;AAEF,KAAK,gBAAgB,CAAC,KAAK,GAAG,UAAU,GAAG,WAAW,IAAI,IAAI,CAC5D,eAAe,CAAC,UAAU,GAAG,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAC3E,UAAU,GAAG,SAAS,CACvB,CAAC;AACF,KAAK,gBAAgB,CAAC,KAAK,GAAG,UAAU,IAAI,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEzE,KAAK,oBAAoB,CAAC,KAAK,GAAG,UAAU,IAAI;IAC9C,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,gBAAgB,GAAG;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CACF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,GAAG,WAAW,EAAE,EACtD,WAAW,EACX,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC5B,wBAAgB,kBAAkB,CAAC,KAAK,GAAG,UAAU,EAAE,EACrD,WAAW,EACX,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAC/B,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC5B,wBAAgB,kBAAkB,CAAC,KAAK,GAAG,UAAU,GAAG,WAAW,EAAE,EACnE,WAAW,EACX,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AA6D5B,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,GAAG,WAAW,GAC9B,KAAK,IAAI,WAAW,CAEtB"}
|
|
@@ -71,6 +71,9 @@ function useDeltaPriceQuery(t0) {
|
|
|
71
71
|
function isPriceParamsValid(priceParams) {
|
|
72
72
|
return !!priceParams.destToken && !!priceParams.destDecimals && Number(priceParams.amount) > 0;
|
|
73
73
|
}
|
|
74
|
+
function isBridgePrice(price) {
|
|
75
|
+
return "bridge" in price;
|
|
76
|
+
}
|
|
74
77
|
|
|
75
|
-
export { useDeltaPriceQuery };
|
|
78
|
+
export { isBridgePrice, useDeltaPriceQuery };
|
|
76
79
|
//# sourceMappingURL=useDeltaPriceQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport type {\n DeltaPrice,\n BridgePrice,\n DeltaPriceParams as DParams,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\n\n// overload is easier with input.destChainId\ntype RequiredDeltaPriceParams = Omit<DParams, \"destChainId\">;\ntype DeltaPriceParams = MarkOptional<\n RequiredDeltaPriceParams,\n \"destToken\" | \"destDecimals\" // destToken is not available in SwapForm initially\n>;\n\ntype DeltaQueryParams<TData = DeltaPrice | BridgePrice> = Omit<\n UseQueryOptions<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaQueryResult<TData = DeltaPrice> = UseQueryResult<TData, Error>;\n\ntype DeltaPriceQueryInput<TData = DeltaPrice> = {\n priceParams: DeltaPriceParams;\n query?: DeltaQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\ntype DeltaPriceQueryKey = [\n base: \"swap/prices/delta\",\n chainId: number,\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n },\n];\n\n/**\n * 1. With destChainId: number -> returns BridgePrice\n * 2. With destChainId?: undefined -> returns DeltaPrice\n * 3. With destChainId?: number -> returns DeltaPrice | BridgePrice\n */\nexport function useDeltaPriceQuery<TData = BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: undefined;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams: _priceParams,\n query,\n chainId,\n timeout,\n destChainId,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId });\n\n const priceParams: DeltaPriceParams & { destChainId?: number } = {\n ..._priceParams,\n destChainId,\n };\n\n const queryEnabled = query?.enabled ?? true;\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: DeltaPriceParams & { destChainId?: number } = {\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n amount: debouncedAmount,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n userAddress: priceParams.userAddress,\n partner: priceParams.partner,\n destChainId: priceParams.destChainId,\n };\n\n return useQuery<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>({\n queryKey: [\"swap/prices/delta\", chainId, sanitizedPriceParams],\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getDeltaPrice(sanitizedPriceParams, {\n signal,\n timeout,\n });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: DeltaPriceParams\n): priceParams is RequiredDeltaPriceParams {\n return (\n !!priceParams.destToken &&\n !!priceParams.destDecimals &&\n Number(priceParams.amount) > 0\n );\n}\n"],"names":["useDeltaPriceQuery","t0","$","_c","priceParams","_priceParams","query","chainId","timeout","destChainId","t1","sdk","useDeltaSDK","queryEnabled","enabled","t2","Symbol","for","wait","debouncedAmount","useDebouncedValue","amount","sanitizedPriceParams","srcToken","destToken","srcDecimals","destDecimals","userAddress","partner","useQuery","queryKey","queryFn","t3","signal","assert","isPriceParamsValid","price","getDeltaPrice","Number"],"mappings":";;;;;;AAuEO,SAAAA,mBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAA8D,EAAA,MAAA;AAAA,IAAAC,WAAAA,EAAAC,YAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAR,EAAAA;AAQpE,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,OAAAA,EAAA;AAC6BG,IAAAA,EAAAA,GAAA;AAAA,MAAAH;AAAAA,KAAA;AAAWL,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA;AAAvC,EAAA,MAAA;AAAA,IAAAS;AAAAA,GAAA,GAAgBC,YAAYF,EAAW,CAAA;AAEvC,EAAA,MAAAN,WAAAA,GAAA;AAAA,IAAA,GACKC,YAAAA;AAAAA,IAAYI;AAAAA,GAAA;AAIjB,EAAA,MAAAI,YAAAA,GAAqBP,OAAKQ,OAAAA,IAAA,IAAA;AAAkB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAc,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGoBF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,IAAAA,EAAA;AAAA,KAAA;AAE/DhB,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA;AAFD,EAAA,MAAA,CAAAiB,eAAA,CAAA,GAA0BC,iBAAAA,CAAkBhB,WAAAA,CAAWiB,QAASN,EAE/D,CAAA;AAGD,EAAA,MAAAO,oBAAAA,GAAA;AAAA,IAAAC,UACYnB,WAAAA,CAAWmB,QAAAA;AAAAA,IAAAC,WACVpB,WAAAA,CAAWoB,SAAAA;AAAAA,IAAAH,MAAAA,EACdF,eAAAA;AAAAA,IAAeM,aACVrB,WAAAA,CAAWqB,WAAAA;AAAAA,IAAAC,cACVtB,WAAAA,CAAWsB,YAAAA;AAAAA,IAAAC,aACZvB,WAAAA,CAAWuB,WAAAA;AAAAA,IAAAC,SACfxB,WAAAA,CAAWwB,OAAAA;AAAAA,IAAAnB,aACPL,WAAAA,CAAWK;AAAAA,GAAA;AACxB,EAAA,OAEKoB,QAAAA,CAAA;AAAA,IAAAC,QAAAA,EAAA,CACM,mBAAA,EAAqBvB,OAAAA,EAASe,oBAAoB,CAAA;AAAA,IAAAS,SAAAC,CAAAA,EAAAA,KAAA;AACnD,MAAA,MAAA;AAAA,QAAAC;AAAAA,OAAA,GAAAD,EAAAA;AACRE,MAAAA,MAAAA,CAAOC,kBAAAA,CAAmBb,oBAAoB,CAAA,EAAG,uBAAuB,CAAA;AACxE,MAAA,MAAAc,KAAAA,GAAczB,GAAAA,CAAG0B,aAAAA,CAAef,oBAAAA,EAAoB;AAAA,QAAAW,MAAAA;AAAAA,QAAAzB;AAAAA,OAGnD,CAAA;AAAE,MAAA,OACI4B,KAAAA;AAAAA,KAAK;AAAA,IAAA,GAEX9B,KAAAA;AAAAA,IAAKQ,OAAAA,EACCD,YAAAA,IAAgBsB,kBAAAA,CAAmBb,oBAAoB;AAAA,GACjE,CAAA;AAAC;AAGJ,SAASa,mBACP/B,WAAAA,EACyC;AACzC,EAAA,OACE,CAAC,CAACA,WAAAA,CAAYoB,SAAAA,IACd,CAAC,CAACpB,WAAAA,CAAYsB,YAAAA,IACdY,MAAAA,CAAOlC,WAAAA,CAAYiB,MAAM,CAAA,GAAI,CAAA;AAEjC;;;;"}
|
|
1
|
+
{"version":3,"file":"useDeltaPriceQuery.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaPriceQuery.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useQuery,\n type UseQueryOptions,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport { useDebouncedValue } from \"@tanstack/react-pacer/debouncer\";\nimport type {\n DeltaPrice,\n BridgePrice,\n DeltaPriceParams as DParams,\n} from \"@velora-dex/sdk\";\nimport { assert, type MarkOptional } from \"ts-essentials\";\n\n// overload is easier with input.destChainId\ntype RequiredDeltaPriceParams = Omit<DParams, \"destChainId\">;\ntype DeltaPriceParams = MarkOptional<\n RequiredDeltaPriceParams,\n \"destToken\" | \"destDecimals\" // destToken is not available in SwapForm initially\n>;\n\ntype DeltaQueryParams<TData = DeltaPrice | BridgePrice> = Omit<\n UseQueryOptions<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>,\n \"queryKey\" | \"queryFn\"\n>;\ntype DeltaQueryResult<TData = DeltaPrice> = UseQueryResult<TData, Error>;\n\ntype DeltaPriceQueryInput<TData = DeltaPrice> = {\n priceParams: DeltaPriceParams;\n query?: DeltaQueryParams<TData>;\n chainId: number;\n timeout?: number;\n};\n\ntype DeltaPriceQueryKey = [\n base: \"swap/prices/delta\",\n chainId: number,\n priceParams: DeltaPriceParams & {\n destChainId?: number;\n },\n];\n\n/**\n * 1. With destChainId: number -> returns BridgePrice\n * 2. With destChainId?: undefined -> returns DeltaPrice\n * 3. With destChainId?: number -> returns DeltaPrice | BridgePrice\n */\nexport function useDeltaPriceQuery<TData = BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: undefined;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams,\n query,\n chainId,\n timeout,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData>;\nexport function useDeltaPriceQuery<TData = DeltaPrice | BridgePrice>({\n priceParams: _priceParams,\n query,\n chainId,\n timeout,\n destChainId,\n}: DeltaPriceQueryInput<TData> & {\n destChainId?: number;\n}): DeltaQueryResult<TData> {\n const { sdk } = useDeltaSDK({ chainId });\n\n const priceParams: DeltaPriceParams & { destChainId?: number } = {\n ..._priceParams,\n destChainId,\n };\n\n const queryEnabled = query?.enabled ?? true;\n\n // amount tends to change fast during input\n const [debouncedAmount] = useDebouncedValue(priceParams.amount, {\n wait: 500,\n });\n\n // avoid passing unnecessary params to url?search and queryKey\n const sanitizedPriceParams: DeltaPriceParams & { destChainId?: number } = {\n srcToken: priceParams.srcToken,\n destToken: priceParams.destToken,\n amount: debouncedAmount,\n srcDecimals: priceParams.srcDecimals,\n destDecimals: priceParams.destDecimals,\n userAddress: priceParams.userAddress,\n partner: priceParams.partner,\n destChainId: priceParams.destChainId,\n };\n\n return useQuery<DeltaPrice | BridgePrice, Error, TData, DeltaPriceQueryKey>({\n queryKey: [\"swap/prices/delta\", chainId, sanitizedPriceParams],\n queryFn: ({ signal }) => {\n assert(isPriceParamsValid(sanitizedPriceParams), \"destToken is required\");\n const price = sdk.getDeltaPrice(sanitizedPriceParams, {\n signal,\n timeout,\n });\n return price;\n },\n ...query,\n enabled: queryEnabled && isPriceParamsValid(sanitizedPriceParams),\n });\n}\n\nfunction isPriceParamsValid(\n priceParams: DeltaPriceParams\n): priceParams is RequiredDeltaPriceParams {\n return (\n !!priceParams.destToken &&\n !!priceParams.destDecimals &&\n Number(priceParams.amount) > 0\n );\n}\n\nexport function isBridgePrice(\n price: DeltaPrice | BridgePrice\n): price is BridgePrice {\n return \"bridge\" in price;\n}\n"],"names":["useDeltaPriceQuery","t0","$","_c","priceParams","_priceParams","query","chainId","timeout","destChainId","t1","sdk","useDeltaSDK","queryEnabled","enabled","t2","Symbol","for","wait","debouncedAmount","useDebouncedValue","amount","sanitizedPriceParams","srcToken","destToken","srcDecimals","destDecimals","userAddress","partner","useQuery","queryKey","queryFn","t3","signal","assert","isPriceParamsValid","price","getDeltaPrice","Number","isBridgePrice"],"mappings":";;;;;;AAuEO,SAAAA,mBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAA8D,EAAA,MAAA;AAAA,IAAAC,WAAAA,EAAAC,YAAAA;AAAAA,IAAAC,KAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAR,EAAAA;AAQpE,EAAA,IAAAS,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,OAAAA,EAAA;AAC6BG,IAAAA,EAAAA,GAAA;AAAA,MAAAH;AAAAA,KAAA;AAAWL,IAAAA,CAAAA,MAAAK,OAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA;AAAvC,EAAA,MAAA;AAAA,IAAAS;AAAAA,GAAA,GAAgBC,YAAYF,EAAW,CAAA;AAEvC,EAAA,MAAAN,WAAAA,GAAA;AAAA,IAAA,GACKC,YAAAA;AAAAA,IAAYI;AAAAA,GAAA;AAIjB,EAAA,MAAAI,YAAAA,GAAqBP,OAAKQ,OAAAA,IAAA,IAAA;AAAkB,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAc,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAGoBF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,IAAAA,EAAA;AAAA,KAAA;AAE/DhB,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,GAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA;AAFD,EAAA,MAAA,CAAAiB,eAAA,CAAA,GAA0BC,iBAAAA,CAAkBhB,WAAAA,CAAWiB,QAASN,EAE/D,CAAA;AAGD,EAAA,MAAAO,oBAAAA,GAAA;AAAA,IAAAC,UACYnB,WAAAA,CAAWmB,QAAAA;AAAAA,IAAAC,WACVpB,WAAAA,CAAWoB,SAAAA;AAAAA,IAAAH,MAAAA,EACdF,eAAAA;AAAAA,IAAeM,aACVrB,WAAAA,CAAWqB,WAAAA;AAAAA,IAAAC,cACVtB,WAAAA,CAAWsB,YAAAA;AAAAA,IAAAC,aACZvB,WAAAA,CAAWuB,WAAAA;AAAAA,IAAAC,SACfxB,WAAAA,CAAWwB,OAAAA;AAAAA,IAAAnB,aACPL,WAAAA,CAAWK;AAAAA,GAAA;AACxB,EAAA,OAEKoB,QAAAA,CAAA;AAAA,IAAAC,QAAAA,EAAA,CACM,mBAAA,EAAqBvB,OAAAA,EAASe,oBAAoB,CAAA;AAAA,IAAAS,SAAAC,CAAAA,EAAAA,KAAA;AACnD,MAAA,MAAA;AAAA,QAAAC;AAAAA,OAAA,GAAAD,EAAAA;AACRE,MAAAA,MAAAA,CAAOC,kBAAAA,CAAmBb,oBAAoB,CAAA,EAAG,uBAAuB,CAAA;AACxE,MAAA,MAAAc,KAAAA,GAAczB,GAAAA,CAAG0B,aAAAA,CAAef,oBAAAA,EAAoB;AAAA,QAAAW,MAAAA;AAAAA,QAAAzB;AAAAA,OAGnD,CAAA;AAAE,MAAA,OACI4B,KAAAA;AAAAA,KAAK;AAAA,IAAA,GAEX9B,KAAAA;AAAAA,IAAKQ,OAAAA,EACCD,YAAAA,IAAgBsB,kBAAAA,CAAmBb,oBAAoB;AAAA,GACjE,CAAA;AAAC;AAGJ,SAASa,mBACP/B,WAAAA,EACyC;AACzC,EAAA,OACE,CAAC,CAACA,WAAAA,CAAYoB,SAAAA,IACd,CAAC,CAACpB,WAAAA,CAAYsB,YAAAA,IACdY,MAAAA,CAAOlC,WAAAA,CAAYiB,MAAM,CAAA,GAAI,CAAA;AAEjC;AAEO,SAASkB,cACdH,KAAAA,EACsB;AACtB,EAAA,OAAO,QAAA,IAAYA,KAAAA;AACrB;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RateParamsInput } from './market/queries/useMarketPriceQuery';
|
|
2
2
|
import { MarkOptional, MarkRequired } from 'ts-essentials';
|
|
3
3
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
4
|
-
type FetchPriceParams = MarkRequired<MarkOptional<Pick<RateParamsInput, "srcToken" | "destToken" | "amount" | "userAddress" | "side" | "srcDecimals" | "destDecimals" | "partner" | "ignoreBadUsdPrice">, "destToken">, "srcDecimals" | "side">;
|
|
4
|
+
type FetchPriceParams = MarkRequired<MarkOptional<Pick<RateParamsInput, "srcToken" | "destToken" | "amount" | "userAddress" | "side" | "srcDecimals" | "destDecimals" | "partner" | "ignoreBadUsdPrice" | "srcTokenDexTransferFee" | "destTokenDexTransferFee">, "destToken">, "srcDecimals" | "side">;
|
|
5
5
|
export declare function usePricesParams(): {
|
|
6
6
|
priceParams: FetchPriceParams;
|
|
7
7
|
isCrossChain: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePricesParams.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAW5E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"usePricesParams.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAW5E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,KAAK,gBAAgB,GAAG,YAAY,CAClC,YAAY,CACV,IAAI,CACF,eAAe,EACb,UAAU,GACV,WAAW,GACX,QAAQ,GACR,aAAa,GACb,MAAM,GACN,aAAa,GACb,cAAc,GACd,SAAS,GACT,mBAAmB,GACnB,wBAAwB,GACxB,yBAAyB,CAC5B,EACD,WAAW,CACZ,EACD,aAAa,GAAG,MAAM,CACvB,CAAC;AAIF,wBAAgB,eAAe,IAAI;IACjC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,CAmDA"}
|
|
@@ -6,13 +6,64 @@ import { useAccount } from 'wagmi';
|
|
|
6
6
|
import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
|
|
7
7
|
import { useIsCrossChain } from '../../../widget/state/isCrosschainAtom.js';
|
|
8
8
|
import { useWidgetConfig } from '../../../widget/state/configAtom.js';
|
|
9
|
+
import { useTokenTaxFee } from '../../tokens/useTokenTaxFee.js';
|
|
9
10
|
|
|
10
11
|
function usePricesParams() {
|
|
11
|
-
const $ = distExports.c(
|
|
12
|
+
const $ = distExports.c(26);
|
|
12
13
|
const fromToken = useAtomValue(tokenFromAtom);
|
|
13
14
|
const toToken = useAtomValue(tokenToAtom);
|
|
14
15
|
const payAmountWei = useAtomValue(payInputAmountWeiAtom);
|
|
15
16
|
const receiveAmountWei = useAtomValue(receiveInputAmountWeiAtom) ?? "0";
|
|
17
|
+
let t0;
|
|
18
|
+
if ($[0] !== fromToken.address || $[1] !== fromToken.network) {
|
|
19
|
+
t0 = {
|
|
20
|
+
tokenAddress: fromToken.address,
|
|
21
|
+
chainId: fromToken.network
|
|
22
|
+
};
|
|
23
|
+
$[0] = fromToken.address;
|
|
24
|
+
$[1] = fromToken.network;
|
|
25
|
+
$[2] = t0;
|
|
26
|
+
} else {
|
|
27
|
+
t0 = $[2];
|
|
28
|
+
}
|
|
29
|
+
const {
|
|
30
|
+
data: fromTokenTaxFee
|
|
31
|
+
} = useTokenTaxFee(t0);
|
|
32
|
+
const t1 = toToken?.address;
|
|
33
|
+
const t2 = toToken?.network;
|
|
34
|
+
let t3;
|
|
35
|
+
if ($[3] !== t1 || $[4] !== t2) {
|
|
36
|
+
t3 = {
|
|
37
|
+
tokenAddress: t1,
|
|
38
|
+
chainId: t2
|
|
39
|
+
};
|
|
40
|
+
$[3] = t1;
|
|
41
|
+
$[4] = t2;
|
|
42
|
+
$[5] = t3;
|
|
43
|
+
} else {
|
|
44
|
+
t3 = $[5];
|
|
45
|
+
}
|
|
46
|
+
const {
|
|
47
|
+
data: toTokenTaxFee
|
|
48
|
+
} = useTokenTaxFee(t3);
|
|
49
|
+
let t4;
|
|
50
|
+
if ($[6] !== fromTokenTaxFee?.sellTax) {
|
|
51
|
+
t4 = fromTokenTaxFee?.sellTax?.toString();
|
|
52
|
+
$[6] = fromTokenTaxFee?.sellTax;
|
|
53
|
+
$[7] = t4;
|
|
54
|
+
} else {
|
|
55
|
+
t4 = $[7];
|
|
56
|
+
}
|
|
57
|
+
const srcTokenDexTransferFee = t4;
|
|
58
|
+
let t5;
|
|
59
|
+
if ($[8] !== toTokenTaxFee?.buyTax) {
|
|
60
|
+
t5 = toTokenTaxFee?.buyTax?.toString();
|
|
61
|
+
$[8] = toTokenTaxFee?.buyTax;
|
|
62
|
+
$[9] = t5;
|
|
63
|
+
} else {
|
|
64
|
+
t5 = $[9];
|
|
65
|
+
}
|
|
66
|
+
const destTokenDexTransferFee = t5;
|
|
16
67
|
const {
|
|
17
68
|
address
|
|
18
69
|
} = useAccount();
|
|
@@ -21,52 +72,56 @@ function usePricesParams() {
|
|
|
21
72
|
const isCrossChain = useIsCrossChain();
|
|
22
73
|
const side = useSwapSide();
|
|
23
74
|
const amount = side === "SELL" ? payAmountWei : receiveAmountWei;
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
let
|
|
27
|
-
if ($[
|
|
28
|
-
|
|
75
|
+
const t6 = toToken?.address;
|
|
76
|
+
const t7 = toToken?.decimals;
|
|
77
|
+
let t8;
|
|
78
|
+
if ($[10] !== address || $[11] !== amount || $[12] !== destTokenDexTransferFee || $[13] !== fromToken.address || $[14] !== fromToken.decimals || $[15] !== partner || $[16] !== side || $[17] !== srcTokenDexTransferFee || $[18] !== t6 || $[19] !== t7) {
|
|
79
|
+
t8 = {
|
|
29
80
|
srcToken: fromToken.address,
|
|
30
|
-
destToken:
|
|
81
|
+
destToken: t6,
|
|
31
82
|
srcDecimals: fromToken.decimals,
|
|
32
|
-
destDecimals:
|
|
83
|
+
destDecimals: t7,
|
|
33
84
|
side,
|
|
34
85
|
amount,
|
|
35
86
|
userAddress: address,
|
|
36
87
|
partner,
|
|
37
|
-
ignoreBadUsdPrice: false
|
|
88
|
+
ignoreBadUsdPrice: false,
|
|
89
|
+
srcTokenDexTransferFee,
|
|
90
|
+
destTokenDexTransferFee
|
|
38
91
|
};
|
|
39
|
-
$[
|
|
40
|
-
$[
|
|
41
|
-
$[
|
|
42
|
-
$[
|
|
43
|
-
$[
|
|
44
|
-
$[
|
|
45
|
-
$[
|
|
46
|
-
$[
|
|
47
|
-
$[
|
|
92
|
+
$[10] = address;
|
|
93
|
+
$[11] = amount;
|
|
94
|
+
$[12] = destTokenDexTransferFee;
|
|
95
|
+
$[13] = fromToken.address;
|
|
96
|
+
$[14] = fromToken.decimals;
|
|
97
|
+
$[15] = partner;
|
|
98
|
+
$[16] = side;
|
|
99
|
+
$[17] = srcTokenDexTransferFee;
|
|
100
|
+
$[18] = t6;
|
|
101
|
+
$[19] = t7;
|
|
102
|
+
$[20] = t8;
|
|
48
103
|
} else {
|
|
49
|
-
|
|
104
|
+
t8 = $[20];
|
|
50
105
|
}
|
|
51
|
-
const priceParams =
|
|
52
|
-
const
|
|
53
|
-
let
|
|
54
|
-
if ($[
|
|
55
|
-
|
|
106
|
+
const priceParams = t8;
|
|
107
|
+
const t9 = isCrossChain ? toToken?.network : void 0;
|
|
108
|
+
let t10;
|
|
109
|
+
if ($[21] !== fromToken.network || $[22] !== isCrossChain || $[23] !== priceParams || $[24] !== t9) {
|
|
110
|
+
t10 = {
|
|
56
111
|
priceParams,
|
|
57
112
|
isCrossChain,
|
|
58
113
|
chainId: fromToken.network,
|
|
59
|
-
destChainId:
|
|
114
|
+
destChainId: t9
|
|
60
115
|
};
|
|
61
|
-
$[
|
|
62
|
-
$[
|
|
63
|
-
$[
|
|
64
|
-
$[
|
|
65
|
-
$[
|
|
116
|
+
$[21] = fromToken.network;
|
|
117
|
+
$[22] = isCrossChain;
|
|
118
|
+
$[23] = priceParams;
|
|
119
|
+
$[24] = t9;
|
|
120
|
+
$[25] = t10;
|
|
66
121
|
} else {
|
|
67
|
-
|
|
122
|
+
t10 = $[25];
|
|
68
123
|
}
|
|
69
|
-
return
|
|
124
|
+
return t10;
|
|
70
125
|
}
|
|
71
126
|
|
|
72
127
|
export { usePricesParams };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"@/widget/inputs/state/inputAmountAtom\";\nimport {\n tokenFromAtom,\n tokenToAtom,\n} from \"@/widget/inputs/state/selectedTokenAtom\";\nimport { useAtomValue } from \"jotai\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useIsCrossChain } from \"@/widget/state/isCrosschainAtom\";\nimport { useWidgetConfig } from \"@/widget/state/configAtom\";\n\ntype FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n
|
|
1
|
+
{"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\nimport {\n payInputAmountWeiAtom,\n receiveInputAmountWeiAtom,\n} from \"@/widget/inputs/state/inputAmountAtom\";\nimport {\n tokenFromAtom,\n tokenToAtom,\n} from \"@/widget/inputs/state/selectedTokenAtom\";\nimport { useAtomValue } from \"jotai\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useIsCrossChain } from \"@/widget/state/isCrosschainAtom\";\nimport { useWidgetConfig } from \"@/widget/state/configAtom\";\nimport { useTokenTaxFee } from \"@/hooks/tokens/useTokenTaxFee\";\n\ntype FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n | \"srcTokenDexTransferFee\"\n | \"destTokenDexTransferFee\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n\nexport function usePricesParams(): {\n priceParams: FetchPriceParams;\n isCrossChain: boolean;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n} {\n const fromToken = useAtomValue(tokenFromAtom);\n const toToken = useAtomValue(tokenToAtom);\n\n const payAmountWei = useAtomValue(payInputAmountWeiAtom);\n const receiveAmountWei = useAtomValue(receiveInputAmountWeiAtom) ?? \"0\";\n\n const { data: fromTokenTaxFee } = useTokenTaxFee({\n tokenAddress: fromToken.address,\n chainId: fromToken.network,\n });\n\n const { data: toTokenTaxFee } = useTokenTaxFee({\n tokenAddress: toToken?.address,\n chainId: toToken?.network,\n });\n\n const srcTokenDexTransferFee = fromTokenTaxFee?.sellTax?.toString();\n const destTokenDexTransferFee = toTokenTaxFee?.buyTax?.toString();\n\n const { address } = useAccount();\n\n const widgetConfig = useWidgetConfig();\n\n const partner = widgetConfig.partner;\n\n const isCrossChain = useIsCrossChain();\n\n const side = useSwapSide();\n const amount = side === \"SELL\" ? payAmountWei : receiveAmountWei;\n\n const priceParams: FetchPriceParams = {\n srcToken: fromToken.address,\n destToken: toToken?.address,\n srcDecimals: fromToken.decimals,\n destDecimals: toToken?.decimals,\n side,\n amount,\n userAddress: address,\n partner,\n ignoreBadUsdPrice: false, // safer to ignore for all tokens to allow those without USD price\n srcTokenDexTransferFee,\n destTokenDexTransferFee,\n };\n\n return {\n priceParams,\n isCrossChain,\n chainId: fromToken.network,\n destChainId: isCrossChain ? toToken?.network : undefined,\n };\n}\n"],"names":["usePricesParams","$","_c","fromToken","useAtomValue","tokenFromAtom","toToken","tokenToAtom","payAmountWei","payInputAmountWeiAtom","receiveAmountWei","receiveInputAmountWeiAtom","t0","address","network","tokenAddress","chainId","data","fromTokenTaxFee","useTokenTaxFee","t1","t2","t3","toTokenTaxFee","t4","sellTax","toString","srcTokenDexTransferFee","t5","buyTax","destTokenDexTransferFee","useAccount","widgetConfig","useWidgetConfig","partner","isCrossChain","useIsCrossChain","side","useSwapSide","amount","t6","t7","decimals","t8","srcToken","destToken","srcDecimals","destDecimals","userAddress","ignoreBadUsdPrice","priceParams","t9","undefined","t10","destChainId"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,gBAAgB,CAAC;AACxE,MAAM,MAAM,aAAa,GACrB,sBAAsB,CAAC,eAAe,CAAC,GACvC,gBAAgB,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ApprovalFlowResult, SignPermitFlowResult } from './types';
|
|
2
|
+
import { UseApproveResult } from '../../../txs/mutations/useApprove';
|
|
3
|
+
import { PermitMut } from './useSignPermit1Or2';
|
|
4
|
+
type UseApproveOrPermitInput = {
|
|
5
|
+
srcToken?: string;
|
|
6
|
+
srcAmount?: string | bigint;
|
|
7
|
+
spenderContractType: "ParaswapDelta" | "AugustusSwapper";
|
|
8
|
+
swapSide: "BUY" | "SELL";
|
|
9
|
+
};
|
|
10
|
+
type UseApproveOrPermitResult = {
|
|
11
|
+
approval: ApprovalFlowResult;
|
|
12
|
+
approveTxMut: UseApproveResult;
|
|
13
|
+
signPermit: SignPermitFlowResult;
|
|
14
|
+
signPermitMut: PermitMut;
|
|
15
|
+
};
|
|
16
|
+
export declare function useApproveOrPermit({ srcToken, srcAmount, spenderContractType, swapSide, }: UseApproveOrPermitInput): UseApproveOrPermitResult;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=useApproveOrPermit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApproveOrPermit.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/useApproveOrPermit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExE,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,mBAAmB,EAAE,eAAe,GAAG,iBAAiB,CAAC;IACzD,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC;CAC1B,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,oBAAoB,CAAC;IACjC,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,QAAQ,GACT,EAAE,uBAAuB,GAAG,wBAAwB,CAkGpD"}
|