@velora-dex/widget 0.3.5 → 0.3.7-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts.map +1 -1
  2. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +43 -33
  3. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  4. package/dist/components/web3/ConnectExternalProvider/constants.d.ts +2 -0
  5. package/dist/components/web3/ConnectExternalProvider/constants.d.ts.map +1 -0
  6. package/dist/components/web3/ConnectExternalProvider/constants.js +4 -0
  7. package/dist/components/web3/ConnectExternalProvider/constants.js.map +1 -0
  8. package/dist/components/web3/ConnectExternalProvider/utils.d.ts +8 -0
  9. package/dist/components/web3/ConnectExternalProvider/utils.d.ts.map +1 -0
  10. package/dist/components/web3/ConnectExternalProvider/utils.js +9 -0
  11. package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -0
  12. package/dist/components/web3/ConnectWallets/walletIcons.d.ts +4 -1
  13. package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
  14. package/dist/components/web3/ConnectWallets/walletIcons.js +18 -7
  15. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  16. package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
  17. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +11 -5
  18. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  19. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +2 -2
  20. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
  21. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +22 -23
  22. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
  23. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +1 -1
  24. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
  25. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  26. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +4 -5
  27. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  28. package/dist/core/index.d.ts.map +1 -1
  29. package/dist/core/index.js +9 -3
  30. package/dist/core/index.js.map +1 -1
  31. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  32. package/dist/core/inputs/state/setTokenByAddressAtom.js +4 -3
  33. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  34. package/dist/core/state/configAtom.d.ts +3 -3
  35. package/dist/core/state/configAtom.d.ts.map +1 -1
  36. package/dist/core/state/configAtom.js +6 -4
  37. package/dist/core/state/configAtom.js.map +1 -1
  38. package/dist/core/state/enabledTradeModesAtom.d.ts +1 -0
  39. package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -1
  40. package/dist/core/state/enabledTradeModesAtom.js +23 -3
  41. package/dist/core/state/enabledTradeModesAtom.js.map +1 -1
  42. package/dist/core/state/externalProviderAtom.d.ts +9 -0
  43. package/dist/core/state/externalProviderAtom.d.ts.map +1 -1
  44. package/dist/core/state/externalProviderAtom.js +28 -1
  45. package/dist/core/state/externalProviderAtom.js.map +1 -1
  46. package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
  47. package/dist/events/hooks/useOnWalletConnect.js +3 -1
  48. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  49. package/dist/events/types/connectWallet.d.ts +3 -3
  50. package/dist/events/types/connectWallet.d.ts.map +1 -1
  51. package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
  52. package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
  53. package/dist/hooks/connectors/useIsConnectedSafe.d.ts.map +1 -1
  54. package/dist/hooks/connectors/useIsConnectedSafe.js +3 -1
  55. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  56. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts +4 -1
  57. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts.map +1 -1
  58. package/dist/hooks/connectors/useIsGnosisSafeConnector.js +3 -4
  59. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  60. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts +1 -1
  61. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -1
  62. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +16 -2
  63. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  64. package/dist/hooks/otc/mutations/useFillOrder.js +1 -1
  65. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +1 -0
  66. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  67. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.d.ts.map +1 -1
  68. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js +7 -4
  69. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
  70. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +1 -1
  71. package/dist/hooks/swap/prices/usePricesParams.js +0 -5
  72. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  73. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  74. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +7 -4
  75. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  76. package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
  77. package/dist/hooks/txs/queries/useAwaitTx.js +71 -19
  78. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  79. package/dist/hooks/useSDK.d.ts.map +1 -1
  80. package/dist/hooks/useSDK.js +10 -10
  81. package/dist/hooks/useSDK.js.map +1 -1
  82. package/dist/index.d.ts +1 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/lib/constants/delta.d.ts +3 -0
  85. package/dist/lib/constants/delta.d.ts.map +1 -1
  86. package/dist/lib/constants/delta.js +3 -1
  87. package/dist/lib/constants/delta.js.map +1 -1
  88. package/dist/lib/utils/index.d.ts +1 -0
  89. package/dist/lib/utils/index.d.ts.map +1 -1
  90. package/dist/lib/utils/index.js +6 -1
  91. package/dist/lib/utils/index.js.map +1 -1
  92. package/dist/lib/utils/toasts.d.ts +1 -1
  93. package/dist/lib/utils/toasts.d.ts.map +1 -1
  94. package/dist/lib/utils/toasts.js +5 -1
  95. package/dist/lib/utils/toasts.js.map +1 -1
  96. package/dist/lib/web3/privy/config.js +1 -1
  97. package/dist/lib/web3/wagmi/config.js +1 -1
  98. package/dist/lib/web3/wagmi/external.d.ts +10 -3
  99. package/dist/lib/web3/wagmi/external.d.ts.map +1 -1
  100. package/dist/lib/web3/wagmi/external.js +17 -2
  101. package/dist/lib/web3/wagmi/external.js.map +1 -1
  102. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  103. package/dist/lib/web3/wagmi/switchChain.js +5 -1
  104. package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
  105. package/dist/styles.css +1 -1
  106. package/dist/tokens/state/allTokensByChainAtom.d.ts.map +1 -1
  107. package/dist/tokens/state/allTokensByChainAtom.js +0 -3
  108. package/dist/tokens/state/allTokensByChainAtom.js.map +1 -1
  109. package/dist/transactions/hash.d.ts +7 -0
  110. package/dist/transactions/hash.d.ts.map +1 -0
  111. package/dist/transactions/hash.js +35 -0
  112. package/dist/transactions/hash.js.map +1 -0
  113. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  114. package/dist/transactions/queries/ensureCallsStatus.js +11 -3
  115. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  116. package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
  117. package/dist/transactions/queries/ensureTxReceipt.js +7 -4
  118. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  119. package/dist/transactions/state/effects/finalize.d.ts +7 -1
  120. package/dist/transactions/state/effects/finalize.d.ts.map +1 -1
  121. package/dist/transactions/state/effects/finalize.js +41 -7
  122. package/dist/transactions/state/effects/finalize.js.map +1 -1
  123. package/dist/transactions/state/hooks/useActivateEffects.d.ts.map +1 -1
  124. package/dist/transactions/state/hooks/useActivateEffects.js +4 -2
  125. package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
  126. package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
  127. package/dist/transactions/state/transactionsActionAtom.js +55 -15
  128. package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
  129. package/dist/transactions/state/transactionsAtom.js +2 -2
  130. package/dist/transactions/state/transactionsAtom.js.map +1 -1
  131. package/dist/transactions/types.d.ts +11 -1
  132. package/dist/transactions/types.d.ts.map +1 -1
  133. package/dist/transactions/utils.d.ts +2 -1
  134. package/dist/transactions/utils.d.ts.map +1 -1
  135. package/dist/transactions/utils.js +6 -1
  136. package/dist/transactions/utils.js.map +1 -1
  137. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
1
  import { WalletMeta } from '../../components/web3/ConnectWallets/walletIcons';
2
2
  export declare function useIsSafeThroughWalletConnect(): boolean;
3
- export declare function isSafeConnectorThroughWalletConnect({ connectorType, name, }: Partial<Pick<WalletMeta, "connectorType" | "name">>): boolean;
3
+ export declare function isSafeConnectorThroughWalletConnect({ connectorType, connectorId, name, }: Partial<Pick<WalletMeta, "connectorType" | "connectorId" | "name">>): boolean;
4
4
  //# sourceMappingURL=useIsSafeThroughWalletConnect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsSafeThroughWalletConnect.d.ts","sourceRoot":"","sources":["../../../src/hooks/connectors/useIsSafeThroughWalletConnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,8CAA8C,CAAC;AAWtD,wBAAgB,6BAA6B,YAI5C;AAED,wBAAgB,mCAAmC,CAAC,EAClD,aAAa,EACb,IAAI,GACL,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAO/D"}
1
+ {"version":3,"file":"useIsSafeThroughWalletConnect.d.ts","sourceRoot":"","sources":["../../../src/hooks/connectors/useIsSafeThroughWalletConnect.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,8CAA8C,CAAC;AAWtD,wBAAgB,6BAA6B,YAY5C;AAED,wBAAgB,mCAAmC,CAAC,EAClD,aAAa,EACb,WAAW,EACX,IAAI,GACL,EAAE,OAAO,CACR,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,aAAa,GAAG,MAAM,CAAC,CAC3D,GAAG,OAAO,CAeV"}
@@ -1,3 +1,4 @@
1
+ import { isExternalConnector } from '../../components/web3/ConnectExternalProvider/utils.js';
1
2
  import { useWalletMetadata } from '../../components/web3/ConnectWallets/walletIcons.js';
2
3
  import { walletConnect } from 'wagmi/connectors';
3
4
 
@@ -11,18 +12,31 @@ const GnosisSafeWConnectRegex = [
11
12
  function useIsSafeThroughWalletConnect() {
12
13
  const {
13
14
  connectorType,
14
- name
15
+ connectorId,
16
+ name,
17
+ isWalletConnect
15
18
  } = useWalletMetadata() ?? {};
19
+ if (!isWalletConnect) {
20
+ return false;
21
+ }
16
22
  return isSafeConnectorThroughWalletConnect({
17
23
  connectorType,
24
+ connectorId,
18
25
  name
19
26
  });
20
27
  }
21
28
  function isSafeConnectorThroughWalletConnect({
22
29
  connectorType,
30
+ connectorId,
23
31
  name
24
32
  }) {
25
- if (connectorType !== walletConnect.type || !name) {
33
+ const isExternal = !!connectorType && !!connectorId && isExternalConnector({
34
+ type: connectorType,
35
+ id: connectorId
36
+ });
37
+ const isWalletConnectConnector = connectorType === walletConnect.type;
38
+ const isConnectorWithMayBeSafe = isExternal || isWalletConnectConnector;
39
+ if (!isConnectorWithMayBeSafe || !name) {
26
40
  return false;
27
41
  }
28
42
  const isSafe = GnosisSafeWConnectRegex.some((rule) => rule.test(name));
@@ -1 +1 @@
1
- {"version":3,"file":"useIsSafeThroughWalletConnect.js","sources":["../../../src/hooks/connectors/useIsSafeThroughWalletConnect.ts"],"sourcesContent":["import {\n useWalletMetadata,\n type WalletMeta,\n} from \"@/components/web3/ConnectWallets/walletIcons\";\nimport { walletConnect } from \"wagmi/connectors\";\n\nconst GnosisSafeWConnectRegex = [\n // matches `WalletConnect Safe App` (app in web Safe) and `Safe` (iOS Safe)\n /^(?:WalletConnect)?\\s*Safe\\s*(?:App)?$/i,\n\n // if there's word Safe surrounded by non-word characters or by nothing -> most likely it's Gnosis Safe\n /([^a-zA-Z]|^)Safe([^a-zA-Z]|$)/i, // matches'Safe{Wallet}'\n];\n\nexport function useIsSafeThroughWalletConnect() {\n const { connectorType, name } = useWalletMetadata() ?? {};\n\n return isSafeConnectorThroughWalletConnect({ connectorType, name });\n}\n\nexport function isSafeConnectorThroughWalletConnect({\n connectorType,\n name,\n}: Partial<Pick<WalletMeta, \"connectorType\" | \"name\">>): boolean {\n if (connectorType !== walletConnect.type || !name) {\n return false;\n }\n\n const isSafe = GnosisSafeWConnectRegex.some((rule) => rule.test(name));\n return isSafe;\n}\n"],"names":["GnosisSafeWConnectRegex","useIsSafeThroughWalletConnect","connectorType","name","useWalletMetadata","isSafeConnectorThroughWalletConnect","walletConnect","type","isSafe","some","rule","test"],"mappings":";;;AAMA,MAAMA,uBAAAA,GAA0B;AAAA;AAAA,EAE9B,yCAAA;AAAA;AAAA,EAGA;AAAA;AAAmC,CAAA;AAG9B,SAAAC,6BAAAA,GAAA;AACL,EAAA,MAAA;AAAA,IAAAC,aAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAgCC,iBAAAA,EAAwB,IAAxB,EAAwB;AAAE,EAAA,OAEnDC,mCAAAA,CAAoC;AAAA,IAAAH,aAAAA;AAAAA,IAAAC;AAAAA,GAAuB,CAAA;AAAC;AAG9D,SAASE,mCAAAA,CAAoC;AAAA,EAClDH,aAAAA;AAAAA,EACAC;AACmD,CAAA,EAAY;AAC/D,EAAA,IAAID,aAAAA,KAAkBI,aAAAA,CAAcC,IAAAA,IAAQ,CAACJ,IAAAA,EAAM;AACjD,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAMK,SAASR,uBAAAA,CAAwBS,IAAAA,CAAMC,UAASA,IAAAA,CAAKC,IAAAA,CAAKR,IAAI,CAAC,CAAA;AACrE,EAAA,OAAOK,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"useIsSafeThroughWalletConnect.js","sources":["../../../src/hooks/connectors/useIsSafeThroughWalletConnect.ts"],"sourcesContent":["import { isExternalConnector } from \"@/components/web3/ConnectExternalProvider/utils\";\nimport {\n useWalletMetadata,\n type WalletMeta,\n} from \"@/components/web3/ConnectWallets/walletIcons\";\nimport { walletConnect } from \"wagmi/connectors\";\n\nconst GnosisSafeWConnectRegex = [\n // matches `WalletConnect Safe App` (app in web Safe) and `Safe` (iOS Safe)\n /^(?:WalletConnect)?\\s*Safe\\s*(?:App)?$/i,\n\n // if there's word Safe surrounded by non-word characters or by nothing -> most likely it's Gnosis Safe\n /([^a-zA-Z]|^)Safe([^a-zA-Z]|$)/i, // matches'Safe{Wallet}'\n];\n\nexport function useIsSafeThroughWalletConnect() {\n const { connectorType, connectorId, name, isWalletConnect } = useWalletMetadata() ?? {};\n\n if (!isWalletConnect) {\n return false;\n }\n\n return isSafeConnectorThroughWalletConnect({\n connectorType,\n connectorId,\n name,\n });\n}\n\nexport function isSafeConnectorThroughWalletConnect({\n connectorType,\n connectorId,\n name,\n}: Partial<\n Pick<WalletMeta, \"connectorType\" | \"connectorId\" | \"name\">\n>): boolean {\n const isExternal =\n !!connectorType &&\n !!connectorId &&\n isExternalConnector({ type: connectorType, id: connectorId });\n const isWalletConnectConnector = connectorType === walletConnect.type;\n\n const isConnectorWithMayBeSafe = isExternal || isWalletConnectConnector;\n\n if (!isConnectorWithMayBeSafe || !name) {\n return false;\n }\n\n const isSafe = GnosisSafeWConnectRegex.some((rule) => rule.test(name));\n return isSafe;\n}\n"],"names":["GnosisSafeWConnectRegex","useIsSafeThroughWalletConnect","connectorType","connectorId","name","isWalletConnect","useWalletMetadata","isSafeConnectorThroughWalletConnect","isExternal","isExternalConnector","type","id","isWalletConnectConnector","walletConnect","isConnectorWithMayBeSafe","isSafe","some","rule","test"],"mappings":";;;;AAOA,MAAMA,uBAAAA,GAA0B;AAAA;AAAA,EAE9B,yCAAA;AAAA;AAAA,EAGA;AAAA;AAAmC,CAAA;AAG9B,SAAAC,6BAAAA,GAAA;AACL,EAAA,MAAA;AAAA,IAAAC,aAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC,IAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAA8DC,iBAAAA,EAAwB,IAAxB,EAAwB;AAEtF,EAAA,IAAI,CAACD,eAAAA,EAAe;AAAA,IAAA,OACX,KAAA;AAAA,EAAK;AACb,EAAA,OAEME,mCAAAA,CAAoC;AAAA,IAAAL,aAAAA;AAAAA,IAAAC,WAAAA;AAAAA,IAAAC;AAAAA,GAI1C,CAAA;AAAC;AAGG,SAASG,mCAAAA,CAAoC;AAAA,EAClDL,aAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC;AAGF,CAAA,EAAY;AACV,EAAA,MAAMI,aACJ,CAAC,CAACN,iBACF,CAAC,CAACC,eACFM,mBAAAA,CAAoB;AAAA,IAAEC,IAAAA,EAAMR,aAAAA;AAAAA,IAAeS,EAAAA,EAAIR;AAAAA,GAAa,CAAA;AAC9D,EAAA,MAAMS,wBAAAA,GAA2BV,kBAAkBW,aAAAA,CAAcH,IAAAA;AAEjE,EAAA,MAAMI,2BAA2BN,UAAAA,IAAcI,wBAAAA;AAE/C,EAAA,IAAI,CAACE,wBAAAA,IAA4B,CAACV,IAAAA,EAAM;AACtC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAMW,SAASf,uBAAAA,CAAwBgB,IAAAA,CAAMC,UAASA,IAAAA,CAAKC,IAAAA,CAAKd,IAAI,CAAC,CAAA;AACrE,EAAA,OAAOW,MAAAA;AACT;;;;"}
@@ -5,8 +5,8 @@ import { assert } from 'ts-essentials';
5
5
  import 'wagmi';
6
6
  import 'wagmi/query';
7
7
  import '../../../lib/web3/wagmi/config.js';
8
- import '@wagmi/core';
9
8
  import 'wagmi/connectors';
9
+ import '@wagmi/core';
10
10
  import '../../../lib/queryClient.js';
11
11
  import 'viem';
12
12
  import 'react/jsx-runtime';
@@ -18,6 +18,7 @@ import '../../../assets/circle-exclamation.svg.js';
18
18
  import '@radix-ui/react-progress';
19
19
  import '../../../lib/web3/wagmi/constants.js';
20
20
  import '../../../core/store.js';
21
+ import 'wagmi/connectors';
21
22
  import { useApproveOrPermit } from '../../swap/tradeFlow/common/useApproveOrPermit.js';
22
23
  import { useLogger } from '../../../core/logger.js';
23
24
  import { useFillOrder } from '../mutations/useFillOrder.js';
@@ -1 +1 @@
1
- {"version":3,"file":"useFillOtcOrderFlow.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\n };\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n const allowanceToSet = approval.allowanceToSet;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"names":["fillOtcOrderFlowType","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","order","logger","useLogger","chainId","useChainId","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","sdk","callDataSDK","useCalldataSDK","client","fillOrderMut","useFillOrder","mutationOptions","onSuccess","log","onError","error","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","fillTxMined","useAwaitTx","hash","data","batchTxMined","useAwaitCalls","id","fillOrder","txHash","receipt","isConfirmingTX","isPending","isConfirmingTxError","isError","isTxSent","isSuccess","isTxPending","isTxMined","isTxAwaitingError","isLoading","lastCallsReceipt","receipts","length","fillOrderBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","events","useWidgetEvents","submitFillTx","onTxSent","reset","assert","taker","zeroAddress","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","baseEventParams","orderHash","orderType","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","signPermitAsync","value","orderFillData","signature","takerPermit","encodedPermitParams","permitEncodedArgs","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","txReceipt","tradeFlowType","approve","fill","receiverAddress","runFillOrderMut","useMutation","mutationFn","mutationKey","onSettled","runFillOtcOrderFlow","retryFlow","options","result"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAMA,oBAAAA,GAAuB,cAAA;AA0E7B,MAAMC,sBAAAA,GAAyB,qBAAA;AAExB,SAASC,mBAAAA,CAAoB;AAAA,EAClCC;AACwB,CAAA,EAA8B;AACtD,EAAA,MAAMC,MAAAA,GAASC,UAAU,kBAAkB,CAAA;AAC3C,EAAA,MAAMC,UAAUC,UAAAA,EAAW;AAU3B,EAAA,MAAM;AAAA,IAAEC,QAAAA;AAAAA,IAAUC,UAAAA;AAAAA,IAAYC,YAAAA;AAAAA,IAAcC;AAAAA,MAC1CC,kBAAAA,CAAmB;AAAA,IACjBC,UAAUV,KAAAA,EAAOW,UAAAA;AAAAA,IACjBC,WAAWZ,KAAAA,EAAOa,WAAAA;AAAAA,IAClBC,mBAAAA,EAAqB,aAAA;AAAA,IACrBC,QAAAA,EAAU,MAAA;AAAA,IACVC,SAAAA,EAAW;AAAA,GACZ,CAAA;AAEH,EAAA,MAAM;AAAA,IAAEC,OAAAA,EAASC;AAAAA,MAAYC,UAAAA,EAAW;AAExC,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAcC,gBAAAA,CAAiB;AAAA,IACrClB,OAAAA;AAAAA,IACAe;AAAAA,GACD,CAAA;AAED,EAAA,MAAM;AAAA,IAAEI,GAAAA,EAAKC;AAAAA,MAAgBC,cAAAA,CAAe;AAAA,IAC1CrB,OAAAA;AAAAA,IACAsB,MAAAA,EAAQL;AAAAA,GACT,CAAA;AAKD,EAAA,MAAMM,eAAeC,YAAAA,CAAa;AAAA,IAChCxB,OAAAA;AAAAA,IACAe,OAAAA;AAAAA,IACAO,MAAAA,EAAQL,SAAAA;AAAAA,IACRQ,eAAAA,EAAiB;AAAA,MACfC,WAAY7B,CAAAA,OAAAA,KAAU;AACpBC,QAAAA,MAAAA,CAAO6B,GAAAA,CAAI,0BAA0B9B,OAAK,CAAA;AAAA,MAC5C,CAAA;AAAA,MACA+B,SAAUC,CAAAA,KAAAA,KAAU;AAClB/B,QAAAA,MAAAA,CAAO+B,KAAAA,CAAM,wBAAwBA,KAAK,CAAA;AAAA,MAC5C;AAAA;AACF,GACD,CAAA;AAGD,EAAA,MAAM;AAAA,IAAEC,eAAAA,EAAiBC;AAAAA,MAAgBC,cAAAA,EAAe;AACxD,EAAA,MAAM;AAAA,IAAEC;AAAAA,MAAuBC,sBAAAA,EAAuB;AAEtD,EAAA,MAAMC,aAAaC,cAAAA,CAAe;AAAA,IAChCV,WAAWA,MAAM;AACf5B,MAAAA,MAAAA,CAAO6B,IAAI,kBAAkB,CAAA;AAAA,IAC/B,CAAA;AAAA,IACAC,SAAUC,CAAAA,OAAAA,KAAU;AAClB/B,MAAAA,MAAAA,CAAO+B,KAAAA,CAAM,kBAAkBA,OAAK,CAAA;AAAA,IACtC;AAAA,GACD,CAAA;AAKD,EAAA,MAAMQ,cAAcC,UAAAA,CAAW;AAAA,IAC7BtC,OAAAA;AAAAA,IACAuC,MAAMhB,YAAAA,CAAaiB;AAAAA,GACpB,CAAA;AAGD,EAAA,MAAMC,eAAeC,aAAAA,CAAc;AAAA,IACjCC,EAAAA,EAAIR,WAAWK,IAAAA,EAAMG;AAAAA,GACtB,CAAA;AAED,EAAA,MAAMC,SAAAA,GAAoD;AAAA,IACxDC,QAAQtB,YAAAA,CAAaiB,IAAAA;AAAAA,IACrBM,SAAST,WAAAA,CAAYG,IAAAA;AAAAA;AAAAA,IAErBO,gBAAgBxB,YAAAA,CAAayB,SAAAA;AAAAA,IAC7BC,qBAAqB1B,YAAAA,CAAa2B,OAAAA;AAAAA,IAClCC,UAAU5B,YAAAA,CAAa6B,SAAAA;AAAAA;AAAAA,IAEvBC,aAAahB,WAAAA,CAAYW,SAAAA;AAAAA,IACzBM,WAAWjB,WAAAA,CAAYe,SAAAA;AAAAA,IACvBG,mBAAmBlB,WAAAA,CAAYa,OAAAA;AAAAA;AAAAA,IAE/BF,SAAAA,EAAWzB,YAAAA,CAAayB,SAAAA,IAAaX,WAAAA,CAAYmB,SAAAA;AAAAA,IACjDJ,WAAWf,WAAAA,CAAYe,SAAAA;AAAAA;AAAAA,IACvBF,OAAAA,EAAS3B,YAAAA,CAAa2B,OAAAA,IAAWb,WAAAA,CAAYa,OAAAA;AAAAA,IAC7CrB,KAAAA,EAAON,YAAAA,CAAaM,KAAAA,IAASQ,WAAAA,CAAYR;AAAAA,GAC3C;AAIA,EAAA,MAAM4B,gBAAAA,GACJhB,aAAaD,IAAAA,EAAMkB,QAAAA,GAAWjB,aAAaD,IAAAA,CAAKkB,QAAAA,CAASC,SAAS,CAAC,CAAA;AAErE,EAAA,MAAMC,cAAAA,GAA8D;AAAA,IAClE7B,WAAAA;AAAAA,IACA8B,OAAAA,EAAS1B,WAAWK,IAAAA,EAAMG,EAAAA;AAAAA,IAC1BE,QAAQY,gBAAAA,EAAkBK,eAAAA;AAAAA,IAC1BhB,OAAAA,EAASW,gBAAAA;AAAAA;AAAAA,IAETM,mBAAmB5B,UAAAA,CAAWa,SAAAA;AAAAA,IAC9BgB,wBAAwB7B,UAAAA,CAAWe,OAAAA;AAAAA,IACnCe,aAAa9B,UAAAA,CAAWiB,SAAAA;AAAAA;AAAAA,IAExBc,gBAAgBzB,YAAAA,CAAae,SAAAA;AAAAA,IAC7BW,cAAc1B,YAAAA,CAAaW,SAAAA;AAAAA,IAC3BgB,sBAAsB3B,YAAAA,CAAaS,OAAAA;AAAAA;AAAAA,IAEnCF,SAAAA,EAAWb,UAAAA,CAAWa,SAAAA,IAAaP,YAAAA,CAAae,SAAAA;AAAAA,IAChDJ,WAAWX,YAAAA,CAAaW,SAAAA;AAAAA,IACxBF,OAAAA,EAASf,UAAAA,CAAWe,OAAAA,IAAWT,YAAAA,CAAaS,OAAAA;AAAAA,IAC5CrB,KAAAA,EAAOM,UAAAA,CAAWN,KAAAA,IAASY,YAAAA,CAAaZ;AAAAA,GAC1C;AAEA,EAAA,MAAMwC,kBAAkBC,kBAAAA,EAAmB;AAC3C,EAAA,MAAMC,oBAAoBC,oBAAAA,EAAqB;AAE/C,EAAA,MAAMC,yBAAAA,GAA4BC,OAA+B,IAAI,CAAA;AAErE,EAAA,MAAMC,aAAaA,MAAM;AACvBF,IAAAA,yBAAAA,CAA0BG,OAAAA,EAASC,KAAAA,CAAM,IAAIC,kBAAAA,EAAoB,CAAA;AACjEL,IAAAA,yBAAAA,CAA0BG,OAAAA,GAAU,IAAA;AAAA,EACtC,CAAA;AAEA,EAAA,MAAM;AAAA,IAAEG,eAAAA;AAAAA,IAAiBC;AAAAA,MAAeC,4BAAAA,CAA6B;AAAA,IACnEjF;AAAAA,GACD,CAAA;AAED,EAAA,MAAMkF,SAASC,eAAAA,EAAgB;AAE/B,EAAA,MAAMC,eAAe,OAAO;AAAA,IAC1BC;AAAAA,GACsB,GAAI,EAAC,KAAyC;AAGpEjF,IAAAA,YAAAA,CAAakF,KAAAA,EAAM;AACnBjF,IAAAA,aAAAA,CAAciF,KAAAA,EAAM;AACpB/D,IAAAA,YAAAA,CAAa+D,KAAAA,EAAM;AACnBnD,IAAAA,UAAAA,CAAWmD,KAAAA,EAAM;AAGjBC,IAAAA,MAAAA,CAAO1F,OAAO,kBAAkB,CAAA;AAChC0F,IAAAA,MAAAA,CAAO1F,KAAAA,CAAM2F,KAAAA,KAAUC,WAAAA,EAAa,gCAAgC,CAAA;AAEpE,IAAA,MAAMC,eAAAA,GAAkB,IAAIC,eAAAA,EAAgB;AAC5ClB,IAAAA,yBAAAA,CAA0BG,OAAAA,GAAUc,eAAAA;AAEpC,IAAA,MAAME,SAASF,eAAAA,CAAgBE,MAAAA;AAE/B,IAAA,IAAIC,kBAAAA;AAEJ,IAAA,IAAIC,aAAAA;AACJ,IAAA,IAAIC,gBAAAA;AAEJ,IAAA,MAAMC,iBAAiB9F,QAAAA,CAAS8F,cAAAA;AAEhC,IAAA,MAAMC,eAAAA,GAAkB;AAAA,MACtBC,WAAWrG,KAAAA,CAAMqG,SAAAA;AAAAA,MACjBC,SAAAA,EAAW,KAAA;AAAA,MACXC,cAAcvG,KAAAA,CAAMwG;AAAAA,KACtB;AAEAnB,IAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,MACtBC,KAAAA,EAAO;AAAA,QACLC,IAAAA,EAAM,sBAAA;AAAA,QACNC,MAAAA,EAAQR;AAAAA;AACV,KACD,CAAA;AAED,IAAA,MAAMS,cAAAA,GACJ3E,WAAAA,IAAe7B,QAAAA,CAASyG,aAAAA,IAAiB,CAAC,CAACX,cAAAA;AAE7C,IAAA,IAAI;AAEF,MAAA,IAAI,CAACU,cAAAA,IAAkBxG,QAAAA,CAASyG,aAAAA,IAAiBX,cAAAA,EAAgB;AAC/D,QAAA,IAAI,CAAC7F,UAAAA,CAAWyG,iBAAAA,IAAqB,CAACzG,WAAW0G,mBAAAA,EAAqB;AAGpEf,UAAAA,aAAAA,GAAgB,MAAM1F,aAAa0G,YAAAA,CAAa;AAAA,YAC9CC,aAAAA,EAAe;AAAA,cACbf;AAAAA;AACF,WACD,CAAA;AAGDJ,UAAAA,MAAAA,CAAOoB,cAAAA,EAAe;AAEtB,UAAA,MAAMC,0BAA0B5C,eAAAA,CAAgB;AAAA,YAC9C9B,IAAAA,EAAMuD,aAAAA;AAAAA,YACN9F,OAAAA;AAAAA,YACAkH,YAAa1E,CAAAA,IAAAA,KAAS;AACpB1C,cAAAA,MAAAA,CAAO6B,GAAAA,CAAI,sBAAA,EAAwBmE,aAAAA,EAAetD,IAAI,CAAA;AAAA,YACxD;AAAA,WACD,CAAA;AAED,UAAA,IAAI6C,QAAAA,EAAU;AACZA,YAAAA,QAAAA,CAAS;AAAA,cACPrF,OAAAA;AAAAA,cACAmH,MAAAA,EAAQ,SAAA;AAAA,cACRrD,eAAAA,EAAiBgC,aAAAA;AAAAA,cACjBsB,cAAAA,EAAgBH,uBAAAA;AAAAA,cAChBI,uBAAAA,EAAyB;AAAA,gBACvBF,MAAAA,EAAQ,SAAA;AAAA,gBACRG,cAAAA,EAAgBtB,cAAAA;AAAAA,gBAChBuB,cAAcrH,QAAAA,CAASsH,KAAAA;AAAAA,gBACvBC,gBAAgBvH,QAAAA,CAASwH;AAAAA;AAC3B,aACD,CAAA;AAAA,UACH;AAEA3B,UAAAA,gBAAAA,GAAmB,MAAMkB,uBAAAA;AAEzBnH,UAAAA,MAAAA,CAAO6B,GAAAA,CAAI,0BAA0BoE,gBAAgB,CAAA;AAAA,QAGvD,CAAA,MAAO;AAELF,UAAAA,kBAAAA,GAAqB,MAAMxF,cAAcsH,eAAAA,CAAgB;AAAA,YACvDC,KAAAA,EAAO5B;AAAAA,WACR,CAAA;AAAA,QACH;AAAA,MACF;AAGAJ,MAAAA,MAAAA,CAAOoB,cAAAA,EAAe;AAEtBzB,MAAAA,MAAAA,CAAOxE,SAAS,0BAA0B,CAAA;AAE1C,MAAA,MAAM8G,aAAAA,GAA+B;AAAA,QACnChI,KAAAA;AAAAA,QACAiI,WAAWjI,KAAAA,CAAMiI;AAAAA,OACnB;AAEA,MAAA,IAAIjC,kBAAAA,EAAoB;AACtBgC,QAAAA,aAAAA,CAAcE,WAAAA,GAAc;AAAA,UAC1BC,qBAAqBnC,kBAAAA,CAAmBoC;AAAAA,SAC1C;AAAA,MACF;AAEA,MAAA,IAAIC,UAAAA;AACJ,MAAA,IAAIC,WAAAA;AAEJ,MAAA,IAAIzB,cAAAA,EAAgB;AAClBnB,QAAAA,MAAAA,CAAOnE,aAAa,gCAAgC,CAAA;AAEpD,QAAA,MAAMgH,QAAAA,GAAW,MAAMhH,WAAAA,CAAYiH,iBAAAA,CAAkB;AAAA,UACnDxI,KAAAA;AAAAA,UACAiI,WAAWjI,KAAAA,CAAMiI;AAAAA,SAClB,CAAA;AAED,QAAA,MAAM;AAAA,UAAEQ;AAAAA,SAAM,GAAI,MAAMrG,kBAAAA,CAAmB;AAAA,UACzCsG,WAAW,CACT;AAAA,YACEC,IAAItI,QAAAA,CAASwH,OAAAA;AAAAA,YACb3G,OAAAA;AAAAA,YACAyB,IAAAA,EAAM4F,QAAAA;AAAAA,YACNR,KAAAA,EAAO,EAAA;AAAA,YACP5H;AAAAA,WACD,CAAA;AAAA,UAEHyI,cAAc,CACZ;AAAA,YACEf,SAASxH,QAAAA,CAASwH,OAAAA;AAAAA,YAClB1B,gBAAgB9F,QAAAA,CAAS8F,cAAAA;AAAAA,YACzBwB,OAAOtH,QAAAA,CAASsH,KAAAA;AAAAA,YAChBxH,SAASE,QAAAA,CAASF;AAAAA,WACnB;AAAA,SAEJ,CAAA;AACD,QAAA,MAAM0I,eAAAA,GAAkB,MAAMvG,UAAAA,CAAWwG,SAAAA,CAAU;AAAA,UACjDJ,SAAAA,EAAWD;AAAAA,SACZ,CAAA;AACDH,QAAAA,WAAAA,GAAcO,eAAAA,CAAgB/F,EAAAA;AAE9BuC,QAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,UACtBC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,mBAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACN5C,OAAAA,EAASsE,WAAAA;AAAAA,cACT,GAAGlC;AAAAA;AACL;AACF,SACD,CAAA;AAAA,MACH,CAAA,MAAO;AACLiC,QAAAA,UAAAA,GAAa,MAAM3G,aAAaqH,WAAAA,CAAY;AAAA,UAC1Cf,aAAAA;AAAAA,UACAjC;AAAAA,SACD,CAAA;AAEDV,QAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,UACtBC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,mBAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACN5D,MAAAA,EAAQqF,UAAAA;AAAAA,cACR,GAAGjC;AAAAA;AACL;AACF,SACD,CAAA;AAAA,MACH;AAMA,MAAA,IAAIJ,kBAAAA,EAAoB;AACtBd,QAAAA,eAAAA,CAAgBc,mBAAmBgD,gBAAgB,CAAA;AAAA,MACrD;AAEA,MAAA,IAAIC,gBAAAA;AACJ,MAAA,IAAIC,aAAAA;AAEJ,MAAA,IAAIZ,WAAAA,EAAa;AACf,QAAA,MAAMa,0BAA0BzE,iBAAAA,CAAkB;AAAA,UAChD5B,EAAAA,EAAIwF;AAAAA,SACL,CAAA,CAAEc,IAAAA,CAAMC,CAAAA,MAAAA,KAAWA,MAAAA,CAAOxF,WAAWwF,MAAAA,CAAOxF,QAAAA,CAASC,MAAAA,GAAS,CAAC,CAAC,CAAA;AAEjE7D,QAAAA,MAAAA,CAAO6B,GAAAA,CAAI,kCAAkCwG,WAAW,CAAA;AAExD,QAAA,IAAI9C,QAAAA,EAAU;AACZA,UAAAA,QAAAA,CAAS;AAAA,YACPrF,OAAAA;AAAAA,YACA6D,OAAAA,EAASsE,WAAAA;AAAAA,YACThB,MAAAA,EAAQ,cAAA;AAAA,YACRC,cAAAA,EAAgB4B,uBAAAA;AAAAA,YAChB3B,uBAAAA,EAAyB;AAAA,cACvBF,MAAAA,EAAQ,cAAA;AAAA,cACRgC,WAAAA,EAAatJ;AAAAA;AACf,WACD,CAAA;AAAA,QACH;AAEAiJ,QAAAA,gBAAAA,GAAmB,MAAME,uBAAAA;AAEzB,QAAA,IAAIF,gBAAAA,EAAkB;AACpB5D,UAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,YACtBC,KAAAA,EAAO;AAAA,cACLC,IAAAA,EAAM,wBAAA;AAAA,cACNC,MAAAA,EAAQ;AAAA,gBACN5C,OAAAA,EAASsE,WAAAA;AAAAA,gBACTiB,YAAAA,EAAcN,gBAAAA;AAAAA,gBACd,GAAG7C;AAAAA;AACL;AACF,WACD,CAAA;AAAA,QACH;AAAA,MACF,WAAWiC,UAAAA,EAAY;AACrB,QAAA,MAAMmB,uBAAuBhF,eAAAA,CAAgB;AAAA,UAC3C9B,IAAAA,EAAM2F,UAAAA;AAAAA,UACNlI,OAAAA;AAAAA,UACAkH,YAAa1E,CAAAA,MAAAA,KAAS;AACpB1C,YAAAA,MAAAA,CAAO6B,GAAAA,CAAI,mBAAA,EAAqBuG,UAAAA,EAAY1F,MAAI,CAAA;AAAA,UAClD;AAAA,SACD,CAAA;AAED1C,QAAAA,MAAAA,CAAO6B,GAAAA,CAAI,iCAAiCuG,UAAU,CAAA;AAEtD,QAAA,IAAI7C,QAAAA,EAAU;AACZA,UAAAA,QAAAA,CAAS;AAAA,YACPrF,OAAAA;AAAAA,YACA8D,eAAAA,EAAiBoE,UAAAA;AAAAA,YACjBf,MAAAA,EAAQ,cAAA;AAAA,YACRC,cAAAA,EAAgBiC,oBAAAA;AAAAA,YAChBhC,uBAAAA,EAAyB;AAAA,cACvBF,MAAAA,EAAQ,cAAA;AAAA,cACRgC,WAAAA,EAAatJ;AAAAA;AACf,WACD,CAAA;AAAA,QACH;AAEAkJ,QAAAA,aAAAA,GAAgB,MAAMM,oBAAAA;AAEtBnE,QAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,UACtBC,KAAAA,EAAO;AAAA,YACLC,IAAAA,EAAM,wBAAA;AAAA,YACNC,MAAAA,EAAQ;AAAA,cACN5D,MAAAA,EAAQqF,UAAAA;AAAAA,cACRoB,SAAAA,EAAWP,aAAAA;AAAAA,cACX,GAAG9C;AAAAA;AACL;AACF,SACD,CAAA;AAAA,MACH;AAEAnG,MAAAA,MAAAA,CAAO6B,GAAAA,CAAI,qBAAA,EAAuBmH,gBAAAA,IAAoBC,aAAa,CAAA;AAInE,MAAA,OAAO;AAAA,QACLQ,aAAAA,EAAe7J,oBAAAA;AAAAA,QACf8J,OAAAA,EAAS;AAAA,UACP3G,MAAAA,EAAQiD,aAAAA;AAAAA,UACRhD,OAAAA,EAASiD;AAAAA,SACX;AAAA,QACA0D,IAAAA,EAAM;AAAA,UACJ5G,MAAAA,EAAQqF,UAAAA;AAAAA,UACRoB,SAAAA,EAAWP,aAAAA;AAAAA,UACXlJ;AAAAA,SACF;AAAA,QACAkB,OAAAA;AAAAA,QACA2I,iBAAiB7J,KAAAA,CAAM2F;AAAAA,OACzB;AAAA,IACF,SAAS3D,OAAAA,EAAO;AACdqD,MAAAA,MAAAA,CAAOoB,cAAAA,GAAiB;AAAA,QACtBC,KAAAA,EAAO;AAAA,UACLC,IAAAA,EAAM,qBAAA;AAAA,UACNC,MAAAA,EAAQ;AAAA,YACN,GAAGR,eAAAA;AAAAA,YACHpE,KAAAA,EAAOA;AAAAA;AACT;AACF,OACD,CAAA;AAED,MAAA,IAAIgE,kBAAAA,EAAoB;AACtBb,QAAAA,UAAAA,CAAWa,mBAAmBgD,gBAAgB,CAAA;AAAA,MAChD;AACA,MAAA,MAAMhH,OAAAA;AAAAA,IACR;AAAA,EACF,CAAA;AAEA,EAAA,MAAM8H,kBAAkBC,WAAAA,CAAY;AAAA,IAClCC,UAAAA,EAAYzE,YAAAA;AAAAA,IACZ0E,WAAAA,EAAa,CAACnK,sBAAsB,CAAA;AAAA,IACpC+B,WAAYc,CAAAA,MAAAA,KAAS;AACnB1C,MAAAA,MAAAA,CAAO6B,GAAAA,CAAI,2BAA2Ba,MAAI,CAAA;AAAA,IAC5C,CAAA;AAAA,IACAZ,SAAUC,CAAAA,OAAAA,KAAU;AAClB/B,MAAAA,MAAAA,CAAO+B,KAAAA,CAAM,yBAAyBA,OAAK,CAAA;AAAA,IAC7C,CAAA;AAAA,IACAkI,WAAWA,MAAM;AACfjK,MAAAA,MAAAA,CAAO6B,IAAI,yBAAyB,CAAA;AAAA,IACtC;AAAA,GACD,CAAA;AAED,EAAA,MAAMqI,sBAAsBL,eAAAA,CAAgBf,WAAAA;AAE5C,EAAA,MAAMtD,QAAQA,MAAM;AAClBlF,IAAAA,YAAAA,CAAakF,KAAAA,EAAM;AACnBjF,IAAAA,aAAAA,CAAciF,KAAAA,EAAM;AACpB/D,IAAAA,YAAAA,CAAa+D,KAAAA,EAAM;AACnBnD,IAAAA,UAAAA,CAAWmD,KAAAA,EAAM;AACjBqE,IAAAA,eAAAA,CAAgBrE,KAAAA,EAAM;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM2E,SAAAA,GAAYA,CAChBC,OAAAA,KACsC;AACtC5E,IAAAA,KAAAA,EAAM;AACN,IAAA,OAAO0E,oBAAoBE,OAAO,CAAA;AAAA,EACpC,CAAA;AAGA,EAAA,OAAO;AAAA,IACLX,aAAAA,EAAe7J,oBAAAA;AAAAA,IACfM,OAAAA;AAAAA,IACAgK,mBAAAA;AAAAA,IACA1E,KAAAA;AAAAA,IACAX,UAAAA;AAAAA,IACAsF,SAAAA;AAAAA,IACA/J,QAAAA;AAAAA,IACAC,UAAAA;AAAAA,IACAyC,SAAAA;AAAAA,IACAgB,cAAAA;AAAAA,IACAZ,WAAW2G,eAAAA,CAAgB3G,SAAAA;AAAAA,IAC3BI,WAAWuG,eAAAA,CAAgBvG,SAAAA;AAAAA,IAC3BF,SAASyG,eAAAA,CAAgBzG,OAAAA;AAAAA,IACzBrB,OAAO8H,eAAAA,CAAgB9H,KAAAA;AAAAA,IACvBsI,QAAQR,eAAAA,CAAgBnH;AAAAA,GAC1B;AACF;;;;"}
1
+ {"version":3,"file":"useFillOtcOrderFlow.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderFlow.ts"],"sourcesContent":["import { useAccount, useChainId } from \"wagmi\";\nimport { assert } from \"ts-essentials\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport {\n zeroAddress,\n type Address,\n type Hash,\n type TransactionReceipt,\n} from \"viem\";\nimport type {\n ApprovalFlowResult,\n SignPermitFlowResult,\n SubmitTxResult,\n} from \"../../swap/tradeFlow/common/types\";\n\nimport { useMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useMutation } from \"@tanstack/react-query\";\nimport { useRef } from \"react\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { UserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport {\n type CallsSentObject,\n type TxSentObject,\n} from \"@/lib/utils/transactionHandlers\";\nimport { useApproveOrPermit } from \"../../swap/tradeFlow/common/useApproveOrPermit\";\nimport { useLogger } from \"@/core/logger\";\n\nimport type { LimitOrderFromApi } from \"@velora-dex/sdk\";\nimport { useFillOrder, type OrderFillData } from \"../mutations/useFillOrder\";\nimport {\n useMarkPermit1Or2NonceAsUsed,\n type SignedPermitResult,\n} from \"@/hooks/swap/tradeFlow/common/useSignPermit1Or2\";\nimport type { FillableOtcOrderItem } from \"@/components/widget/OtcOrderItem/types\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useBatchWithApproveTxs } from \"@/hooks/batch/useBatchWithApproveTxs\";\nimport { useSendBatchTx } from \"@/hooks/batch/useSendBatchTx\";\nimport {\n useAwaitCalls,\n useEnsureCallsStatus,\n type CallsReceipt,\n} from \"@/hooks/batch/useAwaitCalls\";\nimport { useCalldataSDK } from \"@/hooks/useSDK\";\n\nconst fillOtcOrderFlowType = \"fillOtcOrder\";\n\nexport type UseFillOtcOrderFlowInput = {\n order?: FillableOtcOrderItem;\n};\n\nexport type SubmitFillOtcOrderResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n approve: SubmitTxResult;\n fill: {\n order: LimitOrderFromApi;\n txHash?: Hash;\n txReceipt?: TransactionReceipt;\n };\n account: Address;\n receiverAddress?: Address;\n};\n\ntype OnTxSent = (txSent: TxSentObject | CallsSentObject) => void;\n\ntype RunFillOtcOrderOptions = {\n onTxSent?: OnTxSent;\n};\n\nexport type UseFillOtcOrderFlowResult = {\n tradeFlowType: typeof fillOtcOrderFlowType;\n chainId: SupportedChainId;\n runFillOtcOrderFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>;\n reset: () => void; // reset on Error to retry\n cancelFlow: () => void; // cancel flow\n retryFlow: (\n options?: RunFillOtcOrderOptions\n ) => Promise<SubmitFillOtcOrderResult>; // reset and retry flow\n approval: ApprovalFlowResult;\n signPermit: SignPermitFlowResult;\n fillOrder: {\n txHash?: Hash;\n receipt?: TransactionReceipt;\n isConfirmingTX: boolean;\n isConfirmingTxError: boolean;\n isTxSent: boolean;\n isTxPending: boolean;\n isTxMined: boolean;\n isTxAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n fillOrderBatch: {\n canBatchTxs?: boolean;\n callsId?: string;\n txHash?: Hash;\n receipt?: CallsReceipt;\n isConfirmingCalls: boolean;\n isConfirmingCallsError: boolean;\n isCallsSent: boolean;\n isCallsPending: boolean;\n isCallsMined: boolean;\n isCallsAwaitingError: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n result?: SubmitFillOtcOrderResult;\n};\n\nconst OTC_ORDER_MUTATION_KEY = \"runFillOtcOrderFlow\";\n\nexport function useFillOtcOrderFlow({\n order,\n}: UseFillOtcOrderFlowInput): UseFillOtcOrderFlowResult {\n const logger = useLogger(\"FillOtcOrderFlow\");\n const chainId = useChainId();\n\n /* Inside useApproveOrPermit:\n 1. Get allowance for tokenFrom \n 2.1. submit Approve tx if necessary \n\n 2.2. sign Permit1 \n\n 3. await Approve tx (if not using Permit) \n */\n const { approval, signPermit, approveTxMut, signPermitMut } =\n useApproveOrPermit({\n srcToken: order?.takerAsset,\n srcAmount: order?.takerAmount,\n spenderContractType: \"AugustusRFQ\",\n swapSide: \"SELL\",\n tradeMode: \"otc\",\n });\n\n const { address: account } = useAccount();\n\n const { minClient } = useMinViemClient({\n chainId,\n account,\n });\n\n const { sdk: callDataSDK } = useCalldataSDK({\n chainId,\n client: minClient,\n });\n\n /* 4. Submit fill OTC Order tx */\n\n // 4.1. submit standalone tx\n const fillOrderMut = useFillOrder({\n chainId,\n account,\n client: minClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"Fill OTC Order success\", order);\n },\n onError: (error) => {\n logger.error(\"Fill OTC Order error\", error);\n },\n },\n });\n\n /* 4.2. submit Batch tx */\n const { forCurrentChain: canBatchTxs } = useCanBatchTxs();\n const { addTxWithApprovals } = useBatchWithApproveTxs();\n\n const batchTxMut = useSendBatchTx({\n onSuccess: () => {\n logger.log(\"Batch tx success\");\n },\n onError: (error) => {\n logger.error(\"Batch tx error\", error);\n },\n });\n\n /* Await tx */\n\n /* 5.1. await standalone Fill tx */\n const fillTxMined = useAwaitTx({\n chainId,\n hash: fillOrderMut.data,\n });\n\n /* 5.2. await Batch tx */\n const batchTxMined = useAwaitCalls({\n id: batchTxMut.data?.id,\n });\n\n const fillOrder: UseFillOtcOrderFlowResult[\"fillOrder\"] = {\n txHash: fillOrderMut.data,\n receipt: fillTxMined.data,\n /* tx sending */\n isConfirmingTX: fillOrderMut.isPending,\n isConfirmingTxError: fillOrderMut.isError,\n isTxSent: fillOrderMut.isSuccess,\n /* tx awaiting */\n isTxPending: fillTxMined.isPending,\n isTxMined: fillTxMined.isSuccess,\n isTxAwaitingError: fillTxMined.isError,\n /* combined */\n isPending: fillOrderMut.isPending || fillTxMined.isLoading,\n isSuccess: fillTxMined.isSuccess, // success only when tx is mined\n isError: fillOrderMut.isError || fillTxMined.isError,\n error: fillOrderMut.error || fillTxMined.error,\n };\n\n // for a successful SendCalls execution there will either be one receipt only,\n // or several receipts with the last one for the last tx from the batch\n const lastCallsReceipt =\n batchTxMined.data?.receipts?.[batchTxMined.data.receipts.length - 1];\n\n const fillOrderBatch: UseFillOtcOrderFlowResult[\"fillOrderBatch\"] = {\n canBatchTxs,\n callsId: batchTxMut.data?.id,\n txHash: lastCallsReceipt?.transactionHash,\n receipt: lastCallsReceipt,\n /* calls sending */\n isConfirmingCalls: batchTxMut.isPending,\n isConfirmingCallsError: batchTxMut.isError,\n isCallsSent: batchTxMut.isSuccess,\n /* calls awaiting */\n isCallsPending: batchTxMined.isLoading,\n isCallsMined: batchTxMined.isSuccess,\n isCallsAwaitingError: batchTxMined.isError,\n /* combined */\n isPending: batchTxMut.isPending || batchTxMined.isLoading,\n isSuccess: batchTxMined.isSuccess,\n isError: batchTxMut.isError || batchTxMined.isError,\n error: batchTxMut.error || batchTxMined.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const ensureCallsStatus = useEnsureCallsStatus();\n\n const currentAbortControllerRef = useRef<AbortController | null>(null);\n\n const cancelFlow = () => {\n currentAbortControllerRef.current?.abort(new UserCancelledError());\n currentAbortControllerRef.current = null;\n };\n\n const { markNonceAsUsed, clearNonce } = useMarkPermit1Or2NonceAsUsed({\n chainId,\n });\n\n const events = useWidgetEvents();\n\n const submitFillTx = async ({\n onTxSent,\n }: RunFillOtcOrderOptions = {}): Promise<SubmitFillOtcOrderResult> => {\n // reset all mutations except the current one,\n // otherwise we'll have previous data (txs) as mutation results\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n\n // no sense in starting flow without an order\n assert(order, \"no order to fill\");\n assert(order.taker !== zeroAddress, \"taker must not be zero address\");\n\n const abortController = new AbortController();\n currentAbortControllerRef.current = abortController;\n\n const signal = abortController.signal;\n\n let signedPermitResult: SignedPermitResult | undefined;\n\n let approveTxHash: Hash | undefined;\n let approveTxReceipt: TransactionReceipt | undefined;\n\n const allowanceToSet = approval.allowanceToSet;\n\n const baseEventParams = {\n orderHash: order.orderHash,\n orderType: \"OTC\" as const,\n orderSubType: order.type,\n };\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:request\",\n params: baseEventParams,\n },\n });\n\n const shouldBatchTxs =\n canBatchTxs && approval.needsApproval && !!allowanceToSet;\n\n try {\n // need allowance\n if (!shouldBatchTxs && approval.needsApproval && allowanceToSet) {\n if (!signPermit.isPermitSupported || !signPermit.isPermitReadyToSign) {\n // Token doesn't support Permit\n // make an Approval tx\n approveTxHash = await approveTxMut.approveAsync({\n allowanceData: {\n allowanceToSet,\n },\n });\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n const approveTxReceiptPromise = ensureTxReceipt({\n hash: approveTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:approveTx\", approveTxHash, data);\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"approve\",\n transactionHash: approveTxHash,\n receiptPromise: approveTxReceiptPromise,\n transactionSpecificData: {\n action: \"approve\",\n approvedAmount: allowanceToSet,\n tokenAddress: approval.token as Address,\n spenderAddress: approval.spender as Address,\n },\n });\n }\n\n approveTxReceipt = await approveTxReceiptPromise;\n\n logger.log(\"~ approveTx ~ receipt:\", approveTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n } else {\n // sign Permit\n signedPermitResult = await signPermitMut.signPermitAsync({\n value: allowanceToSet,\n });\n }\n }\n\n // if aborted by this point, throw an error\n signal.throwIfAborted();\n\n assert(account, \"Account is not connected\");\n\n const orderFillData: OrderFillData = {\n order,\n signature: order.signature,\n };\n\n if (signedPermitResult) {\n orderFillData.takerPermit = {\n encodedPermitParams: signedPermitResult.permitEncodedArgs,\n };\n }\n\n let fillTxHash: Hash | undefined;\n let fillCallsId: string | undefined;\n\n if (shouldBatchTxs) {\n assert(callDataSDK, \"callDataSDK is not initialized\");\n\n const calldata = await callDataSDK.fillOrderDirectly({\n order,\n signature: order.signature,\n });\n\n const { calls } = await addTxWithApprovals({\n txsParams: [\n {\n to: approval.spender,\n account,\n data: calldata,\n value: 0n,\n chainId,\n },\n ],\n approveProps: [\n {\n spender: approval.spender,\n allowanceToSet: approval.allowanceToSet,\n token: approval.token,\n chainId: approval.chainId,\n },\n ],\n });\n const sendCallsResult = await batchTxMut.sendCalls({\n txsParams: calls,\n });\n fillCallsId = sendCallsResult.id;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n callsId: fillCallsId,\n ...baseEventParams,\n },\n },\n });\n } else {\n fillTxHash = await fillOrderMut.mutateAsync({\n orderFillData,\n signal,\n });\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:sent\",\n params: {\n txHash: fillTxHash,\n ...baseEventParams,\n },\n },\n });\n }\n\n // no use aborting past this point, tx is already sent,\n // but we may want to connect this late abortion to tx cancellation, in the future\n\n // tx is sent, consider Token nonce as used\n if (signedPermitResult) {\n markNonceAsUsed(signedPermitResult.signedPermitData);\n }\n\n let fillCallsReceipt: CallsReceipt | undefined;\n let fillTxReceipt: TransactionReceipt | undefined;\n\n if (fillCallsId) {\n const sendCallsReceiptPromise = ensureCallsStatus({\n id: fillCallsId,\n }).then((status) => status.receipts?.[status.receipts.length - 1]);\n\n logger.log(\"~ fillTx ~ awaiting calls id :\", fillCallsId);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n callsId: fillCallsId,\n action: \"fillOtcOrder\",\n receiptPromise: sendCallsReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillCallsReceipt = await sendCallsReceiptPromise;\n\n if (fillCallsReceipt) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n callsId: fillCallsId,\n callsReceipt: fillCallsReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n } else if (fillTxHash) {\n const fillTxReceiptPromise = ensureTxReceipt({\n hash: fillTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\"onReplaced:fillTx\", fillTxHash, data);\n },\n });\n\n logger.log(\"~ fillTx ~ awaiting tx hash :\", fillTxHash);\n\n if (onTxSent) {\n onTxSent({\n chainId,\n transactionHash: fillTxHash,\n action: \"fillOtcOrder\",\n receiptPromise: fillTxReceiptPromise,\n transactionSpecificData: {\n action: \"fillOtcOrder\",\n filledOrder: order,\n },\n });\n }\n\n fillTxReceipt = await fillTxReceiptPromise;\n\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:confirmed\",\n params: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n ...baseEventParams,\n },\n },\n });\n }\n\n logger.log(\"~ fillTx ~ receipt:\", fillCallsReceipt || fillTxReceipt);\n // @TODO check if we need to see if receipt.status === \"reverted\" and throw,\n // or if waitForTransactionReceipt already throws on such receipts\n\n return {\n tradeFlowType: fillOtcOrderFlowType,\n approve: {\n txHash: approveTxHash,\n receipt: approveTxReceipt,\n },\n fill: {\n txHash: fillTxHash,\n txReceipt: fillTxReceipt,\n order,\n },\n account,\n receiverAddress: order.taker as Address,\n };\n } catch (error) {\n events.onFillOTCOrder?.({\n event: {\n name: \"FillOTCOrder:failed\",\n params: {\n ...baseEventParams,\n error: error as Error,\n },\n },\n });\n // Fill order failed, we can't be sure if nonce can be reused or it was incremented in a different tx\n if (signedPermitResult) {\n clearNonce(signedPermitResult.signedPermitData);\n }\n throw error;\n }\n };\n\n const runFillOrderMut = useMutation({\n mutationFn: submitFillTx,\n mutationKey: [OTC_ORDER_MUTATION_KEY],\n onSuccess: (data) => {\n logger.log(\"Fill order flow success\", data);\n },\n onError: (error) => {\n logger.error(\"Fill order flow error\", error);\n },\n onSettled: () => {\n logger.log(\"Fill order flow settled\");\n },\n });\n\n const runFillOtcOrderFlow = runFillOrderMut.mutateAsync;\n\n const reset = () => {\n approveTxMut.reset();\n signPermitMut.reset();\n fillOrderMut.reset();\n batchTxMut.reset();\n runFillOrderMut.reset();\n };\n\n const retryFlow = (\n options?: RunFillOtcOrderOptions\n ): Promise<SubmitFillOtcOrderResult> => {\n reset();\n return runFillOtcOrderFlow(options);\n };\n\n /* 5. return result */\n return {\n tradeFlowType: fillOtcOrderFlowType,\n chainId,\n runFillOtcOrderFlow,\n reset,\n cancelFlow,\n retryFlow,\n approval,\n signPermit,\n fillOrder,\n fillOrderBatch,\n isPending: runFillOrderMut.isPending,\n isSuccess: runFillOrderMut.isSuccess,\n isError: runFillOrderMut.isError,\n error: runFillOrderMut.error,\n result: runFillOrderMut.data,\n };\n}\n"],"names":["fillOtcOrderFlowType","OTC_ORDER_MUTATION_KEY","useFillOtcOrderFlow","order","logger","useLogger","chainId","useChainId","approval","signPermit","approveTxMut","signPermitMut","useApproveOrPermit","srcToken","takerAsset","srcAmount","takerAmount","spenderContractType","swapSide","tradeMode","address","account","useAccount","minClient","useMinViemClient","sdk","callDataSDK","useCalldataSDK","client","fillOrderMut","useFillOrder","mutationOptions","onSuccess","log","onError","error","forCurrentChain","canBatchTxs","useCanBatchTxs","addTxWithApprovals","useBatchWithApproveTxs","batchTxMut","useSendBatchTx","fillTxMined","useAwaitTx","hash","data","batchTxMined","useAwaitCalls","id","fillOrder","txHash","receipt","isConfirmingTX","isPending","isConfirmingTxError","isError","isTxSent","isSuccess","isTxPending","isTxMined","isTxAwaitingError","isLoading","lastCallsReceipt","receipts","length","fillOrderBatch","callsId","transactionHash","isConfirmingCalls","isConfirmingCallsError","isCallsSent","isCallsPending","isCallsMined","isCallsAwaitingError","ensureTxReceipt","useEnsureTxReceipt","ensureCallsStatus","useEnsureCallsStatus","currentAbortControllerRef","useRef","cancelFlow","current","abort","UserCancelledError","markNonceAsUsed","clearNonce","useMarkPermit1Or2NonceAsUsed","events","useWidgetEvents","submitFillTx","onTxSent","reset","assert","taker","zeroAddress","abortController","AbortController","signal","signedPermitResult","approveTxHash","approveTxReceipt","allowanceToSet","baseEventParams","orderHash","orderType","orderSubType","type","onFillOTCOrder","event","name","params","shouldBatchTxs","needsApproval","isPermitSupported","isPermitReadyToSign","approveAsync","allowanceData","throwIfAborted","approveTxReceiptPromise","onReplaced","action","receiptPromise","transactionSpecificData","approvedAmount","tokenAddress","token","spenderAddress","spender","signPermitAsync","value","orderFillData","signature","takerPermit","encodedPermitParams","permitEncodedArgs","fillTxHash","fillCallsId","calldata","fillOrderDirectly","calls","txsParams","to","approveProps","sendCallsResult","sendCalls","mutateAsync","signedPermitData","fillCallsReceipt","fillTxReceipt","sendCallsReceiptPromise","then","status","filledOrder","callsReceipt","fillTxReceiptPromise","txReceipt","tradeFlowType","approve","fill","receiverAddress","runFillOrderMut","useMutation","mutationFn","mutationKey","onSettled","runFillOtcOrderFlow","retryFlow","options","result"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFillOtcOrderStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAK/B,MAAM,MAAM,yBAAyB,GAAG;IACtC,iBAAiB,EAAE,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;IAEpE,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1C,UAAU,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACpD,SAAS,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAClD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,aAAa,EAAE,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,wBAAwB,GAChC,yBAAyB,CAqI3B"}
1
+ {"version":3,"file":"useFillOtcOrderStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,uBAAuB,CAAC;AAM/B,MAAM,MAAM,yBAAyB,GAAG;IACtC,iBAAiB,EAAE,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;IAEpE,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1C,UAAU,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACpD,SAAS,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAClD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,aAAa,EAAE,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,wBAAwB,GAChC,yBAAyB,CA0I3B"}
@@ -3,6 +3,7 @@ import { useFillOtcOrderFlow } from './useFillOtcOrderFlow.js';
3
3
  import { useLogger } from '../../../core/logger.js';
4
4
  import { isUserCancelledError } from '../../swap/tradeFlow/common/errors.js';
5
5
  import { constructTxLinkForChain } from '../../../lib/utils/explorer.js';
6
+ import { getStandaloneTxHash } from '../../../transactions/hash.js';
6
7
 
7
8
  function useFillOtcOrderStep(options) {
8
9
  const $ = distExports.c(19);
@@ -51,15 +52,17 @@ function useFillOtcOrderStep(options) {
51
52
  const inFillTxConfirmation = step?.key === "signature" && (step.subStep === "order-signature" || step.subStep === "standalone-order-signature");
52
53
  const notYetFillTxSent = step?.key === "order-execution" && !fillOtcOrderFlow.fillOrder.isTxSent && !fillOtcOrderFlow.fillOrderBatch.isCallsSent;
53
54
  isFlowCancellable = approvalIsStarted || notYetFillTxSent || inFillTxConfirmation;
54
- const txHash = fillOtcOrderFlow.fillOrder.txHash || fillOtcOrderFlow.fillOrderBatch.txHash;
55
- explorerLink = txHash ? constructTxLinkForChain({
55
+ const fillTxHash = fillOtcOrderFlow.fillOrderBatch.txHash || getStandaloneTxHash({
56
+ transactionHash: fillOtcOrderFlow.fillOrder.txHash
57
+ });
58
+ explorerLink = fillTxHash ? constructTxLinkForChain({
56
59
  chainId: fillOtcOrderFlow.chainId,
57
- txHash
60
+ txHash: fillTxHash
58
61
  }) : void 0;
59
62
  logger.once.log("step", step, fillOtcOrderFlow, {
60
63
  isFlowCancellable,
61
64
  explorerLink,
62
- txHash
65
+ txHash: fillTxHash
63
66
  });
64
67
  $[0] = fillOtcOrderFlow;
65
68
  $[1] = logger.once;
@@ -1 +1 @@
1
- {"version":3,"file":"useFillOtcOrderStep.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderStep.ts"],"sourcesContent":["import type {\n FillOtcOrderStep,\n FillOtcOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useFillOtcOrderFlow,\n type SubmitFillOtcOrderResult,\n type UseFillOtcOrderFlowInput,\n type UseFillOtcOrderFlowResult,\n} from \"./useFillOtcOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\n\nexport type UseFillOtcOrderStepResult = {\n startFillOtcOrder: UseFillOtcOrderFlowResult[\"runFillOtcOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseFillOtcOrderFlowResult[\"reset\"];\n cancelFlow: UseFillOtcOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseFillOtcOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n step?: FillOtcOrderStep;\n error: Error | null;\n erroredStep?: FillOtcOrderStepKey;\n result?: SubmitFillOtcOrderResult;\n tradeFlowType: UseFillOtcOrderFlowResult[\"tradeFlowType\"];\n explorerLink?: string;\n};\n\nexport function useFillOtcOrderStep(\n options: UseFillOtcOrderFlowInput\n): UseFillOtcOrderStepResult {\n const logger = useLogger(\"FillOtcOrderStep\");\n const fillOtcOrderFlow = useFillOtcOrderFlow(options);\n\n const startFillOtcOrder = fillOtcOrderFlow.runFillOtcOrderFlow;\n const reset = fillOtcOrderFlow.reset;\n const cancelFlow = fillOtcOrderFlow.cancelFlow;\n const retryFlow = fillOtcOrderFlow.retryFlow;\n\n let step: FillOtcOrderStep | 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 fillOtcOrderFlow.signPermit.isPending ||\n !fillOtcOrderFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n fillOtcOrderFlow.approval.isPending || !fillOtcOrderFlow.approval.isSuccess;\n\n const willUsePermit =\n fillOtcOrderFlow.approval.needsApproval &&\n fillOtcOrderFlow.signPermit.isPermitSupported &&\n fillOtcOrderFlow.signPermit.isPermitReadyToSign &&\n !fillOtcOrderFlow.fillOrderBatch.canBatchTxs;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n fillOtcOrderFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n fillOtcOrderFlow.fillOrder.isConfirmingTX ||\n fillOtcOrderFlow.fillOrderBatch.isConfirmingCalls\n ) {\n const permitOrApprovalHappened = !!(\n fillOtcOrderFlow.approval.txHash || fillOtcOrderFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (\n fillOtcOrderFlow.fillOrder.isTxPending ||\n fillOtcOrderFlow.fillOrderBatch.isCallsPending\n ) {\n step = { key: \"order-execution\" };\n } else if (fillOtcOrderFlow.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 fillOtcOrderFlow.approval.isTxPending;\n\n const inFillTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetFillTxSent =\n step?.key === \"order-execution\" &&\n !fillOtcOrderFlow.fillOrder.isTxSent &&\n !fillOtcOrderFlow.fillOrderBatch.isCallsSent;\n\n const isFlowCancellable =\n // final Tx is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || notYetFillTxSent || inFillTxConfirmation;\n\n // either of the txHashes will be available\n const txHash =\n fillOtcOrderFlow.fillOrder.txHash || fillOtcOrderFlow.fillOrderBatch.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: fillOtcOrderFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, fillOtcOrderFlow, {\n isFlowCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(fillOtcOrderFlow.error)\n ? null\n : fillOtcOrderFlow.error;\n\n let erroredStep: FillOtcOrderStepKey | undefined;\n\n if (fillOtcOrderFlow.isError) {\n if (\n fillOtcOrderFlow.approval.isError ||\n fillOtcOrderFlow.signPermit.isError ||\n fillOtcOrderFlow.fillOrder.isConfirmingTxError ||\n fillOtcOrderFlow.fillOrderBatch.isConfirmingCallsError\n ) {\n erroredStep = \"signature\";\n } else if (\n fillOtcOrderFlow.fillOrder.isTxAwaitingError ||\n fillOtcOrderFlow.fillOrderBatch.isCallsAwaitingError\n ) {\n erroredStep = \"order-execution\";\n }\n }\n\n return {\n startFillOtcOrder,\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 error,\n erroredStep,\n result: fillOtcOrderFlow.result,\n tradeFlowType: fillOtcOrderFlow.tradeFlowType,\n explorerLink,\n };\n}\n"],"names":["useFillOtcOrderStep","options","$","_c","logger","useLogger","fillOtcOrderFlow","useFillOtcOrderFlow","startFillOtcOrder","runFillOtcOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","fillOrderBatch","canBatchTxs","permitOrApprovalHappeningOrNeverHappened","fillOrder","isConfirmingTX","isConfirmingCalls","permitOrApprovalHappened","txHash","signature","isTxPending","isCallsPending","approvalIsStarted","key","subStep","inFillTxConfirmation","notYetFillTxSent","isTxSent","isCallsSent","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isConfirmingCallsError","isTxAwaitingError","isCallsAwaitingError","t1","result","tradeFlowType"],"mappings":"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"}
1
+ {"version":3,"file":"useFillOtcOrderStep.js","sources":["../../../../src/hooks/otc/tradeFlow/useFillOtcOrderStep.ts"],"sourcesContent":["import type {\n FillOtcOrderStep,\n FillOtcOrderStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useFillOtcOrderFlow,\n type SubmitFillOtcOrderResult,\n type UseFillOtcOrderFlowInput,\n type UseFillOtcOrderFlowResult,\n} from \"./useFillOtcOrderFlow\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"../../swap/tradeFlow/common/errors\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { getStandaloneTxHash } from \"@/transactions/hash\";\n\nexport type UseFillOtcOrderStepResult = {\n startFillOtcOrder: UseFillOtcOrderFlowResult[\"runFillOtcOrderFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseFillOtcOrderFlowResult[\"reset\"];\n cancelFlow: UseFillOtcOrderFlowResult[\"cancelFlow\"];\n retryFlow: UseFillOtcOrderFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n step?: FillOtcOrderStep;\n error: Error | null;\n erroredStep?: FillOtcOrderStepKey;\n result?: SubmitFillOtcOrderResult;\n tradeFlowType: UseFillOtcOrderFlowResult[\"tradeFlowType\"];\n explorerLink?: string;\n};\n\nexport function useFillOtcOrderStep(\n options: UseFillOtcOrderFlowInput\n): UseFillOtcOrderStepResult {\n const logger = useLogger(\"FillOtcOrderStep\");\n const fillOtcOrderFlow = useFillOtcOrderFlow(options);\n\n const startFillOtcOrder = fillOtcOrderFlow.runFillOtcOrderFlow;\n const reset = fillOtcOrderFlow.reset;\n const cancelFlow = fillOtcOrderFlow.cancelFlow;\n const retryFlow = fillOtcOrderFlow.retryFlow;\n\n let step: FillOtcOrderStep | 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 fillOtcOrderFlow.signPermit.isPending ||\n !fillOtcOrderFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n fillOtcOrderFlow.approval.isPending || !fillOtcOrderFlow.approval.isSuccess;\n\n const willUsePermit =\n fillOtcOrderFlow.approval.needsApproval &&\n fillOtcOrderFlow.signPermit.isPermitSupported &&\n fillOtcOrderFlow.signPermit.isPermitReadyToSign &&\n !fillOtcOrderFlow.fillOrderBatch.canBatchTxs;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n fillOtcOrderFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n fillOtcOrderFlow.fillOrder.isConfirmingTX ||\n fillOtcOrderFlow.fillOrderBatch.isConfirmingCalls\n ) {\n const permitOrApprovalHappened = !!(\n fillOtcOrderFlow.approval.txHash || fillOtcOrderFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (\n fillOtcOrderFlow.fillOrder.isTxPending ||\n fillOtcOrderFlow.fillOrderBatch.isCallsPending\n ) {\n step = { key: \"order-execution\" };\n } else if (fillOtcOrderFlow.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 fillOtcOrderFlow.approval.isTxPending;\n\n const inFillTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetFillTxSent =\n step?.key === \"order-execution\" &&\n !fillOtcOrderFlow.fillOrder.isTxSent &&\n !fillOtcOrderFlow.fillOrderBatch.isCallsSent;\n\n const isFlowCancellable =\n // final Tx is not yet submitted, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n approvalIsStarted || notYetFillTxSent || inFillTxConfirmation;\n\n const fillTxHash =\n // either last txHash from batch receipt\n fillOtcOrderFlow.fillOrderBatch.txHash ||\n // or standalone fill txHash\n getStandaloneTxHash({ transactionHash: fillOtcOrderFlow.fillOrder.txHash });\n const explorerLink = fillTxHash\n ? constructTxLinkForChain({\n chainId: fillOtcOrderFlow.chainId,\n txHash: fillTxHash,\n })\n : undefined;\n\n logger.once.log(\"step\", step, fillOtcOrderFlow, {\n isFlowCancellable,\n explorerLink,\n txHash: fillTxHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(fillOtcOrderFlow.error)\n ? null\n : fillOtcOrderFlow.error;\n\n let erroredStep: FillOtcOrderStepKey | undefined;\n\n if (fillOtcOrderFlow.isError) {\n if (\n fillOtcOrderFlow.approval.isError ||\n fillOtcOrderFlow.signPermit.isError ||\n fillOtcOrderFlow.fillOrder.isConfirmingTxError ||\n fillOtcOrderFlow.fillOrderBatch.isConfirmingCallsError\n ) {\n erroredStep = \"signature\";\n } else if (\n fillOtcOrderFlow.fillOrder.isTxAwaitingError ||\n fillOtcOrderFlow.fillOrderBatch.isCallsAwaitingError\n ) {\n erroredStep = \"order-execution\";\n }\n }\n\n return {\n startFillOtcOrder,\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 error,\n erroredStep,\n result: fillOtcOrderFlow.result,\n tradeFlowType: fillOtcOrderFlow.tradeFlowType,\n explorerLink,\n };\n}\n"],"names":["useFillOtcOrderStep","options","$","_c","logger","useLogger","fillOtcOrderFlow","useFillOtcOrderFlow","startFillOtcOrder","runFillOtcOrderFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","fillOrderBatch","canBatchTxs","permitOrApprovalHappeningOrNeverHappened","fillOrder","isConfirmingTX","isConfirmingCalls","permitOrApprovalHappened","txHash","signature","isTxPending","isCallsPending","approvalIsStarted","key","subStep","inFillTxConfirmation","notYetFillTxSent","isTxSent","isCallsSent","fillTxHash","getStandaloneTxHash","transactionHash","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isConfirmingCallsError","isTxAwaitingError","isCallsAwaitingError","t1","result","tradeFlowType"],"mappings":"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"}
@@ -65,9 +65,9 @@ export declare function useDeltaPriceQueryKey({ priceParams, chainId, destChainI
65
65
  }): {
66
66
  queryKey: DeltaPriceQueryKey;
67
67
  sanitizedPriceParams: {
68
+ partner?: string | undefined;
68
69
  amount: string;
69
70
  side?: ("SELL" | "BUY") | undefined;
70
- partner?: string | undefined;
71
71
  excludeAgents?: string[] | undefined;
72
72
  includeAgents?: string[] | undefined;
73
73
  userAddress?: string | undefined;
@@ -1,9 +1,4 @@
1
1
  import { d as distExports } from '../../../_virtual/index.js';
2
- import '../../useSDK.js';
3
- import '@tanstack/react-pacer/debouncer';
4
- import '@tanstack/react-query';
5
- import 'react';
6
- import 'ts-essentials';
7
2
  import { useAtomValue } from '../../../core/store.js';
8
3
  import { useAccount } from 'wagmi';
9
4
  import { useSwapSide } from '../../../components/widget/SwapModeSwitcher/state/swapSideAtom.js';
@@ -1 +1 @@
1
- {"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\n\nimport { useAtomValue } from \"@/core/store\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useTokenTaxFee } from \"@/hooks/tokens/useTokenTaxFee\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToPayAmountWeiAtom,\n tradeModeToReceiveAmountWeiAtom,\n tradeModeToTokenAtoms,\n} from \"@/core/inputs/state/common\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\nexport type FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n | \"srcTokenDexTransferFee\"\n | \"destTokenDexTransferFee\"\n | \"otherExchangePrices\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n\nexport function usePricesParams(tradeMode: TradeMode): {\n priceParams: FetchPriceParams;\n isCrossChain: boolean;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n} {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const fromToken = useAtomValue(tokenFromAtom);\n const toToken = useAtomValue(tokenToAtom);\n\n const payAmountWeiAtom = tradeModeToPayAmountWeiAtom[tradeMode];\n const receiveAmountWeiAtom = tradeModeToReceiveAmountWeiAtom[tradeMode];\n\n const payAmountWei = useAtomValue(payAmountWeiAtom);\n const receiveAmountWei = useAtomValue(receiveAmountWeiAtom) ?? \"0\";\n\n const { data: fromTokenTaxFee } = useTokenTaxFee({\n tokenAddress: fromToken.address,\n chainId: fromToken.network,\n });\n\n const { data: toTokenTaxFee } = useTokenTaxFee({\n tokenAddress: toToken?.address,\n chainId: toToken?.network,\n });\n\n const srcTokenDexTransferFee = fromTokenTaxFee?.sellTax?.toString();\n const destTokenDexTransferFee = toTokenTaxFee?.buyTax?.toString();\n\n const { address } = useAccount();\n\n const widgetConfig = useWidgetConfig();\n const partner = usePartner();\n\n const isCrossChain = !!toToken && fromToken.network !== toToken.network;\n\n const swapSide = useSwapSide();\n const side = tradeMode === \"swap\" ? swapSide : \"SELL\";\n const amount = side === \"SELL\" ? payAmountWei : receiveAmountWei;\n\n const priceParams: FetchPriceParams = {\n srcToken: fromToken.address,\n destToken: toToken?.address,\n srcDecimals: fromToken.decimals,\n destDecimals: toToken?.decimals,\n side,\n amount,\n userAddress: address,\n partner,\n ignoreBadUsdPrice: widgetConfig.ignoreBadUsdPrice ?? true,\n srcTokenDexTransferFee,\n destTokenDexTransferFee,\n otherExchangePrices: true,\n };\n\n return {\n priceParams,\n isCrossChain,\n chainId: fromToken.network,\n destChainId: isCrossChain ? toToken?.network : undefined,\n };\n}\n"],"names":["usePricesParams","tradeMode","$","_c","tokenFromAtom","tokenToAtom","tradeModeToTokenAtoms","fromToken","useAtomValue","toToken","payAmountWeiAtom","tradeModeToPayAmountWeiAtom","receiveAmountWeiAtom","tradeModeToReceiveAmountWeiAtom","payAmountWei","receiveAmountWei","t0","address","network","tokenAddress","chainId","data","fromTokenTaxFee","useTokenTaxFee","t1","t2","t3","toTokenTaxFee","t4","sellTax","toString","srcTokenDexTransferFee","t5","buyTax","destTokenDexTransferFee","useAccount","widgetConfig","useWidgetConfig","partner","usePartner","isCrossChain","swapSide","useSwapSide","side","amount","t6","t7","decimals","t8","ignoreBadUsdPrice","t9","srcToken","destToken","srcDecimals","destDecimals","userAddress","otherExchangePrices","priceParams","t10","undefined","t11","destChainId"],"mappings":"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"}
1
+ {"version":3,"file":"usePricesParams.js","sources":["../../../../src/hooks/swap/prices/usePricesParams.ts"],"sourcesContent":["import { type RateParamsInput } from \"./market/queries/useMarketPriceQuery\";\n\nimport { useAtomValue } from \"@/core/store\";\nimport { useAccount } from \"wagmi\";\nimport type { MarkOptional, MarkRequired } from \"ts-essentials\";\nimport { useSwapSide } from \"@/components/widget/SwapModeSwitcher/state/swapSideAtom\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useTokenTaxFee } from \"@/hooks/tokens/useTokenTaxFee\";\nimport { usePartner } from \"@/hooks/usePartner\";\nimport type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport {\n tradeModeToPayAmountWeiAtom,\n tradeModeToReceiveAmountWeiAtom,\n tradeModeToTokenAtoms,\n} from \"@/core/inputs/state/common\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\nexport type FetchPriceParams = MarkRequired<\n MarkOptional<\n Pick<\n RateParamsInput,\n | \"srcToken\"\n | \"destToken\"\n | \"amount\"\n | \"userAddress\"\n | \"side\"\n | \"srcDecimals\"\n | \"destDecimals\"\n | \"partner\"\n | \"ignoreBadUsdPrice\"\n | \"srcTokenDexTransferFee\"\n | \"destTokenDexTransferFee\"\n | \"otherExchangePrices\"\n >,\n \"destToken\"\n >,\n \"srcDecimals\" | \"side\"\n>;\n// @TODO add other params from options:\n// exclude* for Safe if still needed, or if we want to allow exluding DEXs like in UI\n\nexport function usePricesParams(tradeMode: TradeMode): {\n priceParams: FetchPriceParams;\n isCrossChain: boolean;\n chainId: SupportedChainId;\n destChainId?: SupportedChainId;\n} {\n const { tokenFromAtom, tokenToAtom } = tradeModeToTokenAtoms[tradeMode];\n const fromToken = useAtomValue(tokenFromAtom);\n const toToken = useAtomValue(tokenToAtom);\n\n const payAmountWeiAtom = tradeModeToPayAmountWeiAtom[tradeMode];\n const receiveAmountWeiAtom = tradeModeToReceiveAmountWeiAtom[tradeMode];\n\n const payAmountWei = useAtomValue(payAmountWeiAtom);\n const receiveAmountWei = useAtomValue(receiveAmountWeiAtom) ?? \"0\";\n\n const { data: fromTokenTaxFee } = useTokenTaxFee({\n tokenAddress: fromToken.address,\n chainId: fromToken.network,\n });\n\n const { data: toTokenTaxFee } = useTokenTaxFee({\n tokenAddress: toToken?.address,\n chainId: toToken?.network,\n });\n\n const srcTokenDexTransferFee = fromTokenTaxFee?.sellTax?.toString();\n const destTokenDexTransferFee = toTokenTaxFee?.buyTax?.toString();\n\n const { address } = useAccount();\n\n const widgetConfig = useWidgetConfig();\n const partner = usePartner();\n\n const isCrossChain = !!toToken && fromToken.network !== toToken.network;\n\n const swapSide = useSwapSide();\n const side = tradeMode === \"swap\" ? swapSide : \"SELL\";\n const amount = side === \"SELL\" ? payAmountWei : receiveAmountWei;\n\n const priceParams: FetchPriceParams = {\n srcToken: fromToken.address,\n destToken: toToken?.address,\n srcDecimals: fromToken.decimals,\n destDecimals: toToken?.decimals,\n side,\n amount,\n userAddress: address,\n partner,\n ignoreBadUsdPrice: widgetConfig.ignoreBadUsdPrice ?? true,\n srcTokenDexTransferFee,\n destTokenDexTransferFee,\n otherExchangePrices: true,\n };\n\n return {\n priceParams,\n isCrossChain,\n chainId: fromToken.network,\n destChainId: isCrossChain ? toToken?.network : undefined,\n };\n}\n"],"names":["usePricesParams","tradeMode","$","_c","tokenFromAtom","tokenToAtom","tradeModeToTokenAtoms","fromToken","useAtomValue","toToken","payAmountWeiAtom","tradeModeToPayAmountWeiAtom","receiveAmountWeiAtom","tradeModeToReceiveAmountWeiAtom","payAmountWei","receiveAmountWei","t0","address","network","tokenAddress","chainId","data","fromTokenTaxFee","useTokenTaxFee","t1","t2","t3","toTokenTaxFee","t4","sellTax","toString","srcTokenDexTransferFee","t5","buyTax","destTokenDexTransferFee","useAccount","widgetConfig","useWidgetConfig","partner","usePartner","isCrossChain","swapSide","useSwapSide","side","amount","t6","t7","decimals","t8","ignoreBadUsdPrice","t9","srcToken","destToken","srcDecimals","destDecimals","userAddress","otherExchangePrices","priceParams","t10","undefined","t11","destChainId"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAKzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,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,gBAAgB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,oBAAoB,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACnE,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACrD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,CAqIzB"}
1
+ {"version":3,"file":"useMarketSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAMzB,KAAK,uBAAuB,GAAG;IAC7B,eAAe,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAE1D,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,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,gBAAgB,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,oBAAoB,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACnE,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;CACrD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,uBAAuB,CA2IzB"}
@@ -3,6 +3,7 @@ import { useMarketFlow } from './useMarketFlow.js';
3
3
  import { constructTxLinkForChain } from '../../../lib/utils/explorer.js';
4
4
  import { useLogger } from '../../../core/logger.js';
5
5
  import { isUserCancelledError } from './common/errors.js';
6
+ import { getStandaloneTxHash } from '../../../transactions/hash.js';
6
7
 
7
8
  function useMarketSwapStep(options) {
8
9
  const $ = distExports.c(21);
@@ -51,15 +52,17 @@ function useMarketSwapStep(options) {
51
52
  const inSwapTxConfirmation = step?.key === "signature" && (step.subStep === "order-signature" || step.subStep === "standalone-order-signature");
52
53
  const notYetSwapTxSent = step?.key === "swap-tx-execution" && !marketFlow.swap.isTxSent && !marketFlow.swapBatch.isCallsSent;
53
54
  isFlowCancellable = approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;
54
- const txHash = marketFlow.swapBatch.txHash || marketFlow.swap.txHash;
55
- explorerLink = txHash ? constructTxLinkForChain({
55
+ const swapTxHash = marketFlow.swapBatch.txHash || getStandaloneTxHash({
56
+ transactionHash: marketFlow.swap.txHash
57
+ });
58
+ explorerLink = swapTxHash ? constructTxLinkForChain({
56
59
  chainId: marketFlow.chainId,
57
- txHash
60
+ txHash: swapTxHash
58
61
  }) : void 0;
59
62
  logger.once.log("step", step, marketFlow, {
60
63
  isFlowCancellable,
61
64
  explorerLink,
62
- txHash
65
+ txHash: swapTxHash
63
66
  });
64
67
  $[0] = logger.once;
65
68
  $[1] = marketFlow;
@@ -1 +1 @@
1
- {"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type {\n MarketSwapStep,\n MarketSwapStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n step?: MarketSwapStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n submittedSwapRequest?: UseMarketFlowResult[\"submittedSwapRequest\"];\n tradeFlowType: UseMarketFlowResult[\"tradeFlowType\"];\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStep | 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 marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign &&\n !marketFlow.swapBatch.canBatchTxs;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX ||\n marketFlow.swapBatch.isConfirmingCalls\n ) {\n const permitOrApprovalHappened = !!(\n marketFlow.approval.txHash || marketFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (\n marketFlow.swap.isTxPending ||\n marketFlow.swapBatch.isCallsPending\n ) {\n step = { key: \"swap-tx-execution\" };\n } else if (marketFlow.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 marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetSwapTxSent =\n step?.key === \"swap-tx-execution\" &&\n !marketFlow.swap.isTxSent &&\n !marketFlow.swapBatch.isCallsSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isFlowCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n // either of the txHashes will be available\n const txHash = marketFlow.swapBatch.txHash || marketFlow.swap.txHash;\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: marketFlow.chainId, txHash })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isFlowCancellable,\n explorerLink,\n txHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (\n marketFlow.approval.isError ||\n marketFlow.signPermit.isError ||\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError ||\n marketFlow.swapBatch.isConfirmingCallsError\n ) {\n erroredStep = \"signature\";\n } else if (\n marketFlow.swap.isTxAwaitingError ||\n marketFlow.swapBatch.isCallsAwaitingError\n ) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n submittedSwapRequest: marketFlow.submittedSwapRequest,\n tradeFlowType: marketFlow.tradeFlowType,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","swapBatch","canBatchTxs","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isConfirmingCalls","permitOrApprovalHappened","txHash","signature","isTxPending","isCallsPending","approvalIsStarted","key","subStep","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCallsSent","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isConfirmingCallsError","isTxAwaitingError","isCallsAwaitingError","t1","result","submittedSwapRequest","tradeFlowType","usedPrice"],"mappings":"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"}
1
+ {"version":3,"file":"useMarketSwapStep.js","sources":["../../../../src/hooks/swap/tradeFlow/useMarketSwapStep.ts"],"sourcesContent":["import type {\n MarketSwapStep,\n MarketSwapStepKey,\n} from \"@/components/widget/TradeOverview/steps\";\nimport {\n useMarketFlow,\n type UseMarketFlowInput,\n type UseMarketFlowResult,\n type SubmitSwapResult,\n} from \"./useMarketFlow\";\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport { useLogger } from \"@/core/logger\";\nimport { isUserCancelledError } from \"./common/errors\";\nimport { getStandaloneTxHash } from \"@/transactions/hash\";\n\ntype UseMarketSwapStepResult = {\n startMarketSwap: UseMarketFlowResult[\"runMarketSwapFlow\"];\n // @TODO check if resetting is necessary on error, maybe not if submit on click works as a reset\n reset: UseMarketFlowResult[\"reset\"];\n cancelFlow: UseMarketFlowResult[\"cancelFlow\"];\n retryFlow: UseMarketFlowResult[\"retryFlow\"];\n isFlowCancellable: boolean;\n step?: MarketSwapStep;\n explorerLink?: string;\n error: Error | null;\n erroredStep?: MarketSwapStepKey;\n result?: SubmitSwapResult;\n usedPrice: UseMarketFlowResult[\"usedPrice\"];\n submittedSwapRequest?: UseMarketFlowResult[\"submittedSwapRequest\"];\n tradeFlowType: UseMarketFlowResult[\"tradeFlowType\"];\n};\n\nexport function useMarketSwapStep(\n options: UseMarketFlowInput\n): UseMarketSwapStepResult {\n const logger = useLogger(\"MarketSwapStep\");\n const marketFlow = useMarketFlow(options);\n\n const startMarketSwap = marketFlow.runMarketSwapFlow;\n const reset = marketFlow.reset;\n const cancelFlow = marketFlow.cancelFlow;\n const retryFlow = marketFlow.retryFlow;\n\n let step: MarketSwapStep | 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 marketFlow.signPermit.isPending || !marketFlow.signPermit.isPermitSigned;\n\n const approvalHappeningOrNeverHappened =\n // isPending starts as false,\n // needsApproval && !isSuccess allows to detect approve step right away even then\n marketFlow.approval.isPending || !marketFlow.approval.isSuccess;\n\n const willUsePermit =\n marketFlow.approval.needsApproval &&\n marketFlow.signPermit.isPermitSupported &&\n marketFlow.signPermit.isPermitReadyToSign &&\n !marketFlow.swapBatch.canBatchTxs;\n\n const permitOrApprovalHappeningOrNeverHappened = willUsePermit\n ? permitSigningHappeningOrNeverHappened\n : approvalHappeningOrNeverHappened;\n\n if (\n marketFlow.approval.needsApproval &&\n permitOrApprovalHappeningOrNeverHappened\n ) {\n step = { key: \"signature\", subStep: \"approval-signature\" };\n } else if (\n marketFlow.buildTxParams.isPending ||\n marketFlow.swap.isConfirmingTX ||\n marketFlow.swapBatch.isConfirmingCalls\n ) {\n const permitOrApprovalHappened = !!(\n marketFlow.approval.txHash || marketFlow.signPermit.signature\n );\n\n step = {\n key: \"signature\",\n subStep: permitOrApprovalHappened\n ? \"order-signature\"\n : \"standalone-order-signature\",\n };\n } else if (\n marketFlow.swap.isTxPending ||\n marketFlow.swapBatch.isCallsPending\n ) {\n step = { key: \"swap-tx-execution\" };\n } else if (marketFlow.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 marketFlow.approval.isTxPending;\n\n const inSwapTxConfirmation =\n step?.key === \"signature\" &&\n (step.subStep === \"order-signature\" ||\n step.subStep === \"standalone-order-signature\");\n\n const notYetSwapTxSent =\n step?.key === \"swap-tx-execution\" &&\n !marketFlow.swap.isTxSent &&\n !marketFlow.swapBatch.isCallsSent;\n\n // final tx is not yet sent, there's something to cancel;\n // but some steps are already started so we can't simply dismiss\n const isFlowCancellable =\n approvalIsStarted || inSwapTxConfirmation || notYetSwapTxSent;\n\n const swapTxHash =\n // either last txHash from batch receipt\n marketFlow.swapBatch.txHash ||\n // or standalone swap txHash\n getStandaloneTxHash({ transactionHash: marketFlow.swap.txHash });\n const explorerLink = swapTxHash\n ? constructTxLinkForChain({\n chainId: marketFlow.chainId,\n txHash: swapTxHash,\n })\n : undefined;\n\n logger.once.log(\"step\", step, marketFlow, {\n isFlowCancellable,\n explorerLink,\n txHash: swapTxHash,\n });\n\n // intentional cancellation is handled separately\n const error = isUserCancelledError(marketFlow.error)\n ? null\n : marketFlow.error;\n\n let erroredStep: MarketSwapStepKey | undefined;\n\n if (marketFlow.isError) {\n if (\n marketFlow.approval.isError ||\n marketFlow.signPermit.isError ||\n marketFlow.buildTxParams.isError ||\n marketFlow.swap.isConfirmingTxError ||\n marketFlow.swapBatch.isConfirmingCallsError\n ) {\n erroredStep = \"signature\";\n } else if (\n marketFlow.swap.isTxAwaitingError ||\n marketFlow.swapBatch.isCallsAwaitingError\n ) {\n erroredStep = \"swap-tx-execution\";\n }\n }\n\n return {\n startMarketSwap,\n reset,\n cancelFlow,\n retryFlow,\n isFlowCancellable,\n step,\n explorerLink,\n error,\n erroredStep,\n result: marketFlow.result,\n usedPrice: marketFlow.usedPrice,\n submittedSwapRequest: marketFlow.submittedSwapRequest,\n tradeFlowType: marketFlow.tradeFlowType,\n };\n}\n"],"names":["useMarketSwapStep","options","$","_c","logger","useLogger","marketFlow","useMarketFlow","startMarketSwap","runMarketSwapFlow","reset","cancelFlow","retryFlow","explorerLink","isFlowCancellable","step","once","permitSigningHappeningOrNeverHappened","signPermit","isPending","isPermitSigned","approvalHappeningOrNeverHappened","approval","isSuccess","willUsePermit","needsApproval","isPermitSupported","isPermitReadyToSign","swapBatch","canBatchTxs","permitOrApprovalHappeningOrNeverHappened","buildTxParams","swap","isConfirmingTX","isConfirmingCalls","permitOrApprovalHappened","txHash","signature","isTxPending","isCallsPending","approvalIsStarted","key","subStep","inSwapTxConfirmation","notYetSwapTxSent","isTxSent","isCallsSent","swapTxHash","getStandaloneTxHash","transactionHash","constructTxLinkForChain","chainId","undefined","log","t0","error","isUserCancelledError","erroredStep","isError","isConfirmingTxError","isConfirmingCallsError","isTxAwaitingError","isCallsAwaitingError","t1","result","submittedSwapRequest","tradeFlowType","usedPrice"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAwaitTx.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAGL,KAAK,sCAAsC,EAC3C,KAAK,sCAAsC,EAC5C,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wCAAwC,CAAC;AAIhD,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,sBAAsB,IAAI;IACtE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,sCAAsC,CAC5C,OAAO,WAAW,EAClB,gBAAgB,EAChB,UAAU,CACX,CAAC,OAAO,CAAC,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,6BAA6B,CAChE,OAAO,WAAW,EAClB,gBAAgB,CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,sBAAsB,IAClE,sCAAsC,CACpC,OAAO,WAAW,EAClB,gBAAgB,EAChB,UAAU,CACX,CAAC;AAEJ,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,wBAAgB,UAAU,CAAC,UAAU,GAAG,sBAAsB,EAAE,EAC9D,OAAO,EACP,aAAa,EACb,IAAI,EACJ,KAAK,GACN,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CA2BrE;AAED,wBAAgB,kBAAkB,IAAI,iBAAiB,CAMtD"}
1
+ {"version":3,"file":"useAwaitTx.d.ts","sourceRoot":"","sources":["../../../../src/hooks/txs/queries/useAwaitTx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAKL,KAAK,sCAAsC,EAC3C,KAAK,sCAAsC,EAC5C,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wCAAwC,CAAC;AAMhD,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,sBAAsB,IAAI;IACtE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,sCAAsC,CAC5C,OAAO,WAAW,EAClB,gBAAgB,EAChB,UAAU,CACX,CAAC,OAAO,CAAC,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,6BAA6B,CAChE,OAAO,WAAW,EAClB,gBAAgB,CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,UAAU,GAAG,sBAAsB,IAClE,sCAAsC,CACpC,OAAO,WAAW,EAClB,gBAAgB,EAChB,UAAU,CACX,CAAC;AAEJ,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,wBAAgB,UAAU,CAAC,UAAU,GAAG,sBAAsB,EAAE,EAC9D,OAAO,EACP,aAAa,EACb,IAAI,EACJ,KAAK,GACN,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CA0DrE;AAED,wBAAgB,kBAAkB,IAAI,iBAAiB,CAMtD"}