@velora-dex/widget 0.3.13-dev.1 → 0.4.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 (200) hide show
  1. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts.map +1 -1
  2. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +75 -63
  3. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  4. package/dist/components/web3/ConnectExternalProvider/constants.d.ts +14 -0
  5. package/dist/components/web3/ConnectExternalProvider/constants.d.ts.map +1 -0
  6. package/dist/components/web3/ConnectExternalProvider/constants.js +6 -0
  7. package/dist/components/web3/ConnectExternalProvider/constants.js.map +1 -0
  8. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts +15 -0
  9. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts.map +1 -0
  10. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js +56 -0
  11. package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js.map +1 -0
  12. package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.d.ts +6 -0
  13. package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.d.ts.map +1 -0
  14. package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.js +76 -0
  15. package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.js.map +1 -0
  16. package/dist/components/web3/ConnectExternalProvider/utils.d.ts +23 -0
  17. package/dist/components/web3/ConnectExternalProvider/utils.d.ts.map +1 -0
  18. package/dist/components/web3/ConnectExternalProvider/utils.js +42 -0
  19. package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -0
  20. package/dist/components/web3/ConnectWallets/index.js.map +1 -1
  21. package/dist/components/web3/ConnectWallets/walletIcons.d.ts +8 -1
  22. package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
  23. package/dist/components/web3/ConnectWallets/walletIcons.js +23 -9
  24. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  25. package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
  26. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +11 -5
  27. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  28. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.d.ts.map +1 -1
  29. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js +95 -79
  30. package/dist/components/widget/TradeOverview/DeltaOrderTradeOverview.js.map +1 -1
  31. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts +1 -1
  32. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.d.ts.map +1 -1
  33. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js +60 -89
  34. package/dist/components/widget/TradeOverview/LimitOrderTradeOverview.js.map +1 -1
  35. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.d.ts.map +1 -1
  36. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js +1 -0
  37. package/dist/components/widget/TradeOverview/OtcOrderTradeOverview.js.map +1 -1
  38. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts +4 -1
  39. package/dist/components/widget/TradeOverview/utils/preWrap.d.ts.map +1 -1
  40. package/dist/components/widget/TradeOverview/utils/preWrap.js +2 -1
  41. package/dist/components/widget/TradeOverview/utils/preWrap.js.map +1 -1
  42. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +2 -2
  43. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
  44. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +22 -23
  45. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
  46. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +1 -1
  47. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
  48. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts +2 -0
  49. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  50. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +236 -3
  51. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  52. package/dist/configurator/Configurator.d.ts.map +1 -1
  53. package/dist/configurator/Safe/SafeConnector.d.ts +23 -0
  54. package/dist/configurator/Safe/SafeConnector.d.ts.map +1 -0
  55. package/dist/configurator/Safe/useSafeConnector.d.ts +8 -0
  56. package/dist/configurator/Safe/useSafeConnector.d.ts.map +1 -0
  57. package/dist/core/LimitOrderButton.d.ts.map +1 -1
  58. package/dist/core/LimitOrderButton.js +40 -18
  59. package/dist/core/LimitOrderButton.js.map +1 -1
  60. package/dist/core/index.d.ts.map +1 -1
  61. package/dist/core/index.js +46 -24
  62. package/dist/core/index.js.map +1 -1
  63. package/dist/core/state/configAtom.d.ts.map +1 -1
  64. package/dist/core/state/configAtom.js +5 -1
  65. package/dist/core/state/configAtom.js.map +1 -1
  66. package/dist/core/state/externalProviderAtom.d.ts +6 -0
  67. package/dist/core/state/externalProviderAtom.d.ts.map +1 -1
  68. package/dist/core/state/externalProviderAtom.js +4 -1
  69. package/dist/core/state/externalProviderAtom.js.map +1 -1
  70. package/dist/events/getters/swap.d.ts.map +1 -1
  71. package/dist/events/getters/swap.js +2 -1
  72. package/dist/events/getters/swap.js.map +1 -1
  73. package/dist/events/getters/widgetState.d.ts.map +1 -1
  74. package/dist/events/getters/widgetState.js +22 -1
  75. package/dist/events/getters/widgetState.js.map +1 -1
  76. package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
  77. package/dist/events/hooks/useOnWalletConnect.js +17 -1
  78. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  79. package/dist/events/types/common.d.ts +7 -0
  80. package/dist/events/types/common.d.ts.map +1 -1
  81. package/dist/events/types/connectWallet.d.ts +4 -3
  82. package/dist/events/types/connectWallet.d.ts.map +1 -1
  83. package/dist/events/types/index.d.ts.map +1 -1
  84. package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
  85. package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
  86. package/dist/hooks/connectors/useIsConnectedSafe.d.ts +1 -0
  87. package/dist/hooks/connectors/useIsConnectedSafe.d.ts.map +1 -1
  88. package/dist/hooks/connectors/useIsConnectedSafe.js +10 -3
  89. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  90. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts +5 -1
  91. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts.map +1 -1
  92. package/dist/hooks/connectors/useIsGnosisSafeConnector.js +3 -4
  93. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  94. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts +3 -1
  95. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -1
  96. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +55 -11
  97. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  98. package/dist/hooks/otc/mutations/useFillOrder.js +2 -1
  99. package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
  100. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +1 -0
  101. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  102. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.d.ts.map +1 -1
  103. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js +7 -4
  104. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
  105. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts +1 -13
  106. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.d.ts.map +1 -1
  107. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js +1 -80
  108. package/dist/hooks/swap/prices/delta/mutations/useCreatePreSignableDeltaOrder.js.map +1 -1
  109. package/dist/hooks/swap/prices/delta/orders/utils.d.ts.map +1 -1
  110. package/dist/hooks/swap/prices/delta/orders/utils.js +1 -1
  111. package/dist/hooks/swap/prices/delta/orders/utils.js.map +1 -1
  112. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.d.ts.map +1 -1
  113. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js +2 -1
  114. package/dist/hooks/swap/prices/delta/queries/useDeltaLimitOrderRequiredBalance.js.map +1 -1
  115. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  116. package/dist/hooks/swap/prices/useSwapPrices.js +113 -98
  117. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  118. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts +3 -1
  119. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
  120. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +22 -2
  121. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
  122. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts +2 -3
  123. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  124. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +14 -37
  125. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  126. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts +2 -1
  127. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  128. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +14 -36
  129. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  130. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  131. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +7 -4
  132. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  133. package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
  134. package/dist/hooks/txs/queries/useAwaitTx.js +114 -20
  135. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  136. package/dist/index.d.ts +1 -1
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/lib/constants/storage.d.ts +1 -1
  139. package/dist/lib/constants/storage.d.ts.map +1 -1
  140. package/dist/lib/constants/storage.js +3 -1
  141. package/dist/lib/constants/storage.js.map +1 -1
  142. package/dist/lib/constants/urls.js +2 -6
  143. package/dist/lib/constants/urls.js.map +1 -1
  144. package/dist/lib/utils/index.d.ts.map +1 -1
  145. package/dist/lib/utils/index.js.map +1 -1
  146. package/dist/lib/utils/toasts.d.ts +1 -1
  147. package/dist/lib/utils/toasts.d.ts.map +1 -1
  148. package/dist/lib/utils/toasts.js +5 -1
  149. package/dist/lib/utils/toasts.js.map +1 -1
  150. package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
  151. package/dist/lib/web3/wagmi/config.js +1 -1
  152. package/dist/lib/web3/wagmi/config.js.map +1 -1
  153. package/dist/lib/web3/wagmi/external.d.ts +11 -3
  154. package/dist/lib/web3/wagmi/external.d.ts.map +1 -1
  155. package/dist/lib/web3/wagmi/external.js +28 -2
  156. package/dist/lib/web3/wagmi/external.js.map +1 -1
  157. package/dist/lib/web3/wagmi/isInIframe.d.ts +2 -0
  158. package/dist/lib/web3/wagmi/isInIframe.d.ts.map +1 -0
  159. package/dist/lib/web3/wagmi/isInIframe.js +4 -0
  160. package/dist/lib/web3/wagmi/isInIframe.js.map +1 -0
  161. package/dist/lib/web3/wagmi/isInsideSafeIframe.d.ts +0 -1
  162. package/dist/lib/web3/wagmi/isInsideSafeIframe.d.ts.map +1 -1
  163. package/dist/lib/web3/wagmi/isInsideSafeIframe.js +2 -2
  164. package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
  165. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  166. package/dist/lib/web3/wagmi/switchChain.js +3 -3
  167. package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
  168. package/dist/transactions/hash.d.ts +7 -0
  169. package/dist/transactions/hash.d.ts.map +1 -0
  170. package/dist/transactions/hash.js +34 -0
  171. package/dist/transactions/hash.js.map +1 -0
  172. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  173. package/dist/transactions/queries/ensureCallsStatus.js +14 -3
  174. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  175. package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
  176. package/dist/transactions/queries/ensureTxReceipt.js +48 -12
  177. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  178. package/dist/transactions/state/effects/finalize.d.ts +7 -1
  179. package/dist/transactions/state/effects/finalize.d.ts.map +1 -1
  180. package/dist/transactions/state/effects/finalize.js +53 -7
  181. package/dist/transactions/state/effects/finalize.js.map +1 -1
  182. package/dist/transactions/state/hooks/useActivateEffects.d.ts.map +1 -1
  183. package/dist/transactions/state/hooks/useActivateEffects.js +4 -2
  184. package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
  185. package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
  186. package/dist/transactions/state/transactionsActionAtom.js +74 -18
  187. package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
  188. package/dist/transactions/state/transactionsAtom.js +2 -2
  189. package/dist/transactions/state/transactionsAtom.js.map +1 -1
  190. package/dist/transactions/types.d.ts +33 -10
  191. package/dist/transactions/types.d.ts.map +1 -1
  192. package/dist/transactions/utils.d.ts +2 -1
  193. package/dist/transactions/utils.d.ts.map +1 -1
  194. package/dist/transactions/utils.js +7 -1
  195. package/dist/transactions/utils.js.map +1 -1
  196. package/package.json +4 -2
  197. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts +0 -69
  198. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +0 -1
  199. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +0 -192
  200. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +0 -1
@@ -1,13 +1,20 @@
1
+ import { EXTERNAL_CONNECTOR_SAFE_ID, EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID } from '../components/web3/ConnectExternalProvider/constants';
1
2
  import { CallsReceipt } from '../hooks/batch/useAwaitCalls';
2
3
  import { SupportedChainId } from '../lib/web3/wagmi/types';
3
4
  import { OrderData } from '@velora-dex/sdk';
4
5
  import { DeltaOrderToPost } from '@velora-dex/sdk/dist/methods/delta/postDeltaOrder';
5
6
  import { Address, Hash, Prettify, TransactionReceipt } from 'viem';
7
+ import { Connector } from 'wagmi';
8
+ import { safe, injected, walletConnect } from 'wagmi/connectors';
9
+ type ConnectorData = Prettify<Pick<Connector, "type" | "id"> & {
10
+ isSafe: boolean;
11
+ }>;
6
12
  export type TransactionCommonData = {
7
13
  chainId: SupportedChainId;
8
14
  timestamp: number;
9
15
  account: Address;
10
16
  dropped: boolean;
17
+ connectorData?: ConnectorData;
11
18
  };
12
19
  export interface StandaloneTransactionItemData extends TransactionCommonData {
13
20
  transactionHash: Hash;
@@ -62,14 +69,6 @@ export type TransactionItemPreSignDeltaOrder = TransactionItemBase & {
62
69
  order: DeltaOrderToPost;
63
70
  };
64
71
  };
65
- export type TransactionItemDepositNativeAndPreSignDeltaOrder = TransactionItemBase & {
66
- action: "depositNativeAndPreSign";
67
- transactionSpecificData: {
68
- action: "depositNativeAndPreSign";
69
- depositAmount: bigint;
70
- order: DeltaOrderToPost;
71
- };
72
- };
73
72
  export type TransactionItemWrapEth = TransactionItemBase & {
74
73
  action: "wrapETH";
75
74
  transactionSpecificData: {
@@ -91,9 +90,33 @@ export type TransactionItemCancelOtcOrder = TransactionItemBase & {
91
90
  cancelledOrder: OrderData;
92
91
  };
93
92
  };
94
- export type TransactionItem = TransactionItemSwap | TransactionItemApprove | TransactionItemWrapAndApprove | TransactionItemWrapEth | TransactionItemFillOtcOrder | TransactionItemCancelOtcOrder | TransactionItemPreSignDeltaOrder | TransactionItemDepositNativeAndPreSignDeltaOrder;
93
+ export type TransactionItem = TransactionItemSwap | TransactionItemApprove | TransactionItemWrapAndApprove | TransactionItemWrapEth | TransactionItemFillOtcOrder | TransactionItemCancelOtcOrder | TransactionItemPreSignDeltaOrder;
95
94
  export type MinTransactionItem = TransactionWithoutMeta<TransactionItem>;
96
95
  export type StandaloneTransactionItem = Prettify<Extract<TransactionItem, StandaloneTransactionItemData>>;
97
96
  export type BatchTransactionItem = Prettify<Extract<TransactionItem, BatchTransactionItemData>>;
98
- export type TransactionWithoutMeta<T> = T extends Pick<TransactionItem, "dropped" | "timestamp" | "account"> ? Prettify<Omit<T, "dropped" | "timestamp" | "account">> : T;
97
+ export type TransactionWithoutMeta<T> = T extends Pick<TransactionItem, "dropped" | "timestamp" | "account" | "connectorData"> ? Prettify<Omit<T, "dropped" | "timestamp" | "account" | "connectorData">> : T;
98
+ type SafeConnectorData = {
99
+ type: typeof safe.type;
100
+ id: string;
101
+ isSafe: true;
102
+ };
103
+ type SafeIframeThroughExternalConnectorData = {
104
+ type: typeof injected.type;
105
+ id: typeof EXTERNAL_CONNECTOR_SAFE_ID;
106
+ isSafe: true;
107
+ };
108
+ type SafeWalletConnectThroughExternalConnectorData = {
109
+ type: typeof injected.type;
110
+ id: typeof EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID;
111
+ isSafe: true;
112
+ };
113
+ type SafeThroughWalletConnectConnectorData = {
114
+ type: typeof walletConnect.type;
115
+ id: string;
116
+ isSafe: true;
117
+ };
118
+ export type GnosisSafeTransactionItem = Prettify<TransactionItem & {
119
+ connectorData: SafeConnectorData | SafeIframeThroughExternalConnectorData | SafeWalletConnectThroughExternalConnectorData | SafeThroughWalletConnectConnectorData;
120
+ }>;
121
+ export {};
99
122
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transactions/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transactions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,wCAAwC,EACzC,MAAM,qDAAqD,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAC1F,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtE,KAAK,aAAa,GAAG,QAAQ,CAC3B,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAC/B,MAAM,EAAE,OAAO,CAAC;CACjB,CACF,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,eAAe,EAAE,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,GAC3B,6BAA6B,GAC7B,wBAAwB,CAAC;AAE7B,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC;QAC7B,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG;IACzD,MAAM,EAAE,SAAS,CAAC;IAClB,uBAAuB,EAAE;QACvB,MAAM,EAAE,SAAS,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,wBAAwB,GAAG;IACrE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,uBAAuB,EAAE;QACvB,MAAM,EAAE,qBAAqB,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE;YACR,cAAc,EAAE,MAAM,CAAC;YACvB,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC;SAChB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,mBAAmB,GAAG;IACnE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,uBAAuB,EAAE;QACvB,MAAM,EAAE,mBAAmB,CAAC;QAC5B,KAAK,EAAE,gBAAgB,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG;IACzD,MAAM,EAAE,SAAS,CAAC;IAClB,uBAAuB,EAAE;QACvB,MAAM,EAAE,SAAS,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC9D,MAAM,EAAE,cAAc,CAAC;IACvB,uBAAuB,EAAE;QACvB,MAAM,EAAE,cAAc,CAAC;QACvB,WAAW,EAAE,SAAS,CAAC;KACxB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,mBAAmB,GAAG;IAChE,MAAM,EAAE,gBAAgB,CAAC;IACzB,uBAAuB,EAAE;QACvB,MAAM,EAAE,gBAAgB,CAAC;QACzB,cAAc,EAAE,SAAS,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,sBAAsB,GACtB,6BAA6B,GAC7B,sBAAsB,GACtB,2BAA2B,GAC3B,6BAA6B,GAC7B,gCAAgC,CAAC;AAErC,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;AAEzE,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC9C,OAAO,CAAC,eAAe,EAAE,6BAA6B,CAAC,CACxD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CACzC,OAAO,CAAC,eAAe,EAAE,wBAAwB,CAAC,CACnD,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS,IAAI,CACZ,eAAe,EACf,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,eAAe,CACtD,GACG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,eAAe,CAAC,CAAC,GACxE,CAAC,CAAC;AAER,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,KAAK,sCAAsC,GAAG;IAC5C,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;IAC3B,EAAE,EAAE,OAAO,0BAA0B,CAAC;IACtC,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,KAAK,6CAA6C,GAAG;IACnD,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;IAC3B,EAAE,EAAE,OAAO,wCAAwC,CAAC;IACpD,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,KAAK,qCAAqC,GAAG;IAC3C,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IAChC,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC9C,eAAe,GAAG;IAChB,aAAa,EACT,iBAAiB,GACjB,sCAAsC,GACtC,6CAA6C,GAC7C,qCAAqC,CAAC;CAC3C,CACF,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { BatchTransactionItem, GnosisSafeTransactionItem, StandaloneTransactionItem, TransactionItem, TransactionItemSwap } from './types';
1
2
  import { Hash } from 'viem';
2
- import { BatchTransactionItem, StandaloneTransactionItem, TransactionItem, TransactionItemSwap } from './types';
3
3
  export declare function isStandaloneTransactionItem(item: TransactionItem): item is StandaloneTransactionItem;
4
4
  export declare function isBatchTransactionItem(item: TransactionItem): item is BatchTransactionItem;
5
5
  export declare function extractPendingTransactions<T extends StandaloneTransactionItem | BatchTransactionItem>(transactions: T[]): T[];
@@ -8,4 +8,5 @@ export type TransactionItemSwapWithId = TransactionItemSwap & {
8
8
  id: Hash;
9
9
  };
10
10
  export declare function combineSwapTransactionItems<T extends TransactionItemSwap>(...txArrays: T[][]): TransactionItemSwapWithId[];
11
+ export declare function isGnosisSafeTx(tx: TransactionItem): tx is GnosisSafeTransactionItem;
11
12
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/transactions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,eAAe,GACpB,IAAI,IAAI,yBAAyB,CAEnC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,GACpB,IAAI,IAAI,oBAAoB,CAE9B;AAED,wBAAgB,0BAA0B,CACxC,CAAC,SAAS,yBAAyB,GAAG,oBAAoB,EAC1D,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQxB;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,CAAC,yBAAyB,GAAG,oBAAoB,CAAC,EAAE,GACjE,mBAAmB,EAAE,CAEvB;AAID,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC;AAE3E,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,mBAAmB,EACvE,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,GACjB,yBAAyB,EAAE,CAiB7B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/transactions/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACpB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,eAAe,GACpB,IAAI,IAAI,yBAAyB,CAEnC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,GACpB,IAAI,IAAI,oBAAoB,CAE9B;AAED,wBAAgB,0BAA0B,CACxC,CAAC,SAAS,yBAAyB,GAAG,oBAAoB,EAC1D,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAQxB;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,CAAC,yBAAyB,GAAG,oBAAoB,CAAC,EAAE,GACjE,mBAAmB,EAAE,CAEvB;AAID,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC;AAE3E,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,mBAAmB,EACvE,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,GACjB,yBAAyB,EAAE,CAiB7B;AAED,wBAAgB,cAAc,CAC5B,EAAE,EAAE,eAAe,GAClB,EAAE,IAAI,yBAAyB,CAOjC"}
@@ -1,3 +1,5 @@
1
+ import { isConnectorWithSafeProvider } from '../components/web3/ConnectExternalProvider/utils.js';
2
+
1
3
  function isStandaloneTransactionItem(item) {
2
4
  return "transactionHash" in item;
3
5
  }
@@ -21,6 +23,10 @@ function combineSwapTransactionItems(...txArrays) {
21
23
  });
22
24
  return Object.values(map);
23
25
  }
26
+ function isGnosisSafeTx(tx) {
27
+ return !!tx.connectorData && (tx.connectorData.isSafe === true || // extra check for backwards compatibility with txs from localStorage without connectorData.isSafe
28
+ isConnectorWithSafeProvider(tx.connectorData));
29
+ }
24
30
 
25
- export { combineSwapTransactionItems, extractPendingTransactions, extractSwapTransactions, isBatchTransactionItem, isStandaloneTransactionItem };
31
+ export { combineSwapTransactionItems, extractPendingTransactions, extractSwapTransactions, isBatchTransactionItem, isGnosisSafeTx, isStandaloneTransactionItem };
26
32
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/transactions/utils.ts"],"sourcesContent":["import type { Hash } from \"viem\";\nimport type {\n BatchTransactionItem,\n StandaloneTransactionItem,\n TransactionItem,\n TransactionItemSwap,\n} from \"./types\";\n\nexport function isStandaloneTransactionItem(\n item: TransactionItem\n): item is StandaloneTransactionItem {\n return \"transactionHash\" in item;\n}\n\nexport function isBatchTransactionItem(\n item: TransactionItem\n): item is BatchTransactionItem {\n return \"callsId\" in item;\n}\n\nexport function extractPendingTransactions<\n T extends StandaloneTransactionItem | BatchTransactionItem,\n>(transactions: T[]): T[] {\n return transactions.filter(\n (tx) =>\n !tx.dropped &&\n (isStandaloneTransactionItem(tx)\n ? !tx.receipt\n : !tx.callsStatus || tx.callsStatus === \"pending\")\n );\n}\n\nexport function extractSwapTransactions(\n transactions: (StandaloneTransactionItem | BatchTransactionItem)[]\n): TransactionItemSwap[] {\n return transactions.filter((tx) => tx.action === \"swap\");\n}\n\n// not all TransactionItemSwap have transactionHash\n// id will be either transactionHash (for standalone tx) or receipt.transactionHash (for batch tx)\nexport type TransactionItemSwapWithId = TransactionItemSwap & { id: Hash };\n\nexport function combineSwapTransactionItems<T extends TransactionItemSwap>(\n ...txArrays: T[][]\n): TransactionItemSwapWithId[] {\n const map: Record<Hash, TransactionItemSwapWithId> = {};\n\n txArrays.flat().forEach((item) => {\n const transactionHash = isStandaloneTransactionItem(item)\n ? item.transactionHash\n : item.receipt?.transactionHash;\n\n // we can't rely on callsId for batch swap tx as identifier if we have another source of truth\n // better to not show pending calls until we have transactionHash\n // otherwise it may lead to duplicate entries in the Activities list\n // when transaction appeared in the metabase but we still have pending call in the local storage\n if (transactionHash)\n map[transactionHash] = { ...item, id: transactionHash };\n });\n\n return Object.values(map);\n}\n"],"names":["isStandaloneTransactionItem","item","isBatchTransactionItem","extractPendingTransactions","transactions","filter","tx","dropped","receipt","callsStatus","extractSwapTransactions","action","combineSwapTransactionItems","txArrays","map","flat","forEach","transactionHash","id","Object","values"],"mappings":"AAQO,SAASA,4BACdC,IAAAA,EACmC;AACnC,EAAA,OAAO,iBAAA,IAAqBA,IAAAA;AAC9B;AAEO,SAASC,uBACdD,IAAAA,EAC8B;AAC9B,EAAA,OAAO,SAAA,IAAaA,IAAAA;AACtB;AAEO,SAASE,2BAEdC,YAAAA,EAAwB;AACxB,EAAA,OAAOA,aAAaC,MAAAA,CACjBC,CAAAA,EAAAA,KACC,CAACA,EAAAA,CAAGC,YACHP,2BAAAA,CAA4BM,EAAE,CAAA,GAC3B,CAACA,GAAGE,OAAAA,GACJ,CAACF,GAAGG,WAAAA,IAAeH,EAAAA,CAAGG,gBAAgB,SAAA,CAC9C,CAAA;AACF;AAEO,SAASC,wBACdN,YAAAA,EACuB;AACvB,EAAA,OAAOA,YAAAA,CAAaC,MAAAA,CAAQC,CAAAA,EAAAA,KAAOA,EAAAA,CAAGK,WAAW,MAAM,CAAA;AACzD;AAMO,SAASC,+BACXC,QAAAA,EAC0B;AAC7B,EAAA,MAAMC,MAA+C,EAAC;AAEtDD,EAAAA,QAAAA,CAASE,IAAAA,EAAK,CAAEC,OAAAA,CAASf,CAAAA,IAAAA,KAAS;AAChC,IAAA,MAAMgB,kBAAkBjB,2BAAAA,CAA4BC,IAAI,IACpDA,IAAAA,CAAKgB,eAAAA,GACLhB,KAAKO,OAAAA,EAASS,eAAAA;AAMlB,IAAA,IAAIA,eAAAA,EACFH,GAAAA,CAAIG,eAAe,CAAA,GAAI;AAAA,MAAE,GAAGhB,IAAAA;AAAAA,MAAMiB,EAAAA,EAAID;AAAAA,KAAgB;AAAA,EAC1D,CAAC,CAAA;AAED,EAAA,OAAOE,MAAAA,CAAOC,OAAON,GAAG,CAAA;AAC1B;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../src/transactions/utils.ts"],"sourcesContent":["import { isConnectorWithSafeProvider } from \"@/components/web3/ConnectExternalProvider/utils\";\nimport type {\n BatchTransactionItem,\n GnosisSafeTransactionItem,\n StandaloneTransactionItem,\n TransactionItem,\n TransactionItemSwap,\n} from \"./types\";\nimport type { Hash } from \"viem\";\n\nexport function isStandaloneTransactionItem(\n item: TransactionItem\n): item is StandaloneTransactionItem {\n return \"transactionHash\" in item;\n}\n\nexport function isBatchTransactionItem(\n item: TransactionItem\n): item is BatchTransactionItem {\n return \"callsId\" in item;\n}\n\nexport function extractPendingTransactions<\n T extends StandaloneTransactionItem | BatchTransactionItem,\n>(transactions: T[]): T[] {\n return transactions.filter(\n (tx) =>\n !tx.dropped &&\n (isStandaloneTransactionItem(tx)\n ? !tx.receipt\n : !tx.callsStatus || tx.callsStatus === \"pending\")\n );\n}\n\nexport function extractSwapTransactions(\n transactions: (StandaloneTransactionItem | BatchTransactionItem)[]\n): TransactionItemSwap[] {\n return transactions.filter((tx) => tx.action === \"swap\");\n}\n\n// not all TransactionItemSwap have transactionHash\n// id will be either transactionHash (for standalone tx) or receipt.transactionHash (for batch tx)\nexport type TransactionItemSwapWithId = TransactionItemSwap & { id: Hash };\n\nexport function combineSwapTransactionItems<T extends TransactionItemSwap>(\n ...txArrays: T[][]\n): TransactionItemSwapWithId[] {\n const map: Record<Hash, TransactionItemSwapWithId> = {};\n\n txArrays.flat().forEach((item) => {\n const transactionHash = isStandaloneTransactionItem(item)\n ? item.transactionHash\n : item.receipt?.transactionHash;\n\n // we can't rely on callsId for batch swap tx as identifier if we have another source of truth\n // better to not show pending calls until we have transactionHash\n // otherwise it may lead to duplicate entries in the Activities list\n // when transaction appeared in the metabase but we still have pending call in the local storage\n if (transactionHash)\n map[transactionHash] = { ...item, id: transactionHash };\n });\n\n return Object.values(map);\n}\n\nexport function isGnosisSafeTx(\n tx: TransactionItem\n): tx is GnosisSafeTransactionItem {\n return (\n !!tx.connectorData &&\n (tx.connectorData.isSafe === true ||\n // extra check for backwards compatibility with txs from localStorage without connectorData.isSafe\n isConnectorWithSafeProvider(tx.connectorData))\n );\n}\n"],"names":["isStandaloneTransactionItem","item","isBatchTransactionItem","extractPendingTransactions","transactions","filter","tx","dropped","receipt","callsStatus","extractSwapTransactions","action","combineSwapTransactionItems","txArrays","map","flat","forEach","transactionHash","id","Object","values","isGnosisSafeTx","connectorData","isSafe","isConnectorWithSafeProvider"],"mappings":";;AAUO,SAASA,4BACdC,IAAAA,EACmC;AACnC,EAAA,OAAO,iBAAA,IAAqBA,IAAAA;AAC9B;AAEO,SAASC,uBACdD,IAAAA,EAC8B;AAC9B,EAAA,OAAO,SAAA,IAAaA,IAAAA;AACtB;AAEO,SAASE,2BAEdC,YAAAA,EAAwB;AACxB,EAAA,OAAOA,aAAaC,MAAAA,CACjBC,CAAAA,EAAAA,KACC,CAACA,EAAAA,CAAGC,YACHP,2BAAAA,CAA4BM,EAAE,CAAA,GAC3B,CAACA,GAAGE,OAAAA,GACJ,CAACF,GAAGG,WAAAA,IAAeH,EAAAA,CAAGG,gBAAgB,SAAA,CAC9C,CAAA;AACF;AAEO,SAASC,wBACdN,YAAAA,EACuB;AACvB,EAAA,OAAOA,YAAAA,CAAaC,MAAAA,CAAQC,CAAAA,EAAAA,KAAOA,EAAAA,CAAGK,WAAW,MAAM,CAAA;AACzD;AAMO,SAASC,+BACXC,QAAAA,EAC0B;AAC7B,EAAA,MAAMC,MAA+C,EAAC;AAEtDD,EAAAA,QAAAA,CAASE,IAAAA,EAAK,CAAEC,OAAAA,CAASf,CAAAA,IAAAA,KAAS;AAChC,IAAA,MAAMgB,kBAAkBjB,2BAAAA,CAA4BC,IAAI,IACpDA,IAAAA,CAAKgB,eAAAA,GACLhB,KAAKO,OAAAA,EAASS,eAAAA;AAMlB,IAAA,IAAIA,eAAAA,EACFH,GAAAA,CAAIG,eAAe,CAAA,GAAI;AAAA,MAAE,GAAGhB,IAAAA;AAAAA,MAAMiB,EAAAA,EAAID;AAAAA,KAAgB;AAAA,EAC1D,CAAC,CAAA;AAED,EAAA,OAAOE,MAAAA,CAAOC,OAAON,GAAG,CAAA;AAC1B;AAEO,SAASO,eACdf,EAAAA,EACiC;AACjC,EAAA,OACE,CAAC,CAACA,EAAAA,CAAGgB,aAAAA,KACJhB,EAAAA,CAAGgB,cAAcC,MAAAA,KAAW,IAAA;AAAA,EAE3BC,2BAAAA,CAA4BlB,GAAGgB,aAAa,CAAA,CAAA;AAElD;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velora-dex/widget",
3
- "version": "0.3.13-dev.1",
3
+ "version": "0.4.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [
@@ -31,6 +31,8 @@
31
31
  },
32
32
  "devDependencies": {
33
33
  "@eslint/js": "^9.32.0",
34
+ "@safe-global/safe-apps-provider": "^0.18.6",
35
+ "@safe-global/safe-apps-sdk": "^9.1.0",
34
36
  "@tailwindcss/vite": "^4.1.11",
35
37
  "@tanstack/eslint-plugin-query": "^5.83.1",
36
38
  "@tanstack/react-query": "^5.90.12",
@@ -74,7 +76,7 @@
74
76
  "@tanstack/react-pacer": "^0.14.0",
75
77
  "@tanstack/react-virtual": "^3.13.12",
76
78
  "@uniswap/token-lists": "1.0.0-beta.34",
77
- "@velora-dex/sdk": "9.3.3-dev.1",
79
+ "@velora-dex/sdk": "9.3.3",
78
80
  "@wagmi/core": "^2.18.1",
79
81
  "axios": "^1.11.0",
80
82
  "big.js": "^7.0.1",
@@ -1,69 +0,0 @@
1
- import { DeltaOrderToPost } from '../../prices/delta/mutations/useCreatePreSignableDeltaOrder';
2
- import { Address, TransactionReceipt } from 'viem';
3
- import { SubmittedDeltaOrderFromAPI } from '../../prices/delta/queries/useDeltaOrders';
4
- import { SupportedChainId } from '../../../../lib/web3/wagmi/types';
5
- import { LoggerInstance } from '../../../../lib/utils/logger';
6
- import { DeltaOrderApiResponse, MinViemClient } from '@velora-dex/sdk';
7
- import { CreateDeltaOrderInput } from '../../prices/delta/mutations/useCreateDeltaOrder';
8
- import { TxSentObject } from '../../../../lib/utils/transactionHandlers';
9
- export type DeltaOrderDepositResult = {
10
- depositPrep: {
11
- order?: DeltaOrderToPost;
12
- isCreatingOrder: boolean;
13
- isOrderHashReady: boolean;
14
- isPending: boolean;
15
- isError: boolean;
16
- isSuccess: boolean;
17
- error: Error | null;
18
- };
19
- depositTx: {
20
- txHash?: Address;
21
- receipt?: TransactionReceipt;
22
- isConfirmingTX: boolean;
23
- isConfirmingTxError: boolean;
24
- isTxSent: boolean;
25
- isTxPending: boolean;
26
- isTxMined: boolean;
27
- isTxAwaitingError: boolean;
28
- isPending: boolean;
29
- isSuccess: boolean;
30
- isError: boolean;
31
- error: Error | null;
32
- };
33
- postingOrder: {
34
- order?: SubmittedDeltaOrderFromAPI;
35
- isPostingOrder: boolean;
36
- isOrderSent: boolean;
37
- isPending: boolean;
38
- isError: boolean;
39
- isSuccess: boolean;
40
- error: Error | null;
41
- };
42
- order?: SubmittedDeltaOrderFromAPI;
43
- isCreatingOrder: boolean;
44
- isOrderSent: boolean;
45
- isPending: boolean;
46
- isError: boolean;
47
- isSuccess: boolean;
48
- error: Error | null;
49
- };
50
- type UseDepositAndSubmitDeltaOrderInput = {
51
- chainId: SupportedChainId;
52
- account?: Address;
53
- logger: LoggerInstance;
54
- viemClient?: MinViemClient;
55
- };
56
- type UseDepositAndSubmitDeltaOrderResult = {
57
- deltaOrderDeposit: DeltaOrderDepositResult;
58
- depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc;
59
- reset: () => void;
60
- };
61
- export declare function useDepositAndSubmitDeltaOrder({ chainId, account, logger, viemClient, }: UseDepositAndSubmitDeltaOrderInput): UseDepositAndSubmitDeltaOrderResult;
62
- type DepositAndSubmitDeltaOrderInput = {
63
- createDeltaOrderInput: CreateDeltaOrderInput;
64
- depositAmount: string;
65
- onTxSent?: (txSent: TxSentObject) => void;
66
- };
67
- type DepositAndSubmitDeltaOrderFunc = (input: DepositAndSubmitDeltaOrderInput) => Promise<DeltaOrderApiResponse>;
68
- export {};
69
- //# sourceMappingURL=useDepositAndSubmitDeltaOrder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDepositAndSubmitDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.ts"],"names":[],"mappings":"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"}
@@ -1,192 +0,0 @@
1
- import { useFetchOnlySDK } from '../../../useSDK.js';
2
- import { useDepositPreSignDeltaOrder } from '../../prices/delta/mutations/useCreatePreSignableDeltaOrder.js';
3
- import { isAddress } from 'viem';
4
- import { deltaOrdersQueryKey } from '../../prices/delta/queries/useDeltaOrders.js';
5
- import { usePostDeltaOrder } from '../../prices/delta/mutations/usePostDeltaOrder.js';
6
- import { useQueryClient } from '@tanstack/react-query';
7
- import { assert } from 'ts-essentials';
8
- import { useEnsureContractsQuery } from '../../prices/market/queries/useSpenderAndContracts.js';
9
- import { useSendArbitraryTx } from '../../../txs/mutations/useSendTx.js';
10
- import { useAwaitTx, useEnsureTxReceipt } from '../../../txs/queries/useAwaitTx.js';
11
- import { isETHaddress } from '../../../../tokens/utils/eth.js';
12
-
13
- function useDepositAndSubmitDeltaOrder({
14
- chainId,
15
- account,
16
- logger,
17
- viemClient
18
- }) {
19
- const queryClient = useQueryClient();
20
- const depositOrderMut = useDepositPreSignDeltaOrder({
21
- chainId,
22
- client: viemClient
23
- });
24
- const {
25
- sdk: fetchOnlySDK
26
- } = useFetchOnlySDK({
27
- chainId
28
- });
29
- const depositPrep = {
30
- isCreatingOrder: depositOrderMut.isPending,
31
- isOrderHashReady: depositOrderMut.isSuccess,
32
- order: depositOrderMut.data?.orderToPost,
33
- isPending: depositOrderMut.isPending,
34
- isError: depositOrderMut.isError,
35
- isSuccess: depositOrderMut.isSuccess,
36
- error: depositOrderMut.error
37
- };
38
- const sendDepositTxMut = useSendArbitraryTx();
39
- const awaitDepositTx = useAwaitTx({
40
- hash: sendDepositTxMut.txHash,
41
- chainId
42
- });
43
- const depositTx = {
44
- txHash: sendDepositTxMut.txHash,
45
- receipt: awaitDepositTx.data,
46
- /* tx sending */
47
- isConfirmingTX: sendDepositTxMut.isPending,
48
- isConfirmingTxError: sendDepositTxMut.isError,
49
- isTxSent: sendDepositTxMut.isSuccess,
50
- /* tx awaiting */
51
- isTxPending: awaitDepositTx.isLoading,
52
- isTxMined: awaitDepositTx.isSuccess,
53
- isTxAwaitingError: awaitDepositTx.isError,
54
- /* combined */
55
- isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,
56
- isSuccess: awaitDepositTx.isSuccess,
57
- // final success
58
- isError: sendDepositTxMut.isError || awaitDepositTx.isError,
59
- error: sendDepositTxMut.error || awaitDepositTx.error
60
- };
61
- const postOrderMut = usePostDeltaOrder({
62
- chainId,
63
- account,
64
- client: viemClient,
65
- mutationOptions: {
66
- onSuccess: (order) => {
67
- logger.log("[DepositAndSubmit] Create Delta Order success", order);
68
- queryClient.invalidateQueries({
69
- queryKey: deltaOrdersQueryKey({
70
- userAddress: order.user
71
- }),
72
- exact: false
73
- });
74
- },
75
- onError: (error) => {
76
- logger.error("[DepositAndSubmit] Create Delta Order error", error);
77
- }
78
- }
79
- });
80
- const deltaOrderPosting = {
81
- order: postOrderMut.data,
82
- isPostingOrder: postOrderMut.isPending,
83
- isOrderSent: postOrderMut.isSuccess,
84
- isPending: postOrderMut.isPending,
85
- isError: postOrderMut.isError,
86
- isSuccess: postOrderMut.isSuccess,
87
- error: postOrderMut.error
88
- };
89
- const deltaOrderDeposit = {
90
- order: postOrderMut.data,
91
- depositPrep,
92
- depositTx,
93
- postingOrder: deltaOrderPosting,
94
- isCreatingOrder: depositPrep.isCreatingOrder || depositTx.isPending || deltaOrderPosting.isPostingOrder,
95
- isOrderSent: deltaOrderPosting.isOrderSent,
96
- isPending: depositPrep.isPending || depositTx.isPending || deltaOrderPosting.isPending,
97
- isError: depositPrep.isError || depositTx.isError || deltaOrderPosting.isError,
98
- isSuccess: deltaOrderPosting.isSuccess,
99
- error: depositPrep.error || depositTx.error || deltaOrderPosting.error
100
- };
101
- const ensureTxReceipt = useEnsureTxReceipt();
102
- const {
103
- ensureContractsLoaded
104
- } = useEnsureContractsQuery({
105
- chainId
106
- });
107
- const depositAndSubmitDeltaOrder = async ({
108
- depositAmount: _depositAmount,
109
- createDeltaOrderInput,
110
- onTxSent
111
- }) => {
112
- const depositAmount = BigInt(_depositAmount);
113
- assert(isETHaddress(createDeltaOrderInput.orderInput.srcToken), "srcToken must be ETH");
114
- assert(depositAmount > 0n, "depositAmount must be greater than 0");
115
- const {
116
- signal
117
- } = createDeltaOrderInput;
118
- const {
119
- ParaswapDelta: DeltaContract
120
- } = await ensureContractsLoaded({
121
- signal
122
- });
123
- assert(DeltaContract && isAddress(DeltaContract), `DeltaContract is not available on chain ${chainId}`);
124
- signal?.throwIfAborted();
125
- const {
126
- orderToPost,
127
- depositAndPreSignCalldata
128
- } = await depositOrderMut.mutateAsync(createDeltaOrderInput);
129
- signal?.throwIfAborted();
130
- let orderIsPosted = false;
131
- const sendUnsentOrderOnPageHide = () => {
132
- if (orderIsPosted) return;
133
- orderIsPosted = true;
134
- fetchOnlySDK?.postDeltaOrder(orderToPost);
135
- };
136
- window.addEventListener("pagehide", sendUnsentOrderOnPageHide, {
137
- once: true
138
- });
139
- try {
140
- const depositTxHash = await sendDepositTxMut.sendTransactionAsync({
141
- to: DeltaContract,
142
- from: account,
143
- data: depositAndPreSignCalldata,
144
- value: depositAmount
145
- });
146
- logger.log("[DepositAndSubmit] awaiting depositNativeAndPreSign txHash:", depositTxHash);
147
- const depositTxReceiptPromise = ensureTxReceipt({
148
- hash: depositTxHash,
149
- chainId,
150
- onReplaced: (data) => {
151
- logger.log("[DepositAndSubmit] onReplaced:txHash", depositTxHash, data);
152
- }
153
- });
154
- if (onTxSent) {
155
- onTxSent({
156
- chainId,
157
- action: "depositNativeAndPreSign",
158
- receiptPromise: depositTxReceiptPromise,
159
- transactionHash: depositTxHash,
160
- transactionSpecificData: {
161
- action: "depositNativeAndPreSign",
162
- order: orderToPost,
163
- depositAmount
164
- }
165
- });
166
- }
167
- const depositTxReceipt = await depositTxReceiptPromise;
168
- logger.log("[DepositAndSubmit] depositNativeAndPreSign tx mined, receipt:", depositTxReceipt);
169
- const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);
170
- orderIsPosted = true;
171
- return orderFromAPI;
172
- } catch (error_0) {
173
- logger.error("[DepositAndSubmit] error", error_0);
174
- throw error_0;
175
- } finally {
176
- window.removeEventListener("pagehide", sendUnsentOrderOnPageHide);
177
- }
178
- };
179
- const reset = () => {
180
- depositOrderMut.reset();
181
- sendDepositTxMut.reset();
182
- postOrderMut.reset();
183
- };
184
- return {
185
- deltaOrderDeposit,
186
- depositAndSubmitDeltaOrder,
187
- reset
188
- };
189
- }
190
-
191
- export { useDepositAndSubmitDeltaOrder };
192
- //# sourceMappingURL=useDepositAndSubmitDeltaOrder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDepositAndSubmitDeltaOrder.js","sources":["../../../../../src/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.ts"],"sourcesContent":["import { useFetchOnlySDK } from \"@/hooks/useSDK\";\nimport {\n useDepositPreSignDeltaOrder,\n type DeltaOrderToPost,\n} from \"../../prices/delta/mutations/useCreatePreSignableDeltaOrder\";\n\nimport { isAddress, type Address, type TransactionReceipt } from \"viem\";\nimport {\n deltaOrdersQueryKey,\n type SubmittedDeltaOrderFromAPI,\n} from \"../../prices/delta/queries/useDeltaOrders\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { DeltaOrderApiResponse, MinViemClient } from \"@velora-dex/sdk\";\nimport { usePostDeltaOrder } from \"../../prices/delta/mutations/usePostDeltaOrder\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport type { CreateDeltaOrderInput } from \"../../prices/delta/mutations/useCreateDeltaOrder\";\nimport type { TxSentObject } from \"@/lib/utils/transactionHandlers\";\nimport { assert } from \"ts-essentials\";\nimport { useEnsureContractsQuery } from \"../../prices/market/queries/useSpenderAndContracts\";\nimport { useSendArbitraryTx } from \"@/hooks/txs/mutations/useSendTx\";\nimport { useAwaitTx, useEnsureTxReceipt } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { isETHaddress } from \"@/tokens/utils/eth\";\n\nexport type DeltaOrderDepositResult = {\n depositPrep: {\n order?: DeltaOrderToPost;\n isCreatingOrder: boolean;\n isOrderHashReady: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n depositTx: {\n txHash?: Address;\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 isSuccess: boolean;\n isError: boolean;\n error: Error | null;\n };\n postingOrder: {\n order?: SubmittedDeltaOrderFromAPI;\n isPostingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n };\n order?: SubmittedDeltaOrderFromAPI;\n isCreatingOrder: boolean;\n isOrderSent: boolean;\n isPending: boolean;\n isError: boolean;\n isSuccess: boolean;\n error: Error | null;\n};\n\ntype UseDepositAndSubmitDeltaOrderInput = {\n chainId: SupportedChainId;\n account?: Address;\n logger: LoggerInstance;\n viemClient?: MinViemClient;\n};\n\ntype UseDepositAndSubmitDeltaOrderResult = {\n deltaOrderDeposit: DeltaOrderDepositResult;\n depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc;\n reset: () => void;\n};\n\nexport function useDepositAndSubmitDeltaOrder({\n chainId,\n account,\n logger,\n viemClient,\n}: UseDepositAndSubmitDeltaOrderInput): UseDepositAndSubmitDeltaOrderResult {\n const queryClient = useQueryClient();\n\n const depositOrderMut = useDepositPreSignDeltaOrder({\n chainId,\n client: viemClient,\n });\n\n const { sdk: fetchOnlySDK } = useFetchOnlySDK({\n chainId,\n });\n\n const depositPrep: DeltaOrderDepositResult[\"depositPrep\"] = {\n isCreatingOrder: depositOrderMut.isPending,\n isOrderHashReady: depositOrderMut.isSuccess,\n order: depositOrderMut.data?.orderToPost,\n isPending: depositOrderMut.isPending,\n isError: depositOrderMut.isError,\n isSuccess: depositOrderMut.isSuccess,\n error: depositOrderMut.error,\n };\n\n /* 1. submit depositNativeAndPreSign tx */\n const sendDepositTxMut = useSendArbitraryTx();\n\n /* 2. await depositNativeAndPreSign tx */\n const awaitDepositTx = useAwaitTx({\n hash: sendDepositTxMut.txHash,\n chainId,\n });\n\n const depositTx = {\n txHash: sendDepositTxMut.txHash,\n receipt: awaitDepositTx.data,\n /* tx sending */\n isConfirmingTX: sendDepositTxMut.isPending,\n isConfirmingTxError: sendDepositTxMut.isError,\n isTxSent: sendDepositTxMut.isSuccess,\n /* tx awaiting */\n isTxPending: awaitDepositTx.isLoading,\n isTxMined: awaitDepositTx.isSuccess,\n isTxAwaitingError: awaitDepositTx.isError,\n /* combined */\n isPending: sendDepositTxMut.isPending || awaitDepositTx.isLoading,\n isSuccess: awaitDepositTx.isSuccess, // final success\n isError: sendDepositTxMut.isError || awaitDepositTx.isError,\n error: sendDepositTxMut.error || awaitDepositTx.error,\n };\n\n /* 3. post Pre-signed Order */\n\n const postOrderMut = usePostDeltaOrder({\n chainId,\n account,\n client: viemClient,\n mutationOptions: {\n onSuccess: (order) => {\n logger.log(\"[DepositAndSubmit] Create Delta Order success\", order);\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({\n userAddress: order.user,\n }),\n exact: false,\n });\n },\n onError: (error) => {\n logger.error(\"[DepositAndSubmit] Create Delta Order error\", error);\n },\n },\n });\n\n const deltaOrderPosting: DeltaOrderDepositResult[\"postingOrder\"] = {\n order: postOrderMut.data,\n isPostingOrder: postOrderMut.isPending,\n isOrderSent: postOrderMut.isSuccess,\n isPending: postOrderMut.isPending,\n isError: postOrderMut.isError,\n isSuccess: postOrderMut.isSuccess,\n error: postOrderMut.error,\n };\n\n const deltaOrderDeposit: DeltaOrderDepositResult = {\n order: postOrderMut.data,\n depositPrep: depositPrep,\n depositTx,\n postingOrder: deltaOrderPosting,\n isCreatingOrder:\n depositPrep.isCreatingOrder ||\n depositTx.isPending ||\n deltaOrderPosting.isPostingOrder,\n isOrderSent: deltaOrderPosting.isOrderSent,\n isPending:\n depositPrep.isPending ||\n depositTx.isPending ||\n deltaOrderPosting.isPending,\n isError:\n depositPrep.isError || depositTx.isError || deltaOrderPosting.isError,\n isSuccess: deltaOrderPosting.isSuccess,\n error: depositPrep.error || depositTx.error || deltaOrderPosting.error,\n };\n\n const ensureTxReceipt = useEnsureTxReceipt();\n const { ensureContractsLoaded } = useEnsureContractsQuery({ chainId });\n\n const depositAndSubmitDeltaOrder: DepositAndSubmitDeltaOrderFunc = async ({\n depositAmount: _depositAmount,\n createDeltaOrderInput,\n onTxSent,\n }) => {\n const depositAmount = BigInt(_depositAmount);\n\n assert(\n isETHaddress(createDeltaOrderInput.orderInput.srcToken),\n \"srcToken must be ETH\"\n );\n assert(depositAmount > 0n, \"depositAmount must be greater than 0\");\n\n // prepare Order for depositing + pre-signing and POSTing:\n // 1. builds the order\n // 2. hashes the built order\n // 3. construct DeltaContract.depositNativeAndPreSign(orderHash) tx calldata\n\n const { signal } = createDeltaOrderInput;\n\n const { ParaswapDelta: DeltaContract } = await ensureContractsLoaded({\n signal,\n });\n\n assert(\n DeltaContract && isAddress(DeltaContract),\n `DeltaContract is not available on chain ${chainId}`\n );\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n const { orderToPost, depositAndPreSignCalldata } =\n await depositOrderMut.mutateAsync(createDeltaOrderInput);\n\n // if aborted by this point, throw an error\n signal?.throwIfAborted();\n\n let orderIsPosted = false;\n\n const sendUnsentOrderOnPageHide = () => {\n if (orderIsPosted) return;\n orderIsPosted = true;\n fetchOnlySDK?.postDeltaOrder(orderToPost);\n };\n\n // subscribe to `pagehide` event\n // in that case POST the Order just in case the page is never reloaded or localStorage survives until then.\n window.addEventListener(\"pagehide\", sendUnsentOrderOnPageHide, {\n once: true,\n });\n\n try {\n // 4. send the depositNativeAndPreSign tx\n const depositTxHash = await sendDepositTxMut.sendTransactionAsync({\n to: DeltaContract,\n from: account,\n data: depositAndPreSignCalldata,\n value: depositAmount,\n });\n\n logger.log(\n \"[DepositAndSubmit] awaiting depositNativeAndPreSign txHash:\",\n depositTxHash\n );\n\n const depositTxReceiptPromise = ensureTxReceipt({\n hash: depositTxHash,\n chainId,\n onReplaced: (data) => {\n logger.log(\n \"[DepositAndSubmit] onReplaced:txHash\",\n depositTxHash,\n data\n );\n },\n });\n\n if (onTxSent) {\n onTxSent({\n chainId,\n action: \"depositNativeAndPreSign\",\n receiptPromise: depositTxReceiptPromise,\n transactionHash: depositTxHash,\n transactionSpecificData: {\n action: \"depositNativeAndPreSign\",\n order: orderToPost,\n depositAmount,\n },\n });\n }\n\n // 5. wait for the depositNativeAndPreSign tx to be mined\n const depositTxReceipt = await depositTxReceiptPromise;\n\n logger.log(\n \"[DepositAndSubmit] depositNativeAndPreSign tx mined, receipt:\",\n depositTxReceipt\n );\n\n // 6. POST the Order to API with signature=0x\n const orderFromAPI = await postOrderMut.mutateAsync(orderToPost);\n orderIsPosted = true;\n\n return orderFromAPI;\n } catch (error) {\n logger.error(\"[DepositAndSubmit] error\", error);\n throw error;\n } finally {\n window.removeEventListener(\"pagehide\", sendUnsentOrderOnPageHide);\n }\n };\n\n const reset = () => {\n depositOrderMut.reset();\n sendDepositTxMut.reset();\n postOrderMut.reset();\n };\n\n return {\n deltaOrderDeposit,\n depositAndSubmitDeltaOrder,\n reset,\n };\n}\n\ntype DepositAndSubmitDeltaOrderInput = {\n createDeltaOrderInput: CreateDeltaOrderInput;\n depositAmount: string;\n onTxSent?: (txSent: TxSentObject) => void;\n};\n\ntype DepositAndSubmitDeltaOrderFunc = (\n input: DepositAndSubmitDeltaOrderInput\n) => Promise<DeltaOrderApiResponse>;\n"],"names":["useDepositAndSubmitDeltaOrder","chainId","account","logger","viemClient","queryClient","useQueryClient","depositOrderMut","useDepositPreSignDeltaOrder","client","sdk","fetchOnlySDK","useFetchOnlySDK","depositPrep","isCreatingOrder","isPending","isOrderHashReady","isSuccess","order","data","orderToPost","isError","error","sendDepositTxMut","useSendArbitraryTx","awaitDepositTx","useAwaitTx","hash","txHash","depositTx","receipt","isConfirmingTX","isConfirmingTxError","isTxSent","isTxPending","isLoading","isTxMined","isTxAwaitingError","postOrderMut","usePostDeltaOrder","mutationOptions","onSuccess","log","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","user","exact","onError","deltaOrderPosting","isPostingOrder","isOrderSent","deltaOrderDeposit","postingOrder","ensureTxReceipt","useEnsureTxReceipt","ensureContractsLoaded","useEnsureContractsQuery","depositAndSubmitDeltaOrder","depositAmount","_depositAmount","createDeltaOrderInput","onTxSent","BigInt","assert","isETHaddress","orderInput","srcToken","signal","ParaswapDelta","DeltaContract","isAddress","throwIfAborted","depositAndPreSignCalldata","mutateAsync","orderIsPosted","sendUnsentOrderOnPageHide","postDeltaOrder","window","addEventListener","once","depositTxHash","sendTransactionAsync","to","from","value","depositTxReceiptPromise","onReplaced","action","receiptPromise","transactionHash","transactionSpecificData","depositTxReceipt","orderFromAPI","removeEventListener","reset"],"mappings":"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"}