@velora-dex/widget 0.3.6 → 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 (108) 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/core/state/configAtom.d.ts.map +1 -1
  26. package/dist/core/state/configAtom.js +6 -4
  27. package/dist/core/state/configAtom.js.map +1 -1
  28. package/dist/core/state/externalProviderAtom.d.ts +9 -0
  29. package/dist/core/state/externalProviderAtom.d.ts.map +1 -1
  30. package/dist/core/state/externalProviderAtom.js +28 -1
  31. package/dist/core/state/externalProviderAtom.js.map +1 -1
  32. package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
  33. package/dist/events/hooks/useOnWalletConnect.js +3 -1
  34. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  35. package/dist/events/types/connectWallet.d.ts +3 -3
  36. package/dist/events/types/connectWallet.d.ts.map +1 -1
  37. package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
  38. package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
  39. package/dist/hooks/connectors/useIsConnectedSafe.d.ts.map +1 -1
  40. package/dist/hooks/connectors/useIsConnectedSafe.js +3 -1
  41. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  42. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts +4 -1
  43. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts.map +1 -1
  44. package/dist/hooks/connectors/useIsGnosisSafeConnector.js +3 -4
  45. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  46. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts +1 -1
  47. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -1
  48. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +16 -2
  49. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  50. package/dist/hooks/otc/mutations/useFillOrder.js +1 -1
  51. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +1 -0
  52. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  53. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.d.ts.map +1 -1
  54. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js +7 -4
  55. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
  56. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  57. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +7 -4
  58. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  59. package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
  60. package/dist/hooks/txs/queries/useAwaitTx.js +71 -19
  61. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  62. package/dist/lib/utils/index.d.ts +1 -0
  63. package/dist/lib/utils/index.d.ts.map +1 -1
  64. package/dist/lib/utils/index.js +6 -1
  65. package/dist/lib/utils/index.js.map +1 -1
  66. package/dist/lib/utils/toasts.d.ts +1 -1
  67. package/dist/lib/utils/toasts.d.ts.map +1 -1
  68. package/dist/lib/utils/toasts.js +5 -1
  69. package/dist/lib/utils/toasts.js.map +1 -1
  70. package/dist/lib/web3/privy/config.js +1 -1
  71. package/dist/lib/web3/wagmi/config.js +1 -1
  72. package/dist/lib/web3/wagmi/external.d.ts +10 -3
  73. package/dist/lib/web3/wagmi/external.d.ts.map +1 -1
  74. package/dist/lib/web3/wagmi/external.js +17 -2
  75. package/dist/lib/web3/wagmi/external.js.map +1 -1
  76. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  77. package/dist/lib/web3/wagmi/switchChain.js +5 -1
  78. package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
  79. package/dist/styles.css +1 -1
  80. package/dist/transactions/hash.d.ts +7 -0
  81. package/dist/transactions/hash.d.ts.map +1 -0
  82. package/dist/transactions/hash.js +35 -0
  83. package/dist/transactions/hash.js.map +1 -0
  84. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  85. package/dist/transactions/queries/ensureCallsStatus.js +11 -3
  86. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  87. package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
  88. package/dist/transactions/queries/ensureTxReceipt.js +7 -4
  89. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  90. package/dist/transactions/state/effects/finalize.d.ts +7 -1
  91. package/dist/transactions/state/effects/finalize.d.ts.map +1 -1
  92. package/dist/transactions/state/effects/finalize.js +41 -7
  93. package/dist/transactions/state/effects/finalize.js.map +1 -1
  94. package/dist/transactions/state/hooks/useActivateEffects.d.ts.map +1 -1
  95. package/dist/transactions/state/hooks/useActivateEffects.js +4 -2
  96. package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
  97. package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
  98. package/dist/transactions/state/transactionsActionAtom.js +55 -15
  99. package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
  100. package/dist/transactions/state/transactionsAtom.js +2 -2
  101. package/dist/transactions/state/transactionsAtom.js.map +1 -1
  102. package/dist/transactions/types.d.ts +11 -1
  103. package/dist/transactions/types.d.ts.map +1 -1
  104. package/dist/transactions/utils.d.ts +2 -1
  105. package/dist/transactions/utils.d.ts.map +1 -1
  106. package/dist/transactions/utils.js +6 -1
  107. package/dist/transactions/utils.js.map +1 -1
  108. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"configAtom.js","sources":["../../../src/core/state/configAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport type { WidgetElements, WidgetConfig, DevURLs } from \"../types\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { emptyArray, emptyObject } from \"@/lib/constants\";\nimport { atomWithCompare } from \"@/lib/utils/atomWithCompare\";\nimport { unorderedShallowEqual } from \"@/lib/utils\";\nimport { type TradeMode } from \"./tradeModeAtom\";\nimport { getDefaultTheme } from \"@/lib/utils/theme\";\n\nexport type PrimitiveConfig = Pick<\n WidgetConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"partner\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport type IterableConfig = Pick<\n WidgetConfig,\n | \"srcChains\"\n | \"destChains\"\n | \"tokenLists\"\n | \"tradeModes\"\n | \"excludeUI\"\n | \"devURLs\"\n>;\n\ntype PrimitiveConfigState = MarkRequired<\n PrimitiveConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport const defaultWidgetConfig = {\n theme: getDefaultTheme(),\n enableDelta: true,\n enableCrossChain: true,\n privyAppId: import.meta.env.VITE_PRIVY_APP_ID,\n privyClientId: import.meta.env.VITE_PRIVY_CLIENT_ID,\n debug: false,\n widgetMode: \"standalone\",\n ignoreBadUsdPrice: true,\n} as const satisfies PrimitiveConfig;\n\nexport const widgetConfigAtom = atom<PrimitiveConfigState>(defaultWidgetConfig);\n\nexport const useWidgetConfig = () => {\n return useAtomValue(widgetConfigAtom);\n};\n\nexport const defaultSubConfig = {\n tokenLists: emptyArray,\n srcChains: emptyArray,\n destChains: emptyArray,\n tradeModes: emptyArray,\n excludeUI: emptyArray,\n devURLs: emptyObject,\n} as const satisfies IterableConfig;\n\n// independent atoms for each iterable config property\n// with comparison to avoid unnecessary re-renders\nexport const tokenListsAtom = atomWithCompare<string[]>(\n defaultSubConfig.tokenLists,\n unorderedShallowEqual\n);\nexport const srcChainsAtom = atomWithCompare<SupportedChainId[]>(\n defaultSubConfig.srcChains,\n unorderedShallowEqual\n);\nexport const destChainsAtom = atomWithCompare<SupportedChainId[]>(\n defaultSubConfig.destChains,\n unorderedShallowEqual\n);\n\nexport const tradeModesAtom = atomWithCompare<TradeMode[]>(\n defaultSubConfig.tradeModes,\n unorderedShallowEqual\n);\n\nexport const excludeUIAtom = atomWithCompare<WidgetElements[]>(\n defaultSubConfig.excludeUI,\n unorderedShallowEqual\n);\n\nexport const devURLsAtom = atomWithCompare<DevURLs>(\n defaultSubConfig.devURLs,\n (a, b) => {\n // known properties only comparison\n return (\n a?.apiProxyURL === b?.apiProxyURL &&\n a?.apiURL === b?.apiURL &&\n a?.explorerURL === b?.explorerURL\n );\n }\n);\n"],"names":["defaultWidgetConfig","theme","getDefaultTheme","enableDelta","enableCrossChain","privyAppId","import","privyClientId","debug","widgetMode","ignoreBadUsdPrice","widgetConfigAtom","atom","useWidgetConfig","useAtomValue","defaultSubConfig","tokenLists","emptyArray","srcChains","destChains","tradeModes","excludeUI","devURLs","emptyObject","tokenListsAtom","atomWithCompare","unorderedShallowEqual","srcChainsAtom","destChainsAtom","tradeModesAtom","excludeUIAtom","devURLsAtom","a","b","apiProxyURL","apiURL","explorerURL"],"mappings":";;;;;;;AA8CO,MAAMA,mBAAAA,GAAsB;AAAA,EACjCC,OAAOC,eAAAA,EAAgB;AAAA,EACvBC,WAAAA,EAAa,IAAA;AAAA,EACbC,gBAAAA,EAAkB,IAAA;AAAA,EAClBC,UAAAA,EAAYC,2BAAAA;AAAAA,EACZC,aAAAA,EAAeD,sDAAAA;AAAAA,EACfE,KAAAA,EAAO,KAAA;AAAA,EACPC,UAAAA,EAAY,YAAA;AAAA,EACZC,iBAAAA,EAAmB;AACrB;AAEO,MAAMC,gBAAAA,GAAmBC,KAA2BZ,mBAAmB;AAEvE,MAAMa,kBAAkBA,MAAA;AAAA,EAAA,OACtBC,aAAaH,gBAAgB,CAAA;AAAC;AAGhC,MAAMI,gBAAAA,GAAmB;AAAA,EAC9BC,UAAAA,EAAYC,UAAAA;AAAAA,EACZC,SAAAA,EAAWD,UAAAA;AAAAA,EACXE,UAAAA,EAAYF,UAAAA;AAAAA,EACZG,UAAAA,EAAYH,UAAAA;AAAAA,EACZI,SAAAA,EAAWJ,UAAAA;AAAAA,EACXK,OAAAA,EAASC;AACX;AAIO,MAAMC,cAAAA,GAAiBC,eAAAA,CAC5BV,gBAAAA,CAAiBC,UAAAA,EACjBU,qBACF;AACO,MAAMC,aAAAA,GAAgBF,eAAAA,CAC3BV,gBAAAA,CAAiBG,SAAAA,EACjBQ,qBACF;AACO,MAAME,cAAAA,GAAiBH,eAAAA,CAC5BV,gBAAAA,CAAiBI,UAAAA,EACjBO,qBACF;AAEO,MAAMG,cAAAA,GAAiBJ,eAAAA,CAC5BV,gBAAAA,CAAiBK,UAAAA,EACjBM,qBACF;AAEO,MAAMI,aAAAA,GAAgBL,eAAAA,CAC3BV,gBAAAA,CAAiBM,SAAAA,EACjBK,qBACF;AAEO,MAAMK,cAAcN,eAAAA,CACzBV,gBAAAA,CAAiBO,OAAAA,EACjB,CAACU,GAAGC,CAAAA,KAAM;AAER,EAAA,OACED,CAAAA,EAAGE,WAAAA,KAAgBD,CAAAA,EAAGC,WAAAA,IACtBF,CAAAA,EAAGG,WAAWF,CAAAA,EAAGE,MAAAA,IACjBH,CAAAA,EAAGI,WAAAA,KAAgBH,CAAAA,EAAGG,WAAAA;AAE1B,CACF;;;;"}
1
+ {"version":3,"file":"configAtom.js","sources":["../../../src/core/state/configAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport type { WidgetElements, WidgetConfig, DevURLs } from \"../types\";\nimport type { MarkRequired } from \"ts-essentials\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { emptyArray, emptyObject } from \"@/lib/constants\";\nimport { atomWithCompare } from \"@/lib/utils/atomWithCompare\";\nimport { constructPropertiesEqual, unorderedShallowEqual } from \"@/lib/utils\";\nimport { type TradeMode } from \"./tradeModeAtom\";\nimport { getDefaultTheme } from \"@/lib/utils/theme\";\n\nexport type PrimitiveConfig = Pick<\n WidgetConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"partner\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport type IterableConfig = Pick<\n WidgetConfig,\n | \"srcChains\"\n | \"destChains\"\n | \"tokenLists\"\n | \"tradeModes\"\n | \"excludeUI\"\n | \"devURLs\"\n>;\n\ntype PrimitiveConfigState = MarkRequired<\n PrimitiveConfig,\n | \"theme\"\n | \"enableDelta\"\n | \"enableCrossChain\"\n | \"privyAppId\"\n | \"privyClientId\"\n | \"debug\"\n | \"widgetMode\"\n | \"ignoreBadUsdPrice\"\n>;\n\nexport const defaultWidgetConfig = {\n theme: getDefaultTheme(),\n enableDelta: true,\n enableCrossChain: true,\n privyAppId: import.meta.env.VITE_PRIVY_APP_ID,\n privyClientId: import.meta.env.VITE_PRIVY_CLIENT_ID,\n debug: false,\n widgetMode: \"standalone\",\n ignoreBadUsdPrice: true,\n} as const satisfies PrimitiveConfig;\n\nexport const widgetConfigAtom = atom<PrimitiveConfigState>(defaultWidgetConfig);\n\nexport const useWidgetConfig = () => {\n return useAtomValue(widgetConfigAtom);\n};\n\nexport const defaultSubConfig = {\n tokenLists: emptyArray,\n srcChains: emptyArray,\n destChains: emptyArray,\n tradeModes: emptyArray,\n excludeUI: emptyArray,\n devURLs: emptyObject,\n} as const satisfies IterableConfig;\n\n// independent atoms for each iterable config property\n// with comparison to avoid unnecessary re-renders\nexport const tokenListsAtom = atomWithCompare<string[]>(\n defaultSubConfig.tokenLists,\n unorderedShallowEqual\n);\nexport const srcChainsAtom = atomWithCompare<SupportedChainId[]>(\n defaultSubConfig.srcChains,\n unorderedShallowEqual\n);\nexport const destChainsAtom = atomWithCompare<SupportedChainId[]>(\n defaultSubConfig.destChains,\n unorderedShallowEqual\n);\n\nexport const tradeModesAtom = atomWithCompare<TradeMode[]>(\n defaultSubConfig.tradeModes,\n unorderedShallowEqual\n);\n\nexport const excludeUIAtom = atomWithCompare<WidgetElements[]>(\n defaultSubConfig.excludeUI,\n unorderedShallowEqual\n);\n\nexport const devURLsAtom = atomWithCompare<DevURLs>(\n defaultSubConfig.devURLs,\n // known properties only comparison\n constructPropertiesEqual([\"apiProxyURL\", \"apiURL\", \"explorerURL\"])\n);\n"],"names":["defaultWidgetConfig","theme","getDefaultTheme","enableDelta","enableCrossChain","privyAppId","import","privyClientId","debug","widgetMode","ignoreBadUsdPrice","widgetConfigAtom","atom","useWidgetConfig","useAtomValue","defaultSubConfig","tokenLists","emptyArray","srcChains","destChains","tradeModes","excludeUI","devURLs","emptyObject","tokenListsAtom","atomWithCompare","unorderedShallowEqual","srcChainsAtom","destChainsAtom","tradeModesAtom","excludeUIAtom","devURLsAtom","constructPropertiesEqual"],"mappings":";;;;;;;AA8CO,MAAMA,mBAAAA,GAAsB;AAAA,EACjCC,OAAOC,eAAAA,EAAgB;AAAA,EACvBC,WAAAA,EAAa,IAAA;AAAA,EACbC,gBAAAA,EAAkB,IAAA;AAAA,EAClBC,UAAAA,EAAYC,2BAAAA;AAAAA,EACZC,aAAAA,EAAeD,sDAAAA;AAAAA,EACfE,KAAAA,EAAO,KAAA;AAAA,EACPC,UAAAA,EAAY,YAAA;AAAA,EACZC,iBAAAA,EAAmB;AACrB;AAEO,MAAMC,gBAAAA,GAAmBC,KAA2BZ,mBAAmB;AAEvE,MAAMa,kBAAkBA,MAAA;AAAA,EAAA,OACtBC,aAAaH,gBAAgB,CAAA;AAAC;AAGhC,MAAMI,gBAAAA,GAAmB;AAAA,EAC9BC,UAAAA,EAAYC,UAAAA;AAAAA,EACZC,SAAAA,EAAWD,UAAAA;AAAAA,EACXE,UAAAA,EAAYF,UAAAA;AAAAA,EACZG,UAAAA,EAAYH,UAAAA;AAAAA,EACZI,SAAAA,EAAWJ,UAAAA;AAAAA,EACXK,OAAAA,EAASC;AACX;AAIO,MAAMC,cAAAA,GAAiBC,eAAAA,CAC5BV,gBAAAA,CAAiBC,UAAAA,EACjBU,qBACF;AACO,MAAMC,aAAAA,GAAgBF,eAAAA,CAC3BV,gBAAAA,CAAiBG,SAAAA,EACjBQ,qBACF;AACO,MAAME,cAAAA,GAAiBH,eAAAA,CAC5BV,gBAAAA,CAAiBI,UAAAA,EACjBO,qBACF;AAEO,MAAMG,cAAAA,GAAiBJ,eAAAA,CAC5BV,gBAAAA,CAAiBK,UAAAA,EACjBM,qBACF;AAEO,MAAMI,aAAAA,GAAgBL,eAAAA,CAC3BV,gBAAAA,CAAiBM,SAAAA,EACjBK,qBACF;AAEO,MAAMK,WAAAA,GAAcN,eAAAA;AAAAA,EACzBV,gBAAAA,CAAiBO,OAAAA;AAAAA;AAAAA,EAEjBU,wBAAAA,CAAyB,CAAC,aAAA,EAAe,QAAA,EAAU,aAAa,CAAC;AACnE;;;;"}
@@ -1,3 +1,5 @@
1
+ import { EIP1193Provider } from 'viem';
2
+ import { Connector } from 'wagmi';
1
3
  export declare const externalProviderAtom: import('jotai').PrimitiveAtom<{
2
4
  on: <event extends keyof import('viem').EIP1193EventMap>(event: event, listener: import('viem').EIP1193EventMap[event]) => void;
3
5
  removeListener: <event extends keyof import('viem').EIP1193EventMap>(event: event, listener: import('viem').EIP1193EventMap[event]) => void;
@@ -19,5 +21,12 @@ export declare const useExternalProvider: () => {
19
21
  removeListener: <event extends keyof import('viem').EIP1193EventMap>(event: event, listener: import('viem').EIP1193EventMap[event]) => void;
20
22
  request: import('viem').EIP1193RequestFn<import('viem').EIP1474Methods>;
21
23
  } | null;
24
+ export declare const useIsExternalProviderSafeIframe: () => boolean;
22
25
  export declare const useIsDappMode: () => boolean;
26
+ export declare function isSafeIframeProvider(provider: EIP1193Provider & {
27
+ safe?: {
28
+ safeAddress: string;
29
+ };
30
+ }): boolean;
31
+ export declare function isExternalConnectorWithSafeIframe(connector: Connector): Promise<boolean>;
23
32
  //# sourceMappingURL=externalProviderAtom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"externalProviderAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/externalProviderAtom.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB;;;;;;;;;;CAAqC,CAAC;AAEvE,eAAO,MAAM,yBAAyB;;;;SAQpC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;QAE/B,CAAC;AAEF,eAAO,MAAM,aAAa,eAEzB,CAAC"}
1
+ {"version":3,"file":"externalProviderAtom.d.ts","sourceRoot":"","sources":["../../../src/core/state/externalProviderAtom.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAG5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,eAAO,MAAM,oBAAoB;;;;;;;;;;CAAqC,CAAC;AAEvE,eAAO,MAAM,yBAAyB;;;;SAQpC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;QAE/B,CAAC;AAEF,eAAO,MAAM,+BAA+B,eAO3C,CAAC;AAEF,eAAO,MAAM,aAAa,eAEzB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,GAAG;IAAE,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC7D,OAAO,CAET;AAED,wBAAsB,iCAAiC,CACrD,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC,CAIlB"}
@@ -1,6 +1,8 @@
1
+ import { d as distExports } from '../../_virtual/index.js';
1
2
  import { atom } from 'jotai';
2
3
  import { useAtomValue } from '../store.js';
3
4
  import { widgetConfigAtom } from './configAtom.js';
5
+ import { isExternalConnector } from '../../components/web3/ConnectExternalProvider/utils.js';
4
6
 
5
7
  const externalProviderAtom = atom(null);
6
8
  const externalProviderToUseAtom = atom((get) => {
@@ -13,9 +15,34 @@ const externalProviderToUseAtom = atom((get) => {
13
15
  const useExternalProvider = () => {
14
16
  return useAtomValue(externalProviderToUseAtom);
15
17
  };
18
+ const useIsExternalProviderSafeIframe = () => {
19
+ const $ = distExports.c(2);
20
+ const externalProvider = useExternalProvider();
21
+ if (!externalProvider) {
22
+ return false;
23
+ }
24
+ let t0;
25
+ if ($[0] !== externalProvider) {
26
+ t0 = isSafeIframeProvider(externalProvider);
27
+ $[0] = externalProvider;
28
+ $[1] = t0;
29
+ } else {
30
+ t0 = $[1];
31
+ }
32
+ const isSafeIframe = t0;
33
+ return isSafeIframe;
34
+ };
16
35
  const useIsDappMode = () => {
17
36
  return useAtomValue(widgetConfigAtom).widgetMode === "dapp";
18
37
  };
38
+ function isSafeIframeProvider(provider) {
39
+ return !!provider.safe?.safeAddress;
40
+ }
41
+ async function isExternalConnectorWithSafeIframe(connector) {
42
+ if (!isExternalConnector(connector)) return false;
43
+ const provider = await connector.getProvider();
44
+ return isSafeIframeProvider(provider);
45
+ }
19
46
 
20
- export { externalProviderAtom, externalProviderToUseAtom, useExternalProvider, useIsDappMode };
47
+ export { externalProviderAtom, externalProviderToUseAtom, isExternalConnectorWithSafeIframe, isSafeIframeProvider, useExternalProvider, useIsDappMode, useIsExternalProviderSafeIframe };
21
48
  //# sourceMappingURL=externalProviderAtom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"externalProviderAtom.js","sources":["../../../src/core/state/externalProviderAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport type { EIP1193Provider } from \"viem\";\nimport { widgetConfigAtom } from \"./configAtom\";\n\nexport const externalProviderAtom = atom<EIP1193Provider | null>(null);\n\nexport const externalProviderToUseAtom = atom<EIP1193Provider | null>((get) => {\n const widgetConfig = get(widgetConfigAtom);\n\n if (widgetConfig.widgetMode !== \"dapp\") {\n return null;\n }\n\n return get(externalProviderAtom);\n});\n\nexport const useExternalProvider = () => {\n return useAtomValue(externalProviderToUseAtom);\n};\n\nexport const useIsDappMode = () => {\n return useAtomValue(widgetConfigAtom).widgetMode === \"dapp\";\n};\n"],"names":["externalProviderAtom","atom","externalProviderToUseAtom","get","widgetConfig","widgetConfigAtom","widgetMode","useExternalProvider","useAtomValue","useIsDappMode"],"mappings":";;;;AAKO,MAAMA,oBAAAA,GAAuBC,KAA6B,IAAI;AAE9D,MAAMC,yBAAAA,GAA4BD,KAA8BE,CAAAA,GAAAA,KAAQ;AAC7E,EAAA,MAAMC,YAAAA,GAAeD,IAAIE,gBAAgB,CAAA;AAEzC,EAAA,IAAID,YAAAA,CAAaE,eAAe,MAAA,EAAQ;AACtC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAOH,IAAIH,oBAAoB,CAAA;AACjC,CAAC;AAEM,MAAMO,sBAAsBA,MAAA;AAAA,EAAA,OAC1BC,aAAaN,yBAAyB,CAAA;AAAC;AAGzC,MAAMO,gBAAgBA,MAAA;AAAA,EAAA,OACpBD,YAAAA,CAAaH,gBAAgB,CAAA,CAACC,UAAAA,KAAgB,MAAA;AAAM;;;;"}
1
+ {"version":3,"file":"externalProviderAtom.js","sources":["../../../src/core/state/externalProviderAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { useAtomValue } from \"@/core/store\";\nimport type { EIP1193Provider } from \"viem\";\nimport { widgetConfigAtom } from \"./configAtom\";\nimport { isExternalConnector } from \"@/components/web3/ConnectExternalProvider/utils\";\nimport type { Connector } from \"wagmi\";\n\nexport const externalProviderAtom = atom<EIP1193Provider | null>(null);\n\nexport const externalProviderToUseAtom = atom<EIP1193Provider | null>((get) => {\n const widgetConfig = get(widgetConfigAtom);\n\n if (widgetConfig.widgetMode !== \"dapp\") {\n return null;\n }\n\n return get(externalProviderAtom);\n});\n\nexport const useExternalProvider = () => {\n return useAtomValue(externalProviderToUseAtom);\n};\n\nexport const useIsExternalProviderSafeIframe = () => {\n const externalProvider = useExternalProvider();\n\n if (!externalProvider) return false;\n\n const isSafeIframe = isSafeIframeProvider(externalProvider);\n return isSafeIframe;\n};\n\nexport const useIsDappMode = () => {\n return useAtomValue(widgetConfigAtom).widgetMode === \"dapp\";\n};\n\nexport function isSafeIframeProvider(\n provider: EIP1193Provider & { safe?: { safeAddress: string } }\n): boolean {\n return !!provider.safe?.safeAddress;\n}\n\nexport async function isExternalConnectorWithSafeIframe(\n connector: Connector\n): Promise<boolean> {\n if (!isExternalConnector(connector)) return false;\n const provider = await connector.getProvider();\n return isSafeIframeProvider(provider as EIP1193Provider);\n}\n"],"names":["externalProviderAtom","atom","externalProviderToUseAtom","get","widgetConfig","widgetConfigAtom","widgetMode","useExternalProvider","useAtomValue","useIsExternalProviderSafeIframe","$","_c","externalProvider","t0","isSafeIframeProvider","isSafeIframe","useIsDappMode","provider","safe","safeAddress","isExternalConnectorWithSafeIframe","connector","isExternalConnector","getProvider"],"mappings":";;;;;;AAOO,MAAMA,oBAAAA,GAAuBC,KAA6B,IAAI;AAE9D,MAAMC,yBAAAA,GAA4BD,KAA8BE,CAAAA,GAAAA,KAAQ;AAC7E,EAAA,MAAMC,YAAAA,GAAeD,IAAIE,gBAAgB,CAAA;AAEzC,EAAA,IAAID,YAAAA,CAAaE,eAAe,MAAA,EAAQ;AACtC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAOH,IAAIH,oBAAoB,CAAA;AACjC,CAAC;AAEM,MAAMO,sBAAsBA,MAAA;AAAA,EAAA,OAC1BC,aAAaN,yBAAyB,CAAA;AAAC;AAGzC,MAAMO,kCAAkCA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAC7C,EAAA,MAAAC,mBAAyBL,mBAAAA,EAAoB;AAE7C,EAAA,IAAI,CAACK,gBAAAA,EAAgB;AAAA,IAAA,OAAS,KAAA;AAAA,EAAK;AAAC,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAE,gBAAAA,EAAA;AAEfC,IAAAA,EAAAA,GAAAC,qBAAqBF,gBAAgB,CAAA;AAACF,IAAAA,CAAAA,MAAAE,gBAAAA;AAAAF,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAA3D,EAAA,MAAAK,YAAAA,GAAqBF,EAAAA;AAAuC,EAAA,OACrDE,YAAAA;AAAY;AAGd,MAAMC,gBAAgBA,MAAA;AAAA,EAAA,OACpBR,YAAAA,CAAaH,gBAAgB,CAAA,CAACC,UAAAA,KAAgB,MAAA;AAAM;AAGtD,SAASQ,qBACdG,QAAAA,EACS;AACT,EAAA,OAAO,CAAC,CAACA,QAAAA,CAASC,IAAAA,EAAMC,WAAAA;AAC1B;AAEA,eAAsBC,kCACpBC,SAAAA,EACkB;AAClB,EAAA,IAAI,CAACC,mBAAAA,CAAoBD,SAAS,CAAA,EAAG,OAAO,KAAA;AAC5C,EAAA,MAAMJ,QAAAA,GAAW,MAAMI,SAAAA,CAAUE,WAAAA,EAAY;AAC7C,EAAA,OAAOT,qBAAqBG,QAA2B,CAAA;AACzD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOnWalletConnect.d.ts","sourceRoot":"","sources":["../../../src/events/hooks/useOnWalletConnect.ts"],"names":[],"mappings":"AAKA,wBAAgB,oBAAoB,SAiCnC"}
1
+ {"version":3,"file":"useOnWalletConnect.d.ts","sourceRoot":"","sources":["../../../src/events/hooks/useOnWalletConnect.ts"],"names":[],"mappings":"AAOA,wBAAgB,oBAAoB,SAoCnC"}
@@ -1,4 +1,5 @@
1
1
  import { d as distExports } from '../../_virtual/index.js';
2
+ import { isExternalConnector } from '../../components/web3/ConnectExternalProvider/utils.js';
2
3
  import { getWalletMetadata } from '../../components/web3/ConnectWallets/walletIcons.js';
3
4
  import { useWidgetEvents } from '../../core/state/widgetEventsAtom.js';
4
5
  import { useAccountEffect } from 'wagmi';
@@ -22,7 +23,8 @@ function useOnWalletConnected() {
22
23
  const walletMetadata = await getWalletMetadata(connector);
23
24
  const provider = await connector.getProvider();
24
25
  const isEmbedded = connector.type === safe.type;
25
- const connectorAction = isReconnected ? "Eager" : isEmbedded ? "Embedded" : "Click";
26
+ const isExternal = isExternalConnector(connector);
27
+ const connectorAction = isReconnected ? "Eager" : isEmbedded ? "Embedded" : isExternal ? "External" : "Click";
26
28
  onConnectWallet?.({
27
29
  event: {
28
30
  name: "ConnectWallet:connect",
@@ -1 +1 @@
1
- {"version":3,"file":"useOnWalletConnect.js","sources":["../../../src/events/hooks/useOnWalletConnect.ts"],"sourcesContent":["import { getWalletMetadata } from \"@/components/web3/ConnectWallets/walletIcons\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport { useAccountEffect } from \"wagmi\";\nimport { safe } from \"wagmi/connectors\";\n\nexport function useOnWalletConnected() {\n const { onConnectWallet } = useWidgetEvents();\n\n useAccountEffect({\n onConnect: async ({ address, connector, chainId, isReconnected }) => {\n const walletMetadata = await getWalletMetadata(connector);\n const provider = await connector.getProvider();\n\n const isEmbedded = connector.type === safe.type;\n\n const connectorAction = isReconnected\n ? \"Eager\"\n : isEmbedded\n ? \"Embedded\"\n : \"Click\";\n\n onConnectWallet?.({\n event: {\n name: \"ConnectWallet:connect\",\n params: {\n connectorType: connector.type,\n connectorName: connector.name,\n connectorAction,\n provider,\n account: address,\n chainId,\n walletName: walletMetadata.name,\n walletIcon: walletMetadata.icon,\n },\n },\n });\n },\n });\n}\n"],"names":["useOnWalletConnected","$","_c","onConnectWallet","useWidgetEvents","t0","onConnect","t1","address","connector","chainId","isReconnected","walletMetadata","getWalletMetadata","provider","getProvider","isEmbedded","type","safe","connectorAction","event","name","params","connectorType","connectorName","account","walletName","walletIcon","icon","useAccountEffect"],"mappings":";;;;;;AAKO,SAAAA,oBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAA4BC,eAAAA,EAAgB;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,eAAAA,EAAA;AAE7BE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,SAAAA,EACJ,OAAAC,EAAAA,KAAA;AAAO,QAAA,MAAA;AAAA,UAAAC,OAAAA;AAAAA,UAAAC,SAAAA;AAAAA,UAAAC,OAAAA;AAAAA,UAAAC;AAAAA,SAAA,GAAAJ,EAAAA;AAChB,QAAA,MAAAK,cAAAA,GAAuB,MAAMC,iBAAAA,CAAkBJ,SAAS,CAAA;AACxD,QAAA,MAAAK,QAAAA,GAAiB,MAAML,SAAAA,CAASM,WAAAA,EAAa;AAE7C,QAAA,MAAAC,UAAAA,GAAmBP,SAAAA,CAASQ,IAAAA,KAAUC,IAAAA,CAAID,IAAAA;AAE1C,QAAA,MAAAE,eAAAA,GAAwBR,aAAAA,GAAA,OAAA,GAEpBK,UAAAA,GAAA,UAAA,GAAA,OAAA;AAIJb,QAAAA,eAAAA,GAAkB;AAAA,UAAAiB,KAAAA,EACT;AAAA,YAAAC,IAAAA,EACC,uBAAA;AAAA,YAAuBC,MAAAA,EACrB;AAAA,cAAAC,eACSd,SAAAA,CAASQ,IAAAA;AAAAA,cAAKO,eACdf,SAAAA,CAASY,IAAAA;AAAAA,cAAKF,eAAAA;AAAAA,cAAAL,QAAAA;AAAAA,cAAAW,OAAAA,EAGpBjB,OAAAA;AAAAA,cAAOE,OAAAA;AAAAA,cAAAgB,YAEJd,cAAAA,CAAcS,IAAAA;AAAAA,cAAKM,YACnBf,cAAAA,CAAcgB;AAAAA;AAC5B;AACF,SACD,CAAA;AAAA,MAAC;AAAA,KAEN;AAAC3B,IAAAA,CAAAA,MAAAE,eAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AA7BD4B,EAAAA,gBAAAA,CAAiBxB,EA6BhB,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"useOnWalletConnect.js","sources":["../../../src/events/hooks/useOnWalletConnect.ts"],"sourcesContent":["import { isExternalConnector } from \"@/components/web3/ConnectExternalProvider/utils\";\nimport { getWalletMetadata } from \"@/components/web3/ConnectWallets/walletIcons\";\nimport { useWidgetEvents } from \"@/core/state/widgetEventsAtom\";\nimport type { EIP1193Provider } from \"viem\";\nimport { useAccountEffect } from \"wagmi\";\nimport { safe } from \"wagmi/connectors\";\n\nexport function useOnWalletConnected() {\n const { onConnectWallet } = useWidgetEvents();\n\n useAccountEffect({\n onConnect: async ({ address, connector, chainId, isReconnected }) => {\n const walletMetadata = await getWalletMetadata(connector);\n const provider = await connector.getProvider();\n\n const isEmbedded = connector.type === safe.type;\n const isExternal = isExternalConnector(connector);\n\n const connectorAction = isReconnected\n ? \"Eager\"\n : isEmbedded\n ? \"Embedded\"\n : isExternal\n ? \"External\"\n : \"Click\";\n\n onConnectWallet?.({\n event: {\n name: \"ConnectWallet:connect\",\n params: {\n connectorType: connector.type,\n connectorName: connector.name,\n connectorAction,\n provider: provider as EIP1193Provider,\n account: address,\n chainId,\n walletName: walletMetadata.name,\n walletIcon: walletMetadata.icon,\n },\n },\n });\n },\n });\n}\n"],"names":["useOnWalletConnected","$","_c","onConnectWallet","useWidgetEvents","t0","onConnect","t1","address","connector","chainId","isReconnected","walletMetadata","getWalletMetadata","provider","getProvider","isEmbedded","type","safe","isExternal","isExternalConnector","connectorAction","event","name","params","connectorType","connectorName","account","walletName","walletIcon","icon","useAccountEffect"],"mappings":";;;;;;;AAOO,SAAAA,oBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAA4BC,eAAAA,EAAgB;AAAE,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,eAAAA,EAAA;AAE7BE,IAAAA,EAAAA,GAAA;AAAA,MAAAC,SAAAA,EACJ,OAAAC,EAAAA,KAAA;AAAO,QAAA,MAAA;AAAA,UAAAC,OAAAA;AAAAA,UAAAC,SAAAA;AAAAA,UAAAC,OAAAA;AAAAA,UAAAC;AAAAA,SAAA,GAAAJ,EAAAA;AAChB,QAAA,MAAAK,cAAAA,GAAuB,MAAMC,iBAAAA,CAAkBJ,SAAS,CAAA;AACxD,QAAA,MAAAK,QAAAA,GAAiB,MAAML,SAAAA,CAASM,WAAAA,EAAa;AAE7C,QAAA,MAAAC,UAAAA,GAAmBP,SAAAA,CAASQ,IAAAA,KAAUC,IAAAA,CAAID,IAAAA;AAC1C,QAAA,MAAAE,UAAAA,GAAmBC,oBAAoBX,SAAS,CAAA;AAEhD,QAAA,MAAAY,kBAAwBV,aAAAA,GAAA,OAAA,GAEpBK,UAAAA,GAAA,UAAA,GAEEG,aAAA,UAAA,GAAA,OAAA;AAINhB,QAAAA,eAAAA,GAAkB;AAAA,UAAAmB,KAAAA,EACT;AAAA,YAAAC,IAAAA,EACC,uBAAA;AAAA,YAAuBC,MAAAA,EACrB;AAAA,cAAAC,eACShB,SAAAA,CAASQ,IAAAA;AAAAA,cAAKS,eACdjB,SAAAA,CAASc,IAAAA;AAAAA,cAAKF,eAAAA;AAAAA,cAAAP,QAAAA;AAAAA,cAEQa,OAAAA,EAC5BnB,OAAAA;AAAAA,cAAOE,OAAAA;AAAAA,cAAAkB,YAEJhB,cAAAA,CAAcW,IAAAA;AAAAA,cAAKM,YACnBjB,cAAAA,CAAckB;AAAAA;AAC5B;AACF,SACD,CAAA;AAAA,MAAC;AAAA,KAEN;AAAC7B,IAAAA,CAAAA,MAAAE,eAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAhCD8B,EAAAA,gBAAAA,CAAiB1B,EAgChB,CAAA;AAAC;;;;"}
@@ -1,10 +1,10 @@
1
- import { Address } from 'viem';
1
+ import { Address, EIP1193Provider } from 'viem';
2
2
  import { MakeEventArgs, WidgetEventCallbackConstructor, WidgetEventMinCallbackConstructor } from './common';
3
3
  type ConnectWalletParams = {
4
4
  connectorType: string;
5
5
  connectorName: string;
6
- connectorAction: "Click" | "Eager" | "Embedded";
7
- provider: unknown;
6
+ connectorAction: "Click" | "Eager" | "Embedded" | "External";
7
+ provider: EIP1193Provider;
8
8
  account: Address;
9
9
  walletName: string | null;
10
10
  walletIcon: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"connectWallet.d.ts","sourceRoot":"","sources":["../../../src/events/types/connectWallet.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EACV,aAAa,EACb,8BAA8B,EAC9B,iCAAiC,EAClC,MAAM,UAAU,CAAC;AAElB,KAAK,mBAAmB,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,sBAAsB,GAAG,aAAa,CAAC;IAC1C,uBAAuB,EAAE,mBAAmB,CAAC;IAC7C,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GACzB,8BAA8B,CAAC,sBAAsB,CAAC,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAC5B,iCAAiC,CAAC,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"connectWallet.d.ts","sourceRoot":"","sources":["../../../src/events/types/connectWallet.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,KAAK,EACV,aAAa,EACb,8BAA8B,EAC9B,iCAAiC,EAClC,MAAM,UAAU,CAAC;AAElB,KAAK,mBAAmB,GAAG;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IAC7D,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,sBAAsB,GAAG,aAAa,CAAC;IAC1C,uBAAuB,EAAE,mBAAmB,CAAC;IAC7C,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GACzB,8BAA8B,CAAC,sBAAsB,CAAC,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAC5B,iCAAiC,CAAC,sBAAsB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAwaitCalls.d.ts","sourceRoot":"","sources":["../../../src/hooks/batch/useAwaitCalls.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACrC,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,0CAA0C,CAAC;AAGlD,MAAM,MAAM,uBAAuB,CAAC,UAAU,GAAG,sBAAsB,IAAI;IACzE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,+BAA+B,CACrC,OAAO,WAAW,EAClB,UAAU,CACX,CAAC,OAAO,CAAC,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAE5D,MAAM,MAAM,uBAAuB,CAAC,UAAU,GAAG,sBAAsB,IACrE,+BAA+B,CAAC,UAAU,CAAC,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,WAAW,CACpC,4BAA4B,CAAC,UAAU,CAAC,CACzC,CAAC,MAAM,CAAC,CAAC;AAEV,MAAM,MAAM,kCAAkC,GAAG,QAAQ,CACvD,sBAAsB,GAAG;IACvB,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACvC,CACF,CAAC;AAEF,wBAAgB,aAAa,CAAC,UAAU,GAAG,sBAAsB,EAAE,EACjE,EAAE,EACF,KAAK,GACN,EAAE,uBAAuB,CAAC,UAAU,CAAC,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAa3E;AAED,MAAM,MAAM,2BAA2B,CACrC,cAAc,GAAG,oBAAoB,EAAE,IACrC;IACF,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE,KACnD,cAAc,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,GAAG,cAAc,CAAC,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAChE,EACA,GAAG,EACH,OAAO,GACR,EAAE,2BAA2B,CAAC,cAAc,CAAC,GAAG,cAAc,CAwB9D;AAED,wBAAgB,oBAAoB,IAAI,mBAAmB,CAK1D"}
1
+ {"version":3,"file":"useAwaitCalls.d.ts","sourceRoot":"","sources":["../../../src/hooks/batch/useAwaitCalls.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACrC,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,0CAA0C,CAAC;AAGlD,MAAM,MAAM,uBAAuB,CAAC,UAAU,GAAG,sBAAsB,IAAI;IACzE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,+BAA+B,CACrC,OAAO,WAAW,EAClB,UAAU,CACX,CAAC,OAAO,CAAC,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAE5D,MAAM,MAAM,uBAAuB,CAAC,UAAU,GAAG,sBAAsB,IACrE,+BAA+B,CAAC,UAAU,CAAC,CAAC;AAE9C,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,WAAW,CACpC,4BAA4B,CAAC,UAAU,CAAC,CACzC,CAAC,MAAM,CAAC,CAAC;AAEV,MAAM,MAAM,kCAAkC,GAAG,QAAQ,CACvD,sBAAsB,GAAG;IACvB,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACvC,CACF,CAAC;AAEF,wBAAgB,aAAa,CAAC,UAAU,GAAG,sBAAsB,EAAE,EACjE,EAAE,EACF,KAAK,GACN,EAAE,uBAAuB,CAAC,UAAU,CAAC,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAa3E;AAED,MAAM,MAAM,2BAA2B,CACrC,cAAc,GAAG,oBAAoB,EAAE,IACrC;IACF,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,OAAO,CAAC,EAAE,CACR,OAAO,EAAE,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE,KACnD,cAAc,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,GAAG,cAAc,CAAC,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAChE,EACA,GAAG,EACH,OAAO,GACR,EAAE,2BAA2B,CAAC,cAAc,CAAC,GAAG,cAAc,CAyB9D;AAED,wBAAgB,oBAAoB,IAAI,mBAAmB,CAK1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAwaitCalls.js","sources":["../../../src/hooks/batch/useAwaitCalls.ts"],"sourcesContent":["import {\n useQueries,\n useQueryClient,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n waitForCallsStatus,\n type WaitForCallsStatusReturnType,\n} from \"@wagmi/core\";\nimport {\n useConfig,\n useWaitForCallsStatus,\n type UseWaitForCallsStatusParameters,\n type UseWaitForCallsStatusReturnType,\n} from \"wagmi\";\n\nimport {\n waitForCallsStatusQueryKey,\n type WaitForCallsStatusData,\n} from \"@wagmi/core/query\";\nimport type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { useConnectedSafe } from \"../connectors/useIsConnectedSafe\";\nimport type { NonEmptyArray, Prettify } from \"ts-essentials\";\nimport {\n ensureCallsStatusFactory,\n type EnsureCallsStatusFn,\n} from \"@/transactions/queries/ensureCallsStatus\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\n\nexport type UseAwaitCallsParameters<SelectData = DefaultCallsStatusData> = {\n id?: string;\n query?: UseWaitForCallsStatusParameters<\n typeof wagmiConfig,\n SelectData\n >[\"query\"];\n};\n\nexport type DefaultCallsStatusData = WaitForCallsStatusData;\n\nexport type UseAwaitCallsReturnType<SelectData = DefaultCallsStatusData> =\n UseWaitForCallsStatusReturnType<SelectData>;\n\nexport type CallsStatusFromWagmi = DefaultCallsStatusData;\n\nexport type CallsReceipt = NonNullable<\n WaitForCallsStatusReturnType[\"receipts\"]\n>[number];\n\nexport type WaitForCallsStatusDataWithReceipts = Prettify<\n WaitForCallsStatusData & {\n receipts: NonEmptyArray<CallsReceipt>;\n }\n>;\n\nexport function useAwaitCalls<SelectData = DefaultCallsStatusData>({\n id,\n query,\n}: UseAwaitCallsParameters<SelectData>): UseAwaitCallsReturnType<SelectData> {\n const isSafe = useConnectedSafe();\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n const queryResult = useWaitForCallsStatus({\n id,\n throwOnFailure: true,\n query,\n timeout,\n });\n\n return queryResult;\n}\n\nexport type UseAwaitManyCallsParameters<\n CombinedResult = CallsStatusFromWagmi[],\n> = {\n ids: string[];\n combine?: (\n results: UseQueryResult<CallsStatusFromWagmi, Error>[]\n ) => CombinedResult;\n};\n\n/**\n * Hook to await multiple calls by IDs on different chains all together.\n */\nexport function useAwaitManyCalls<\n CombinedResult = UseQueryResult<WaitForCallsStatusData, Error>[],\n>({\n ids,\n combine,\n}: UseAwaitManyCallsParameters<CombinedResult>): CombinedResult {\n const config = useConfig();\n const isSafe = useConnectedSafe();\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n const queries = ids.map((id) => {\n return {\n queryKey: waitForCallsStatusQueryKey({\n id,\n timeout,\n }),\n queryFn: () =>\n waitForCallsStatus(config, {\n id,\n timeout,\n throwOnFailure: true,\n }),\n };\n });\n\n const queryResults = useQueries({ queries, combine });\n\n return queryResults;\n}\n\nexport function useEnsureCallsStatus(): EnsureCallsStatusFn {\n const queryClient = useQueryClient();\n const wagmiConfig = useConfig();\n const isSafe = useConnectedSafe();\n return ensureCallsStatusFactory({ queryClient, wagmiConfig, isSafe });\n}\n"],"names":["useAwaitCalls","t0","$","_c","id","query","isSafe","useConnectedSafe","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","t1","throwOnFailure","queryResult","useWaitForCallsStatus","useEnsureCallsStatus","queryClient","useQueryClient","wagmiConfig","useConfig","ensureCallsStatusFactory"],"mappings":";;;;;;;;;AAsDO,SAAAA,cAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAA4D,EAAA,MAAA;AAAA,IAAAC,EAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAIjE,EAAA,MAAAK,SAAeC,gBAAAA,EAAiB;AAEhC,EAAA,MAAAC,OAAAA,GAAgBF,SAAAG,uBAAAA,GAAAC,MAAAA;AAA6C,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAE,EAAAA,IAAAF,CAAAA,QAAAG,KAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAM,OAAAA,EAAA;AAEnBG,IAAAA,EAAAA,GAAA;AAAA,MAAAP,EAAAA;AAAAA,MAAAQ,cAAAA,EAExB,IAAA;AAAA,MAAIP,KAAAA;AAAAA,MAAAG;AAAAA,KAGtB;AAACN,IAAAA,CAAAA,MAAAE,EAAAA;AAAAF,IAAAA,CAAAA,MAAAG,KAAAA;AAAAH,IAAAA,CAAAA,MAAAM,OAAAA;AAAAN,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AALD,EAAA,MAAAW,WAAAA,GAAoBC,sBAAsBH,EAKzC,CAAA;AAAE,EAAA,OAEIE,WAAAA;AAAW;AA8Cb,SAAAE,oBAAAA,GAAA;AAAA,EAAA,MAAAb,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAa,cAAoBC,cAAAA,EAAe;AACnC,EAAA,MAAAC,cAAoBC,SAAAA,EAAU;AAC9B,EAAA,MAAAb,SAAeC,gBAAAA,EAAiB;AAAE,EAAA,IAAAN,EAAAA;AAAA,EAAA,IAAAC,CAAAA,CAAA,CAAA,CAAA,KAAAI,MAAAA,IAAAJ,CAAAA,QAAAc,WAAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAgB,WAAAA,EAAA;AAC3BjB,IAAAA,EAAAA,GAAAmB,wBAAAA,CAAyB;AAAA,MAAAJ,WAAAA;AAAAA,MAAAE,WAAAA;AAAAA,MAAAZ;AAAAA,KAAoC,CAAA;AAACJ,IAAAA,CAAAA,MAAAI,MAAAA;AAAAJ,IAAAA,CAAAA,MAAAc,WAAAA;AAAAd,IAAAA,CAAAA,MAAAgB,WAAAA;AAAAhB,IAAAA,CAAAA,MAAAD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAC,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA9DD,EAAAA;AAA8D;;;;"}
1
+ {"version":3,"file":"useAwaitCalls.js","sources":["../../../src/hooks/batch/useAwaitCalls.ts"],"sourcesContent":["import {\n useQueries,\n useQueryClient,\n type UseQueryResult,\n} from \"@tanstack/react-query\";\nimport {\n waitForCallsStatus,\n type WaitForCallsStatusReturnType,\n} from \"@wagmi/core\";\nimport {\n useConfig,\n useWaitForCallsStatus,\n type UseWaitForCallsStatusParameters,\n type UseWaitForCallsStatusReturnType,\n} from \"wagmi\";\n\nimport {\n waitForCallsStatusQueryKey,\n type WaitForCallsStatusData,\n} from \"@wagmi/core/query\";\nimport type { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { useConnectedSafe } from \"../connectors/useIsConnectedSafe\";\nimport type { NonEmptyArray, Prettify } from \"ts-essentials\";\nimport {\n ensureCallsStatusFactory,\n type EnsureCallsStatusFn,\n} from \"@/transactions/queries/ensureCallsStatus\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\n\nexport type UseAwaitCallsParameters<SelectData = DefaultCallsStatusData> = {\n id?: string;\n query?: UseWaitForCallsStatusParameters<\n typeof wagmiConfig,\n SelectData\n >[\"query\"];\n};\n\nexport type DefaultCallsStatusData = WaitForCallsStatusData;\n\nexport type UseAwaitCallsReturnType<SelectData = DefaultCallsStatusData> =\n UseWaitForCallsStatusReturnType<SelectData>;\n\nexport type CallsStatusFromWagmi = DefaultCallsStatusData;\n\nexport type CallsReceipt = NonNullable<\n WaitForCallsStatusReturnType[\"receipts\"]\n>[number];\n\nexport type WaitForCallsStatusDataWithReceipts = Prettify<\n WaitForCallsStatusData & {\n receipts: NonEmptyArray<CallsReceipt>;\n }\n>;\n\nexport function useAwaitCalls<SelectData = DefaultCallsStatusData>({\n id,\n query,\n}: UseAwaitCallsParameters<SelectData>): UseAwaitCallsReturnType<SelectData> {\n const isSafe = useConnectedSafe();\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n const queryResult = useWaitForCallsStatus({\n id,\n throwOnFailure: true,\n query,\n timeout,\n });\n\n return queryResult;\n}\n\nexport type UseAwaitManyCallsParameters<\n CombinedResult = CallsStatusFromWagmi[],\n> = {\n ids: string[];\n combine?: (\n results: UseQueryResult<CallsStatusFromWagmi, Error>[]\n ) => CombinedResult;\n};\n\n/**\n * Hook to await multiple calls by IDs on different chains all together.\n */\nexport function useAwaitManyCalls<\n CombinedResult = UseQueryResult<WaitForCallsStatusData, Error>[],\n>({\n ids,\n combine,\n}: UseAwaitManyCallsParameters<CombinedResult>): CombinedResult {\n const config = useConfig();\n const isSafe = useConnectedSafe();\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n const queries = ids.map((id) => {\n return {\n queryKey: waitForCallsStatusQueryKey({\n id,\n timeout,\n throwOnFailure: true,\n }),\n queryFn: () =>\n waitForCallsStatus(config, {\n id,\n timeout,\n throwOnFailure: true,\n }),\n };\n });\n\n const queryResults = useQueries({ queries, combine });\n\n return queryResults;\n}\n\nexport function useEnsureCallsStatus(): EnsureCallsStatusFn {\n const queryClient = useQueryClient();\n const wagmiConfig = useConfig();\n const isSafe = useConnectedSafe();\n return ensureCallsStatusFactory({ queryClient, wagmiConfig, isSafe });\n}\n"],"names":["useAwaitCalls","t0","$","_c","id","query","isSafe","useConnectedSafe","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","t1","throwOnFailure","queryResult","useWaitForCallsStatus","useEnsureCallsStatus","queryClient","useQueryClient","wagmiConfig","useConfig","ensureCallsStatusFactory"],"mappings":";;;;;;;;;AAsDO,SAAAA,cAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAA4D,EAAA,MAAA;AAAA,IAAAC,EAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAIjE,EAAA,MAAAK,SAAeC,gBAAAA,EAAiB;AAEhC,EAAA,MAAAC,OAAAA,GAAgBF,SAAAG,uBAAAA,GAAAC,MAAAA;AAA6C,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAT,CAAAA,CAAA,CAAA,CAAA,KAAAE,EAAAA,IAAAF,CAAAA,QAAAG,KAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAM,OAAAA,EAAA;AAEnBG,IAAAA,EAAAA,GAAA;AAAA,MAAAP,EAAAA;AAAAA,MAAAQ,cAAAA,EAExB,IAAA;AAAA,MAAIP,KAAAA;AAAAA,MAAAG;AAAAA,KAGtB;AAACN,IAAAA,CAAAA,MAAAE,EAAAA;AAAAF,IAAAA,CAAAA,MAAAG,KAAAA;AAAAH,IAAAA,CAAAA,MAAAM,OAAAA;AAAAN,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AALD,EAAA,MAAAW,WAAAA,GAAoBC,sBAAsBH,EAKzC,CAAA;AAAE,EAAA,OAEIE,WAAAA;AAAW;AA+Cb,SAAAE,oBAAAA,GAAA;AAAA,EAAA,MAAAb,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAa,cAAoBC,cAAAA,EAAe;AACnC,EAAA,MAAAC,cAAoBC,SAAAA,EAAU;AAC9B,EAAA,MAAAb,SAAeC,gBAAAA,EAAiB;AAAE,EAAA,IAAAN,EAAAA;AAAA,EAAA,IAAAC,CAAAA,CAAA,CAAA,CAAA,KAAAI,MAAAA,IAAAJ,CAAAA,QAAAc,WAAAA,IAAAd,CAAAA,CAAA,CAAA,CAAA,KAAAgB,WAAAA,EAAA;AAC3BjB,IAAAA,EAAAA,GAAAmB,wBAAAA,CAAyB;AAAA,MAAAJ,WAAAA;AAAAA,MAAAE,WAAAA;AAAAA,MAAAZ;AAAAA,KAAoC,CAAA;AAACJ,IAAAA,CAAAA,MAAAI,MAAAA;AAAAJ,IAAAA,CAAAA,MAAAc,WAAAA;AAAAd,IAAAA,CAAAA,MAAAgB,WAAAA;AAAAhB,IAAAA,CAAAA,MAAAD,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAC,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA9DD,EAAAA;AAA8D;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIsConnectedSafe.d.ts","sourceRoot":"","sources":["../../../src/hooks/connectors/useIsConnectedSafe.ts"],"names":[],"mappings":"AAgBA,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C;AAGD,wBAAsB,aAAa,qBAalC"}
1
+ {"version":3,"file":"useIsConnectedSafe.d.ts","sourceRoot":"","sources":["../../../src/hooks/connectors/useIsConnectedSafe.ts"],"names":[],"mappings":"AAoBA,wBAAgB,gBAAgB,IAAI,OAAO,CAW1C;AAGD,wBAAsB,aAAa,qBAelC"}
@@ -7,11 +7,13 @@ import '@tanstack/react-query';
7
7
  import 'ts-essentials';
8
8
  import 'wagmi/connectors';
9
9
  import '../../lib/queryClient.js';
10
+ import { useIsExternalProviderSafeIframe } from '../../core/state/externalProviderAtom.js';
10
11
 
11
12
  function useConnectedSafe() {
12
13
  const isSafeConnector2 = useIsSafeConnector();
13
14
  const isSafeThroughWalletConnect = useIsSafeThroughWalletConnect();
14
- return isSafeConnector2 || isSafeThroughWalletConnect;
15
+ const isExternalProviderSafeIframe = useIsExternalProviderSafeIframe();
16
+ return isSafeConnector2 || isSafeThroughWalletConnect || isExternalProviderSafeIframe;
15
17
  }
16
18
 
17
19
  export { useConnectedSafe };
@@ -1 +1 @@
1
- {"version":3,"file":"useIsConnectedSafe.js","sources":["../../../src/hooks/connectors/useIsConnectedSafe.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport {\n isSafeConnector,\n useIsSafeConnector,\n} from \"./useIsGnosisSafeConnector\";\nimport {\n isSafeConnectorThroughWalletConnect,\n useIsSafeThroughWalletConnect,\n} from \"./useIsSafeThroughWalletConnect\";\nimport { getAccount } from \"@wagmi/core\";\nimport {\n getWalletMetadata,\n walletMetadataQueryKey,\n} from \"@/components/web3/ConnectWallets/walletIcons\";\nimport { queryClient } from \"@/lib/queryClient\";\n\nexport function useConnectedSafe(): boolean {\n const isSafeConnector = useIsSafeConnector();\n const isSafeThroughWalletConnect = useIsSafeThroughWalletConnect();\n\n return isSafeConnector || isSafeThroughWalletConnect;\n}\n\n// for use outside of react\nexport async function connectedSafe() {\n const connector = getAccount(wagmiConfig).connector;\n if (!connector) return false;\n\n if (isSafeConnector(connector)) return true;\n\n const walletMeta = await queryClient.ensureQueryData({\n queryKey: walletMetadataQueryKey(connector.id),\n queryFn: () => getWalletMetadata(connector),\n gcTime: Infinity,\n });\n\n return isSafeConnectorThroughWalletConnect(walletMeta);\n}\n"],"names":["useConnectedSafe","isSafeConnector","useIsSafeConnector","isSafeThroughWalletConnect","useIsSafeThroughWalletConnect"],"mappings":";;;;;;;;;;AAgBO,SAAAA,gBAAAA,GAAA;AACL,EAAA,MAAAC,mBAAwBC,kBAAAA,EAAmB;AAC3C,EAAA,MAAAC,6BAAmCC,6BAAAA,EAA8B;AAAE,EAAA,OAE5DH,gBAAAA,IAAAE,0BAAAA;AAA6C;;;;"}
1
+ {"version":3,"file":"useIsConnectedSafe.js","sources":["../../../src/hooks/connectors/useIsConnectedSafe.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport {\n isSafeConnector,\n useIsSafeConnector,\n} from \"./useIsGnosisSafeConnector\";\nimport {\n isSafeConnectorThroughWalletConnect,\n useIsSafeThroughWalletConnect,\n} from \"./useIsSafeThroughWalletConnect\";\nimport { getAccount } from \"@wagmi/core\";\nimport {\n getWalletMetadata,\n walletMetadataQueryKey,\n} from \"@/components/web3/ConnectWallets/walletIcons\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport {\n isExternalConnectorWithSafeIframe,\n useIsExternalProviderSafeIframe,\n} from \"@/core/state/externalProviderAtom\";\n\nexport function useConnectedSafe(): boolean {\n const isSafeConnector = useIsSafeConnector();\n const isSafeThroughWalletConnect = useIsSafeThroughWalletConnect();\n\n const isExternalProviderSafeIframe = useIsExternalProviderSafeIframe();\n\n return (\n isSafeConnector ||\n isSafeThroughWalletConnect ||\n isExternalProviderSafeIframe\n );\n}\n\n// for use outside of react\nexport async function connectedSafe() {\n const connector = getAccount(wagmiConfig).connector;\n if (!connector) return false;\n\n if (isSafeConnector(connector)) return true;\n\n if (await isExternalConnectorWithSafeIframe(connector)) return true;\n\n const walletMeta = await queryClient.ensureQueryData({\n queryKey: walletMetadataQueryKey(connector.uid),\n queryFn: () => getWalletMetadata(connector),\n gcTime: Infinity,\n });\n\n return isSafeConnectorThroughWalletConnect(walletMeta);\n}\n"],"names":["useConnectedSafe","isSafeConnector","useIsSafeConnector","isSafeThroughWalletConnect","useIsSafeThroughWalletConnect","isExternalProviderSafeIframe","useIsExternalProviderSafeIframe"],"mappings":";;;;;;;;;;;AAoBO,SAAAA,gBAAAA,GAAA;AACL,EAAA,MAAAC,mBAAwBC,kBAAAA,EAAmB;AAC3C,EAAA,MAAAC,6BAAmCC,6BAAAA,EAA8B;AAEjE,EAAA,MAAAC,+BAAqCC,+BAAAA,EAAgC;AAAE,EAAA,OAGrEL,oBAAAE,0BAAAA,IAAAE,4BAAAA;AAE4B;;;;"}
@@ -1,4 +1,7 @@
1
1
  import { Connector } from 'wagmi';
2
+ import { safe } from 'wagmi/connectors';
2
3
  export declare function useIsSafeConnector(): boolean;
3
- export declare function isSafeConnector({ type }: Pick<Connector, "type">): boolean;
4
+ export declare function isSafeConnector<T extends Pick<Connector, "type">>(connector: T): connector is T & {
5
+ type: typeof safe.type;
6
+ };
4
7
  //# sourceMappingURL=useIsGnosisSafeConnector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsGnosisSafeConnector.d.ts","sourceRoot":"","sources":["../../../src/hooks/connectors/useIsGnosisSafeConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEnD,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAE1E"}
1
+ {"version":3,"file":"useIsGnosisSafeConnector.d.ts","sourceRoot":"","sources":["../../../src/hooks/connectors/useIsGnosisSafeConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAC/D,SAAS,EAAE,CAAC,GACX,SAAS,IAAI,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAA;CAAE,CAE7C"}
@@ -1,5 +1,6 @@
1
1
  import { d as distExports } from '../../_virtual/index.js';
2
2
  import { useAccount } from 'wagmi';
3
+ import { safe } from 'wagmi/connectors';
3
4
 
4
5
  function useIsSafeConnector() {
5
6
  const $ = distExports.c(2);
@@ -19,10 +20,8 @@ function useIsSafeConnector() {
19
20
  }
20
21
  return t0;
21
22
  }
22
- function isSafeConnector({
23
- type
24
- }) {
25
- return type === "safe";
23
+ function isSafeConnector(connector) {
24
+ return connector.type === safe.type;
26
25
  }
27
26
 
28
27
  export { isSafeConnector, useIsSafeConnector };
@@ -1 +1 @@
1
- {"version":3,"file":"useIsGnosisSafeConnector.js","sources":["../../../src/hooks/connectors/useIsGnosisSafeConnector.ts"],"sourcesContent":["import { useAccount, type Connector } from \"wagmi\";\n\nexport function useIsSafeConnector(): boolean {\n const { connector } = useAccount();\n if (!connector) return false;\n return isSafeConnector(connector);\n}\n\nexport function isSafeConnector({ type }: Pick<Connector, \"type\">): boolean {\n return type === \"safe\";\n}\n"],"names":["useIsSafeConnector","$","_c","connector","useAccount","t0","isSafeConnector","type"],"mappings":";;;AAEO,SAAAA,kBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAAsBC,UAAAA,EAAW;AACjC,EAAA,IAAI,CAACD,SAAAA,EAAS;AAAA,IAAA,OAAS,KAAA;AAAA,EAAK;AAAC,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,SAAAA,EAAA;AACtBE,IAAAA,EAAAA,GAAAC,gBAAgBH,SAAS,CAAA;AAACF,IAAAA,CAAAA,MAAAE,SAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA1BI,EAAAA;AAA0B;AAG5B,SAASC,eAAAA,CAAgB;AAAA,EAAEC;AAA8B,CAAA,EAAY;AAC1E,EAAA,OAAOA,IAAAA,KAAS,MAAA;AAClB;;;;"}
1
+ {"version":3,"file":"useIsGnosisSafeConnector.js","sources":["../../../src/hooks/connectors/useIsGnosisSafeConnector.ts"],"sourcesContent":["import { useAccount, type Connector } from \"wagmi\";\nimport { safe } from \"wagmi/connectors\";\n\nexport function useIsSafeConnector(): boolean {\n const { connector } = useAccount();\n if (!connector) return false;\n return isSafeConnector(connector);\n}\n\nexport function isSafeConnector<T extends Pick<Connector, \"type\">>(\n connector: T\n): connector is T & { type: typeof safe.type } {\n return connector.type === safe.type;\n}\n"],"names":["useIsSafeConnector","$","_c","connector","useAccount","t0","isSafeConnector","type","safe"],"mappings":";;;;AAGO,SAAAA,kBAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAA;AAAA,IAAAC;AAAAA,MAAsBC,UAAAA,EAAW;AACjC,EAAA,IAAI,CAACD,SAAAA,EAAS;AAAA,IAAA,OAAS,KAAA;AAAA,EAAK;AAAC,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,SAAAA,EAAA;AACtBE,IAAAA,EAAAA,GAAAC,gBAAgBH,SAAS,CAAA;AAACF,IAAAA,CAAAA,MAAAE,SAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAA1BI,EAAAA;AAA0B;AAG5B,SAASC,gBACdH,SAAAA,EAC6C;AAC7C,EAAA,OAAOA,SAAAA,CAAUI,SAASC,IAAAA,CAAKD,IAAAA;AACjC;;;;"}
@@ -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":"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"}
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;