@velora-dex/widget 0.3.9 → 0.3.10
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/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +5 -0
- package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
- package/dist/core/Updaters.d.ts.map +1 -1
- package/dist/core/Updaters.js +2 -0
- package/dist/core/Updaters.js.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
- package/dist/core/inputs/hooks/useTokenToInputProps.js +11 -7
- package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +73 -33
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +2 -1
- package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts +136 -3
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts.map +1 -1
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +53 -33
- package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +75 -77
- package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.d.ts +136 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.d.ts.map +1 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js +22 -0
- package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js.map +1 -0
- package/dist/hooks/swap/prices/usePricesParams.js +5 -0
- package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +3 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +271 -189
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.d.ts +3 -2
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js +36 -37
- package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +4 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +12 -12
- package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +7 -5
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +2 -1
- package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +7 -5
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/tokens/allowance/types.d.ts +10 -0
- package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts +1 -14
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts.map +1 -1
- package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
- package/dist/hooks/tokens/allowance/utils.d.ts +11 -0
- package/dist/hooks/tokens/allowance/utils.d.ts.map +1 -0
- package/dist/hooks/tokens/allowance/utils.js +19 -0
- package/dist/hooks/tokens/allowance/utils.js.map +1 -0
- package/dist/hooks/tokens/balances/queries.d.ts +1 -1
- package/dist/hooks/tokens/balances/queries.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/queries.js +4 -3
- package/dist/hooks/tokens/balances/queries.js.map +1 -1
- package/dist/hooks/tokens/balances/types.d.ts +1 -0
- package/dist/hooks/tokens/balances/types.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts +2 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +30 -26
- package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.d.ts +2 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.d.ts.map +1 -1
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +34 -26
- package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +2 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithFilter.js +62 -57
- package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js +6 -1
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/transports.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/transports.js +1 -1
- package/dist/lib/web3/wagmi/transports.js.map +1 -1
- package/dist/tokens/lists/state/effects.d.ts +1 -0
- package/dist/tokens/lists/state/effects.d.ts.map +1 -1
- package/dist/tokens/lists/state/effects.js +12 -2
- package/dist/tokens/lists/state/effects.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapSideAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideAtom.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"swapSideAtom.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideAtom.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,eAAO,MAAM,YAAY,qCAuBvB,CAAC;AAEH,eAAO,MAAM,WAAW,qBAEvB,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { currentSwapInputAtom } from '../../../../core/state/currentSwapInputAto
|
|
|
3
3
|
import { tradeModeAtom } from '../../../../core/state/tradeModeAtom.js';
|
|
4
4
|
import { atom } from 'jotai';
|
|
5
5
|
import { useAtomValue } from '../../../../core/store.js';
|
|
6
|
+
import { isCrossChainAtom } from '../../../../core/state/isCrosschainAtom.js';
|
|
6
7
|
|
|
7
8
|
const swapSideAtom = atom((get) => {
|
|
8
9
|
const tradeMode = get(tradeModeAtom);
|
|
@@ -13,6 +14,10 @@ const swapSideAtom = atom((get) => {
|
|
|
13
14
|
if (!tokenTo) {
|
|
14
15
|
return "SELL";
|
|
15
16
|
}
|
|
17
|
+
const isCrosschain = get(isCrossChainAtom);
|
|
18
|
+
if (isCrosschain) {
|
|
19
|
+
return "SELL";
|
|
20
|
+
}
|
|
16
21
|
const currentSwapInput = get(currentSwapInputAtom);
|
|
17
22
|
return currentSwapInput === "from" ? "SELL" : "BUY";
|
|
18
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapSideAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideAtom.ts"],"sourcesContent":["import { swapTokenToAtom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\n\nexport const swapSideAtom = atom<SwapSideUnion>((get) => {\n const tradeMode = get(tradeModeAtom);\n\n if (tradeMode !== \"swap\") {\n return \"SELL\";\n }\n\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) {\n return \"SELL\";\n }\n\n const currentSwapInput = get(currentSwapInputAtom);\n\n return currentSwapInput === \"from\" ? \"SELL\" : \"BUY\";\n});\n\nexport const useSwapSide = () => {\n return useAtomValue(swapSideAtom);\n};\n"],"names":["swapSideAtom","atom","get","tradeMode","tradeModeAtom","tokenTo","swapTokenToAtom","currentSwapInput","currentSwapInputAtom","useSwapSide","useAtomValue"],"mappings":"
|
|
1
|
+
{"version":3,"file":"swapSideAtom.js","sources":["../../../../../src/components/widget/SwapModeSwitcher/state/swapSideAtom.ts"],"sourcesContent":["import { swapTokenToAtom } from \"@/core/inputs/state/selectedTokenAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { tradeModeAtom } from \"@/core/state/tradeModeAtom\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\nimport { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport { isCrossChainAtom } from \"@/core/state/isCrosschainAtom\";\n\nexport const swapSideAtom = atom<SwapSideUnion>((get) => {\n const tradeMode = get(tradeModeAtom);\n\n if (tradeMode !== \"swap\") {\n return \"SELL\";\n }\n\n const tokenTo = get(swapTokenToAtom);\n\n if (!tokenTo) {\n return \"SELL\";\n }\n\n const isCrosschain = get(isCrossChainAtom);\n\n if (isCrosschain) {\n // @TODO remove condition when Crosschain BUY is re-enabled\n return \"SELL\";\n }\n\n const currentSwapInput = get(currentSwapInputAtom);\n\n return currentSwapInput === \"from\" ? \"SELL\" : \"BUY\";\n});\n\nexport const useSwapSide = () => {\n return useAtomValue(swapSideAtom);\n};\n"],"names":["swapSideAtom","atom","get","tradeMode","tradeModeAtom","tokenTo","swapTokenToAtom","isCrosschain","isCrossChainAtom","currentSwapInput","currentSwapInputAtom","useSwapSide","useAtomValue"],"mappings":";;;;;;;AAQO,MAAMA,YAAAA,GAAeC,KAAqBC,CAAAA,GAAAA,KAAQ;AACvD,EAAA,MAAMC,SAAAA,GAAYD,IAAIE,aAAa,CAAA;AAEnC,EAAA,IAAID,cAAc,MAAA,EAAQ;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAME,OAAAA,GAAUH,IAAII,eAAe,CAAA;AAEnC,EAAA,IAAI,CAACD,OAAAA,EAAS;AACZ,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAME,YAAAA,GAAeL,IAAIM,gBAAgB,CAAA;AAEzC,EAAA,IAAID,YAAAA,EAAc;AAEhB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAME,gBAAAA,GAAmBP,IAAIQ,oBAAoB,CAAA;AAEjD,EAAA,OAAOD,gBAAAA,KAAqB,SAAS,MAAA,GAAS,KAAA;AAChD,CAAC;AAEM,MAAME,cAAcA,MAAA;AAAA,EAAA,OAClBC,aAAaZ,YAAY,CAAA;AAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Updaters.d.ts","sourceRoot":"","sources":["../../src/core/Updaters.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Updaters.d.ts","sourceRoot":"","sources":["../../src/core/Updaters.tsx"],"names":[],"mappings":"AAoBA,eAAO,MAAM,QAAQ,YAqDpB,CAAC"}
|
package/dist/core/Updaters.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { d as distExports } from '../_virtual/index.js';
|
|
2
2
|
import { useTokenFromPermit1Nonce } from '../hooks/permit/hooks/permit1/useTokenFromPermit1Nonce.js';
|
|
3
3
|
import { useTokenFromPermit2TransferFromNonce } from '../hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce.js';
|
|
4
|
+
import { useTokenFromPermit2AllowanceQuery } from '../hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js';
|
|
4
5
|
import { useTokenFromPermitInfo } from '../hooks/permit/hooks/permit1/useTokenFromPermitInfo.js';
|
|
5
6
|
import { useGetContracts } from '../hooks/sdk/useGetContracts.js';
|
|
6
7
|
import { useGetBridgeInfo } from '../hooks/useBridgeInfo.js';
|
|
@@ -47,6 +48,7 @@ const Updaters = () => {
|
|
|
47
48
|
useBridgeProtocolsQuery();
|
|
48
49
|
useTokenFromPermitInfo();
|
|
49
50
|
useTokenFromPermit1Nonce();
|
|
51
|
+
useTokenFromPermit2AllowanceQuery();
|
|
50
52
|
useTokenFromPermit2TransferFromNonce();
|
|
51
53
|
useSafeInfo();
|
|
52
54
|
useCanBatchTxs();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Updaters.js","sources":["../../src/core/Updaters.tsx"],"sourcesContent":["import { useTokenFromPermit1Nonce } from \"@/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce\";\nimport { useTokenFromPermit2TransferFromNonce } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce\";\nimport { useTokenFromPermitInfo } from \"@/hooks/permit/hooks/permit1/useTokenFromPermitInfo\";\nimport { useGetContracts } from \"@/hooks/sdk/useGetContracts\";\nimport { useGetBridgeInfo } from \"@/hooks/useBridgeInfo\";\nimport { useFetchTokenLists } from \"@/tokens/queries\";\nimport { usePrefetchTokenBalances } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport { useSafeInfo } from \"@/lib/web3/wagmi/isInsideSafeIframe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useOnWalletConnected } from \"@/events/hooks/useOnWalletConnect\";\nimport { useActivateEffects as useActivateEventEffects } from \"@/events/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTransactionEffects } from \"@/transactions/state/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTokenListEffects } from \"@/tokens/lists/state/effects\";\nimport { useActivateFormInputEffects } from \"./inputs/state/setTokenByAddressAtom\";\nimport { useActivateConfigEffect } from \"./state/configEffectAtom\";\nimport { useOnPriceUpdates } from \"@/events/hooks/useOnPriceUpdates\";\nimport { useBridgeProtocolsQuery } from \"@/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols\";\nimport { useCacheMinViemClient } from \"@/hooks/useMinViemClient\";\n\nexport const Updaters = () => {\n // fetch tokens from currently enabled lists\n useFetchTokenLists();\n // activate effects for token lists\n useActivateTokenListEffects();\n\n // all balances that would be fetched in TokenSelector for current chain\n usePrefetchTokenBalances();\n useGetBridgeInfo({ mode: \"swap\" }); // @TODO: prefetch instead\n useGetBridgeInfo({ mode: \"limit\" });\n useGetContracts(); // @TODO: prefetch instead\n useBridgeProtocolsQuery();\n\n // for each selected tokenFrom detect its supported Permit1\n useTokenFromPermitInfo();\n // for each selected tokenFrom keep track of Token.nonce if available on Token\n useTokenFromPermit1Nonce();\n // global Permit2 TransferFrom nonce, not token-specific but for chain=Token.network\n useTokenFromPermit2TransferFromNonce();\n\n // check ahead of opening ConnectWallets drawer to prevent Safe button appearing\n // if we are not in a non-Safe iframe\n useSafeInfo();\n\n // check if wallet can batch txs\n useCanBatchTxs();\n\n // events when wallet is connected\n useOnWalletConnected();\n\n // events when price state updates\n useOnPriceUpdates();\n\n // activate effects for state atoms\n useActivateEventEffects();\n\n // activate effects for transaction atoms\n useActivateTransactionEffects();\n\n // activate effects for form input atoms\n useActivateFormInputEffects();\n\n // activate widget config effects\n useActivateConfigEffect();\n\n // keep one subscriber to useConnectorClient query at all times\n // to avoid async client creation on useMinViemClient mount\n // and first minClient being undefined for a short time\n useCacheMinViemClient();\n\n return null;\n};\n"],"names":["Updaters","$","_c","useFetchTokenLists","useActivateTokenListEffects","usePrefetchTokenBalances","t0","Symbol","for","mode","useGetBridgeInfo","t1","useGetContracts","useBridgeProtocolsQuery","useTokenFromPermitInfo","useTokenFromPermit1Nonce","useTokenFromPermit2TransferFromNonce","useSafeInfo","useCanBatchTxs","useOnWalletConnected","useOnPriceUpdates","useActivateEventEffects","useActivateTransactionEffects","useActivateFormInputEffects","useActivateConfigEffect","useCacheMinViemClient"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Updaters.js","sources":["../../src/core/Updaters.tsx"],"sourcesContent":["import { useTokenFromPermit1Nonce } from \"@/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce\";\nimport { useTokenFromPermit2TransferFromNonce } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce\";\nimport { useTokenFromPermit2AllowanceQuery } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance\";\nimport { useTokenFromPermitInfo } from \"@/hooks/permit/hooks/permit1/useTokenFromPermitInfo\";\nimport { useGetContracts } from \"@/hooks/sdk/useGetContracts\";\nimport { useGetBridgeInfo } from \"@/hooks/useBridgeInfo\";\nimport { useFetchTokenLists } from \"@/tokens/queries\";\nimport { usePrefetchTokenBalances } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport { useSafeInfo } from \"@/lib/web3/wagmi/isInsideSafeIframe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useOnWalletConnected } from \"@/events/hooks/useOnWalletConnect\";\nimport { useActivateEffects as useActivateEventEffects } from \"@/events/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTransactionEffects } from \"@/transactions/state/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTokenListEffects } from \"@/tokens/lists/state/effects\";\nimport { useActivateFormInputEffects } from \"./inputs/state/setTokenByAddressAtom\";\nimport { useActivateConfigEffect } from \"./state/configEffectAtom\";\nimport { useOnPriceUpdates } from \"@/events/hooks/useOnPriceUpdates\";\nimport { useBridgeProtocolsQuery } from \"@/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols\";\nimport { useCacheMinViemClient } from \"@/hooks/useMinViemClient\";\n\nexport const Updaters = () => {\n // fetch tokens from currently enabled lists\n useFetchTokenLists();\n // activate effects for token lists\n useActivateTokenListEffects();\n\n // all balances that would be fetched in TokenSelector for current chain\n usePrefetchTokenBalances();\n useGetBridgeInfo({ mode: \"swap\" }); // @TODO: prefetch instead\n useGetBridgeInfo({ mode: \"limit\" });\n useGetContracts(); // @TODO: prefetch instead\n useBridgeProtocolsQuery();\n\n // for each selected tokenFrom detect its supported Permit1\n useTokenFromPermitInfo();\n // for each selected tokenFrom keep track of Token.nonce if available on Token\n useTokenFromPermit1Nonce();\n // for each selected tokenFrom keep track of given allowance to Permit2 contract\n useTokenFromPermit2AllowanceQuery();\n // global Permit2 TransferFrom nonce, not token-specific but for chain=Token.network\n useTokenFromPermit2TransferFromNonce();\n\n // check ahead of opening ConnectWallets drawer to prevent Safe button appearing\n // if we are not in a non-Safe iframe\n useSafeInfo();\n\n // check if wallet can batch txs\n useCanBatchTxs();\n\n // events when wallet is connected\n useOnWalletConnected();\n\n // events when price state updates\n useOnPriceUpdates();\n\n // activate effects for state atoms\n useActivateEventEffects();\n\n // activate effects for transaction atoms\n useActivateTransactionEffects();\n\n // activate effects for form input atoms\n useActivateFormInputEffects();\n\n // activate widget config effects\n useActivateConfigEffect();\n\n // keep one subscriber to useConnectorClient query at all times\n // to avoid async client creation on useMinViemClient mount\n // and first minClient being undefined for a short time\n useCacheMinViemClient();\n\n return null;\n};\n"],"names":["Updaters","$","_c","useFetchTokenLists","useActivateTokenListEffects","usePrefetchTokenBalances","t0","Symbol","for","mode","useGetBridgeInfo","t1","useGetContracts","useBridgeProtocolsQuery","useTokenFromPermitInfo","useTokenFromPermit1Nonce","useTokenFromPermit2AllowanceQuery","useTokenFromPermit2TransferFromNonce","useSafeInfo","useCanBatchTxs","useOnWalletConnected","useOnPriceUpdates","useActivateEventEffects","useActivateTransactionEffects","useActivateFormInputEffects","useActivateConfigEffect","useCacheMinViemClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoBO,MAAMA,WAAWA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAEtBC,EAAAA,kBAAAA,EAAmB;AAEnBC,EAAAA,kBAAAA,EAA4B;AAG5BC,EAAAA,wBAAAA,EAAyB;AAAC,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAL,EAAA,CAAA,CAAA,KAAAM,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACTF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,IAAAA,EAAQ;AAAA,KAAO;AAACR,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAjCS,EAAAA,gBAAAA,CAAiBJ,EAAgB,CAAA;AAAC,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAV,EAAA,CAAA,CAAA,KAAAM,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACjBG,IAAAA,EAAAA,GAAA;AAAA,MAAAF,IAAAA,EAAQ;AAAA,KAAQ;AAACR,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA,EAAA;AAAlCS,EAAAA,gBAAAA,CAAiBC,EAAiB,CAAA;AAClCC,EAAAA,eAAAA,EAAgB;AAChBC,EAAAA,uBAAAA,EAAwB;AAGxBC,EAAAA,sBAAAA,EAAuB;AAEvBC,EAAAA,wBAAAA,EAAyB;AAEzBC,EAAAA,iCAAAA,EAAkC;AAElCC,EAAAA,oCAAAA,EAAqC;AAIrCC,EAAAA,WAAAA,EAAY;AAGZC,EAAAA,cAAAA,EAAe;AAGfC,EAAAA,oBAAAA,EAAqB;AAGrBC,EAAAA,iBAAAA,EAAkB;AAGlBC,EAAAA,oBAAAA,EAAwB;AAGxBC,EAAAA,oBAAAA,EAA8B;AAG9BC,EAAAA,2BAAAA,EAA4B;AAG5BC,EAAAA,uBAAAA,EAAwB;AAKxBC,EAAAA,qBAAAA,EAAsB;AAAC,EAAA,OAEhB,IAAA;AAAI;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenToInputProps.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/hooks/useTokenToInputProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAe5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAwBpE,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"useTokenToInputProps.d.ts","sourceRoot":"","sources":["../../../../src/core/inputs/hooks/useTokenToInputProps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAe5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAwBpE,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AA4LF,eAAO,MAAM,oBAAoB,GAAI,6DAMlC,oBAAoB,KAAG,eAgCzB,CAAC"}
|
|
@@ -25,11 +25,13 @@ import Big from 'big.js';
|
|
|
25
25
|
import { constructYouGetProps } from './utils.js';
|
|
26
26
|
|
|
27
27
|
const useTokenToAmountProps = () => {
|
|
28
|
-
const $ = distExports.c(
|
|
28
|
+
const $ = distExports.c(9);
|
|
29
29
|
const logger = useLogger("Swap::TokenTo::AmountProps");
|
|
30
30
|
const tokenTo = useSwapTokenTo();
|
|
31
31
|
const [amountValue, setAmountValue] = useAtom(receiveInputAmountAtom);
|
|
32
32
|
const tokenBalanceUnit = useTokenToBalanceUnit();
|
|
33
|
+
const isCrosschain = useIsCrossChain();
|
|
34
|
+
const readOnly = isCrosschain;
|
|
33
35
|
let t0;
|
|
34
36
|
if ($[0] !== logger || $[1] !== setAmountValue) {
|
|
35
37
|
t0 = (values) => {
|
|
@@ -43,20 +45,22 @@ const useTokenToAmountProps = () => {
|
|
|
43
45
|
t0 = $[2];
|
|
44
46
|
}
|
|
45
47
|
let t1;
|
|
46
|
-
if ($[3] !== amountValue || $[4] !==
|
|
48
|
+
if ($[3] !== amountValue || $[4] !== readOnly || $[5] !== t0 || $[6] !== tokenBalanceUnit || $[7] !== tokenTo) {
|
|
47
49
|
t1 = {
|
|
48
50
|
amount: amountValue,
|
|
49
51
|
tokenBalanceUnit,
|
|
50
52
|
token: tokenTo,
|
|
53
|
+
readOnly,
|
|
51
54
|
onAmountChange: t0
|
|
52
55
|
};
|
|
53
56
|
$[3] = amountValue;
|
|
54
|
-
$[4] =
|
|
55
|
-
$[5] =
|
|
56
|
-
$[6] =
|
|
57
|
-
$[7] =
|
|
57
|
+
$[4] = readOnly;
|
|
58
|
+
$[5] = t0;
|
|
59
|
+
$[6] = tokenBalanceUnit;
|
|
60
|
+
$[7] = tokenTo;
|
|
61
|
+
$[8] = t1;
|
|
58
62
|
} else {
|
|
59
|
-
t1 = $[
|
|
63
|
+
t1 = $[8];
|
|
60
64
|
}
|
|
61
65
|
return t1;
|
|
62
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTokenToInputProps.js","sources":["../../../../src/core/inputs/hooks/useTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\n\nimport { useSwapTokenFrom, useSwapTokenTo } from \"../state/selectedTokenAtom\";\n\nimport { swapChainToAtom } from \"@/core/state/chainToAtom\";\nimport { useAtom, useAtomValue, useSetAtom } from \"@/core/store\";\n\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport { useChainId } from \"wagmi\";\nimport { receiveInputAmountAtom } from \"../state/inputAmountAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { formatUnits } from \"viem\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport {\n replaceUnsupportedTokenMessage,\n isUnsupportedTokenError,\n parseDeltaApiError,\n customUnsupportedTokenMessage,\n} from \"@/lib/utils/delta\";\nimport { useIsCrosschainPossible } from \"@/hooks/useIsCrosschainPossible\";\nimport type { TokenInputAmountProps, TokenInputExtraProps } from \"./types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { useLogger } from \"@/core/logger\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { selectSwapTokenToAtom } from \"../state/selectedTokenActionsAtom\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo\";\nimport { FetchingQuotes } from \"@/components/widget/FetchingQuotes/FetchingQuotes\";\nimport { useTokenPrice } from \"@/hooks/tokens/prices/useTokenPrices\";\nimport Big from \"big.js\";\nimport type { YouGetProps } from \"@/components/widget/YouGet/types\";\nimport { constructYouGetProps } from \"./utils\";\n\ntype UseTokenToInputInput = {\n override?: {\n amountWei?: string;\n };\n price?: DeltaOrMarketPrice;\n priceMode: \"market\" | \"delta\";\n priceError: Error | null;\n isPriceLoading?: boolean;\n};\n\nconst useTokenToAmountProps = (): TokenInputAmountProps => {\n const logger = useLogger(\"Swap::TokenTo::AmountProps\");\n const tokenTo = useSwapTokenTo();\n\n const [amountValue, setAmountValue] = useAtom(receiveInputAmountAtom);\n\n const tokenBalanceUnit = useTokenToBalanceUnit();\n\n return {\n amount: amountValue,\n tokenBalanceUnit,\n token: tokenTo,\n onAmountChange: (values) => {\n logger.log(\"onAmountChange::values\", values);\n setAmountValue(values.value);\n },\n };\n};\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useSwapTokenTo();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenTo,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useTokenToUsdEstimation = ({\n price,\n amount,\n}: Pick<UseTokenToInputInput, \"price\"> & {\n amount: string;\n}) => {\n const tokenTo = useSwapTokenTo();\n const { data: tokenPriceObj } = useTokenPrice(tokenTo);\n\n let usdEstimation;\n if (price && isDeltaPrice(price)) {\n // receivedDestUSDBeforeFee is available for SELL side\n usdEstimation = price.receivedDestUSDBeforeFee || price.receivedDestUSD;\n } else if (price?.destUSD) {\n usdEstimation = price.destUSD;\n } else if (tokenPriceObj && amount !== \"\") {\n usdEstimation = Big(tokenPriceObj.price).mul(amount).toFixed();\n }\n return usdEstimation;\n};\n\nconst useYouGetProps = ({\n priceMode,\n price,\n token,\n}: {\n priceMode: \"market\" | \"delta\";\n price?: DeltaOrMarketPrice;\n token?: Token;\n}): YouGetProps | undefined => {\n const side = useSwapSide();\n\n if (!price || !token) return;\n\n return constructYouGetProps({ side, price, priceMode, token });\n};\n\nconst useWarningMessage = ({\n priceError,\n priceMode,\n mode,\n}: {\n priceMode?: \"market\" | \"delta\";\n priceError?: Error | null;\n mode: BridgeInfoMode;\n}) => {\n const chainId = useChainId();\n const chainTo = useAtomValue(swapChainToAtom);\n const tokenFrom = useSwapTokenFrom();\n const tokenTo = useSwapTokenTo();\n\n const {\n isCrosschainPossible,\n isLoading: isLoadingCrosschainAvailability,\n hasTokens,\n tokenSupported,\n } = useIsCrosschainPossible({\n fromChainId: chainId,\n toChainId: chainTo,\n tokenAddress: tokenFrom.address,\n mode,\n });\n\n const isCrosschain = useIsCrossChain();\n\n const deltaPriceError = priceError && parseDeltaApiError(priceError);\n\n const deltaErrorToShow = deltaPriceError\n ? isUnsupportedTokenError(deltaPriceError)\n ? replaceUnsupportedTokenMessage(\n deltaPriceError.description,\n [tokenFrom, tokenTo].filter(isTruthy)\n )\n : deltaPriceError?.description\n : null;\n\n const crosschainDeltaWarning =\n !isLoadingCrosschainAvailability && !isCrosschainPossible && isCrosschain\n ? tokenSupported === false\n ? customUnsupportedTokenMessage(tokenFrom)\n : hasTokens === false\n ? \"Chain selection isn't supported for Crosschain Swap\"\n : undefined\n : undefined;\n\n const warningMessage =\n priceMode === \"delta\"\n ? deltaErrorToShow || crosschainDeltaWarning\n : undefined;\n\n return warningMessage;\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n acrossMode,\n}: {\n isPriceLoading?: boolean;\n acrossMode: BridgeInfoMode;\n}): TokenInputExtraProps => {\n const appChainId = useChainId();\n const [chainTo, setChainTo] = useAtom(swapChainToAtom);\n\n const { selectableChains } = useSelectableDestChains({\n fromChainId: appChainId,\n mode: acrossMode,\n });\n\n const showNetworkSwitcher = chainTo !== undefined;\n\n const networkSwitcherProps = showNetworkSwitcher\n ? {\n networks: selectableChains,\n selectedNetwork: chainTo,\n allOption: false,\n onSelect: (chainId: SupportedChainId | \"all\") =>\n chainId !== \"all\" && setChainTo(chainId),\n disabled: selectableChains.length <= 1,\n }\n : undefined;\n\n const setCurrentInput = useSetAtom(currentSwapInputAtom);\n\n const side = useSwapSide();\n const isSell = side === \"SELL\";\n\n // SELLing and price is loading = tokenTo input will receive destAmount\n const isLoading = isPriceLoading && isSell;\n\n const isCrosschain = useIsCrossChain();\n\n const showFetchingQuotes = isCrosschain && isPriceLoading;\n\n return {\n networkSwitcherProps,\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: (\n <>\n <span>Receive</span>{\" \"}\n {showNetworkSwitcher && <span className=\"text-contrast-5\">on</span>}\n </>\n ),\n isLoading,\n disabled: selectableChains.length === 0,\n bottomElement: showFetchingQuotes ? <FetchingQuotes /> : undefined,\n };\n};\n\nexport const useTokenToInputProps = ({\n override,\n isPriceLoading,\n priceMode,\n price,\n priceError,\n}: UseTokenToInputInput): TokenInputProps => {\n const tokenToAmounts = useTokenToAmountProps();\n const token = tokenToAmounts.token;\n const extraProps = useExtraProps({ isPriceLoading, acrossMode: \"swap\" });\n const youGetProps = useYouGetProps({ priceMode, price, token });\n const warningMessage = useWarningMessage({\n priceMode,\n priceError,\n mode: \"swap\",\n });\n\n const amount =\n override?.amountWei && token\n ? formatUnits(BigInt(override.amountWei), token.decimals)\n : tokenToAmounts.amount;\n\n const usdEstimation = useTokenToUsdEstimation({ price, amount });\n\n const setTokenTo = useSetAtom(selectSwapTokenToAtom);\n const onTokenSelect = (newTokenTo: Token) => {\n setTokenTo(newTokenTo);\n };\n\n return {\n ...tokenToAmounts,\n amount,\n usdEstimation,\n ...extraProps,\n youGetProps,\n warningMessage,\n onTokenSelect,\n };\n};\n"],"names":["useTokenToAmountProps","$","_c","logger","useLogger","tokenTo","useSwapTokenTo","amountValue","setAmountValue","useAtom","receiveInputAmountAtom","tokenBalanceUnit","useTokenToBalanceUnit","t0","values","log","value","t1","amount","token","onAmountChange","Symbol","for","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","queryOptions","balanceUnit","useTokenBalance","t2","toDecimalTrimmed","useTokenToUsdEstimation","price","data","tokenPriceObj","useTokenPrice","usdEstimation","isDeltaPrice","receivedDestUSDBeforeFee","receivedDestUSD","destUSD","Big","mul","toFixed","useYouGetProps","priceMode","side","useSwapSide","constructYouGetProps","useWarningMessage","priceError","mode","chainId","useChainId","chainTo","useAtomValue","swapChainToAtom","tokenFrom","useSwapTokenFrom","address","fromChainId","toChainId","tokenAddress","isCrosschainPossible","isLoading","isLoadingCrosschainAvailability","hasTokens","tokenSupported","useIsCrosschainPossible","isCrosschain","useIsCrossChain","deltaPriceError","parseDeltaApiError","isUnsupportedTokenError","replaceUnsupportedTokenMessage","description","filter","isTruthy","deltaErrorToShow","t3","customUnsupportedTokenMessage","undefined","crosschainDeltaWarning","warningMessage","useExtraProps","isPriceLoading","acrossMode","appChainId","setChainTo","selectableChains","useSelectableDestChains","showNetworkSwitcher","networks","selectedNetwork","allOption","onSelect","disabled","length","networkSwitcherProps","setCurrentInput","useSetAtom","currentSwapInputAtom","isSell","showFetchingQuotes","t4","t5","t6","t7","t8","t9","tokenType","onFocus","label","bottomElement","useTokenToInputProps","override","tokenToAmounts","extraProps","youGetProps","amountWei","formatUnits","BigInt","decimals","setTokenTo","selectSwapTokenToAtom","newTokenTo","onTokenSelect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTokenToInputProps.js","sources":["../../../../src/core/inputs/hooks/useTokenToInputProps.tsx"],"sourcesContent":["import type { TokenInputProps } from \"@/components/widget/TokenInput/types\";\n\nimport { useSwapTokenFrom, useSwapTokenTo } from \"../state/selectedTokenAtom\";\n\nimport { swapChainToAtom } from \"@/core/state/chainToAtom\";\nimport { useAtom, useAtomValue, useSetAtom } from \"@/core/store\";\n\nimport { useSelectableDestChains } from \"@/hooks/useSelectableDestChains\";\nimport { useChainId } from \"wagmi\";\nimport { receiveInputAmountAtom } from \"../state/inputAmountAtom\";\nimport type { Token } from \"@/tokens/state/types\";\nimport { formatUnits } from \"viem\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { currentSwapInputAtom } from \"@/core/state/currentSwapInputAtom\";\nimport { useIsCrossChain } from \"@/core/state/isCrosschainAtom\";\nimport type { DeltaOrMarketPrice } from \"@/hooks/swap/prices/types\";\nimport {\n replaceUnsupportedTokenMessage,\n isUnsupportedTokenError,\n parseDeltaApiError,\n customUnsupportedTokenMessage,\n} from \"@/lib/utils/delta\";\nimport { useIsCrosschainPossible } from \"@/hooks/useIsCrosschainPossible\";\nimport type { TokenInputAmountProps, TokenInputExtraProps } from \"./types\";\nimport { useTokenBalance } from \"@/hooks/tokens/balances/useTokenBalance\";\nimport { toDecimalTrimmed } from \"@/lib/utils/toDecimal\";\nimport { useLogger } from \"@/core/logger\";\nimport { MEDIUM_STALE_TIME_FOR_REACTIVENESS } from \"@/lib/constants/time\";\nimport { selectSwapTokenToAtom } from \"../state/selectedTokenActionsAtom\";\nimport { isTruthy } from \"@/lib/utils\";\nimport { isDeltaPrice } from \"@/hooks/swap/prices/delta/queries/useDeltaPriceQuery\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { BridgeInfoMode } from \"@/hooks/swap/prices/delta/queries/bridgeInfo/useBridgeInfo\";\nimport { FetchingQuotes } from \"@/components/widget/FetchingQuotes/FetchingQuotes\";\nimport { useTokenPrice } from \"@/hooks/tokens/prices/useTokenPrices\";\nimport Big from \"big.js\";\nimport type { YouGetProps } from \"@/components/widget/YouGet/types\";\nimport { constructYouGetProps } from \"./utils\";\n\ntype UseTokenToInputInput = {\n override?: {\n amountWei?: string;\n };\n price?: DeltaOrMarketPrice;\n priceMode: \"market\" | \"delta\";\n priceError: Error | null;\n isPriceLoading?: boolean;\n};\n\nconst useTokenToAmountProps = (): TokenInputAmountProps => {\n const logger = useLogger(\"Swap::TokenTo::AmountProps\");\n const tokenTo = useSwapTokenTo();\n\n const [amountValue, setAmountValue] = useAtom(receiveInputAmountAtom);\n\n const tokenBalanceUnit = useTokenToBalanceUnit();\n\n const isCrosschain = useIsCrossChain();\n\n // Crosschain (Delta) BUY is not supported yet, so we need to disable the input\n // @TODO remove condition when Crosschain BUY is re-enabled\n const readOnly = isCrosschain;\n\n return {\n amount: amountValue,\n tokenBalanceUnit,\n token: tokenTo,\n readOnly,\n onAmountChange: (values) => {\n logger.log(\"onAmountChange::values\", values);\n setAmountValue(values.value);\n },\n };\n};\n\nconst useTokenToBalanceUnit = () => {\n const tokenTo = useSwapTokenTo();\n\n const { balanceUnit } = useTokenBalance({\n token: tokenTo,\n queryOptions: { refetchInterval: MEDIUM_STALE_TIME_FOR_REACTIVENESS },\n });\n\n return toDecimalTrimmed(balanceUnit);\n};\n\nconst useTokenToUsdEstimation = ({\n price,\n amount,\n}: Pick<UseTokenToInputInput, \"price\"> & {\n amount: string;\n}) => {\n const tokenTo = useSwapTokenTo();\n const { data: tokenPriceObj } = useTokenPrice(tokenTo);\n\n let usdEstimation;\n if (price && isDeltaPrice(price)) {\n // receivedDestUSDBeforeFee is available for SELL side\n usdEstimation = price.receivedDestUSDBeforeFee || price.receivedDestUSD;\n } else if (price?.destUSD) {\n usdEstimation = price.destUSD;\n } else if (tokenPriceObj && amount !== \"\") {\n usdEstimation = Big(tokenPriceObj.price).mul(amount).toFixed();\n }\n return usdEstimation;\n};\n\nconst useYouGetProps = ({\n priceMode,\n price,\n token,\n}: {\n priceMode: \"market\" | \"delta\";\n price?: DeltaOrMarketPrice;\n token?: Token;\n}): YouGetProps | undefined => {\n const side = useSwapSide();\n\n if (!price || !token) return;\n\n return constructYouGetProps({ side, price, priceMode, token });\n};\n\nconst useWarningMessage = ({\n priceError,\n priceMode,\n mode,\n}: {\n priceMode?: \"market\" | \"delta\";\n priceError?: Error | null;\n mode: BridgeInfoMode;\n}) => {\n const chainId = useChainId();\n const chainTo = useAtomValue(swapChainToAtom);\n const tokenFrom = useSwapTokenFrom();\n const tokenTo = useSwapTokenTo();\n\n const {\n isCrosschainPossible,\n isLoading: isLoadingCrosschainAvailability,\n hasTokens,\n tokenSupported,\n } = useIsCrosschainPossible({\n fromChainId: chainId,\n toChainId: chainTo,\n tokenAddress: tokenFrom.address,\n mode,\n });\n\n const isCrosschain = useIsCrossChain();\n\n const deltaPriceError = priceError && parseDeltaApiError(priceError);\n\n const deltaErrorToShow = deltaPriceError\n ? isUnsupportedTokenError(deltaPriceError)\n ? replaceUnsupportedTokenMessage(\n deltaPriceError.description,\n [tokenFrom, tokenTo].filter(isTruthy)\n )\n : deltaPriceError?.description\n : null;\n\n const crosschainDeltaWarning =\n !isLoadingCrosschainAvailability && !isCrosschainPossible && isCrosschain\n ? tokenSupported === false\n ? customUnsupportedTokenMessage(tokenFrom)\n : hasTokens === false\n ? \"Chain selection isn't supported for Crosschain Swap\"\n : undefined\n : undefined;\n\n const warningMessage =\n priceMode === \"delta\"\n ? deltaErrorToShow || crosschainDeltaWarning\n : undefined;\n\n return warningMessage;\n};\n\nconst useExtraProps = ({\n isPriceLoading,\n acrossMode,\n}: {\n isPriceLoading?: boolean;\n acrossMode: BridgeInfoMode;\n}): TokenInputExtraProps => {\n const appChainId = useChainId();\n const [chainTo, setChainTo] = useAtom(swapChainToAtom);\n\n const { selectableChains } = useSelectableDestChains({\n fromChainId: appChainId,\n mode: acrossMode,\n });\n\n const showNetworkSwitcher = chainTo !== undefined;\n\n const networkSwitcherProps = showNetworkSwitcher\n ? {\n networks: selectableChains,\n selectedNetwork: chainTo,\n allOption: false,\n onSelect: (chainId: SupportedChainId | \"all\") =>\n chainId !== \"all\" && setChainTo(chainId),\n disabled: selectableChains.length <= 1,\n }\n : undefined;\n\n const setCurrentInput = useSetAtom(currentSwapInputAtom);\n\n const side = useSwapSide();\n const isSell = side === \"SELL\";\n\n // SELLing and price is loading = tokenTo input will receive destAmount\n const isLoading = isPriceLoading && isSell;\n\n const isCrosschain = useIsCrossChain();\n\n const showFetchingQuotes = isCrosschain && isPriceLoading;\n\n return {\n networkSwitcherProps,\n tokenType: \"to\" as const,\n onFocus: () => setCurrentInput(\"to\"),\n label: (\n <>\n <span>Receive</span>{\" \"}\n {showNetworkSwitcher && <span className=\"text-contrast-5\">on</span>}\n </>\n ),\n isLoading,\n disabled: selectableChains.length === 0,\n bottomElement: showFetchingQuotes ? <FetchingQuotes /> : undefined,\n };\n};\n\nexport const useTokenToInputProps = ({\n override,\n isPriceLoading,\n priceMode,\n price,\n priceError,\n}: UseTokenToInputInput): TokenInputProps => {\n const tokenToAmounts = useTokenToAmountProps();\n const token = tokenToAmounts.token;\n const extraProps = useExtraProps({ isPriceLoading, acrossMode: \"swap\" });\n const youGetProps = useYouGetProps({ priceMode, price, token });\n const warningMessage = useWarningMessage({\n priceMode,\n priceError,\n mode: \"swap\",\n });\n\n const amount =\n override?.amountWei && token\n ? formatUnits(BigInt(override.amountWei), token.decimals)\n : tokenToAmounts.amount;\n\n const usdEstimation = useTokenToUsdEstimation({ price, amount });\n\n const setTokenTo = useSetAtom(selectSwapTokenToAtom);\n const onTokenSelect = (newTokenTo: Token) => {\n setTokenTo(newTokenTo);\n };\n\n return {\n ...tokenToAmounts,\n amount,\n usdEstimation,\n ...extraProps,\n youGetProps,\n warningMessage,\n onTokenSelect,\n };\n};\n"],"names":["useTokenToAmountProps","$","_c","logger","useLogger","tokenTo","useSwapTokenTo","amountValue","setAmountValue","useAtom","receiveInputAmountAtom","tokenBalanceUnit","useTokenToBalanceUnit","isCrosschain","useIsCrossChain","readOnly","t0","values","log","value","t1","amount","token","onAmountChange","Symbol","for","refetchInterval","MEDIUM_STALE_TIME_FOR_REACTIVENESS","queryOptions","balanceUnit","useTokenBalance","t2","toDecimalTrimmed","useTokenToUsdEstimation","price","data","tokenPriceObj","useTokenPrice","usdEstimation","isDeltaPrice","receivedDestUSDBeforeFee","receivedDestUSD","destUSD","Big","mul","toFixed","useYouGetProps","priceMode","side","useSwapSide","constructYouGetProps","useWarningMessage","priceError","mode","chainId","useChainId","chainTo","useAtomValue","swapChainToAtom","tokenFrom","useSwapTokenFrom","address","fromChainId","toChainId","tokenAddress","isCrosschainPossible","isLoading","isLoadingCrosschainAvailability","hasTokens","tokenSupported","useIsCrosschainPossible","deltaPriceError","parseDeltaApiError","isUnsupportedTokenError","replaceUnsupportedTokenMessage","description","filter","isTruthy","deltaErrorToShow","t3","customUnsupportedTokenMessage","undefined","crosschainDeltaWarning","warningMessage","useExtraProps","isPriceLoading","acrossMode","appChainId","setChainTo","selectableChains","useSelectableDestChains","showNetworkSwitcher","networks","selectedNetwork","allOption","onSelect","disabled","length","networkSwitcherProps","setCurrentInput","useSetAtom","currentSwapInputAtom","isSell","showFetchingQuotes","t4","t5","t6","t7","t8","t9","tokenType","onFocus","label","bottomElement","useTokenToInputProps","override","tokenToAmounts","extraProps","youGetProps","amountWei","formatUnits","BigInt","decimals","setTokenTo","selectSwapTokenToAtom","newTokenTo","onTokenSelect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFillOtcOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useFillOtcOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,kBAAkB,EACxB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACf,MAAM,mCAAmC,CAAC;AAK3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAMzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAKnF,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAGrC,QAAA,MAAM,oBAAoB,iBAAiB,CAAC;AAE5C,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,OAAO,oBAAoB,CAAC;IAC3C,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QACJ,KAAK,EAAE,iBAAiB,CAAC;QACzB,MAAM,CAAC,EAAE,IAAI,CAAC;QACd,SAAS,CAAC,EAAE,kBAAkB,CAAC;KAChC,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,KAAK,IAAI,CAAC;AAEjE,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,OAAO,oBAAoB,CAAC;IAC3C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,mBAAmB,EAAE,CACnB,OAAO,CAAC,EAAE,sBAAsB,KAC7B,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,CACT,OAAO,CAAC,EAAE,sBAAsB,KAC7B,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACvC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE;QACT,MAAM,CAAC,EAAE,IAAI,CAAC;QACd,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,cAAc,EAAE,OAAO,CAAC;QACxB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,cAAc,EAAE;QACd,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,IAAI,CAAC;QACd,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,sBAAsB,EAAE,OAAO,CAAC;QAChC,WAAW,EAAE,OAAO,CAAC;QACrB,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;QACtB,oBAAoB,EAAE,OAAO,CAAC;QAC9B,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC,CAAC;AAIF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,GACN,EAAE,wBAAwB,GAAG,yBAAyB,CAwgBtD"}
|
|
@@ -40,13 +40,15 @@ function useFillOtcOrderFlow({
|
|
|
40
40
|
approval,
|
|
41
41
|
signPermit,
|
|
42
42
|
approveTxMut,
|
|
43
|
-
signPermitMut
|
|
43
|
+
signPermitMut,
|
|
44
|
+
events: approveOrPermitEvents
|
|
44
45
|
} = useApproveOrPermit({
|
|
45
46
|
srcToken: order?.takerAsset,
|
|
46
47
|
srcAmount: order?.takerAmount,
|
|
47
48
|
spenderContractType: "AugustusRFQ",
|
|
48
49
|
swapSide: "SELL",
|
|
49
|
-
tradeMode: "otc"
|
|
50
|
+
tradeMode: "otc",
|
|
51
|
+
chainId
|
|
50
52
|
});
|
|
51
53
|
const {
|
|
52
54
|
address: account
|
|
@@ -165,6 +167,7 @@ function useFillOtcOrderFlow({
|
|
|
165
167
|
let approveTxHash;
|
|
166
168
|
let approveTxReceipt;
|
|
167
169
|
const allowanceToSet = approval.allowanceToSet;
|
|
170
|
+
const allowanceToPermit = signPermit.amountToPermit;
|
|
168
171
|
const baseEventParams = {
|
|
169
172
|
orderHash: order.orderHash,
|
|
170
173
|
orderType: "OTC",
|
|
@@ -179,40 +182,77 @@ function useFillOtcOrderFlow({
|
|
|
179
182
|
const shouldBatchTxs = canBatchTxs && approval.needsApproval && !!allowanceToSet;
|
|
180
183
|
try {
|
|
181
184
|
if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
+
const tryPermit = signPermit.isPermitSupported && signPermit.isPermitReadyToSign;
|
|
186
|
+
try {
|
|
187
|
+
if (!tryPermit) {
|
|
188
|
+
approveOrPermitEvents.onApproveTx.request({
|
|
185
189
|
allowanceToSet
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
190
|
+
});
|
|
191
|
+
approveTxHash = await approveTxMut.approveAsync({
|
|
192
|
+
allowanceData: {
|
|
193
|
+
allowanceToSet
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
approveOrPermitEvents.onApproveTx.sent({
|
|
197
|
+
allowanceToSet,
|
|
198
|
+
txHash: approveTxHash
|
|
199
|
+
});
|
|
200
|
+
signal.throwIfAborted();
|
|
201
|
+
const approveTxReceiptPromise = ensureTxReceipt({
|
|
202
|
+
hash: approveTxHash,
|
|
198
203
|
chainId,
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
receiptPromise: approveTxReceiptPromise,
|
|
202
|
-
transactionSpecificData: {
|
|
203
|
-
action: "approve",
|
|
204
|
-
approvedAmount: allowanceToSet,
|
|
205
|
-
tokenAddress: approval.token,
|
|
206
|
-
spenderAddress: approval.spender
|
|
204
|
+
onReplaced: (data) => {
|
|
205
|
+
logger.log("onReplaced:approveTx", approveTxHash, data);
|
|
207
206
|
}
|
|
208
207
|
});
|
|
208
|
+
if (onTxSent) {
|
|
209
|
+
onTxSent({
|
|
210
|
+
chainId,
|
|
211
|
+
action: "approve",
|
|
212
|
+
transactionHash: approveTxHash,
|
|
213
|
+
receiptPromise: approveTxReceiptPromise,
|
|
214
|
+
transactionSpecificData: {
|
|
215
|
+
action: "approve",
|
|
216
|
+
approvedAmount: allowanceToSet,
|
|
217
|
+
tokenAddress: approval.token,
|
|
218
|
+
spenderAddress: approval.spender
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
approveTxReceipt = await approveTxReceiptPromise;
|
|
223
|
+
approveOrPermitEvents.onApproveTx.confirmed({
|
|
224
|
+
allowanceToSet,
|
|
225
|
+
txHash: approveTxHash,
|
|
226
|
+
txReceipt: approveTxReceipt
|
|
227
|
+
});
|
|
228
|
+
logger.log("~ approveTx ~ receipt:", approveTxReceipt);
|
|
229
|
+
} else {
|
|
230
|
+
approveOrPermitEvents.onSignPermit.request({
|
|
231
|
+
allowanceToSet: allowanceToPermit
|
|
232
|
+
});
|
|
233
|
+
signedPermitResult = await signPermitMut.signPermitAsync({
|
|
234
|
+
value: allowanceToPermit
|
|
235
|
+
});
|
|
236
|
+
approveOrPermitEvents.onSignPermit.confirmed({
|
|
237
|
+
allowanceToSet: allowanceToPermit,
|
|
238
|
+
permit: signedPermitResult?.permitEncodedArgs
|
|
239
|
+
});
|
|
209
240
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
241
|
+
} catch (error_2) {
|
|
242
|
+
if (!tryPermit) {
|
|
243
|
+
approveOrPermitEvents.onApproveTx.failed({
|
|
244
|
+
allowanceToSet,
|
|
245
|
+
error: error_2,
|
|
246
|
+
txHash: approveTxHash
|
|
247
|
+
// won't necessarily be available
|
|
248
|
+
});
|
|
249
|
+
} else {
|
|
250
|
+
approveOrPermitEvents.onSignPermit.failed({
|
|
251
|
+
allowanceToSet: allowanceToPermit,
|
|
252
|
+
error: error_2
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
throw error_2;
|
|
216
256
|
}
|
|
217
257
|
}
|
|
218
258
|
signal.throwIfAborted();
|
|
@@ -384,8 +424,8 @@ function useFillOtcOrderFlow({
|
|
|
384
424
|
onSuccess: (data_1) => {
|
|
385
425
|
logger.log("Fill order flow success", data_1);
|
|
386
426
|
},
|
|
387
|
-
onError: (
|
|
388
|
-
logger.error("Fill order flow error",
|
|
427
|
+
onError: (error_3) => {
|
|
428
|
+
logger.error("Fill order flow error", error_3);
|
|
389
429
|
},
|
|
390
430
|
onSettled: () => {
|
|
391
431
|
logger.log("Fill order flow settled");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFillOtcOrderFlow.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\n };\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n const allowanceToSet = approval.allowanceToSet;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"names":["fillOtcOrderFlowType","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","order","logger","useLogger","chainId","useChainId","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","sdk","callDataSDK","useCalldataSDK","client","fillOrderMut","useFillOrder","mutationOptions","onSuccess","log","onError","error","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","fillTxMined","useAwaitTx","hash","data","batchTxMined","useAwaitCalls","id","fillOrder","txHash","receipt","isConfirmingTX","isPending","isConfirmingTxError","isError","isTxSent","isSuccess","isTxPending","isTxMined","isTxAwaitingError","isLoading","lastCallsReceipt","receipts","length","fillOrderBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","events","useWidgetEvents","submitFillTx","onTxSent","reset","assert","taker","zeroAddress","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","baseEventParams","orderHash","orderType","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","signPermitAsync","value","orderFillData","signature","takerPermit","encodedPermitParams","permitEncodedArgs","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","txReceipt","tradeFlowType","approve","fill","receiverAddress","runFillOrderMut","useMutation","mutationFn","mutationKey","onSettled","runFillOtcOrderFlow","retryFlow","options","result"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAMA,oBAAAA,GAAuB,cAAA;AA0E7B,MAAMC,sBAAAA,GAAyB,qBAAA;AAExB,SAASC,mBAAAA,CAAoB;AAAA,EAClCC;AACwB,CAAA,EAA8B;AACtD,EAAA,MAAMC,MAAAA,GAASC,UAAU,kBAAkB,CAAA;AAC3C,EAAA,MAAMC,UAAUC,UAAAA,EAAW;AAU3B,EAAA,MAAM;AAAA,IAAEC,QAAAA;AAAAA,IAAUC,UAAAA;AAAAA,IAAYC,YAAAA;AAAAA,IAAcC;AAAAA,MAC1CC,kBAAAA,CAAmB;AAAA,IACjBC,UAAUV,KAAAA,EAAOW,UAAAA;AAAAA,IACjBC,WAAWZ,KAAAA,EAAOa,WAAAA;AAAAA,IAClBC,mBAAAA,EAAqB,aAAA;AAAA,IACrBC,QAAAA,EAAU,MAAA;AAAA,IACVC,SAAAA,EAAW;AAAA,GACZ,CAAA;AAEH,EAAA,MAAM;AAAA,IAAEC,OAAAA,EAASC;AAAAA,MAAYC,UAAAA,EAAW;AAExC,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAcC,gBAAAA,CAAiB;AAAA,IACrClB,OAAAA;AAAAA,IACAe;AAAAA,GACD,CAAA;AAED,EAAA,MAAM;AAAA,IAAEI,GAAAA,EAAKC;AAAAA,MAAgBC,cAAAA,CAAe;AAAA,IAC1CrB,OAAAA;AAAAA,IACAsB,MAAAA,EAAQL;AAAAA,GACT,CAAA;AAKD,EAAA,MAAMM,eAAeC,YAAAA,CAAa;AAAA,IAChCxB,OAAAA;AAAAA,IACAe,OAAAA;AAAAA,IACAO,MAAAA,EAAQL,SAAAA;AAAAA,IACRQ,eAAAA,EAAiB;AAAA,MACfC,WAAY7B,CAAAA,OAAAA,KAAU;AACpBC,QAAAA,MAAAA,CAAO6B,GAAAA,CAAI,0BAA0B9B,OAAK,CAAA;AAAA,MAC5C,CAAA;AAAA,MACA+B,SAAUC,CAAAA,KAAAA,KAAU;AAClB/B,QAAAA,MAAAA,CAAO+B,KAAAA,CAAM,wBAAwBA,KAAK,CAAA;AAAA,MAC5C;AAAA;AACF,GACD,CAAA;AAGD,EAAA,MAAM;AAAA,IAAEC,eAAAA,EAAiBC;AAAAA,MAAgBC,cAAAA,EAAe;AACxD,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAuBC,sBAAAA,EAAuB;AAEtD,EAAA,MAAMC,aAAaC,cAAAA,CAAe;AAAA,IAChCV,WAAWA,MAAM;AACf5B,MAAAA,MAAAA,CAAO6B,IAAI,kBAAkB,CAAA;AAAA,IAC/B,CAAA;AAAA,IACAC,SAAUC,CAAAA,OAAAA,KAAU;AAClB/B,MAAAA,MAAAA,CAAO+B,KAAAA,CAAM,kBAAkBA,OAAK,CAAA;AAAA,IACtC;AAAA,GACD,CAAA;AAKD,EAAA,MAAMQ,cAAcC,UAAAA,CAAW;AAAA,IAC7BtC,OAAAA;AAAAA,IACAuC,MAAMhB,YAAAA,CAAaiB;AAAAA,GACpB,CAAA;AAGD,EAAA,MAAMC,eAAeC,aAAAA,CAAc;AAAA,IACjCC,EAAAA,EAAIR,WAAWK,IAAAA,EAAMG;AAAAA,GACtB,CAAA;AAED,EAAA,MAAMC,SAAAA,GAAoD;AAAA,IACxDC,QAAQtB,YAAAA,CAAaiB,IAAAA;AAAAA,IACrBM,SAAST,WAAAA,CAAYG,IAAAA;AAAAA;AAAAA,IAErBO,gBAAgBxB,YAAAA,CAAayB,SAAAA;AAAAA,IAC7BC,qBAAqB1B,YAAAA,CAAa2B,OAAAA;AAAAA,IAClCC,UAAU5B,YAAAA,CAAa6B,SAAAA;AAAAA;AAAAA,IAEvBC,aAAahB,WAAAA,CAAYW,SAAAA;AAAAA,IACzBM,WAAWjB,WAAAA,CAAYe,SAAAA;AAAAA,IACvBG,mBAAmBlB,WAAAA,CAAYa,OAAAA;AAAAA;AAAAA,IAE/BF,SAAAA,EAAWzB,YAAAA,CAAayB,SAAAA,IAAaX,WAAAA,CAAYmB,SAAAA;AAAAA,IACjDJ,WAAWf,WAAAA,CAAYe,SAAAA;AAAAA;AAAAA,IACvBF,OAAAA,EAAS3B,YAAAA,CAAa2B,OAAAA,IAAWb,WAAAA,CAAYa,OAAAA;AAAAA,IAC7CrB,KAAAA,EAAON,YAAAA,CAAaM,KAAAA,IAASQ,WAAAA,CAAYR;AAAAA,GAC3C;AAIA,EAAA,MAAM4B,gBAAAA,GACJhB,aAAaD,IAAAA,EAAMkB,QAAAA,GAAWjB,aAAaD,IAAAA,CAAKkB,QAAAA,CAASC,SAAS,CAAC,CAAA;AAErE,EAAA,MAAMC,cAAAA,GAA8D;AAAA,IAClE7B,WAAAA;AAAAA,IACA8B,OAAAA,EAAS1B,WAAWK,IAAAA,EAAMG,EAAAA;AAAAA,IAC1BE,QAAQY,gBAAAA,EAAkBK,eAAAA;AAAAA,IAC1BhB,OAAAA,EAASW,gBAAAA;AAAAA;AAAAA,IAETM,mBAAmB5B,UAAAA,CAAWa,SAAAA;AAAAA,IAC9BgB,wBAAwB7B,UAAAA,CAAWe,OAAAA;AAAAA,IACnCe,aAAa9B,UAAAA,CAAWiB,SAAAA;AAAAA;AAAAA,IAExBc,gBAAgBzB,YAAAA,CAAae,SAAAA;AAAAA,IAC7BW,cAAc1B,YAAAA,CAAaW,SAAAA;AAAAA,IAC3BgB,sBAAsB3B,YAAAA,CAAaS,OAAAA;AAAAA;AAAAA,IAEnCF,SAAAA,EAAWb,UAAAA,CAAWa,SAAAA,IAAaP,YAAAA,CAAae,SAAAA;AAAAA,IAChDJ,WAAWX,YAAAA,CAAaW,SAAAA;AAAAA,IACxBF,OAAAA,EAASf,UAAAA,CAAWe,OAAAA,IAAWT,YAAAA,CAAaS,OAAAA;AAAAA,IAC5CrB,KAAAA,EAAOM,UAAAA,CAAWN,KAAAA,IAASY,YAAAA,CAAaZ;AAAAA,GAC1C;AAEA,EAAA,MAAMwC,kBAAkBC,kBAAAA,EAAmB;AAC3C,EAAA,MAAMC,oBAAoBC,oBAAAA,EAAqB;AAE/C,EAAA,MAAMC,yBAAAA,GAA4BC,OAA+B,IAAI,CAAA;AAErE,EAAA,MAAMC,aAAaA,MAAM;AACvBF,IAAAA,yBAAAA,CAA0BG,OAAAA,EAASC,KAAAA,CAAM,IAAIC,kBAAAA,EAAoB,CAAA;AACjEL,IAAAA,yBAAAA,CAA0BG,OAAAA,GAAU,IAAA;AAAA,EACtC,CAAA;AAEA,EAAA,MAAM;AAAA,IAAEG,eAAAA;AAAAA,IAAiBC;AAAAA,MAAeC,4BAAAA,CAA6B;AAAA,IACnEjF;AAAAA,GACD,CAAA;AAED,EAAA,MAAMkF,SAASC,eAAAA,EAAgB;AAE/B,EAAA,MAAMC,eAAe,OAAO;AAAA,IAC1BC;AAAAA,GACsB,GAAI,EAAC,KAAyC;AAGpEjF,IAAAA,YAAAA,CAAakF,KAAAA,EAAM;AACnBjF,IAAAA,aAAAA,CAAciF,KAAAA,EAAM;AACpB/D,IAAAA,YAAAA,CAAa+D,KAAAA,EAAM;AACnBnD,IAAAA,UAAAA,CAAWmD,KAAAA,EAAM;AAGjBC,IAAAA,MAAAA,CAAO1F,OAAO,kBAAkB,CAAA;AAChC0F,IAAAA,MAAAA,CAAO1F,KAAAA,CAAM2F,KAAAA,KAAUC,WAAAA,EAAa,gCAAgC,CAAA;AAEpE,IAAA,MAAMC,eAAAA,GAAkB,IAAIC,eAAAA,EAAgB;AAC5ClB,IAAAA,yBAAAA,CAA0BG,OAAAA,GAAUc,eAAAA;AAEpC,IAAA,MAAME,SAASF,eAAAA,CAAgBE,MAAAA;AAE/B,IAAA,IAAIC,kBAAAA;AAEJ,IAAA,IAAIC,aAAAA;AACJ,IAAA,IAAIC,gBAAAA;AAEJ,IAAA,MAAMC,iBAAiB9F,QAAAA,CAAS8F,cAAAA;AAEhC,IAAA,MAAMC,eAAAA,GAAkB;AAAA,MACtBC,WAAWrG,KAAAA,CAAMqG,SAAAA;AAAAA,MACjBC,SAAAA,EAAW,KAAA;AAAA,MACXC,cAAcvG,KAAAA,CAAMwG;AAAAA,KACtB;AAEAnB,IAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,MACtBC,KAAAA,EAAO;AAAA,QACLC,IAAAA,EAAM,sBAAA;AAAA,QACNC,MAAAA,EAAQR;AAAAA;AACV,KACD,CAAA;AAED,IAAA,MAAMS,cAAAA,GACJ3E,WAAAA,IAAe7B,QAAAA,CAASyG,aAAAA,IAAiB,CAAC,CAACX,cAAAA;AAE7C,IAAA,IAAI;AAEF,MAAA,IAAI,CAACU,cAAAA,IAAkBxG,QAAAA,CAASyG,aAAAA,IAAiBX,cAAAA,EAAgB;AAC/D,QAAA,IAAI,CAAC7F,UAAAA,CAAWyG,iBAAAA,IAAqB,CAACzG,WAAW0G,mBAAAA,EAAqB;AAGpEf,UAAAA,aAAAA,GAAgB,MAAM1F,aAAa0G,YAAAA,CAAa;AAAA,YAC9CC,aAAAA,EAAe;AAAA,cACbf;AAAAA;AACF,WACD,CAAA;AAGDJ,UAAAA,MAAAA,CAAOoB,cAAAA,EAAe;AAEtB,UAAA,MAAMC,0BAA0B5C,eAAAA,CAAgB;AAAA,YAC9C9B,IAAAA,EAAMuD,aAAAA;AAAAA,YACN9F,OAAAA;AAAAA,YACAkH,YAAa1E,CAAAA,IAAAA,KAAS;AACpB1C,cAAAA,MAAAA,CAAO6B,GAAAA,CAAI,sBAAA,EAAwBmE,aAAAA,EAAetD,IAAI,CAAA;AAAA,YACxD;AAAA,WACD,CAAA;AAED,UAAA,IAAI6C,QAAAA,EAAU;AACZA,YAAAA,QAAAA,CAAS;AAAA,cACPrF,OAAAA;AAAAA,cACAmH,MAAAA,EAAQ,SAAA;AAAA,cACRrD,eAAAA,EAAiBgC,aAAAA;AAAAA,cACjBsB,cAAAA,EAAgBH,uBAAAA;AAAAA,cAChBI,uBAAAA,EAAyB;AAAA,gBACvBF,MAAAA,EAAQ,SAAA;AAAA,gBACRG,cAAAA,EAAgBtB,cAAAA;AAAAA,gBAChBuB,cAAcrH,QAAAA,CAASsH,KAAAA;AAAAA,gBACvBC,gBAAgBvH,QAAAA,CAASwH;AAAAA;AAC3B,aACD,CAAA;AAAA,UACH;AAEA3B,UAAAA,gBAAAA,GAAmB,MAAMkB,uBAAAA;AAEzBnH,UAAAA,MAAAA,CAAO6B,GAAAA,CAAI,0BAA0BoE,gBAAgB,CAAA;AAAA,QAGvD,CAAA,MAAO;AAELF,UAAAA,kBAAAA,GAAqB,MAAMxF,cAAcsH,eAAAA,CAAgB;AAAA,YACvDC,KAAAA,EAAO5B;AAAAA,WACR,CAAA;AAAA,QACH;AAAA,MACF;AAGAJ,MAAAA,MAAAA,CAAOoB,cAAAA,EAAe;AAEtBzB,MAAAA,MAAAA,CAAOxE,SAAS,0BAA0B,CAAA;AAE1C,MAAA,MAAM8G,aAAAA,GAA+B;AAAA,QACnChI,KAAAA;AAAAA,QACAiI,WAAWjI,KAAAA,CAAMiI;AAAAA,OACnB;AAEA,MAAA,IAAIjC,kBAAAA,EAAoB;AACtBgC,QAAAA,aAAAA,CAAcE,WAAAA,GAAc;AAAA,UAC1BC,qBAAqBnC,kBAAAA,CAAmBoC;AAAAA,SAC1C;AAAA,MACF;AAEA,MAAA,IAAIC,UAAAA;AACJ,MAAA,IAAIC,WAAAA;AAEJ,MAAA,IAAIzB,cAAAA,EAAgB;AAClBnB,QAAAA,MAAAA,CAAOnE,aAAa,gCAAgC,CAAA;AAEpD,QAAA,MAAMgH,QAAAA,GAAW,MAAMhH,WAAAA,CAAYiH,iBAAAA,CAAkB;AAAA,UACnDxI,KAAAA;AAAAA,UACAiI,WAAWjI,KAAAA,CAAMiI;AAAAA,SAClB,CAAA;AAED,QAAA,MAAM;AAAA,UAAEQ;AAAAA,SAAM,GAAI,MAAMrG,kBAAAA,CAAmB;AAAA,UACzCsG,WAAW,CACT;AAAA,YACEC,IAAItI,QAAAA,CAASwH,OAAAA;AAAAA,YACb3G,OAAAA;AAAAA,YACAyB,IAAAA,EAAM4F,QAAAA;AAAAA,YACNR,KAAAA,EAAO,EAAA;AAAA,YACP5H;AAAAA,WACD,CAAA;AAAA,UAEHyI,cAAc,CACZ;AAAA,YACEf,SAASxH,QAAAA,CAASwH,OAAAA;AAAAA,YAClB1B,gBAAgB9F,QAAAA,CAAS8F,cAAAA;AAAAA,YACzBwB,OAAOtH,QAAAA,CAASsH,KAAAA;AAAAA,YAChBxH,SAASE,QAAAA,CAASF;AAAAA,WACnB;AAAA,SAEJ,CAAA;AACD,QAAA,MAAM0I,eAAAA,GAAkB,MAAMvG,UAAAA,CAAWwG,SAAAA,CAAU;AAAA,UACjDJ,SAAAA,EAAWD;AAAAA,SACZ,CAAA;AACDH,QAAAA,WAAAA,GAAcO,eAAAA,CAAgB/F,EAAAA;AAE9BuC,QAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,UACtBC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,mBAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACN5C,OAAAA,EAASsE,WAAAA;AAAAA,cACT,GAAGlC;AAAAA;AACL;AACF,SACD,CAAA;AAAA,MACH,CAAA,MAAO;AACLiC,QAAAA,UAAAA,GAAa,MAAM3G,aAAaqH,WAAAA,CAAY;AAAA,UAC1Cf,aAAAA;AAAAA,UACAjC;AAAAA,SACD,CAAA;AAEDV,QAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,UACtBC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,mBAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACN5D,MAAAA,EAAQqF,UAAAA;AAAAA,cACR,GAAGjC;AAAAA;AACL;AACF,SACD,CAAA;AAAA,MACH;AAMA,MAAA,IAAIJ,kBAAAA,EAAoB;AACtBd,QAAAA,eAAAA,CAAgBc,mBAAmBgD,gBAAgB,CAAA;AAAA,MACrD;AAEA,MAAA,IAAIC,gBAAAA;AACJ,MAAA,IAAIC,aAAAA;AAEJ,MAAA,IAAIZ,WAAAA,EAAa;AACf,QAAA,MAAMa,0BAA0BzE,iBAAAA,CAAkB;AAAA,UAChD5B,EAAAA,EAAIwF;AAAAA,SACL,CAAA,CAAEc,IAAAA,CAAMC,CAAAA,MAAAA,KAAWA,MAAAA,CAAOxF,WAAWwF,MAAAA,CAAOxF,QAAAA,CAASC,MAAAA,GAAS,CAAC,CAAC,CAAA;AAEjE7D,QAAAA,MAAAA,CAAO6B,GAAAA,CAAI,kCAAkCwG,WAAW,CAAA;AAExD,QAAA,IAAI9C,QAAAA,EAAU;AACZA,UAAAA,QAAAA,CAAS;AAAA,YACPrF,OAAAA;AAAAA,YACA6D,OAAAA,EAASsE,WAAAA;AAAAA,YACThB,MAAAA,EAAQ,cAAA;AAAA,YACRC,cAAAA,EAAgB4B,uBAAAA;AAAAA,YAChB3B,uBAAAA,EAAyB;AAAA,cACvBF,MAAAA,EAAQ,cAAA;AAAA,cACRgC,WAAAA,EAAatJ;AAAAA;AACf,WACD,CAAA;AAAA,QACH;AAEAiJ,QAAAA,gBAAAA,GAAmB,MAAME,uBAAAA;AAEzB,QAAA,IAAIF,gBAAAA,EAAkB;AACpB5D,UAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,YACtBC,KAAAA,EAAO;AAAA,cACLC,IAAAA,EAAM,wBAAA;AAAA,cACNC,MAAAA,EAAQ;AAAA,gBACN5C,OAAAA,EAASsE,WAAAA;AAAAA,gBACTiB,YAAAA,EAAcN,gBAAAA;AAAAA,gBACd,GAAG7C;AAAAA;AACL;AACF,WACD,CAAA;AAAA,QACH;AAAA,MACF,WAAWiC,UAAAA,EAAY;AACrB,QAAA,MAAMmB,uBAAuBhF,eAAAA,CAAgB;AAAA,UAC3C9B,IAAAA,EAAM2F,UAAAA;AAAAA,UACNlI,OAAAA;AAAAA,UACAkH,YAAa1E,CAAAA,MAAAA,KAAS;AACpB1C,YAAAA,MAAAA,CAAO6B,GAAAA,CAAI,mBAAA,EAAqBuG,UAAAA,EAAY1F,MAAI,CAAA;AAAA,UAClD;AAAA,SACD,CAAA;AAED1C,QAAAA,MAAAA,CAAO6B,GAAAA,CAAI,iCAAiCuG,UAAU,CAAA;AAEtD,QAAA,IAAI7C,QAAAA,EAAU;AACZA,UAAAA,QAAAA,CAAS;AAAA,YACPrF,OAAAA;AAAAA,YACA8D,eAAAA,EAAiBoE,UAAAA;AAAAA,YACjBf,MAAAA,EAAQ,cAAA;AAAA,YACRC,cAAAA,EAAgBiC,oBAAAA;AAAAA,YAChBhC,uBAAAA,EAAyB;AAAA,cACvBF,MAAAA,EAAQ,cAAA;AAAA,cACRgC,WAAAA,EAAatJ;AAAAA;AACf,WACD,CAAA;AAAA,QACH;AAEAkJ,QAAAA,aAAAA,GAAgB,MAAMM,oBAAAA;AAEtBnE,QAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,UACtBC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,wBAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACN5D,MAAAA,EAAQqF,UAAAA;AAAAA,cACRoB,SAAAA,EAAWP,aAAAA;AAAAA,cACX,GAAG9C;AAAAA;AACL;AACF,SACD,CAAA;AAAA,MACH;AAEAnG,MAAAA,MAAAA,CAAO6B,GAAAA,CAAI,qBAAA,EAAuBmH,gBAAAA,IAAoBC,aAAa,CAAA;AAInE,MAAA,OAAO;AAAA,QACLQ,aAAAA,EAAe7J,oBAAAA;AAAAA,QACf8J,OAAAA,EAAS;AAAA,UACP3G,MAAAA,EAAQiD,aAAAA;AAAAA,UACRhD,OAAAA,EAASiD;AAAAA,SACX;AAAA,QACA0D,IAAAA,EAAM;AAAA,UACJ5G,MAAAA,EAAQqF,UAAAA;AAAAA,UACRoB,SAAAA,EAAWP,aAAAA;AAAAA,UACXlJ;AAAAA,SACF;AAAA,QACAkB,OAAAA;AAAAA,QACA2I,iBAAiB7J,KAAAA,CAAM2F;AAAAA,OACzB;AAAA,IACF,SAAS3D,OAAAA,EAAO;AACdqD,MAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,QACtBC,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,qBAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACN,GAAGR,eAAAA;AAAAA,YACHpE,KAAAA,EAAOA;AAAAA;AACT;AACF,OACD,CAAA;AAED,MAAA,IAAIgE,kBAAAA,EAAoB;AACtBb,QAAAA,UAAAA,CAAWa,mBAAmBgD,gBAAgB,CAAA;AAAA,MAChD;AACA,MAAA,MAAMhH,OAAAA;AAAAA,IACR;AAAA,EACF,CAAA;AAEA,EAAA,MAAM8H,kBAAkBC,WAAAA,CAAY;AAAA,IAClCC,UAAAA,EAAYzE,YAAAA;AAAAA,IACZ0E,WAAAA,EAAa,CAACnK,sBAAsB,CAAA;AAAA,IACpC+B,WAAYc,CAAAA,MAAAA,KAAS;AACnB1C,MAAAA,MAAAA,CAAO6B,GAAAA,CAAI,2BAA2Ba,MAAI,CAAA;AAAA,IAC5C,CAAA;AAAA,IACAZ,SAAUC,CAAAA,OAAAA,KAAU;AAClB/B,MAAAA,MAAAA,CAAO+B,KAAAA,CAAM,yBAAyBA,OAAK,CAAA;AAAA,IAC7C,CAAA;AAAA,IACAkI,WAAWA,MAAM;AACfjK,MAAAA,MAAAA,CAAO6B,IAAI,yBAAyB,CAAA;AAAA,IACtC;AAAA,GACD,CAAA;AAED,EAAA,MAAMqI,sBAAsBL,eAAAA,CAAgBf,WAAAA;AAE5C,EAAA,MAAMtD,QAAQA,MAAM;AAClBlF,IAAAA,YAAAA,CAAakF,KAAAA,EAAM;AACnBjF,IAAAA,aAAAA,CAAciF,KAAAA,EAAM;AACpB/D,IAAAA,YAAAA,CAAa+D,KAAAA,EAAM;AACnBnD,IAAAA,UAAAA,CAAWmD,KAAAA,EAAM;AACjBqE,IAAAA,eAAAA,CAAgBrE,KAAAA,EAAM;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM2E,SAAAA,GAAYA,CAChBC,OAAAA,KACsC;AACtC5E,IAAAA,KAAAA,EAAM;AACN,IAAA,OAAO0E,oBAAoBE,OAAO,CAAA;AAAA,EACpC,CAAA;AAGA,EAAA,OAAO;AAAA,IACLX,aAAAA,EAAe7J,oBAAAA;AAAAA,IACfM,OAAAA;AAAAA,IACAgK,mBAAAA;AAAAA,IACA1E,KAAAA;AAAAA,IACAX,UAAAA;AAAAA,IACAsF,SAAAA;AAAAA,IACA/J,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAyC,SAAAA;AAAAA,IACAgB,cAAAA;AAAAA,IACAZ,WAAW2G,eAAAA,CAAgB3G,SAAAA;AAAAA,IAC3BI,WAAWuG,eAAAA,CAAgBvG,SAAAA;AAAAA,IAC3BF,SAASyG,eAAAA,CAAgBzG,OAAAA;AAAAA,IACzBrB,OAAO8H,eAAAA,CAAgB9H,KAAAA;AAAAA,IACvBsI,QAAQR,eAAAA,CAAgBnH;AAAAA,GAC1B;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"useFillOtcOrderFlow.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n chainId,\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\n };\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n const allowanceToSet = approval.allowanceToSet;\n const allowanceToPermit = signPermit.amountToPermit;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n const tryPermit =\n signPermit.isPermitSupported && signPermit.isPermitReadyToSign;\n try {\n if (!tryPermit) {\n // Token doesn't support Permit\n // make an Approval tx\n approveOrPermitEvents.onApproveTx.request({ allowanceToSet });\n\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n approveOrPermitEvents.onApproveTx.sent({\n allowanceToSet,\n txHash: approveTxHash,\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n approveOrPermitEvents.onApproveTx.confirmed({\n allowanceToSet,\n txHash: approveTxHash,\n txReceipt: approveTxReceipt,\n });\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n approveOrPermitEvents.onSignPermit.request({\n allowanceToSet: allowanceToPermit,\n });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToPermit,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet: allowanceToPermit,\n permit: signedPermitResult?.permitEncodedArgs,\n });\n }\n } catch (error) {\n if (!tryPermit) {\n approveOrPermitEvents.onApproveTx.failed({\n allowanceToSet,\n error: error as Error,\n txHash: approveTxHash, // won't necessarily be available\n });\n } else {\n approveOrPermitEvents.onSignPermit.failed({\n allowanceToSet: allowanceToPermit,\n error: error as Error,\n });\n }\n throw error;\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"names":["fillOtcOrderFlowType","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","order","logger","useLogger","chainId","useChainId","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","sdk","callDataSDK","useCalldataSDK","client","fillOrderMut","useFillOrder","mutationOptions","onSuccess","log","onError","error","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","fillTxMined","useAwaitTx","hash","data","batchTxMined","useAwaitCalls","id","fillOrder","txHash","receipt","isConfirmingTX","isPending","isConfirmingTxError","isError","isTxSent","isSuccess","isTxPending","isTxMined","isTxAwaitingError","isLoading","lastCallsReceipt","receipts","length","fillOrderBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","useWidgetEvents","submitFillTx","onTxSent","reset","assert","taker","zeroAddress","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","allowanceToPermit","amountToPermit","baseEventParams","orderHash","orderType","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","tryPermit","isPermitSupported","isPermitReadyToSign","onApproveTx","request","approveAsync","allowanceData","sent","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","value","permit","permitEncodedArgs","failed","orderFillData","signature","takerPermit","encodedPermitParams","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","tradeFlowType","approve","fill","receiverAddress","runFillOrderMut","useMutation","mutationFn","mutationKey","onSettled","runFillOtcOrderFlow","retryFlow","options","result"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOtcOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderFlow.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useOtcOrderFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useOtcOrderFlow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAA4B,MAAM,MAAM,CAAC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACf,MAAM,mCAAmC,CAAC;AAU3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAYzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAI7E,QAAA,MAAM,gBAAgB,aAAa,CAAC;AAEpC,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,OAAO,gBAAgB,CAAC;IACvC,OAAO,EAAE,cAAc,CAAC;IACxB,mBAAmB,EAAE,cAAc,CAAC;IACpC,QAAQ,EAAE;QACR,SAAS,EAAE,iBAAiB,CAAC;KAC9B,CAAC;IACF,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,KAAK,IAAI,CAAC;AAEjE,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,OAAO,gBAAgB,CAAC;IACvC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,CACf,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3E,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,oBAAoB,EAAE,iBAAiB,CAAC;IACxC,kBAAkB,EAAE;QAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAC1B,eAAe,EAAE,OAAO,CAAC;QACzB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,mBAAmB,EAAE;QACnB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,iBAAiB,CAAC;QACnC,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAIF,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,UAAU,GACX,EAAE,oBAAoB,GAAG,qBAAqB,CAuZ9C"}
|