@velora-dex/widget 0.2.5-dev.13 → 0.2.5-dev.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/widget/DexesList/DexItem.js.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +124 -69
- package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js +76 -54
- package/dist/components/widget/TradeOverview/MarketSwapTradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Step/Step.js +122 -68
- package/dist/components/widget/TradeOverview/Step/Step.js.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/Stepper.js +46 -26
- package/dist/components/widget/TradeOverview/Stepper.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/index.js +15 -24
- package/dist/components/widget/TradeOverview/TradeComplete/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js +56 -47
- package/dist/components/widget/TradeOverview/TradeComplete/useTradeCompleteDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js +2 -2
- package/dist/components/widget/TradeOverview/TradeComplete/utils.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetails.js +143 -98
- package/dist/components/widget/TradeOverview/TradeDetails.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js +15 -11
- package/dist/components/widget/TradeOverview/TradeDetailsDisplay.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeError/index.js +9 -20
- package/dist/components/widget/TradeOverview/TradeError/index.js.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.d.ts.map +1 -1
- package/dist/components/widget/TradeOverview/TradeOverview.js +112 -57
- package/dist/components/widget/TradeOverview/TradeOverview.js.map +1 -1
- package/dist/components/widget/TradeOverview/motionProps.d.ts +20 -0
- package/dist/components/widget/TradeOverview/motionProps.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/motionProps.js +121 -0
- package/dist/components/widget/TradeOverview/motionProps.js.map +1 -0
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts +18 -0
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.d.ts.map +1 -0
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js +74 -0
- package/dist/components/widget/TradeOverview/utils/useSwapAmountsWithSlippage.js.map +1 -0
- package/dist/core/across/{isCrosshcainPossible.d.ts → isCrosschainPossible.d.ts} +1 -1
- package/dist/core/across/{isCrosshcainPossible.d.ts.map → isCrosschainPossible.d.ts.map} +1 -1
- package/dist/core/across/{isCrosshcainPossible.js → isCrosschainPossible.js} +1 -1
- package/dist/core/across/{isCrosshcainPossible.js.map → isCrosschainPossible.js.map} +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts +1 -2
- package/dist/core/button/hooks/useWidgetButtonExtraProps.d.ts.map +1 -1
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js +90 -61
- package/dist/core/button/hooks/useWidgetButtonExtraProps.js.map +1 -1
- package/dist/core/constants.d.ts +1 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +2 -1
- package/dist/core/constants.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inputs/state/common.d.ts.map +1 -1
- package/dist/core/inputs/state/common.js +4 -6
- package/dist/core/inputs/state/common.js.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/inputs/state/selectedTokenActionsAtom.js +18 -3
- package/dist/core/inputs/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.d.ts.map +1 -1
- package/dist/core/limit/state/selectedTokenActionsAtom.js +23 -6
- package/dist/core/limit/state/selectedTokenActionsAtom.js.map +1 -1
- package/dist/core/limit/state/selectedTokenAtom.js +4 -4
- package/dist/core/limit/state/selectedTokenAtom.js.map +1 -1
- package/dist/core/limit/useLimitRate.d.ts.map +1 -1
- package/dist/core/limit/useLimitRate.js +25 -10
- package/dist/core/limit/useLimitRate.js.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenSwitcherProps.js +26 -16
- package/dist/core/limit/useLimitTokenSwitcherProps.js.map +1 -1
- package/dist/core/screen/state/screenAtom.d.ts.map +1 -1
- package/dist/core/screen/state/screenAtom.js +5 -0
- package/dist/core/screen/state/screenAtom.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +2 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/bridgeInfosLoadedAtom.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts +2 -2
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/common.js.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts +3 -3
- package/dist/hooks/swap/prices/delta/queries/bridgeInfo/types.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts +2 -1
- package/dist/hooks/swap/prices/delta/queries/utils.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/utils.js +8 -1
- package/dist/hooks/swap/prices/delta/queries/utils.js.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts +3 -3
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/mutations/useBuildTx.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js +4 -1
- package/dist/hooks/swap/tradeFlow/common/utils.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +2 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +8 -3
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts +1 -0
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js +16 -14
- package/dist/hooks/swap/tradeFlow/useDeltaSwapStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts +11 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js +10 -5
- package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts +1 -0
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +12 -10
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.js +1 -1
- package/dist/styles.css +29 -4
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/queries/bridgeInfo/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/queries/bridgeInfo/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE7E,eAAO,MAAM,kBAAkB;;CAEE,CAAC;AAElC,wBAAgB,kBAAkB,CAChC,WAAW,GAAE,qBAA0C,GACtD,sBAAsB,CAExB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sources":["../../../../../../../src/hooks/swap/prices/delta/queries/bridgeInfo/common.ts"],"sourcesContent":["import type { BridgeInfoQueryKeyType,
|
|
1
|
+
{"version":3,"file":"common.js","sources":["../../../../../../../src/hooks/swap/prices/delta/queries/bridgeInfo/common.ts"],"sourcesContent":["import type { BridgeInfoQueryKeyType, BridgeInfoInputParams } from \"./types\";\n\nexport const defaultInputParams = {\n allowBridgeAndSwap: true,\n} satisfies BridgeInfoInputParams;\n\nexport function bridgeInfoQueryKey(\n inputParams: BridgeInfoInputParams = defaultInputParams\n): BridgeInfoQueryKeyType {\n return [\"swap/delta/bridge-info\", inputParams] as const;\n}\n"],"names":["defaultInputParams","allowBridgeAndSwap","bridgeInfoQueryKey","inputParams"],"mappings":"AAEO,MAAMA,kBAAAA,GAAqB;AAAA,EAChCC,kBAAAA,EAAoB;AACtB;AAEO,SAASC,kBAAAA,CACdC,cAAqCH,kBAAAA,EACb;AACxB,EAAA,OAAO,CAAC,0BAA0BG,WAAW,CAAA;AAC/C;;;;"}
|
|
@@ -5,13 +5,13 @@ type BridgeInfoQueryParams<TData = BridgeInfoReturn> = Omit<UseQueryOptions<Brid
|
|
|
5
5
|
export type BridgeInfoQueryResult<TData = BridgeInfoReturn> = UseQueryResult<TData, Error>;
|
|
6
6
|
export type BridgeInfoQueryInput<TData = BridgeInfoReturn> = {
|
|
7
7
|
query?: BridgeInfoQueryParams<TData>;
|
|
8
|
-
input?:
|
|
8
|
+
input?: BridgeInfoInputParams;
|
|
9
9
|
};
|
|
10
10
|
export type BridgeInfoQueryKeyType = [
|
|
11
11
|
"swap/delta/bridge-info",
|
|
12
|
-
|
|
12
|
+
BridgeInfoInputParams
|
|
13
13
|
];
|
|
14
|
-
export type
|
|
14
|
+
export type BridgeInfoInputParams = {
|
|
15
15
|
allowBridgeAndSwap?: boolean;
|
|
16
16
|
};
|
|
17
17
|
export type BridgeInfoMode = "swap" | "limit";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/queries/bridgeInfo/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,KAAK,qBAAqB,CAAC,KAAK,GAAG,gBAAgB,IAAI,IAAI,CACzD,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,EACvE,UAAU,GAAG,SAAS,CACvB,CAAC;AACF,MAAM,MAAM,qBAAqB,CAAC,KAAK,GAAG,gBAAgB,IAAI,cAAc,CAC1E,KAAK,EACL,KAAK,CACN,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,gBAAgB,IAAI;IAC3D,KAAK,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/queries/bridgeInfo/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE1C,KAAK,qBAAqB,CAAC,KAAK,GAAG,gBAAgB,IAAI,IAAI,CACzD,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,EACvE,UAAU,GAAG,SAAS,CACvB,CAAC;AACF,MAAM,MAAM,qBAAqB,CAAC,KAAK,GAAG,gBAAgB,IAAI,cAAc,CAC1E,KAAK,EACL,KAAK,CACN,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,gBAAgB,IAAI;IAC3D,KAAK,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,wBAAwB;IACxB,qBAAqB;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { DeltaPrice, SwapSideUnion } from '@velora-dex/sdk';
|
|
1
|
+
import { DeltaAuctionOrder, DeltaPrice, SwapSideUnion } from '@velora-dex/sdk';
|
|
2
2
|
export declare function getSwapSideFromDeltaPrice(price: DeltaPrice): SwapSideUnion;
|
|
3
|
+
export declare function getSwapSideFromDeltaOrder(order: DeltaAuctionOrder): SwapSideUnion;
|
|
3
4
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAM1E;AAOD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,iBAAiB,GACvB,aAAa,CAEf"}
|
|
@@ -4,6 +4,13 @@ function getSwapSideFromDeltaPrice(price) {
|
|
|
4
4
|
}
|
|
5
5
|
return "SELL";
|
|
6
6
|
}
|
|
7
|
+
const OrderKindToSwapSide = {
|
|
8
|
+
0: "SELL",
|
|
9
|
+
1: "BUY"
|
|
10
|
+
};
|
|
11
|
+
function getSwapSideFromDeltaOrder(order) {
|
|
12
|
+
return OrderKindToSwapSide[order.kind];
|
|
13
|
+
}
|
|
7
14
|
|
|
8
|
-
export { getSwapSideFromDeltaPrice };
|
|
15
|
+
export { getSwapSideFromDeltaOrder, getSwapSideFromDeltaPrice };
|
|
9
16
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/utils.ts"],"sourcesContent":["import type { DeltaPrice } from \"@velora-dex/sdk\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\n\nexport function getSwapSideFromDeltaPrice(price: DeltaPrice): SwapSideUnion {\n if (price.srcAmountBeforeFee) {\n // srcAmountBeforeFee is only available for BUY side\n return \"BUY\";\n }\n return \"SELL\";\n}\n"],"names":["getSwapSideFromDeltaPrice","price","srcAmountBeforeFee"],"mappings":"AAGO,SAASA,0BAA0BC,KAAAA,EAAkC;AAC1E,EAAA,IAAIA,MAAMC,kBAAAA,EAAoB;AAE5B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/hooks/swap/prices/delta/queries/utils.ts"],"sourcesContent":["import type { DeltaAuctionOrder, DeltaPrice } from \"@velora-dex/sdk\";\nimport type { SwapSideUnion } from \"@velora-dex/sdk\";\n\nexport function getSwapSideFromDeltaPrice(price: DeltaPrice): SwapSideUnion {\n if (price.srcAmountBeforeFee) {\n // srcAmountBeforeFee is only available for BUY side\n return \"BUY\";\n }\n return \"SELL\";\n}\n\nconst OrderKindToSwapSide = {\n 0: \"SELL\",\n 1: \"BUY\",\n} as const;\n\nexport function getSwapSideFromDeltaOrder(\n order: DeltaAuctionOrder\n): SwapSideUnion {\n return OrderKindToSwapSide[order.kind];\n}\n"],"names":["getSwapSideFromDeltaPrice","price","srcAmountBeforeFee","OrderKindToSwapSide","getSwapSideFromDeltaOrder","order","kind"],"mappings":"AAGO,SAASA,0BAA0BC,KAAAA,EAAkC;AAC1E,EAAA,IAAIA,MAAMC,kBAAAA,EAAoB;AAE5B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;AAEA,MAAMC,mBAAAA,GAAsB;AAAA,EAC1B,CAAA,EAAG,MAAA;AAAA,EACH,CAAA,EAAG;AACL,CAAA;AAEO,SAASC,0BACdC,KAAAA,EACe;AACf,EAAA,OAAOF,mBAAAA,CAAoBE,MAAMC,IAAI,CAAA;AACvC;;;;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
|
|
2
2
|
import { BuildSwapTxInput, BuildOptions, TransactionParams } from '@velora-dex/sdk';
|
|
3
|
-
type
|
|
3
|
+
export type BuildMarketSwapTxInput = {
|
|
4
4
|
swapTxInput: BuildSwapTxInput;
|
|
5
5
|
swapTxOptions?: BuildOptions;
|
|
6
6
|
};
|
|
7
7
|
export type BuildTxReturn = TransactionParams;
|
|
8
|
-
type BuildTxMutationOptions = Omit<UseMutationOptions<BuildTxReturn, Error,
|
|
8
|
+
type BuildTxMutationOptions = Omit<UseMutationOptions<BuildTxReturn, Error, BuildMarketSwapTxInput, void>, "mutationFn">;
|
|
9
9
|
type BuildTxMutationInput = {
|
|
10
10
|
mutationOptions?: BuildTxMutationOptions;
|
|
11
11
|
chainId: number;
|
|
12
12
|
};
|
|
13
|
-
export declare function useBuildTx({ mutationOptions, chainId, }: BuildTxMutationInput): UseMutationResult<BuildTxReturn, Error,
|
|
13
|
+
export declare function useBuildTx({ mutationOptions, chainId, }: BuildTxMutationInput): UseMutationResult<BuildTxReturn, Error, BuildMarketSwapTxInput, void>;
|
|
14
14
|
export {};
|
|
15
15
|
//# sourceMappingURL=useBuildTx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildTx.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/market/mutations/useBuildTx.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,
|
|
1
|
+
{"version":3,"file":"useBuildTx.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/market/mutations/useBuildTx.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C,KAAK,sBAAsB,GAAG,IAAI,CAChC,kBAAkB,CAAC,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,CAAC,EACtE,YAAY,CACb,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,eAAe,EACf,OAAO,GACR,EAAE,oBAAoB,GAAG,iBAAiB,CACzC,aAAa,EACb,KAAK,EACL,sBAAsB,EACtB,IAAI,CACL,CAUA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildTx.js","sources":["../../../../../../src/hooks/swap/prices/market/mutations/useBuildTx.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type {\n BuildSwapTxInput,\n BuildOptions,\n TransactionParams,\n} from \"@velora-dex/sdk\";\n\
|
|
1
|
+
{"version":3,"file":"useBuildTx.js","sources":["../../../../../../src/hooks/swap/prices/market/mutations/useBuildTx.ts"],"sourcesContent":["import { useMarketSwapSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type {\n BuildSwapTxInput,\n BuildOptions,\n TransactionParams,\n} from \"@velora-dex/sdk\";\n\nexport type BuildMarketSwapTxInput = {\n swapTxInput: BuildSwapTxInput;\n swapTxOptions?: BuildOptions;\n};\nexport type BuildTxReturn = TransactionParams;\n\ntype BuildTxMutationOptions = Omit<\n UseMutationOptions<BuildTxReturn, Error, BuildMarketSwapTxInput, void>,\n \"mutationFn\"\n>;\n\ntype BuildTxMutationInput = {\n mutationOptions?: BuildTxMutationOptions;\n chainId: number;\n};\n\nexport function useBuildTx({\n mutationOptions,\n chainId,\n}: BuildTxMutationInput): UseMutationResult<\n BuildTxReturn,\n Error,\n BuildMarketSwapTxInput,\n void\n> {\n const { sdk } = useMarketSwapSDK({ chainId });\n\n return useMutation<BuildTxReturn, Error, BuildMarketSwapTxInput, void>({\n mutationFn: async ({ swapTxInput, swapTxOptions }: BuildMarketSwapTxInput) => {\n const tx = await sdk.buildTx(swapTxInput, swapTxOptions);\n return tx;\n },\n ...mutationOptions,\n });\n}\n"],"names":["useBuildTx","t0","$","_c","mutationOptions","chainId","t1","sdk","useMarketSwapSDK","t2","t3","swapTxInput","swapTxOptions","tx","buildTx","mutationFn","useMutation"],"mappings":";;;;AA4BO,SAAAA,WAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAoB,EAAA,MAAA;AAAA,IAAAC,eAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAGJ,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAG,OAAAA,EAAA;AAMYC,IAAAA,EAAAA,GAAA;AAAA,MAAAD;AAAAA,KAAU;AAACH,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAA5C,EAAA,MAAA;AAAA,IAAAK;AAAAA,GAAA,GAAgBC,iBAAiBF,EAAW,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAP,CAAAA,QAAAK,GAAAA,EAAA;AAGhCE,IAAAA,EAAAA,UAAAC,GAAAA,KAAA;AAAO,MAAA,MAAA;AAAA,QAAAC,WAAAA;AAAAA,QAAAC;AAAAA,OAAA,GAAAF,GAAAA;AACjB,MAAA,MAAAG,EAAAA,GAAW,MAAMN,GAAAA,CAAGO,OAAAA,CAASH,aAAaC,aAAa,CAAA;AAAE,MAAA,OAClDC,EAAAA;AAAAA,IAAE,CAAA;AACVX,IAAAA,CAAAA,MAAAK,GAAAA;AAAAL,IAAAA,CAAAA,MAAAO,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAP,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAQ,EAAAA;AAAA,EAAA,IAAAR,EAAA,CAAA,CAAA,KAAAE,mBAAAF,CAAAA,QAAAO,EAAAA,EAAA;AAJoEC,IAAAA,EAAAA,GAAA;AAAA,MAAAK,UAAAA,EACzDN,EAAAA;AAAAA,MAGX,GACEL;AAAAA,KACL;AAACF,IAAAA,CAAAA,MAAAE,eAAAA;AAAAF,IAAAA,CAAAA,MAAAO,EAAAA;AAAAP,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OANMc,YAAgEN,EAMtE,CAAA;AAAC;;;;"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { encodeFunctionData } from 'viem/utils';
|
|
2
2
|
|
|
3
|
+
function isSwapTradeFlowType(tradeFlowType) {
|
|
4
|
+
return tradeFlowType === "marketSwap" || tradeFlowType === "deltaOrder";
|
|
5
|
+
}
|
|
3
6
|
function isOrderTradeFlowType(tradeFlowType) {
|
|
4
7
|
return tradeFlowType === "limitOrder" || tradeFlowType === "otcOrder" || tradeFlowType === "fillOtcOrder";
|
|
5
8
|
}
|
|
@@ -17,5 +20,5 @@ const depositWETHCalldata = encodeFunctionData({
|
|
|
17
20
|
args: []
|
|
18
21
|
});
|
|
19
22
|
|
|
20
|
-
export { depositWETHCalldata, isOrderTradeFlowType };
|
|
23
|
+
export { depositWETHCalldata, isOrderTradeFlowType, isSwapTradeFlowType };
|
|
21
24
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/utils.ts"],"sourcesContent":["import { encodeFunctionData } from \"viem/utils\";\nimport type {\n TradeFlowType,\n OrderTradeFlowType,\n SwapTradeFlowType,\n} from \"./types\";\n\nexport function isSwapTradeFlowType(\n tradeFlowType: TradeFlowType\n): tradeFlowType is SwapTradeFlowType {\n return tradeFlowType === \"marketSwap\" || tradeFlowType === \"deltaOrder\";\n}\n\nexport function isOrderTradeFlowType(\n tradeFlowType: TradeFlowType\n): tradeFlowType is OrderTradeFlowType {\n return (\n tradeFlowType === \"limitOrder\" ||\n tradeFlowType === \"otcOrder\" ||\n tradeFlowType === \"fillOtcOrder\"\n );\n}\n\nconst WETHMinAbi = [\n {\n inputs: [],\n name: \"deposit\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n] as const;\n\nexport const depositWETHCalldata = encodeFunctionData({\n abi: WETHMinAbi,\n functionName: \"deposit\",\n args: [],\n});\n"],"names":["
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/utils.ts"],"sourcesContent":["import { encodeFunctionData } from \"viem/utils\";\nimport type {\n TradeFlowType,\n OrderTradeFlowType,\n SwapTradeFlowType,\n} from \"./types\";\n\nexport function isSwapTradeFlowType(\n tradeFlowType: TradeFlowType\n): tradeFlowType is SwapTradeFlowType {\n return tradeFlowType === \"marketSwap\" || tradeFlowType === \"deltaOrder\";\n}\n\nexport function isOrderTradeFlowType(\n tradeFlowType: TradeFlowType\n): tradeFlowType is OrderTradeFlowType {\n return (\n tradeFlowType === \"limitOrder\" ||\n tradeFlowType === \"otcOrder\" ||\n tradeFlowType === \"fillOtcOrder\"\n );\n}\n\nconst WETHMinAbi = [\n {\n inputs: [],\n name: \"deposit\",\n outputs: [],\n payable: true,\n stateMutability: \"payable\",\n type: \"function\",\n },\n] as const;\n\nexport const depositWETHCalldata = encodeFunctionData({\n abi: WETHMinAbi,\n functionName: \"deposit\",\n args: [],\n});\n"],"names":["isSwapTradeFlowType","tradeFlowType","isOrderTradeFlowType","WETHMinAbi","inputs","name","outputs","payable","stateMutability","type","depositWETHCalldata","encodeFunctionData","abi","functionName","args"],"mappings":";;AAOO,SAASA,oBACdC,aAAAA,EACoC;AACpC,EAAA,OAAOA,aAAAA,KAAkB,gBAAgBA,aAAAA,KAAkB,YAAA;AAC7D;AAEO,SAASC,qBACdD,aAAAA,EACqC;AACrC,EAAA,OACEA,aAAAA,KAAkB,YAAA,IAClBA,aAAAA,KAAkB,UAAA,IAClBA,aAAAA,KAAkB,cAAA;AAEtB;AAEA,MAAME,aAAa,CACjB;AAAA,EACEC,QAAQ,EAAA;AAAA,EACRC,IAAAA,EAAM,SAAA;AAAA,EACNC,SAAS,EAAA;AAAA,EACTC,OAAAA,EAAS,IAAA;AAAA,EACTC,eAAAA,EAAiB,SAAA;AAAA,EACjBC,IAAAA,EAAM;AACR,CAAC,CAAA;AAGI,MAAMC,sBAAsBC,kBAAAA,CAAmB;AAAA,EACpDC,GAAAA,EAAKT,UAAAA;AAAAA,EACLU,YAAAA,EAAc,SAAA;AAAA,EACdC,MAAM;AACR,CAAC;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BridgePrice, DeltaPrice } from '@velora-dex/sdk';
|
|
1
|
+
import { BridgePrice, DeltaAuction, DeltaPrice } from '@velora-dex/sdk';
|
|
2
2
|
import { Address } from 'viem';
|
|
3
3
|
import { SubmittedDeltaOrderFromAPI } from '../prices/delta/queries/useDeltaOrders';
|
|
4
4
|
import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult } from './common/types';
|
|
@@ -67,6 +67,7 @@ export type UseDeltaFlowResult = {
|
|
|
67
67
|
error: Error | null;
|
|
68
68
|
result?: SubmitDeltaOrderResult;
|
|
69
69
|
usedPrice?: DeltaPrice | BridgePrice;
|
|
70
|
+
submittedDeltaOrder?: Omit<DeltaAuction, 'signature' | 'transactions'>;
|
|
70
71
|
};
|
|
71
72
|
export declare function useDeltaFlow({ deltaPrice, preWrapETH, }: UseDeltaFlowInput): UseDeltaFlowResult;
|
|
72
73
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"useDeltaFlow.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -333,6 +333,7 @@ function useDeltaFlow({
|
|
|
333
333
|
let orderFromAPI;
|
|
334
334
|
const createOrderInput = {
|
|
335
335
|
signal,
|
|
336
|
+
type: "MARKET",
|
|
336
337
|
orderInput: {
|
|
337
338
|
owner: account,
|
|
338
339
|
beneficiary: receiverAddress,
|
|
@@ -343,7 +344,8 @@ function useDeltaFlow({
|
|
|
343
344
|
deltaPrice: deltaPriceToUse,
|
|
344
345
|
partner,
|
|
345
346
|
...amountsAfterSlippage_0,
|
|
346
|
-
deadline: Number(orderDeadline)
|
|
347
|
+
deadline: Number(orderDeadline),
|
|
348
|
+
side: swapSide
|
|
347
349
|
}
|
|
348
350
|
};
|
|
349
351
|
if (!shouldPreSignBatch) {
|
|
@@ -450,6 +452,8 @@ function useDeltaFlow({
|
|
|
450
452
|
return runDeltaOrderFlow(options);
|
|
451
453
|
};
|
|
452
454
|
const usedPrice = usingPriceRef.current || deltaPrice;
|
|
455
|
+
const result = deltaOrderMut.data;
|
|
456
|
+
const submittedDeltaOrder = result?.deltaOrder.lastOrderState || result?.deltaOrder.sentOrder || deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder;
|
|
453
457
|
return {
|
|
454
458
|
tradeFlowType: deltaOrderFlowType,
|
|
455
459
|
chainId,
|
|
@@ -468,8 +472,9 @@ function useDeltaFlow({
|
|
|
468
472
|
// approval is an optional step
|
|
469
473
|
isError: deltaOrderMut.isError,
|
|
470
474
|
error: deltaOrderMut.error,
|
|
471
|
-
result
|
|
472
|
-
usedPrice
|
|
475
|
+
result,
|
|
476
|
+
usedPrice,
|
|
477
|
+
submittedDeltaOrder
|
|
473
478
|
};
|
|
474
479
|
}
|
|
475
480
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport { useCreateDeltaOrder } from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQueryForPrice,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/queries/utils\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n preWrapETH,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage(\"swap\");\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\n const swapSideFromInput = useSwapSide();\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n const queryClient = useQueryClient();\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted({\n onAuctionSuccess: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n });\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const partner = usePartner();\n\n const getQueryForPrice = useDeltaPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\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 createOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(deltaPrice, \"Delta price is not available\");\n const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher amount if BUY with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\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({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\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,\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 // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide\n );\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n const createOrderInput = {\n signal,\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n partner,\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n },\n };\n\n if (!shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n } else {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n preWrapETH,\n onTxSent,\n });\n }\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n reset();\n return runDeltaOrderFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result: deltaOrderMut.data,\n usedPrice,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","preWrapETH","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSideFromInput","useSwapSide","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","ensureOrderExecuted","useEnsureDeltaOrderExecuted","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","usePartner","getQueryForPrice","useDeltaPriceQueryForPrice","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","price","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","receivedDestAmount","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","destChainId","isBridgePrice","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","orderInput","owner","beneficiary","destToken","Number","mutateAsync","createDeltaOrderInput","lastOrderStatePromise","tradeFlowType","approve","receipt","deltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","result"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDeltaFlow.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaFlow.ts"],"sourcesContent":["import type {\n BridgePrice,\n DeltaAuction,\n DeltaOrderApiResponse,\n DeltaPrice,\n} from \"@velora-dex/sdk\";\nimport { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport type { Address, Hash, TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../prices/delta/queries/useDeltaOrders\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"./common/types\";\nimport {\n useCreateDeltaOrder,\n type CreateDeltaOrderInput,\n} from \"../prices/delta/mutations/useCreateDeltaOrder\";\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport {\n useEnsureDeltaOrderExecuted,\n useWatchDeltaAuction,\n type MaybeVeloraDeltaAuction,\n} from \"../prices/delta/queries/useWatchDeltaOrder\";\nimport { getOverallOrderStatus } from \"../prices/delta/orders/utils\";\nimport { applySlippage } from \"@/lib/utils/price\";\nimport { useSlippage } from \"@/hooks/useSlippage\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"./common/errors\";\nimport { useSwapReceiverAddressValue } from \"@/components/widget/ReceiverAddress/state/receiverAddressAtom\";\nimport type {\n CallsSentObject,\n TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport type { OrderSentObject } from \"@/lib/utils/toasts\";\nimport { useApproveOrPermit } from \"./common/useApproveOrPermit\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"./common/useSignPermit1Or2\";\nimport { produceDeltaOrderDeadline } from \"@/hooks/permit/utils/deadlines\";\nimport { encodePermit2TransferFromSigDataForDelta } from \"@/hooks/permit/utils/encodeArgs\";\nimport { useLogger } from \"@/core/logger\";\nimport {\n isBridgePrice,\n useDeltaPriceQueryForPrice,\n useSubscribeToDeltaPrice,\n} from \"../prices/delta/queries/useDeltaPriceQuery\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport {\n shouldApproveOrBatch,\n usePreSignAndSubmitDeltaOrder,\n type DeltaOrderPreSignResult,\n} from \"./common/usePreSignAndSubmitDeltaOrder\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport { getSwapSideFromDeltaPrice } from \"../prices/delta/queries/utils\";\n\nconst deltaOrderFlowType = \"deltaOrder\";\n\nexport type UseDeltaFlowInput = {\n deltaPrice?: DeltaPrice | BridgePrice;\n preWrapETH?: boolean;\n};\n\nexport type SubmitDeltaOrderResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n approve: SubmitTxResult;\n deltaOrder: {\n sentOrder: SubmittedDeltaOrderFromAPI;\n lastOrderState: MaybeVeloraDeltaAuction;\n };\n deltaPrice: DeltaPrice | BridgePrice;\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype OnOrderSent = (orderSent: OrderSentObject) => void;\n\n// @TODO instead add global onTxSent subscription to\n// MutationCache({onSuccess: txHash}) when sent\n// and QueryCache({onSuccess: txReceipt|Order executed}) when mined,\n// maybe??\ntype RunDeltaOrderOptions = {\n onTxSent?: OnTxSent;\n onOrderSent?: OnOrderSent;\n};\n\ntype DeltaOrderSubmissionResult = {\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype DeltaOrderExecutionResult = {\n sentOrder?: SubmittedDeltaOrderFromAPI;\n lastOrderState?: MaybeVeloraDeltaAuction;\n isOrderPending: boolean;\n isOrderExecuting: boolean;\n isOrderExecuted: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\nexport type UseDeltaFlowResult = {\n tradeFlowType: typeof deltaOrderFlowType;\n chainId: SupportedChainId;\n runDeltaOrderFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunDeltaOrderOptions\n ) => Promise<SubmitDeltaOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n deltaOrderPreSign: DeltaOrderPreSignResult;\n // submission represents either normal signing and POSTing of Order or pre-signing (in a tx) and POSTing\n deltaOrderSubmission: DeltaOrderSubmissionResult;\n deltaOrderExecution: DeltaOrderExecutionResult;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitDeltaOrderResult;\n usedPrice?: DeltaPrice | BridgePrice;\n submittedDeltaOrder?: Omit<DeltaAuction, 'signature'|'transactions'>;\n};\n\nconst DELTA_ORDER_MUTATION_KEY = \"runDeltaOrderFlow\";\n\nexport function useDeltaFlow({\n deltaPrice,\n preWrapETH,\n}: UseDeltaFlowInput): UseDeltaFlowResult {\n const logger = useLogger(\"DeltaFlow\");\n const chainId = useChainId();\n const { resolvedSlippage } = useSlippage(\"swap\");\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\n const swapSideFromInput = useSwapSide();\n\n const {\n approval,\n signPermit,\n approveTxMut,\n signPermitMut,\n events: approveOrPermitEvents,\n } = useApproveOrPermit({\n srcToken: deltaPrice?.srcToken,\n srcAmount: deltaPrice?.srcAmount,\n spenderContractType: \"ParaswapDelta\",\n swapSide:\n (deltaPrice && getSwapSideFromDeltaPrice(deltaPrice)) ||\n swapSideFromInput,\n tradeMode: \"swap\",\n });\n\n /* 4.1. Build and Submit Delta Order */\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n const queryClient = useQueryClient();\n\n const createOrderMut = useCreateDeltaOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Create Delta Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderCreateAndSubmit: UseDeltaFlowResult[\"deltaOrderSubmission\"] =\n {\n order: createOrderMut.data,\n isCreatingOrder: createOrderMut.isPending,\n isOrderSent: createOrderMut.isSuccess,\n isPending: createOrderMut.isPending,\n isError: createOrderMut.isError,\n isSuccess: createOrderMut.isSuccess,\n error: createOrderMut.error,\n };\n\n /* 4.2.\n 1. submit Batch tx (Approve + Delta pre-sign)\n 2. await Batch tx\n 3. post Pre-signed Order\n */\n\n const {\n deltaOrderPreSign,\n canBatchTxs,\n isConnectedToSafe,\n preSignAndSubmitDeltaOrder,\n reset: resetPreSignAndSubmitDeltaOrder,\n } = usePreSignAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient: minClient,\n });\n\n /* final Delta Order submission for step 4 */\n const deltaOrderSubmission: UseDeltaFlowResult[\"deltaOrderSubmission\"] = {\n order: deltaOrderCreateAndSubmit.order || deltaOrderPreSign.order,\n isCreatingOrder:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isCreatingOrder,\n isOrderSent:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isOrderSent,\n isPending:\n deltaOrderCreateAndSubmit.isPending || deltaOrderPreSign.isPending,\n isError: deltaOrderCreateAndSubmit.isError || deltaOrderPreSign.isError,\n isSuccess:\n deltaOrderCreateAndSubmit.isSuccess || deltaOrderPreSign.isSuccess,\n error: deltaOrderCreateAndSubmit.error || deltaOrderPreSign.error,\n };\n\n /* 5. await Order execution */\n\n const watchOrderExecution = useWatchDeltaAuction({\n orderId: deltaOrderSubmission.order?.id,\n onAuctionSuccess: (order) => {\n logger.log(\"Delta Order success\", order);\n },\n onAuctionFailure: (order) => {\n logger.log(\"Delta Order failure\", order);\n },\n onUpdatedAuction: (order) => {\n logger.log(\"Delta Order updated\", order);\n },\n onTimeoutGettingOrder: (order) => {\n logger.log(\"Delta Order timeout\", order);\n },\n });\n\n const orderStatus = watchOrderExecution.data\n ? getOverallOrderStatus(watchOrderExecution.data)\n : null;\n\n // refetching stops after one minute of not finding an order (order==null)\n const neverFetchedFinishedOrder =\n watchOrderExecution.data === null && watchOrderExecution.isSuccess;\n\n const deltaOrderExecution: UseDeltaFlowResult[\"deltaOrderExecution\"] = {\n sentOrder: deltaOrderSubmission.order,\n lastOrderState: watchOrderExecution.data,\n isOrderPending: orderStatus === \"pending\",\n isOrderExecuting: orderStatus === \"executing\",\n isOrderExecuted: orderStatus === \"confirmed\",\n isPending:\n watchOrderExecution.isLoading ||\n watchOrderExecution.isRefetching ||\n orderStatus === \"pending\" ||\n orderStatus === \"executing\",\n isError:\n watchOrderExecution.isError ||\n orderStatus === \"failed\" ||\n neverFetchedFinishedOrder,\n isSuccess: orderStatus === \"confirmed\",\n error: watchOrderExecution.error,\n };\n\n const ensureOrderExecuted = useEnsureDeltaOrderExecuted({\n onAuctionSuccess: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onAuctionFailure: (order) => {\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n });\n const ensureTxReceipt = useEnsureTxReceipt();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n const usingPriceRef = useRef<DeltaPrice | BridgePrice | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n\n usingPriceRef.current = null;\n };\n\n const receiverAddress = useSwapReceiverAddressValue();\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const partner = usePartner();\n\n const getQueryForPrice = useDeltaPriceQueryForPrice();\n const subscribeToPrice = useSubscribeToDeltaPrice();\n\n const { onSwap } = useWidgetEvents();\n\n const submitDeltaOrder = async ({\n onTxSent,\n onOrderSent,\n }: RunDeltaOrderOptions = {}): Promise<SubmitDeltaOrderResult> => {\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 createOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n\n // no sense in starting flow without a price,\n // which may be unavailable only if we are retrying and deltaPrice response now returns an error.\n // Otherwise this flow will be stopped by disabling Swap button in the first place\n assert(deltaPrice, \"Delta price is not available\");\n const swapSide = getSwapSideFromDeltaPrice(deltaPrice);\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n // on Delta the order.deadline must exactly match permit2.deadline\n const orderDeadline = produceDeltaOrderDeadline();\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n // at this point this is the syncronously available price\n const allowanceToSet = approval.allowanceToSet;\n // we use this allowance as a max allowance we will accept new prices for\n\n // deltaPrice here is the starting price, available before async code and waiting\n let freshPrice = deltaPrice;\n let unsubscribeFromPrice: (() => void) | undefined;\n // this also resets previous usingPriceRef\n usingPriceRef.current = freshPrice;\n\n /*\n if connected to Safe, or needs to approve a token with a tx, or needs to pre-wrap ETH\n and can batch txs, then pre-sign the batch;\n that way Safe does only one action (wrapETH?+Approve+setPreSignature batch tx)\n and a wallet that would otherwise potentially wrap ETH and then Approve Token (tx, not Permit),\n and then sign Order, basically has to make at least one tx, does only one action as well.\n */\n const { shouldDoApprovalTxOrPermit, tryPermit, shouldPreSignBatch } =\n shouldApproveOrBatch({\n approval,\n preWrapETH,\n signPermit,\n canBatchTxs,\n isConnectedToSafe,\n });\n\n try {\n if (shouldDoApprovalTxOrPermit && allowanceToSet) {\n // queryKey used to fetch the current price,\n // it will be used for the subsequent price refetches as long as price params not changed\n const queryKey = getQueryForPrice({\n chainId,\n price: freshPrice,\n })?.queryKey;\n\n // should always be available\n if (queryKey) {\n // freeze allowanceToSet\n const approvedAmount = allowanceToSet;\n\n // subscribe to price updates to keep track of new prices for the same price params,\n // independently of the hook itself\n unsubscribeFromPrice = subscribeToPrice({\n queryKey,\n onData: (newPrice) => {\n if (signal.aborted) {\n // just in case unsubscribe in finally is not yet called\n // for the queued update with the price from an already cancelled flow\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n return;\n }\n\n // slightly higher srcAmount if BUY with slippage,\n // slightly lower destAmount if SELL with slippage\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: newPrice.srcAmount,\n destAmount: newPrice.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide\n );\n\n // if new price fits into allowance, update it\n if (approvedAmount >= BigInt(amountsAfterSlippage.srcAmount)) {\n logger.log(\"~ fresh price ~\", newPrice);\n freshPrice = newPrice;\n usingPriceRef.current = freshPrice;\n }\n },\n });\n }\n\n try {\n if (!tryPermit) {\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({ allowanceToSet });\n\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n deadline: orderDeadline,\n value: allowanceToSet,\n });\n\n approveOrPermitEvents.onSignPermit.confirmed({\n allowanceToSet,\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,\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 // as long as we had set approvedAmount, we will only get new prices that satisfy the allowance\n const deltaPriceToUse = freshPrice;\n usingPriceRef.current = deltaPriceToUse;\n // no longer need updates, unsubscribe\n unsubscribeFromPrice?.();\n unsubscribeFromPrice = undefined;\n\n assert(deltaPriceToUse, \"Delta price is not available\");\n\n const amountsAfterSlippage = applySlippage(\n {\n srcAmount: deltaPriceToUse.srcAmount,\n destAmount: deltaPriceToUse.receivedDestAmount,\n },\n resolvedSlippage,\n swapSide\n );\n\n let permit = signedPermitResult?.permitEncodedArgs;\n if (\n signedPermitResult?.signedPermitData.type === \"permit2\" &&\n signedPermitResult.signedPermitData.variant === \"transferFrom\"\n ) {\n // In the Delta Contract, specifically for Permit2 transferFrom, we have signature consisting of\n // bytes32(permit2nonce) + bytes64(signature) = bytes96 Permit2 Transfer format\n permit = encodePermit2TransferFromSigDataForDelta({\n nonce: signedPermitResult.signedPermitData.nonce,\n signature: signedPermitResult.signature,\n });\n }\n\n const destChainId = isBridgePrice(deltaPriceToUse)\n ? deltaPriceToUse.bridge.destinationChainId\n : chainId;\n\n onSwap?.({\n event: {\n name: \"Swap:request\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n },\n },\n });\n\n let orderFromAPI: DeltaOrderApiResponse;\n\n const createOrderInput: CreateDeltaOrderInput = {\n signal,\n type: \"MARKET\",\n orderInput: {\n owner: account,\n beneficiary: receiverAddress,\n srcToken: deltaPriceToUse.srcToken,\n destToken: deltaPriceToUse.destToken,\n permit,\n destChainId,\n deltaPrice: deltaPriceToUse,\n partner,\n ...amountsAfterSlippage,\n deadline: Number(orderDeadline),\n side: swapSide,\n },\n };\n\n if (!shouldPreSignBatch) {\n // creating signing and POSTing the Order all together in one mutation\n orderFromAPI = await createOrderMut.mutateAsync(createOrderInput);\n } else {\n // prepare Order for pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.setPreSignature(orderHash, true) tx calldata\n\n orderFromAPI = await preSignAndSubmitDeltaOrder({\n createDeltaOrderInput: createOrderInput,\n approval,\n preWrapETH,\n onTxSent,\n });\n }\n\n // Order is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n onSwap?.({\n event: {\n name: \"Swap:sent\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // will refetch Order on interval until completed.\n // in parallel with useWatchDeltaAuction but independently if useWatchDeltaAuction is unmounted\n const lastOrderStatePromise = ensureOrderExecuted({\n orderId: orderFromAPI.id,\n // signal, // fails the toast if aborted, don't use\n });\n\n if (onOrderSent) {\n onOrderSent({\n order: orderFromAPI,\n lastOrderState: lastOrderStatePromise,\n });\n }\n\n const lastOrderState = await lastOrderStatePromise;\n\n onSwap?.({\n event: {\n name: \"Swap:confirmed\",\n params: {\n swapMode: \"delta\",\n price: deltaPriceToUse,\n order: orderFromAPI,\n },\n },\n });\n\n // no use aborting past this point, Order is already being processed\n\n // @TODO check if we need to see if receipt.status === \"reverted\" and trhow,\n // or if waitForTransactionReceipt already throws on such receipts\n\n // @TODO try catch, handle errors, refetch allowance and balance in finally\n\n return {\n tradeFlowType: deltaOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n deltaOrder: {\n sentOrder: orderFromAPI,\n lastOrderState,\n },\n deltaPrice: deltaPriceToUse,\n // @TODO add whatever else may be relevant\n account,\n receiverAddress,\n };\n } catch (error) {\n // Order failed, we can't be sure if nonce can be reused or it was incremented in a different Order\n // or even a Market swap tx in the meantime\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n onSwap?.({\n event: {\n name: \"Swap:failed\",\n params: {\n swapMode: \"delta\",\n error: error as Error,\n },\n },\n });\n\n throw error;\n } finally {\n // always unsubscribe if subscribed previously\n unsubscribeFromPrice?.();\n }\n };\n\n const deltaOrderMut = useMutation({\n mutationFn: submitDeltaOrder,\n mutationKey: [DELTA_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Delta Order success\", data);\n },\n onError: (error) => {\n logger.error(\"Delta Order error\", error);\n },\n onSettled: () => {\n logger.log(\"Delta Order settled\");\n },\n });\n\n const runDeltaOrderFlow = deltaOrderMut.mutateAsync;\n\n const reset = () => {\n usingPriceRef.current = null;\n\n approveTxMut.reset();\n signPermitMut.reset();\n createOrderMut.reset();\n deltaOrderMut.reset();\n resetPreSignAndSubmitDeltaOrder();\n };\n\n const retryFlow = (\n options?: RunDeltaOrderOptions\n ): Promise<SubmitDeltaOrderResult> => {\n reset();\n return runDeltaOrderFlow(options);\n };\n\n // finalPrice if we reached that point, or usable price (based on allowance given)\n const usedPrice: typeof deltaPrice = usingPriceRef.current || deltaPrice;\n\n const result = deltaOrderMut.data;\n\n const submittedDeltaOrder: Omit<DeltaAuction, 'signature'|'transactions'> | undefined = result?.deltaOrder.lastOrderState || result?.deltaOrder.sentOrder ||\n deltaOrderExecution.lastOrderState || deltaOrderExecution.sentOrder;\n\n /* 6. return result */\n return {\n tradeFlowType: deltaOrderFlowType,\n chainId,\n runDeltaOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n deltaOrderPreSign,\n deltaOrderSubmission,\n deltaOrderExecution,\n // deltaOrderMut includes all steps' queries and mutations and returns more precise errors (including cancellation)\n isPending: deltaOrderMut.isPending,\n isSuccess: deltaOrderSubmission.isSuccess && deltaOrderExecution.isSuccess, // approval is an optional step\n isError: deltaOrderMut.isError,\n error: deltaOrderMut.error,\n result,\n usedPrice,\n submittedDeltaOrder,\n };\n}\n"],"names":["deltaOrderFlowType","DELTA_ORDER_MUTATION_KEY","useDeltaFlow","deltaPrice","preWrapETH","logger","useLogger","chainId","useChainId","resolvedSlippage","useSlippage","swapSideFromInput","useSwapSide","approval","signPermit","approveTxMut","signPermitMut","events","approveOrPermitEvents","useApproveOrPermit","srcToken","srcAmount","spenderContractType","swapSide","getSwapSideFromDeltaPrice","tradeMode","address","account","useAccount","minClient","useMinViemClient","queryClient","useQueryClient","createOrderMut","useCreateDeltaOrder","client","mutationOptions","onSuccess","order","log","onError","error","deltaOrderCreateAndSubmit","data","isCreatingOrder","isPending","isOrderSent","isSuccess","isError","deltaOrderPreSign","canBatchTxs","isConnectedToSafe","preSignAndSubmitDeltaOrder","reset","resetPreSignAndSubmitDeltaOrder","usePreSignAndSubmitDeltaOrder","viemClient","deltaOrderSubmission","watchOrderExecution","useWatchDeltaAuction","orderId","id","onAuctionSuccess","onAuctionFailure","onUpdatedAuction","onTimeoutGettingOrder","orderStatus","getOverallOrderStatus","neverFetchedFinishedOrder","deltaOrderExecution","sentOrder","lastOrderState","isOrderPending","isOrderExecuting","isOrderExecuted","isLoading","isRefetching","ensureOrderExecuted","useEnsureDeltaOrderExecuted","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","ensureTxReceipt","useEnsureTxReceipt","currentAbortControllerRef","useRef","usingPriceRef","cancelFlow","current","abort","UserCancelledError","receiverAddress","useSwapReceiverAddressValue","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","partner","usePartner","getQueryForPrice","useDeltaPriceQueryForPrice","subscribeToPrice","useSubscribeToDeltaPrice","onSwap","useWidgetEvents","submitDeltaOrder","onTxSent","onOrderSent","assert","abortController","AbortController","signal","orderDeadline","produceDeltaOrderDeadline","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","freshPrice","unsubscribeFromPrice","shouldDoApprovalTxOrPermit","tryPermit","shouldPreSignBatch","shouldApproveOrBatch","price","approvedAmount","onData","newPrice","aborted","undefined","amountsAfterSlippage","applySlippage","destAmount","receivedDestAmount","BigInt","onApproveTx","request","approveAsync","allowanceData","sent","txHash","throwIfAborted","approveTxReceiptPromise","hash","onReplaced","action","transactionHash","receiptPromise","transactionSpecificData","tokenAddress","token","spenderAddress","spender","confirmed","txReceipt","onSignPermit","signPermitAsync","deadline","value","permit","permitEncodedArgs","failed","deltaPriceToUse","signedPermitData","type","variant","encodePermit2TransferFromSigDataForDelta","nonce","signature","destChainId","isBridgePrice","bridge","destinationChainId","event","name","params","swapMode","orderFromAPI","createOrderInput","orderInput","owner","beneficiary","destToken","Number","side","mutateAsync","createDeltaOrderInput","lastOrderStatePromise","tradeFlowType","approve","receipt","deltaOrder","deltaOrderMut","useMutation","mutationFn","mutationKey","onSettled","runDeltaOrderFlow","retryFlow","options","usedPrice","result","submittedDeltaOrder"],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ type UseDeltaSwapStepResult = {
|
|
|
12
12
|
erroredStep?: DeltaOrderStepKey;
|
|
13
13
|
result?: SubmitDeltaOrderResult;
|
|
14
14
|
usedPrice: UseDeltaFlowResult["usedPrice"];
|
|
15
|
+
submittedDeltaOrder: UseDeltaFlowResult["submittedDeltaOrder"];
|
|
15
16
|
tradeFlowType: UseDeltaFlowResult["tradeFlowType"];
|
|
16
17
|
};
|
|
17
18
|
export declare function useDeltaSwapStep(options: UseDeltaFlowInput): UseDeltaSwapStepResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAKxB,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAExD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,GACzB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"useDeltaSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAKxB,KAAK,sBAAsB,GAAG;IAC5B,cAAc,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAExD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC7C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,mBAAmB,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAC/D,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,GACzB,sBAAsB,CAoHxB"}
|
|
@@ -5,7 +5,7 @@ import { constructExplorerOrderDetailsLink } from '../../../lib/utils/explorer.j
|
|
|
5
5
|
import { isUserCancelledError } from './common/errors.js';
|
|
6
6
|
|
|
7
7
|
function useDeltaSwapStep(options) {
|
|
8
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(21);
|
|
9
9
|
const logger = useLogger("DeltaSwapStep");
|
|
10
10
|
const deltaFlow = useDeltaFlow(options);
|
|
11
11
|
const startDeltaSwap = deltaFlow.runDeltaOrderFlow;
|
|
@@ -93,9 +93,10 @@ function useDeltaSwapStep(options) {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
let t1;
|
|
96
|
-
if ($[7] !== cancelFlow || $[8] !== deltaFlow.result || $[9] !== deltaFlow.
|
|
96
|
+
if ($[7] !== cancelFlow || $[8] !== deltaFlow.result || $[9] !== deltaFlow.submittedDeltaOrder || $[10] !== deltaFlow.tradeFlowType || $[11] !== deltaFlow.usedPrice || $[12] !== error || $[13] !== erroredStep || $[14] !== explorerLink || $[15] !== isFlowCancellable || $[16] !== reset || $[17] !== retryFlow || $[18] !== startDeltaSwap || $[19] !== step) {
|
|
97
97
|
t1 = {
|
|
98
98
|
usedPrice: deltaFlow.usedPrice,
|
|
99
|
+
submittedDeltaOrder: deltaFlow.submittedDeltaOrder,
|
|
99
100
|
startDeltaSwap,
|
|
100
101
|
reset,
|
|
101
102
|
cancelFlow,
|
|
@@ -110,19 +111,20 @@ function useDeltaSwapStep(options) {
|
|
|
110
111
|
};
|
|
111
112
|
$[7] = cancelFlow;
|
|
112
113
|
$[8] = deltaFlow.result;
|
|
113
|
-
$[9] = deltaFlow.
|
|
114
|
-
$[10] = deltaFlow.
|
|
115
|
-
$[11] =
|
|
116
|
-
$[12] =
|
|
117
|
-
$[13] =
|
|
118
|
-
$[14] =
|
|
119
|
-
$[15] =
|
|
120
|
-
$[16] =
|
|
121
|
-
$[17] =
|
|
122
|
-
$[18] =
|
|
123
|
-
$[19] =
|
|
114
|
+
$[9] = deltaFlow.submittedDeltaOrder;
|
|
115
|
+
$[10] = deltaFlow.tradeFlowType;
|
|
116
|
+
$[11] = deltaFlow.usedPrice;
|
|
117
|
+
$[12] = error;
|
|
118
|
+
$[13] = erroredStep;
|
|
119
|
+
$[14] = explorerLink;
|
|
120
|
+
$[15] = isFlowCancellable;
|
|
121
|
+
$[16] = reset;
|
|
122
|
+
$[17] = retryFlow;
|
|
123
|
+
$[18] = startDeltaSwap;
|
|
124
|
+
$[19] = step;
|
|
125
|
+
$[20] = t1;
|
|
124
126
|
} else {
|
|
125
|
-
t1 = $[
|
|
127
|
+
t1 = $[20];
|
|
126
128
|
}
|
|
127
129
|
return t1;
|
|
128
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type {\n DeltaOrderStep,\n DeltaOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n retryFlow: UseDeltaFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n step?: DeltaOrderStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\n tradeFlowType: UseDeltaFlowResult[\"tradeFlowType\"];\n};\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput\n): UseDeltaSwapStepResult {\n const logger = useLogger(\"DeltaSwapStep\");\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n const retryFlow = deltaFlow.retryFlow;\n\n let step: DeltaOrderStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n const permitOrApprovalHappened = !!(\n deltaFlow.approval.txHash || deltaFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n const orderStatus = deltaFlow.deltaOrderExecution.lastOrderState?.status;\n const notYetRunning = !orderStatus || orderStatus === \"NOT_STARTED\";\n step = {\n key: notYetRunning ? \"auction\" : \"order-execution\",\n };\n } else if (deltaFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n deltaFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n let erroredStep: DeltaOrderStepKey | undefined;\n\n if (deltaFlow.isError) {\n if (deltaFlow.approval.isError || deltaFlow.signPermit.isError) {\n erroredStep = \"signature\";\n } else if (deltaFlow.deltaOrderSubmission.isError) {\n erroredStep = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isError) {\n erroredStep = \"order-execution\";\n }\n }\n\n return {\n usedPrice: deltaFlow.usedPrice,\n startDeltaSwap,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: deltaFlow.result,\n tradeFlowType: deltaFlow.tradeFlowType,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","permitOrApprovalHappened","txHash","signature","deltaOrderExecution","orderStatus","lastOrderState","status","notYetRunning","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","t1","result","tradeFlowType","usedPrice"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDeltaSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useDeltaSwapStep.ts"],"sourcesContent":["import type {\n DeltaOrderStep,\n DeltaOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useDeltaFlow,\n type SubmitDeltaOrderResult,\n type UseDeltaFlowInput,\n type UseDeltaFlowResult,\n} from \"./useDeltaFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { constructExplorerOrderDetailsLink } from \"@/lib/utils/explorer\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseDeltaSwapStepResult = {\n startDeltaSwap: UseDeltaFlowResult[\"runDeltaOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseDeltaFlowResult[\"reset\"];\n cancelFlow: UseDeltaFlowResult[\"cancelFlow\"];\n retryFlow: UseDeltaFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n step?: DeltaOrderStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: DeltaOrderStepKey;\n result?: SubmitDeltaOrderResult;\n usedPrice: UseDeltaFlowResult[\"usedPrice\"];\n submittedDeltaOrder: UseDeltaFlowResult[\"submittedDeltaOrder\"];\n tradeFlowType: UseDeltaFlowResult[\"tradeFlowType\"];\n};\n\nexport function useDeltaSwapStep(\n options: UseDeltaFlowInput,\n): UseDeltaSwapStepResult {\n const logger = useLogger(\"DeltaSwapStep\");\n const deltaFlow = useDeltaFlow(options);\n\n const startDeltaSwap = deltaFlow.runDeltaOrderFlow;\n const reset = deltaFlow.reset;\n const cancelFlow = deltaFlow.cancelFlow;\n const retryFlow = deltaFlow.retryFlow;\n\n let step: DeltaOrderStep | undefined;\n\n const permitSigningHappeningOrNeverHappened =\n // isPending starts as false,\n // so we can use !isPermitSigned to detect if Permit signing is happening or never happened\n deltaFlow.signPermit.isPending || !deltaFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n deltaFlow.approval.isPending || !deltaFlow.approval.isSuccess;\n\n const willUsePermit =\n deltaFlow.approval.needsApproval &&\n deltaFlow.signPermit.isPermitSupported &&\n deltaFlow.signPermit.isPermitReadyToSign;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n deltaFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (deltaFlow.deltaOrderSubmission.isPending) {\n const permitOrApprovalHappened = !!(\n deltaFlow.approval.txHash || deltaFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (deltaFlow.deltaOrderExecution.isPending) {\n const orderStatus = deltaFlow.deltaOrderExecution.lastOrderState?.status;\n const notYetRunning = !orderStatus || orderStatus === \"NOT_STARTED\";\n step = {\n key: notYetRunning ? \"auction\" : \"order-execution\",\n };\n } else if (deltaFlow.isPending) {\n // if something is between steps but not clear step,\n // then assume we're at the standalone signature sub-step\n step = { key: \"signature\", subStep: \"standalone-order-signature\" };\n }\n\n const approvalIsStarted =\n step?.key === \"signature\" &&\n step.subStep === \"approval-signature\" &&\n deltaFlow.approval.isTxPending;\n\n const isOrderBeingSigned =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const isFlowCancellable =\n // final Order is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || isOrderBeingSigned;\n\n const orderId = deltaFlow.deltaOrderSubmission.order?.id;\n const explorerLink = orderId\n ? constructExplorerOrderDetailsLink(orderId)\n : undefined;\n\n logger.once.log(\"step\", step, deltaFlow, {\n isFlowCancellable,\n explorerLink,\n orderId,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(deltaFlow.error) ? null : deltaFlow.error;\n\n let erroredStep: DeltaOrderStepKey | undefined;\n\n if (deltaFlow.isError) {\n if (deltaFlow.approval.isError || deltaFlow.signPermit.isError) {\n erroredStep = \"signature\";\n } else if (deltaFlow.deltaOrderSubmission.isError) {\n erroredStep = \"auction\";\n } else if (deltaFlow.deltaOrderExecution.isError) {\n erroredStep = \"order-execution\";\n }\n }\n\n return {\n usedPrice: deltaFlow.usedPrice,\n submittedDeltaOrder: deltaFlow.submittedDeltaOrder, // submitted or updated Delta Order\n startDeltaSwap,\n reset, // @TODO it maybe makes sense to reset mutation data when TradeOverflow drawer is closed\n // if we ever depend on mutation.result when Drawer is not closed,\n // otherwise the result sticks around until remount or next mutation start\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: deltaFlow.result,\n tradeFlowType: deltaFlow.tradeFlowType,\n };\n}\n"],"names":["useDeltaSwapStep","options","$","_c","logger","useLogger","deltaFlow","useDeltaFlow","startDeltaSwap","runDeltaOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","permitOrApprovalHappeningOrNeverHappened","deltaOrderSubmission","permitOrApprovalHappened","txHash","signature","deltaOrderExecution","orderStatus","lastOrderState","status","notYetRunning","approvalIsStarted","key","subStep","isTxPending","isOrderBeingSigned","orderId","order","id","constructExplorerOrderDetailsLink","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","t1","result","submittedDeltaOrder","tradeFlowType","usedPrice"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OptimalRate } from '@velora-dex/sdk';
|
|
2
|
+
import { BuildMarketSwapTxInput } from '../prices/market/mutations/useBuildTx';
|
|
2
3
|
import { Address, Hash, TransactionReceipt } from 'viem';
|
|
3
4
|
import { ApprovalFlowResult, SignPermitFlowResult, SubmitTxResult, BatchTxStepResult } from './common/types';
|
|
4
5
|
import { SupportedChainId } from '../../../lib/web3/wagmi/types';
|
|
@@ -7,10 +8,18 @@ declare const marketSwapFlowType = "marketSwap";
|
|
|
7
8
|
export type UseMarketFlowInput = {
|
|
8
9
|
marketPrice?: OptimalRate;
|
|
9
10
|
};
|
|
11
|
+
export type MarketSwapRequest = BuildMarketSwapTxInput & {
|
|
12
|
+
swapTxInput: {
|
|
13
|
+
srcAmount: string;
|
|
14
|
+
destAmount: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
10
17
|
export type SubmitSwapResult = {
|
|
11
18
|
tradeFlowType: typeof marketSwapFlowType;
|
|
12
19
|
approve: SubmitTxResult;
|
|
13
|
-
swap: SubmitTxResult
|
|
20
|
+
swap: SubmitTxResult & {
|
|
21
|
+
swapRequest?: MarketSwapRequest;
|
|
22
|
+
};
|
|
14
23
|
marketPrice: OptimalRate;
|
|
15
24
|
account: Address;
|
|
16
25
|
receiverAddress?: Address;
|
|
@@ -55,6 +64,7 @@ export type UseMarketFlowResult = {
|
|
|
55
64
|
error: Error | null;
|
|
56
65
|
result?: SubmitSwapResult;
|
|
57
66
|
usedPrice?: OptimalRate;
|
|
67
|
+
submittedSwapRequest?: MarketSwapRequest;
|
|
58
68
|
};
|
|
59
69
|
export declare function useMarketFlow({ marketPrice, }: UseMarketFlowInput): UseMarketFlowResult;
|
|
60
70
|
export {};
|