@velora-dex/widget 0.0.11 → 0.0.13
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/dist/components/ui/drawer.d.ts +1 -1
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +25 -19
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/vaul/browser.d.ts +8 -0
- package/dist/components/ui/vaul/browser.d.ts.map +1 -0
- package/dist/components/ui/vaul/browser.js +37 -0
- package/dist/components/ui/vaul/browser.js.map +1 -0
- package/dist/components/ui/vaul/constants.d.ts +12 -0
- package/dist/components/ui/vaul/constants.d.ts.map +1 -0
- package/dist/components/ui/vaul/constants.js +24 -0
- package/dist/components/ui/vaul/constants.js.map +1 -0
- package/dist/components/ui/vaul/context.d.ts +38 -0
- package/dist/components/ui/vaul/context.d.ts.map +1 -0
- package/dist/components/ui/vaul/context.js +72 -0
- package/dist/components/ui/vaul/context.js.map +1 -0
- package/dist/components/ui/vaul/helpers.d.ts +17 -0
- package/dist/components/ui/vaul/helpers.d.ts.map +1 -0
- package/dist/components/ui/vaul/helpers.js +87 -0
- package/dist/components/ui/vaul/helpers.js.map +1 -0
- package/dist/components/ui/vaul/index.d.ts +140 -0
- package/dist/components/ui/vaul/index.d.ts.map +1 -0
- package/dist/components/ui/vaul/index.js +807 -0
- package/dist/components/ui/vaul/index.js.map +1 -0
- package/dist/components/ui/vaul/types.d.ts +7 -0
- package/dist/components/ui/vaul/types.d.ts.map +1 -0
- package/dist/components/ui/vaul/use-composed-refs.d.ts +14 -0
- package/dist/components/ui/vaul/use-composed-refs.d.ts.map +1 -0
- package/dist/components/ui/vaul/use-composed-refs.js +28 -0
- package/dist/components/ui/vaul/use-composed-refs.js.map +1 -0
- package/dist/components/ui/vaul/use-controllable-state.d.ts +9 -0
- package/dist/components/ui/vaul/use-controllable-state.d.ts.map +1 -0
- package/dist/components/ui/vaul/use-controllable-state.js +134 -0
- package/dist/components/ui/vaul/use-controllable-state.js.map +1 -0
- package/dist/components/ui/vaul/use-position-fixed.d.ts +19 -0
- package/dist/components/ui/vaul/use-position-fixed.d.ts.map +1 -0
- package/dist/components/ui/vaul/use-position-fixed.js +109 -0
- package/dist/components/ui/vaul/use-position-fixed.js.map +1 -0
- package/dist/components/ui/vaul/use-prevent-scroll.d.ts +18 -0
- package/dist/components/ui/vaul/use-prevent-scroll.d.ts.map +1 -0
- package/dist/components/ui/vaul/use-prevent-scroll.js +182 -0
- package/dist/components/ui/vaul/use-prevent-scroll.js.map +1 -0
- package/dist/components/ui/vaul/use-scale-background.d.ts +2 -0
- package/dist/components/ui/vaul/use-scale-background.d.ts.map +1 -0
- package/dist/components/ui/vaul/use-scale-background.js +68 -0
- package/dist/components/ui/vaul/use-scale-background.js.map +1 -0
- package/dist/components/ui/vaul/use-snap-points.d.ts +32 -0
- package/dist/components/ui/vaul/use-snap-points.d.ts.map +1 -0
- package/dist/components/ui/vaul/use-snap-points.js +222 -0
- package/dist/components/ui/vaul/use-snap-points.js.map +1 -0
- package/dist/components/web3/AccountButton.d.ts.map +1 -1
- package/dist/components/web3/AccountButton.js +26 -30
- package/dist/components/web3/AccountButton.js.map +1 -1
- package/dist/components/web3/ConnectWallets/index.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/index.js +12 -64
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/widget/AppHeader/ActivityButton.d.ts +2 -0
- package/dist/components/widget/AppHeader/ActivityButton.d.ts.map +1 -0
- package/dist/components/widget/AppHeader/ActivityButton.js +46 -0
- package/dist/components/widget/AppHeader/ActivityButton.js.map +1 -0
- package/dist/components/widget/AppHeader/AppHeader.d.ts.map +1 -1
- package/dist/components/widget/AppHeader/AppHeader.js +35 -29
- package/dist/components/widget/AppHeader/AppHeader.js.map +1 -1
- package/dist/components/widget/Drawer/index.d.ts +1 -1
- package/dist/components/widget/Drawer/index.d.ts.map +1 -1
- package/dist/components/widget/Drawer/index.js +37 -30
- package/dist/components/widget/Drawer/index.js.map +1 -1
- package/dist/components/widget/Informative/Informative.d.ts +7 -0
- package/dist/components/widget/Informative/Informative.d.ts.map +1 -0
- package/dist/components/widget/Informative/Informative.js +33 -0
- package/dist/components/widget/Informative/Informative.js.map +1 -0
- package/dist/components/widget/PoweredBy/PoweredBy.d.ts +2 -0
- package/dist/components/widget/PoweredBy/PoweredBy.d.ts.map +1 -0
- package/dist/components/widget/PoweredBy/PoweredBy.js +31 -0
- package/dist/components/widget/PoweredBy/PoweredBy.js.map +1 -0
- package/dist/components/widget/PoweredBy/assets/velora.svg.js +12 -0
- package/dist/components/widget/PoweredBy/assets/velora.svg.js.map +1 -0
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js +35 -39
- package/dist/components/widget/ReceiverAddress/ReceiverAddress.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/receiverAddressAtom.js +1 -1
- package/dist/components/widget/SelectToken/SelectTokenButton.js +55 -65
- package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js +1 -0
- package/dist/components/widget/SwapModeSwitcher/state/swapModeActionsAtom.js.map +1 -1
- package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
- package/dist/components/widget/TokenInput/index.js +133 -103
- package/dist/components/widget/TokenInput/index.js.map +1 -1
- package/dist/components/widget/TokenInput/types.d.ts +4 -2
- package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +38 -3
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts +2 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.d.ts.map +1 -1
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js +30 -29
- package/dist/components/widget/WrapEth/WrapEthDrawerButton.js.map +1 -1
- package/dist/hooks/gas/config.d.ts +6 -0
- package/dist/hooks/gas/config.d.ts.map +1 -0
- package/dist/hooks/gas/config.js +53 -0
- package/dist/hooks/gas/config.js.map +1 -0
- package/dist/hooks/gas/types.d.ts +43 -0
- package/dist/hooks/gas/types.d.ts.map +1 -0
- package/dist/hooks/gas/useGasPrices.d.ts +7 -0
- package/dist/hooks/gas/useGasPrices.d.ts.map +1 -0
- package/dist/hooks/gas/useGasPrices.js +118 -0
- package/dist/hooks/gas/useGasPrices.js.map +1 -0
- package/dist/hooks/gas/utils.d.ts +8 -0
- package/dist/hooks/gas/utils.d.ts.map +1 -0
- package/dist/hooks/gas/utils.js +21 -0
- package/dist/hooks/gas/utils.js.map +1 -0
- package/dist/hooks/getCode/useIsAccountContract.d.ts +2 -0
- package/dist/hooks/getCode/useIsAccountContract.d.ts.map +1 -0
- package/dist/hooks/getCode/useIsAccountContract.js +34 -0
- package/dist/hooks/getCode/useIsAccountContract.js.map +1 -0
- package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts +27 -0
- package/dist/hooks/permit/hooks/useGetPermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/useGetPermitInfo.js +98 -0
- package/dist/hooks/permit/hooks/useGetPermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts +31 -0
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.js +129 -0
- package/dist/hooks/permit/hooks/useGetSafePermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts +38 -0
- package/dist/hooks/permit/hooks/usePermit1Nonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/usePermit1Nonce.js +153 -0
- package/dist/hooks/permit/hooks/usePermit1Nonce.js.map +1 -0
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts +18 -0
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js +109 -0
- package/dist/hooks/permit/hooks/useSignArbitraryTypedData.js.map +1 -0
- package/dist/hooks/permit/hooks/useSignPermit.d.ts +13 -0
- package/dist/hooks/permit/hooks/useSignPermit.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/useSignPermit.js +103 -0
- package/dist/hooks/permit/hooks/useSignPermit.js.map +1 -0
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts +50 -0
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js +338 -0
- package/dist/hooks/permit/hooks/useSignTokenFromPermit1.js.map +1 -0
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts +10 -0
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js +69 -0
- package/dist/hooks/permit/hooks/useTokenFromPermit1Nonce.js.map +1 -0
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts +10 -0
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js +63 -0
- package/dist/hooks/permit/hooks/useTokenFromPermitInfo.js.map +1 -0
- package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts +16 -0
- package/dist/hooks/permit/hooks/useTryToSignPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/useTryToSignPermit1.js +94 -0
- package/dist/hooks/permit/hooks/useTryToSignPermit1.js.map +1 -0
- package/dist/hooks/permit/utils/abi.d.ts +219 -0
- package/dist/hooks/permit/utils/abi.d.ts.map +1 -0
- package/dist/hooks/permit/utils/abi.js +204 -0
- package/dist/hooks/permit/utils/abi.js.map +1 -0
- package/dist/hooks/permit/utils/constants.d.ts +224 -0
- package/dist/hooks/permit/utils/constants.d.ts.map +1 -0
- package/dist/hooks/permit/utils/constants.js +229 -0
- package/dist/hooks/permit/utils/constants.js.map +1 -0
- package/dist/hooks/permit/utils/construct.d.ts +161 -0
- package/dist/hooks/permit/utils/construct.d.ts.map +1 -0
- package/dist/hooks/permit/utils/construct.js +227 -0
- package/dist/hooks/permit/utils/construct.js.map +1 -0
- package/dist/hooks/permit/utils/detect.d.ts +35 -0
- package/dist/hooks/permit/utils/detect.d.ts.map +1 -0
- package/dist/hooks/permit/utils/detect.js +241 -0
- package/dist/hooks/permit/utils/detect.js.map +1 -0
- package/dist/hooks/permit/utils/domainSeparator.d.ts +44 -0
- package/dist/hooks/permit/utils/domainSeparator.d.ts.map +1 -0
- package/dist/hooks/permit/utils/domainSeparator.js +216 -0
- package/dist/hooks/permit/utils/domainSeparator.js.map +1 -0
- package/dist/hooks/permit/utils/encodeArgs.d.ts +11 -0
- package/dist/hooks/permit/utils/encodeArgs.d.ts.map +1 -0
- package/dist/hooks/permit/utils/encodeArgs.js +29 -0
- package/dist/hooks/permit/utils/encodeArgs.js.map +1 -0
- package/dist/hooks/permit/utils/trySignPermit1.d.ts +42 -0
- package/dist/hooks/permit/utils/trySignPermit1.d.ts.map +1 -0
- package/dist/hooks/permit/utils/trySignPermit1.js +283 -0
- package/dist/hooks/permit/utils/trySignPermit1.js.map +1 -0
- package/dist/hooks/permit/utils/types.d.ts +77 -0
- package/dist/hooks/permit/utils/types.d.ts.map +1 -0
- package/dist/hooks/permit/utils/utils.d.ts +15 -0
- package/dist/hooks/permit/utils/utils.d.ts.map +1 -0
- package/dist/hooks/permit/utils/utils.js +44 -0
- package/dist/hooks/permit/utils/utils.js.map +1 -0
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.d.ts +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js +94 -0
- package/dist/hooks/swap/prices/delta/queries/useIsTokenSupportedInDelta.js.map +1 -0
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.d.ts +3 -0
- package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useSwapPrices.js +43 -29
- package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts +2 -10
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.d.ts.map +1 -1
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js +10 -10
- package/dist/hooks/swap/prices/useTokenInputsFromPrice.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/types.d.ts +15 -0
- package/dist/hooks/swap/tradeFlow/common/types.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +433 -268
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +4 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +411 -245
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +4 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/tokens/allowance/types.d.ts +2 -0
- package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts +3 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js +4 -2
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.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 +11 -8
- package/dist/hooks/tokens/allowance/useTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts +1 -0
- package/dist/hooks/tokens/balances/useInvalidateTokenData.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js +32 -5
- package/dist/hooks/tokens/balances/useInvalidateTokenData.js.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.d.ts.map +1 -1
- package/dist/hooks/txs/mutations/useSendTx.js +48 -44
- package/dist/hooks/txs/mutations/useSendTx.js.map +1 -1
- package/dist/hooks/useIsCrosschainPossible.d.ts +12 -0
- package/dist/hooks/useIsCrosschainPossible.d.ts.map +1 -0
- package/dist/hooks/useIsCrosschainPossible.js +68 -0
- package/dist/hooks/useIsCrosschainPossible.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/utils/delta.d.ts +13 -0
- package/dist/lib/utils/delta.d.ts.map +1 -0
- package/dist/lib/utils/delta.js +35 -0
- package/dist/lib/utils/delta.js.map +1 -0
- package/dist/lib/utils/explorer.d.ts +2 -0
- package/dist/lib/utils/explorer.d.ts.map +1 -1
- package/dist/lib/utils/explorer.js +15 -1
- package/dist/lib/utils/explorer.js.map +1 -1
- package/dist/styles.css +317 -5
- package/dist/tokens/defaultTokens.js.map +1 -1
- package/dist/widget/Updaters.d.ts.map +1 -1
- package/dist/widget/Updaters.js +4 -0
- package/dist/widget/Updaters.js.map +1 -1
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts +9 -0
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -0
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js +81 -0
- package/dist/widget/button/hooks/useWidgetButtonExtraProps.js.map +1 -0
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +302 -259
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/inputs/hooks/types.d.ts +4 -0
- package/dist/widget/inputs/hooks/types.d.ts.map +1 -0
- package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts +3 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js +160 -99
- package/dist/widget/inputs/hooks/useTokenFromInputProps.js.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts +2 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/widget/inputs/hooks/useTokenToInputProps.js +136 -105
- package/dist/widget/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/package.json +2 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/hooks/permit/utils/constants.ts"],"sourcesContent":["import type { Address } from \"viem\";\n\nexport const EIP_2612_PERMIT_SELECTOR = \"0xd505accf\";\nexport const DAI_PERMIT_SELECTOR = \"0x8fcbaf0c\";\n\nexport const EIP712_DOMAIN_TYPEHASH_WITHOUT_VERSION =\n \"0x8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866\";\n\nexport const DOMAIN_HASHES_WITHOUT_VERSION: Address[] = [\n /** @signature 'EIP712Domain(string name,uint chainId,address verifyingContract)' */\n \"0x797cfab58fcb15f590eb8e4252d5c228ff88f94f907e119e80c4393a946e8f35\",\n /** @signature 'EIP712Domain(string name,uint256 chainId,address verifyingContract)' */\n EIP712_DOMAIN_TYPEHASH_WITHOUT_VERSION, // Uniswap's UNI\n];\n\n/**\n * @signature EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)\n * */\nexport const DOMAIN_HASH_WITH_SALT_AND_WITHOUT_CHAIN_ID = // USDC.e uses this\n \"0x36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7\";\n\n/**\n * @signature Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)\n * */\nexport const DAI_LIKE_PERMIT_TYPEHASH =\n \"0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb\";\n\n/**\n * @signature Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\n * */\nexport const EIP2612_PERMIT_TYPEHASH =\n \"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9\";\n\n/**\n * @example `${tokenAddress}:${chainId}.toLowerCase()`\n * @warning Only toLowerCase string\n * */\nexport const TOKEN_ADDRESSES_WITH_SALT = [\n // this is our USDC.e that gives us so much trouble\n \"0x2791bca1f2de4661ed88a30c99a7a9449aa84174:137\", // USDC Proxy Polygon\n \"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063:137\", // DAI Proxy Polygon\n] as const;\n\nexport const ERC_20_NONCES_ABI = [\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"nonces\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"_nonces\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"nonce\",\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n {\n name: \"\",\n type: \"address\",\n },\n ],\n name: \"getNonce\", // dai polygon\n outputs: [\n {\n name: \"\",\n type: \"uint256\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\nexport const DOMAIN_TYPEHASH_ABI = [\n {\n constant: true,\n inputs: [],\n name: \"DOMAIN_TYPEHASH\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\nexport const PERMIT_TYPEHASH_ABI = [\n {\n constant: true,\n inputs: [],\n name: \"PERMIT_TYPEHASH\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\nexport const VERSIONS_ABI = [\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"ERC712_VERSION\",\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"EIP712_VERSION\", // in USDC.e\n outputs: [\n {\n name: \"\",\n type: \"string\",\n },\n ],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\nexport const EIP712_DOMAIN_ABI = [\n {\n name: \"eip712Domain\",\n type: \"function\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n type: \"bytes1\",\n name: \"fields\",\n },\n {\n type: \"string\",\n name: \"name\",\n },\n {\n type: \"string\",\n name: \"version\",\n },\n {\n type: \"uint256\",\n name: \"chainId\",\n },\n {\n type: \"address\",\n name: \"verifyingContract\",\n },\n {\n type: \"bytes32\",\n name: \"salt\",\n },\n {\n type: \"uint256[]\",\n name: \"extensions\",\n },\n ],\n },\n] as const;\n\nexport const DOMAIN_ABIS = {\n versionAndChain: [\n // Lido stETH on mainnet\n {\n name: \"eip712Domain\",\n type: \"function\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n type: \"string\",\n name: \"name\",\n },\n {\n type: \"string\",\n name: \"version\",\n },\n {\n type: \"uint256\",\n name: \"chainId\",\n },\n {\n type: \"address\",\n name: \"verifyingContract\",\n },\n ],\n },\n ],\n versionAndSalt: [\n {\n name: \"eip712Domain\",\n type: \"function\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n type: \"string\",\n name: \"name\",\n },\n {\n type: \"string\",\n name: \"version\",\n },\n {\n type: \"address\",\n name: \"verifyingContract\",\n },\n {\n type: \"bytes32\",\n name: \"salt\",\n },\n ],\n },\n ],\n withoutVersion: [\n {\n name: \"eip712Domain\",\n type: \"function\",\n stateMutability: \"view\",\n inputs: [],\n outputs: [\n {\n type: \"string\",\n name: \"name\",\n },\n {\n type: \"uint256\",\n name: \"chainId\",\n },\n {\n type: \"address\",\n name: \"verifyingContract\",\n },\n ],\n },\n ],\n} as const;\n"],"names":["EIP712_DOMAIN_TYPEHASH_WITHOUT_VERSION","DOMAIN_HASHES_WITHOUT_VERSION","DAI_LIKE_PERMIT_TYPEHASH","EIP2612_PERMIT_TYPEHASH","ERC_20_NONCES_ABI","constant","inputs","name","type","outputs","payable","stateMutability","DOMAIN_TYPEHASH_ABI","internalType","PERMIT_TYPEHASH_ABI","VERSIONS_ABI","EIP712_DOMAIN_ABI","DOMAIN_ABIS","versionAndChain","versionAndSalt","withoutVersion"],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { PermitSupportDAI, PermitSupportEIP2612 } from './detect';
|
|
2
|
+
import { Address, Hex } from 'viem';
|
|
3
|
+
declare const PERMIT2_ADDRESS: "0x000000000022D473030F116dDEE9F6B43aC78BA3";
|
|
4
|
+
declare const PERMIT2_DOMAIN_NAME: "Permit2";
|
|
5
|
+
declare const PERMIT2_TRANSFER_FROM_TYPES: {
|
|
6
|
+
readonly PermitTransferFrom: readonly [{
|
|
7
|
+
readonly name: "permitted";
|
|
8
|
+
readonly type: "TokenPermissions";
|
|
9
|
+
}, {
|
|
10
|
+
readonly name: "spender";
|
|
11
|
+
readonly type: "address";
|
|
12
|
+
}, {
|
|
13
|
+
readonly name: "nonce";
|
|
14
|
+
readonly type: "uint256";
|
|
15
|
+
}, {
|
|
16
|
+
readonly name: "deadline";
|
|
17
|
+
readonly type: "uint256";
|
|
18
|
+
}];
|
|
19
|
+
readonly TokenPermissions: readonly [{
|
|
20
|
+
readonly name: "token";
|
|
21
|
+
readonly type: "address";
|
|
22
|
+
}, {
|
|
23
|
+
readonly name: "amount";
|
|
24
|
+
readonly type: "uint256";
|
|
25
|
+
}];
|
|
26
|
+
};
|
|
27
|
+
declare const PERMIT2_PERMIT_SINGLE_TYPES: {
|
|
28
|
+
readonly PermitSingle: readonly [{
|
|
29
|
+
readonly name: "details";
|
|
30
|
+
readonly type: "PermitDetails";
|
|
31
|
+
}, {
|
|
32
|
+
readonly name: "spender";
|
|
33
|
+
readonly type: "address";
|
|
34
|
+
}, {
|
|
35
|
+
readonly name: "sigDeadline";
|
|
36
|
+
readonly type: "uint256";
|
|
37
|
+
}];
|
|
38
|
+
readonly PermitDetails: readonly [{
|
|
39
|
+
readonly name: "token";
|
|
40
|
+
readonly type: "address";
|
|
41
|
+
}, {
|
|
42
|
+
readonly name: "amount";
|
|
43
|
+
readonly type: "uint160";
|
|
44
|
+
}, {
|
|
45
|
+
readonly name: "expiration";
|
|
46
|
+
readonly type: "uint48";
|
|
47
|
+
}, {
|
|
48
|
+
readonly name: "nonce";
|
|
49
|
+
readonly type: "uint48";
|
|
50
|
+
}];
|
|
51
|
+
};
|
|
52
|
+
export interface Permit1PermitInput {
|
|
53
|
+
type: "permit1";
|
|
54
|
+
permitInfo: PermitSupportEIP2612;
|
|
55
|
+
owner: Address;
|
|
56
|
+
spender: Address;
|
|
57
|
+
value: bigint;
|
|
58
|
+
nonce: bigint;
|
|
59
|
+
deadline: bigint;
|
|
60
|
+
}
|
|
61
|
+
export interface DaiPermitInput {
|
|
62
|
+
type: "dai";
|
|
63
|
+
permitInfo: PermitSupportDAI;
|
|
64
|
+
holder: Address;
|
|
65
|
+
spender: Address;
|
|
66
|
+
nonce: bigint;
|
|
67
|
+
expiry: bigint;
|
|
68
|
+
allowed: boolean;
|
|
69
|
+
}
|
|
70
|
+
export interface Permit2Input {
|
|
71
|
+
type: "permit2";
|
|
72
|
+
variant: "single" | "transferFrom";
|
|
73
|
+
permitInfo?: undefined;
|
|
74
|
+
token: Address;
|
|
75
|
+
spender: Address;
|
|
76
|
+
nonce: bigint;
|
|
77
|
+
amount: bigint;
|
|
78
|
+
expiration: bigint;
|
|
79
|
+
chainId: number;
|
|
80
|
+
}
|
|
81
|
+
export type PermitTypedDataInput = Permit1PermitInput | DaiPermitInput | Permit2Input;
|
|
82
|
+
interface EIP712Type {
|
|
83
|
+
name: string;
|
|
84
|
+
type: string;
|
|
85
|
+
}
|
|
86
|
+
interface EIP712Domain {
|
|
87
|
+
name: string;
|
|
88
|
+
version?: string;
|
|
89
|
+
chainId?: number;
|
|
90
|
+
verifyingContract: Address;
|
|
91
|
+
salt?: Hex;
|
|
92
|
+
}
|
|
93
|
+
interface Permit2TypedDataSingle {
|
|
94
|
+
types: typeof PERMIT2_PERMIT_SINGLE_TYPES & {};
|
|
95
|
+
primaryType: "PermitSingle";
|
|
96
|
+
domain: {
|
|
97
|
+
name: typeof PERMIT2_DOMAIN_NAME;
|
|
98
|
+
chainId?: number;
|
|
99
|
+
verifyingContract: typeof PERMIT2_ADDRESS;
|
|
100
|
+
};
|
|
101
|
+
message: {
|
|
102
|
+
details: {
|
|
103
|
+
token: Address;
|
|
104
|
+
amount: bigint;
|
|
105
|
+
nonce: bigint;
|
|
106
|
+
expiration: bigint;
|
|
107
|
+
};
|
|
108
|
+
spender: Address;
|
|
109
|
+
sigDeadline: bigint;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
interface Permit2TypedDataTransferFrom {
|
|
113
|
+
types: typeof PERMIT2_TRANSFER_FROM_TYPES & {};
|
|
114
|
+
primaryType: "PermitTransferFrom";
|
|
115
|
+
domain: {
|
|
116
|
+
name: typeof PERMIT2_DOMAIN_NAME;
|
|
117
|
+
chainId?: number;
|
|
118
|
+
verifyingContract: typeof PERMIT2_ADDRESS;
|
|
119
|
+
};
|
|
120
|
+
message: {
|
|
121
|
+
permitted: {
|
|
122
|
+
token: Address;
|
|
123
|
+
amount: bigint;
|
|
124
|
+
};
|
|
125
|
+
spender: Address;
|
|
126
|
+
nonce: bigint;
|
|
127
|
+
deadline: bigint;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
interface Permit1PermitTypedData {
|
|
131
|
+
types: {
|
|
132
|
+
Permit: EIP712Type[];
|
|
133
|
+
};
|
|
134
|
+
primaryType: "Permit";
|
|
135
|
+
domain: EIP712Domain;
|
|
136
|
+
message: {
|
|
137
|
+
owner: Address;
|
|
138
|
+
spender: Address;
|
|
139
|
+
value: bigint;
|
|
140
|
+
nonce: bigint;
|
|
141
|
+
deadline: bigint;
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
interface DaiPermitTypedData {
|
|
145
|
+
types: {
|
|
146
|
+
Permit: EIP712Type[];
|
|
147
|
+
};
|
|
148
|
+
primaryType: "Permit";
|
|
149
|
+
domain: EIP712Domain;
|
|
150
|
+
message: {
|
|
151
|
+
holder: Address;
|
|
152
|
+
spender: Address;
|
|
153
|
+
nonce: bigint;
|
|
154
|
+
expiry: bigint;
|
|
155
|
+
allowed: boolean;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
export type PermitTypedDataReturn = Permit2TypedDataSingle | Permit2TypedDataTransferFrom | Permit1PermitTypedData | DaiPermitTypedData;
|
|
159
|
+
export declare function constructPermitTypedData(input: PermitTypedDataInput): PermitTypedDataReturn;
|
|
160
|
+
export {};
|
|
161
|
+
//# sourceMappingURL=construct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"construct.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/construct.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import 'viem';
|
|
2
|
+
|
|
3
|
+
globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
|
|
4
|
+
cache: /* @__PURE__ */ new Map(),
|
|
5
|
+
get(name, inst) {
|
|
6
|
+
if (this.cache.has(name)) {
|
|
7
|
+
return this.cache.get(name);
|
|
8
|
+
}
|
|
9
|
+
this.cache.set(name, inst);
|
|
10
|
+
return inst;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
|
|
14
|
+
const PERMIT2_DOMAIN_NAME = "Permit2";
|
|
15
|
+
const PERMIT2_TOKEN_PERMISSIONS = [{
|
|
16
|
+
name: "token",
|
|
17
|
+
type: "address"
|
|
18
|
+
}, {
|
|
19
|
+
name: "amount",
|
|
20
|
+
type: "uint256"
|
|
21
|
+
}];
|
|
22
|
+
const PERMIT2_TRANSFER_FROM_TYPES = {
|
|
23
|
+
PermitTransferFrom: [{
|
|
24
|
+
name: "permitted",
|
|
25
|
+
type: "TokenPermissions"
|
|
26
|
+
}, {
|
|
27
|
+
name: "spender",
|
|
28
|
+
type: "address"
|
|
29
|
+
}, {
|
|
30
|
+
name: "nonce",
|
|
31
|
+
type: "uint256"
|
|
32
|
+
}, {
|
|
33
|
+
name: "deadline",
|
|
34
|
+
type: "uint256"
|
|
35
|
+
}],
|
|
36
|
+
TokenPermissions: PERMIT2_TOKEN_PERMISSIONS
|
|
37
|
+
};
|
|
38
|
+
const PERMIT2_PERMIT_DETAILS = [{
|
|
39
|
+
name: "token",
|
|
40
|
+
type: "address"
|
|
41
|
+
}, {
|
|
42
|
+
name: "amount",
|
|
43
|
+
type: "uint160"
|
|
44
|
+
}, {
|
|
45
|
+
name: "expiration",
|
|
46
|
+
type: "uint48"
|
|
47
|
+
}, {
|
|
48
|
+
name: "nonce",
|
|
49
|
+
type: "uint48"
|
|
50
|
+
}];
|
|
51
|
+
const PERMIT2_PERMIT_SINGLE_TYPES = {
|
|
52
|
+
PermitSingle: [{
|
|
53
|
+
name: "details",
|
|
54
|
+
type: "PermitDetails"
|
|
55
|
+
}, {
|
|
56
|
+
name: "spender",
|
|
57
|
+
type: "address"
|
|
58
|
+
}, {
|
|
59
|
+
name: "sigDeadline",
|
|
60
|
+
type: "uint256"
|
|
61
|
+
}],
|
|
62
|
+
PermitDetails: PERMIT2_PERMIT_DETAILS
|
|
63
|
+
};
|
|
64
|
+
function constructPermitTypedData(input) {
|
|
65
|
+
if (input.type === "permit2") {
|
|
66
|
+
const {
|
|
67
|
+
token,
|
|
68
|
+
spender,
|
|
69
|
+
nonce,
|
|
70
|
+
amount,
|
|
71
|
+
expiration,
|
|
72
|
+
variant,
|
|
73
|
+
chainId
|
|
74
|
+
} = input;
|
|
75
|
+
if (variant === "single") {
|
|
76
|
+
return {
|
|
77
|
+
types: {
|
|
78
|
+
...PERMIT2_PERMIT_SINGLE_TYPES
|
|
79
|
+
// EIP712Domain: [
|
|
80
|
+
// { name: "name", type: "string" },
|
|
81
|
+
// { name: "chainId", type: "uint256" },
|
|
82
|
+
// { name: "verifyingContract", type: "address" },
|
|
83
|
+
// ],
|
|
84
|
+
},
|
|
85
|
+
primaryType: "PermitSingle",
|
|
86
|
+
domain: {
|
|
87
|
+
name: PERMIT2_DOMAIN_NAME,
|
|
88
|
+
chainId,
|
|
89
|
+
verifyingContract: PERMIT2_ADDRESS
|
|
90
|
+
// Uniswap Permit2
|
|
91
|
+
},
|
|
92
|
+
message: {
|
|
93
|
+
details: {
|
|
94
|
+
token,
|
|
95
|
+
amount,
|
|
96
|
+
nonce,
|
|
97
|
+
expiration
|
|
98
|
+
},
|
|
99
|
+
spender,
|
|
100
|
+
sigDeadline: expiration
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (variant === "transferFrom") {
|
|
105
|
+
return {
|
|
106
|
+
types: {
|
|
107
|
+
...PERMIT2_TRANSFER_FROM_TYPES
|
|
108
|
+
// EIP712Domain: [
|
|
109
|
+
// { name: "name", type: "string" },
|
|
110
|
+
// { name: "chainId", type: "uint256" },
|
|
111
|
+
// { name: "verifyingContract", type: "address" },
|
|
112
|
+
// ],
|
|
113
|
+
},
|
|
114
|
+
primaryType: "PermitTransferFrom",
|
|
115
|
+
domain: {
|
|
116
|
+
name: PERMIT2_DOMAIN_NAME,
|
|
117
|
+
chainId,
|
|
118
|
+
verifyingContract: PERMIT2_ADDRESS
|
|
119
|
+
// Uniswap Permit2
|
|
120
|
+
},
|
|
121
|
+
message: {
|
|
122
|
+
permitted: {
|
|
123
|
+
token,
|
|
124
|
+
amount
|
|
125
|
+
},
|
|
126
|
+
spender,
|
|
127
|
+
nonce,
|
|
128
|
+
deadline: expiration
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (input.type === "permit1") {
|
|
134
|
+
const {
|
|
135
|
+
owner,
|
|
136
|
+
spender,
|
|
137
|
+
value,
|
|
138
|
+
nonce,
|
|
139
|
+
deadline,
|
|
140
|
+
permitInfo
|
|
141
|
+
} = input;
|
|
142
|
+
return {
|
|
143
|
+
types: {
|
|
144
|
+
// EIP712Domain: [
|
|
145
|
+
// { name: "name", type: "string" },
|
|
146
|
+
// { name: "version", type: "string" },
|
|
147
|
+
// { name: "chainId", type: "uint256" },
|
|
148
|
+
// { name: "verifyingContract", type: "address" },
|
|
149
|
+
// ],
|
|
150
|
+
Permit: [{
|
|
151
|
+
name: "owner",
|
|
152
|
+
type: "address"
|
|
153
|
+
}, {
|
|
154
|
+
name: "spender",
|
|
155
|
+
type: "address"
|
|
156
|
+
}, {
|
|
157
|
+
name: "value",
|
|
158
|
+
type: "uint256"
|
|
159
|
+
}, {
|
|
160
|
+
name: "nonce",
|
|
161
|
+
type: "uint256"
|
|
162
|
+
}, {
|
|
163
|
+
name: "deadline",
|
|
164
|
+
type: "uint256"
|
|
165
|
+
}]
|
|
166
|
+
},
|
|
167
|
+
primaryType: "Permit",
|
|
168
|
+
domain: permitInfo.domain,
|
|
169
|
+
message: {
|
|
170
|
+
owner,
|
|
171
|
+
spender,
|
|
172
|
+
value,
|
|
173
|
+
nonce,
|
|
174
|
+
deadline
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
if (input.type === "dai") {
|
|
179
|
+
const {
|
|
180
|
+
holder,
|
|
181
|
+
spender,
|
|
182
|
+
nonce,
|
|
183
|
+
expiry,
|
|
184
|
+
allowed,
|
|
185
|
+
permitInfo
|
|
186
|
+
} = input;
|
|
187
|
+
return {
|
|
188
|
+
types: {
|
|
189
|
+
// EIP712Domain: [
|
|
190
|
+
// { name: "name", type: "string" },
|
|
191
|
+
// { name: "version", type: "string" },
|
|
192
|
+
// { name: "chainId", type: "uint256" },
|
|
193
|
+
// { name: "verifyingContract", type: "address" },
|
|
194
|
+
// ],
|
|
195
|
+
Permit: [{
|
|
196
|
+
name: "holder",
|
|
197
|
+
type: "address"
|
|
198
|
+
}, {
|
|
199
|
+
name: "spender",
|
|
200
|
+
type: "address"
|
|
201
|
+
}, {
|
|
202
|
+
name: "nonce",
|
|
203
|
+
type: "uint256"
|
|
204
|
+
}, {
|
|
205
|
+
name: "expiry",
|
|
206
|
+
type: "uint256"
|
|
207
|
+
}, {
|
|
208
|
+
name: "allowed",
|
|
209
|
+
type: "bool"
|
|
210
|
+
}]
|
|
211
|
+
},
|
|
212
|
+
primaryType: "Permit",
|
|
213
|
+
domain: permitInfo.domain,
|
|
214
|
+
message: {
|
|
215
|
+
holder,
|
|
216
|
+
spender,
|
|
217
|
+
nonce,
|
|
218
|
+
expiry,
|
|
219
|
+
allowed
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
throw new Error(`Unsupported permit input type`);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export { constructPermitTypedData };
|
|
227
|
+
//# sourceMappingURL=construct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"construct.js","sources":["../../../../src/hooks/permit/utils/construct.ts"],"sourcesContent":["import { type PermitSupportDAI, type PermitSupportEIP2612 } from \"./detect\";\nimport { type Address, type Hex } from \"viem\";\n\nconst PERMIT2_ADDRESS = \"0x000000000022D473030F116dDEE9F6B43aC78BA3\" as const;\nconst PERMIT2_DOMAIN_NAME = \"Permit2\" as const;\n\nconst PERMIT2_TOKEN_PERMISSIONS = [\n { name: \"token\", type: \"address\" },\n { name: \"amount\", type: \"uint256\" },\n] as const;\n\nconst PERMIT2_TRANSFER_FROM_TYPES = {\n PermitTransferFrom: [\n { name: \"permitted\", type: \"TokenPermissions\" },\n { name: \"spender\", type: \"address\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n ],\n TokenPermissions: PERMIT2_TOKEN_PERMISSIONS,\n} as const;\n\nconst PERMIT2_PERMIT_DETAILS = [\n { name: \"token\", type: \"address\" },\n { name: \"amount\", type: \"uint160\" },\n { name: \"expiration\", type: \"uint48\" },\n { name: \"nonce\", type: \"uint48\" },\n] as const;\n\nconst PERMIT2_PERMIT_SINGLE_TYPES = {\n PermitSingle: [\n { name: \"details\", type: \"PermitDetails\" },\n { name: \"spender\", type: \"address\" },\n { name: \"sigDeadline\", type: \"uint256\" },\n ],\n PermitDetails: PERMIT2_PERMIT_DETAILS,\n} as const;\n\nexport interface Permit1PermitInput {\n type: \"permit1\";\n permitInfo: PermitSupportEIP2612;\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n}\n\nexport interface DaiPermitInput {\n type: \"dai\";\n permitInfo: PermitSupportDAI;\n holder: Address;\n spender: Address;\n nonce: bigint;\n expiry: bigint;\n allowed: boolean;\n}\n\nexport interface Permit2Input {\n type: \"permit2\";\n variant: \"single\" | \"transferFrom\";\n permitInfo?: undefined;\n token: Address;\n spender: Address;\n nonce: bigint;\n amount: bigint;\n expiration: bigint;\n chainId: number;\n}\n\nexport type PermitTypedDataInput =\n | Permit1PermitInput\n | DaiPermitInput\n | Permit2Input;\n\n// EIP-712 Type Definitions\ninterface EIP712Type {\n name: string;\n type: string;\n}\n\ninterface EIP712Domain {\n name: string;\n version?: string;\n chainId?: number;\n verifyingContract: Address;\n salt?: Hex;\n}\n\n// Return type for Permit2\ninterface Permit2TypedDataSingle {\n types: typeof PERMIT2_PERMIT_SINGLE_TYPES & {\n // EIP712Domain: EIP712Type[];\n };\n primaryType: \"PermitSingle\";\n domain: {\n name: typeof PERMIT2_DOMAIN_NAME;\n chainId?: number;\n verifyingContract: typeof PERMIT2_ADDRESS;\n };\n message: {\n details: {\n token: Address;\n amount: bigint;\n nonce: bigint;\n expiration: bigint;\n };\n spender: Address;\n sigDeadline: bigint;\n };\n}\ninterface Permit2TypedDataTransferFrom {\n types: typeof PERMIT2_TRANSFER_FROM_TYPES & {\n // EIP712Domain: EIP712Type[];\n };\n primaryType: \"PermitTransferFrom\";\n domain: {\n name: typeof PERMIT2_DOMAIN_NAME;\n chainId?: number;\n verifyingContract: typeof PERMIT2_ADDRESS;\n };\n message: {\n permitted: {\n token: Address;\n amount: bigint;\n };\n spender: Address;\n nonce: bigint;\n deadline: bigint;\n };\n}\n\n// Return type for Permit1 Permit\ninterface Permit1PermitTypedData {\n types: {\n // EIP712Domain: EIP712Type[];\n Permit: EIP712Type[];\n };\n primaryType: \"Permit\";\n domain: EIP712Domain;\n message: {\n owner: Address;\n spender: Address;\n value: bigint;\n nonce: bigint;\n deadline: bigint;\n };\n}\n\n// Return type for DAI Permit\ninterface DaiPermitTypedData {\n types: {\n // EIP712Domain: EIP712Type[];\n Permit: EIP712Type[];\n };\n primaryType: \"Permit\";\n domain: EIP712Domain;\n message: {\n holder: Address;\n spender: Address;\n nonce: bigint;\n expiry: bigint;\n allowed: boolean;\n };\n}\n\n// Union type for all possible return types\nexport type PermitTypedDataReturn =\n | Permit2TypedDataSingle\n | Permit2TypedDataTransferFrom\n | Permit1PermitTypedData\n | DaiPermitTypedData;\n\nexport function constructPermitTypedData(\n input: PermitTypedDataInput\n): PermitTypedDataReturn {\n if (input.type === \"permit2\") {\n const { token, spender, nonce, amount, expiration, variant, chainId } =\n input;\n\n if (variant === \"single\") {\n return {\n types: {\n ...PERMIT2_PERMIT_SINGLE_TYPES,\n // EIP712Domain: [\n // { name: \"name\", type: \"string\" },\n // { name: \"chainId\", type: \"uint256\" },\n // { name: \"verifyingContract\", type: \"address\" },\n // ],\n },\n primaryType: \"PermitSingle\",\n domain: {\n name: PERMIT2_DOMAIN_NAME,\n chainId,\n verifyingContract: PERMIT2_ADDRESS, // Uniswap Permit2\n },\n message: {\n details: { token, amount, nonce, expiration },\n spender,\n sigDeadline: expiration,\n },\n };\n }\n\n if (variant === \"transferFrom\") {\n return {\n types: {\n ...PERMIT2_TRANSFER_FROM_TYPES,\n // EIP712Domain: [\n // { name: \"name\", type: \"string\" },\n // { name: \"chainId\", type: \"uint256\" },\n // { name: \"verifyingContract\", type: \"address\" },\n // ],\n },\n primaryType: \"PermitTransferFrom\",\n domain: {\n name: PERMIT2_DOMAIN_NAME,\n chainId,\n verifyingContract: PERMIT2_ADDRESS, // Uniswap Permit2\n },\n message: {\n permitted: {\n token,\n amount,\n },\n spender,\n nonce,\n deadline: expiration,\n },\n };\n }\n }\n\n if (input.type === \"permit1\") {\n const { owner, spender, value, nonce, deadline, permitInfo } = input;\n return {\n types: {\n // EIP712Domain: [\n // { name: \"name\", type: \"string\" },\n // { name: \"version\", type: \"string\" },\n // { name: \"chainId\", type: \"uint256\" },\n // { name: \"verifyingContract\", type: \"address\" },\n // ],\n Permit: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n ],\n },\n primaryType: \"Permit\",\n domain: permitInfo.domain,\n message: { owner, spender, value, nonce, deadline },\n };\n }\n\n if (input.type === \"dai\") {\n const { holder, spender, nonce, expiry, allowed, permitInfo } = input;\n\n return {\n types: {\n // EIP712Domain: [\n // { name: \"name\", type: \"string\" },\n // { name: \"version\", type: \"string\" },\n // { name: \"chainId\", type: \"uint256\" },\n // { name: \"verifyingContract\", type: \"address\" },\n // ],\n Permit: [\n { name: \"holder\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"expiry\", type: \"uint256\" },\n { name: \"allowed\", type: \"bool\" },\n ],\n },\n primaryType: \"Permit\",\n domain: permitInfo.domain,\n message: { holder, spender, nonce, expiry, allowed },\n };\n }\n\n throw new Error(`Unsupported permit input type`);\n}\n\n// Example usage:\n// constructPermitTypedData({ type: 'permit1', variant: 'transfer', permitInfo, to, value, nonce, deadline });\n"],"names":["PERMIT2_ADDRESS","PERMIT2_DOMAIN_NAME","PERMIT2_TOKEN_PERMISSIONS","name","type","PERMIT2_TRANSFER_FROM_TYPES","PermitTransferFrom","TokenPermissions","PERMIT2_PERMIT_DETAILS","PERMIT2_PERMIT_SINGLE_TYPES","PermitSingle","PermitDetails","constructPermitTypedData","input","token","spender","nonce","amount","expiration","variant","chainId","types","primaryType","domain","verifyingContract","message","details","sigDeadline","permitted","deadline","owner","value","permitInfo","Permit","holder","expiry","allowed","Error"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Address, Hex } from 'viem';
|
|
2
|
+
import { Config } from '@wagmi/core';
|
|
3
|
+
export type PermitType = "eip2612" | "dai";
|
|
4
|
+
export type PermitSupportDAI = PermitSupportResultBase & {
|
|
5
|
+
type: "dai";
|
|
6
|
+
};
|
|
7
|
+
export type PermitSupportEIP2612 = PermitSupportResultBase & {
|
|
8
|
+
type: "eip2612";
|
|
9
|
+
};
|
|
10
|
+
type PermitSupportResultBase = {
|
|
11
|
+
type: PermitType;
|
|
12
|
+
domain: {
|
|
13
|
+
name: string;
|
|
14
|
+
version?: string;
|
|
15
|
+
chainId?: number;
|
|
16
|
+
verifyingContract: Address;
|
|
17
|
+
salt?: Hex;
|
|
18
|
+
};
|
|
19
|
+
domainSeparator?: string;
|
|
20
|
+
};
|
|
21
|
+
export type PermitSupportResult = PermitSupportDAI | PermitSupportEIP2612;
|
|
22
|
+
export type NotDetectedPermitSupport = {
|
|
23
|
+
type: "NOT_DETECTED";
|
|
24
|
+
domain: null;
|
|
25
|
+
};
|
|
26
|
+
export declare const EIP_2612_PERMIT_SELECTOR = "0xd505accf";
|
|
27
|
+
export declare const DAI_PERMIT_SELECTOR = "0x8fcbaf0c";
|
|
28
|
+
export type DetectPermitSupportParams = {
|
|
29
|
+
config: Config;
|
|
30
|
+
tokenAddress: Address;
|
|
31
|
+
chainId: number;
|
|
32
|
+
};
|
|
33
|
+
export declare function detectPermitSupportType({ config, tokenAddress, chainId, }: DetectPermitSupportParams): Promise<PermitSupportResult | NotDetectedPermitSupport>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../../src/hooks/permit/utils/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAA8B,MAAM,aAAa,CAAC;AAiBtE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AACzE,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG;IAC3D,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAuCF,eAAO,MAAM,wBAAwB,eAAe,CAAC;AACrD,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,EAC5C,MAAM,EACN,YAAY,EACZ,OAAO,GACR,EAAE,yBAAyB,GAAG,OAAO,CACpC,mBAAmB,GAAG,wBAAwB,CAC/C,CA6RA"}
|