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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts.map +1 -1
  2. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +43 -33
  3. package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
  4. package/dist/components/web3/ConnectExternalProvider/constants.d.ts +2 -0
  5. package/dist/components/web3/ConnectExternalProvider/constants.d.ts.map +1 -0
  6. package/dist/components/web3/ConnectExternalProvider/constants.js +4 -0
  7. package/dist/components/web3/ConnectExternalProvider/constants.js.map +1 -0
  8. package/dist/components/web3/ConnectExternalProvider/utils.d.ts +8 -0
  9. package/dist/components/web3/ConnectExternalProvider/utils.d.ts.map +1 -0
  10. package/dist/components/web3/ConnectExternalProvider/utils.js +9 -0
  11. package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -0
  12. package/dist/components/web3/ConnectWallets/walletIcons.d.ts +4 -1
  13. package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
  14. package/dist/components/web3/ConnectWallets/walletIcons.js +18 -7
  15. package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
  16. package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
  17. package/dist/components/widget/ReceiverAddress/state/subscriptions.js +11 -5
  18. package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
  19. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +2 -2
  20. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
  21. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +22 -23
  22. package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
  23. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +1 -1
  24. package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
  25. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.d.ts.map +1 -1
  26. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js +4 -5
  27. package/dist/components/widget/WrapEth/hooks/useWrapEthProps.js.map +1 -1
  28. package/dist/core/index.d.ts.map +1 -1
  29. package/dist/core/index.js +9 -3
  30. package/dist/core/index.js.map +1 -1
  31. package/dist/core/inputs/state/setTokenByAddressAtom.d.ts.map +1 -1
  32. package/dist/core/inputs/state/setTokenByAddressAtom.js +4 -3
  33. package/dist/core/inputs/state/setTokenByAddressAtom.js.map +1 -1
  34. package/dist/core/state/configAtom.d.ts +3 -3
  35. package/dist/core/state/configAtom.d.ts.map +1 -1
  36. package/dist/core/state/configAtom.js +6 -4
  37. package/dist/core/state/configAtom.js.map +1 -1
  38. package/dist/core/state/enabledTradeModesAtom.d.ts +1 -0
  39. package/dist/core/state/enabledTradeModesAtom.d.ts.map +1 -1
  40. package/dist/core/state/enabledTradeModesAtom.js +23 -3
  41. package/dist/core/state/enabledTradeModesAtom.js.map +1 -1
  42. package/dist/core/state/externalProviderAtom.d.ts +9 -0
  43. package/dist/core/state/externalProviderAtom.d.ts.map +1 -1
  44. package/dist/core/state/externalProviderAtom.js +28 -1
  45. package/dist/core/state/externalProviderAtom.js.map +1 -1
  46. package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
  47. package/dist/events/hooks/useOnWalletConnect.js +3 -1
  48. package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
  49. package/dist/events/types/connectWallet.d.ts +3 -3
  50. package/dist/events/types/connectWallet.d.ts.map +1 -1
  51. package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
  52. package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
  53. package/dist/hooks/connectors/useIsConnectedSafe.d.ts.map +1 -1
  54. package/dist/hooks/connectors/useIsConnectedSafe.js +3 -1
  55. package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
  56. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts +4 -1
  57. package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts.map +1 -1
  58. package/dist/hooks/connectors/useIsGnosisSafeConnector.js +3 -4
  59. package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
  60. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts +1 -1
  61. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -1
  62. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +16 -2
  63. package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
  64. package/dist/hooks/otc/mutations/useFillOrder.js +1 -1
  65. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +1 -0
  66. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  67. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.d.ts.map +1 -1
  68. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js +7 -4
  69. package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
  70. package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts +1 -1
  71. package/dist/hooks/swap/prices/usePricesParams.js +0 -5
  72. package/dist/hooks/swap/prices/usePricesParams.js.map +1 -1
  73. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
  74. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +7 -4
  75. package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
  76. package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
  77. package/dist/hooks/txs/queries/useAwaitTx.js +71 -19
  78. package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
  79. package/dist/hooks/useSDK.d.ts.map +1 -1
  80. package/dist/hooks/useSDK.js +10 -10
  81. package/dist/hooks/useSDK.js.map +1 -1
  82. package/dist/index.d.ts +1 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/lib/constants/delta.d.ts +3 -0
  85. package/dist/lib/constants/delta.d.ts.map +1 -1
  86. package/dist/lib/constants/delta.js +3 -1
  87. package/dist/lib/constants/delta.js.map +1 -1
  88. package/dist/lib/utils/index.d.ts +1 -0
  89. package/dist/lib/utils/index.d.ts.map +1 -1
  90. package/dist/lib/utils/index.js +6 -1
  91. package/dist/lib/utils/index.js.map +1 -1
  92. package/dist/lib/utils/toasts.d.ts +1 -1
  93. package/dist/lib/utils/toasts.d.ts.map +1 -1
  94. package/dist/lib/utils/toasts.js +5 -1
  95. package/dist/lib/utils/toasts.js.map +1 -1
  96. package/dist/lib/web3/privy/config.js +1 -1
  97. package/dist/lib/web3/wagmi/config.js +1 -1
  98. package/dist/lib/web3/wagmi/external.d.ts +10 -3
  99. package/dist/lib/web3/wagmi/external.d.ts.map +1 -1
  100. package/dist/lib/web3/wagmi/external.js +17 -2
  101. package/dist/lib/web3/wagmi/external.js.map +1 -1
  102. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  103. package/dist/lib/web3/wagmi/switchChain.js +5 -1
  104. package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
  105. package/dist/styles.css +1 -1
  106. package/dist/tokens/state/allTokensByChainAtom.d.ts.map +1 -1
  107. package/dist/tokens/state/allTokensByChainAtom.js +0 -3
  108. package/dist/tokens/state/allTokensByChainAtom.js.map +1 -1
  109. package/dist/transactions/hash.d.ts +7 -0
  110. package/dist/transactions/hash.d.ts.map +1 -0
  111. package/dist/transactions/hash.js +35 -0
  112. package/dist/transactions/hash.js.map +1 -0
  113. package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
  114. package/dist/transactions/queries/ensureCallsStatus.js +11 -3
  115. package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
  116. package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
  117. package/dist/transactions/queries/ensureTxReceipt.js +7 -4
  118. package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
  119. package/dist/transactions/state/effects/finalize.d.ts +7 -1
  120. package/dist/transactions/state/effects/finalize.d.ts.map +1 -1
  121. package/dist/transactions/state/effects/finalize.js +41 -7
  122. package/dist/transactions/state/effects/finalize.js.map +1 -1
  123. package/dist/transactions/state/hooks/useActivateEffects.d.ts.map +1 -1
  124. package/dist/transactions/state/hooks/useActivateEffects.js +4 -2
  125. package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
  126. package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
  127. package/dist/transactions/state/transactionsActionAtom.js +55 -15
  128. package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
  129. package/dist/transactions/state/transactionsAtom.js +2 -2
  130. package/dist/transactions/state/transactionsAtom.js.map +1 -1
  131. package/dist/transactions/types.d.ts +11 -1
  132. package/dist/transactions/types.d.ts.map +1 -1
  133. package/dist/transactions/utils.d.ts +2 -1
  134. package/dist/transactions/utils.d.ts.map +1 -1
  135. package/dist/transactions/utils.js +6 -1
  136. package/dist/transactions/utils.js.map +1 -1
  137. package/package.json +1 -1
@@ -1,8 +1,23 @@
1
1
  import { getAccount } from '@wagmi/core';
2
2
  import { wagmiConfig } from './config.js';
3
3
  import { atom } from 'jotai';
4
+ import { atomWithCompare } from '../../utils/atomWithCompare.js';
5
+ import { constructPropertiesEqual } from '../../utils/index.js';
4
6
 
5
- const accountAtom = atom(getAccount(wagmiConfig).address);
7
+ function getMinAccount() {
8
+ const {
9
+ address,
10
+ chainId,
11
+ connector
12
+ } = getAccount(wagmiConfig);
13
+ return {
14
+ address,
15
+ chainId,
16
+ connector
17
+ };
18
+ }
19
+ const accountAtom = atomWithCompare(getMinAccount(), constructPropertiesEqual(["address", "chainId", "connector"]));
20
+ const addressAtom = atom((get) => get(accountAtom).address);
6
21
 
7
- export { accountAtom };
22
+ export { accountAtom, addressAtom };
8
23
  //# sourceMappingURL=external.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"external.js","sources":["../../../../src/lib/web3/wagmi/external.ts"],"sourcesContent":["import { getAccount } from \"@wagmi/core\";\nimport { wagmiConfig } from \"./config\";\nimport { atom } from \"jotai\";\n\nexport const accountAtom = atom(getAccount(wagmiConfig).address);\n"],"names":["accountAtom","atom","getAccount","wagmiConfig","address"],"mappings":";;;;AAIO,MAAMA,WAAAA,GAAcC,IAAAA,CAAKC,UAAAA,CAAWC,WAAW,EAAEC,OAAO;;;;"}
1
+ {"version":3,"file":"external.js","sources":["../../../../src/lib/web3/wagmi/external.ts"],"sourcesContent":["import { getAccount } from \"@wagmi/core\";\nimport { wagmiConfig } from \"./config\";\nimport { atom } from \"jotai\";\nimport { atomWithCompare } from \"@/lib/utils/atomWithCompare\";\nimport { constructPropertiesEqual } from \"@/lib/utils\";\n\nfunction getMinAccount() {\n const { address, chainId, connector } = getAccount(wagmiConfig);\n return { address, chainId, connector };\n}\n\nexport const accountAtom = atomWithCompare(\n getMinAccount(),\n constructPropertiesEqual([\"address\", \"chainId\", \"connector\"])\n);\n\nexport const addressAtom = atom((get) => get(accountAtom).address);\n"],"names":["getMinAccount","address","chainId","connector","getAccount","wagmiConfig","accountAtom","atomWithCompare","constructPropertiesEqual","addressAtom","atom","get"],"mappings":";;;;;;AAMA,SAASA,aAAAA,GAAgB;AACvB,EAAA,MAAM;AAAA,IAAEC,OAAAA;AAAAA,IAASC,OAAAA;AAAAA,IAASC;AAAAA,GAAU,GAAIC,WAAWC,WAAW,CAAA;AAC9D,EAAA,OAAO;AAAA,IAAEJ,OAAAA;AAAAA,IAASC,OAAAA;AAAAA,IAASC;AAAAA,GAAU;AACvC;AAEO,MAAMG,WAAAA,GAAcC,eAAAA,CACzBP,aAAAA,EAAc,EACdQ,wBAAAA,CAAyB,CAAC,SAAA,EAAW,SAAA,EAAW,WAAW,CAAC,CAC9D;AAEO,MAAMC,cAAcC,IAAAA,CAAMC,CAAAA,GAAAA,KAAQA,GAAAA,CAAIL,WAAW,EAAEL,OAAO;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"switchChain.d.ts","sourceRoot":"","sources":["../../../../src/lib/web3/wagmi/switchChain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"switchChain.d.ts","sourceRoot":"","sources":["../../../../src/lib/web3/wagmi/switchChain.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as wagmi from '@wagmi/core';
2
2
  import { wagmiConfig } from './config.js';
3
3
  import { isSafeConnector } from '../../../hooks/connectors/useIsGnosisSafeConnector.js';
4
+ import { isExternalConnectorWithSafeIframe } from '../../../core/state/externalProviderAtom.js';
4
5
 
5
6
  async function switchChain({
6
7
  chainId
@@ -9,7 +10,10 @@ async function switchChain({
9
10
  connector,
10
11
  isConnected
11
12
  } = wagmi.getAccount(wagmiConfig);
12
- const isSafe = connector && isSafeConnector(connector);
13
+ let isSafe = connector && isSafeConnector(connector);
14
+ if (!isSafe && connector && await isExternalConnectorWithSafeIframe(connector)) {
15
+ isSafe = true;
16
+ }
13
17
  if (isConnected) wagmiConfig.setState((prev) => ({
14
18
  ...prev,
15
19
  chainId
@@ -1 +1 @@
1
- {"version":3,"file":"switchChain.js","sources":["../../../../src/lib/web3/wagmi/switchChain.ts"],"sourcesContent":["import * as wagmi from \"@wagmi/core\";\nimport { wagmiConfig } from \"./config\";\nimport type { SupportedChainId } from \"./types\";\nimport { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\n\nexport async function switchChain({ chainId }: { chainId: SupportedChainId }) {\n const { connector, isConnected } = wagmi.getAccount(wagmiConfig);\n const isSafe = connector && isSafeConnector(connector);\n\n // wagmi doesn't autoswitch state chainId with syncConnectedChain=false if connected\n if (isConnected) wagmiConfig.setState((prev) => ({ ...prev, chainId }));\n\n // safe doesn't support programmatic chain switching\n if (!isSafe) return wagmi.switchChain(wagmiConfig, { chainId });\n}\n"],"names":["switchChain","chainId","connector","isConnected","wagmi","getAccount","wagmiConfig","isSafe","isSafeConnector","setState","prev"],"mappings":";;;;AAKA,eAAsBA,WAAAA,CAAY;AAAA,EAAEC;AAAuC,CAAA,EAAG;AAC5E,EAAA,MAAM;AAAA,IAAEC,SAAAA;AAAAA,IAAWC;AAAAA,GAAY,GAAIC,KAAAA,CAAMC,UAAAA,CAAWC,WAAW,CAAA;AAC/D,EAAA,MAAMC,MAAAA,GAASL,SAAAA,IAAaM,eAAAA,CAAgBN,SAAS,CAAA;AAGrD,EAAA,IAAIC,WAAAA,EAAaG,WAAAA,CAAYG,QAAAA,CAAUC,CAAAA,IAAAA,MAAU;AAAA,IAAE,GAAGA,IAAAA;AAAAA,IAAMT;AAAAA,GAAQ,CAAE,CAAA;AAGtE,EAAA,IAAI,CAACM,MAAAA,EAAQ,OAAOH,KAAAA,CAAMJ,YAAYM,WAAAA,EAAa;AAAA,IAAEL;AAAAA,GAAS,CAAA;AAChE;;;;"}
1
+ {"version":3,"file":"switchChain.js","sources":["../../../../src/lib/web3/wagmi/switchChain.ts"],"sourcesContent":["import * as wagmi from \"@wagmi/core\";\nimport { wagmiConfig } from \"./config\";\nimport type { SupportedChainId } from \"./types\";\nimport { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\nimport { isExternalConnectorWithSafeIframe } from \"@/core/state/externalProviderAtom\";\n\nexport async function switchChain({ chainId }: { chainId: SupportedChainId }) {\n const { connector, isConnected } = wagmi.getAccount(wagmiConfig);\n let isSafe = connector && isSafeConnector(connector);\n\n // check if external provider is supplied and it's a Safe iframe provider\n if (\n !isSafe &&\n connector &&\n (await isExternalConnectorWithSafeIframe(connector))\n ) {\n isSafe = true;\n }\n\n // wagmi doesn't autoswitch state chainId with syncConnectedChain=false if connected\n if (isConnected) wagmiConfig.setState((prev) => ({ ...prev, chainId }));\n\n // safe doesn't support programmatic chain switching\n if (!isSafe) return wagmi.switchChain(wagmiConfig, { chainId });\n}\n"],"names":["switchChain","chainId","connector","isConnected","wagmi","getAccount","wagmiConfig","isSafe","isSafeConnector","isExternalConnectorWithSafeIframe","setState","prev"],"mappings":";;;;;AAMA,eAAsBA,WAAAA,CAAY;AAAA,EAAEC;AAAuC,CAAA,EAAG;AAC5E,EAAA,MAAM;AAAA,IAAEC,SAAAA;AAAAA,IAAWC;AAAAA,GAAY,GAAIC,KAAAA,CAAMC,UAAAA,CAAWC,WAAW,CAAA;AAC/D,EAAA,IAAIC,MAAAA,GAASL,SAAAA,IAAaM,eAAAA,CAAgBN,SAAS,CAAA;AAGnD,EAAA,IACE,CAACK,MAAAA,IACDL,SAAAA,IACC,MAAMO,iCAAAA,CAAkCP,SAAS,CAAA,EAClD;AACAK,IAAAA,MAAAA,GAAS,IAAA;AAAA,EACX;AAGA,EAAA,IAAIJ,WAAAA,EAAaG,WAAAA,CAAYI,QAAAA,CAAUC,CAAAA,IAAAA,MAAU;AAAA,IAAE,GAAGA,IAAAA;AAAAA,IAAMV;AAAAA,GAAQ,CAAE,CAAA;AAGtE,EAAA,IAAI,CAACM,MAAAA,EAAQ,OAAOH,KAAAA,CAAMJ,YAAYM,WAAAA,EAAa;AAAA,IAAEL;AAAAA,GAAS,CAAA;AAChE;;;;"}
package/dist/styles.css CHANGED
@@ -70,7 +70,7 @@
70
70
  }
71
71
  }
72
72
  }
73
- :root, :host {
73
+ .velora-widget {
74
74
  --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
75
75
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
76
76
  --color-red-800: oklch(44.4% .177 26.899);
@@ -1 +1 @@
1
- {"version":3,"file":"allTokensByChainAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/allTokensByChainAtom.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK5D,eAAO,MAAM,oBAAoB,2EAyD/B,CAAC"}
1
+ {"version":3,"file":"allTokensByChainAtom.d.ts","sourceRoot":"","sources":["../../../src/tokens/state/allTokensByChainAtom.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK5D,eAAO,MAAM,oBAAoB,2EA2D/B,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { atom } from 'jotai';
2
2
  import { fromListsAtom } from './fromListsAtom.js';
3
3
  import { importedTokensAtom } from './importedTokensAtom.js';
4
- import { getLogger } from '../../core/logger.js';
5
4
  import { gatherObjectsByProp } from '../../lib/utils/index.js';
6
5
 
7
6
  const allTokensByChainAtom = atom((get) => {
@@ -26,8 +25,6 @@ const allTokensByChainAtom = atom((get) => {
26
25
  tokens.push(token);
27
26
  addressMap[addressKey] = token;
28
27
  result.tokensFromAllChains.push(token);
29
- } else {
30
- getLogger("AllTokensByChain").log(`LOGIC ERROR: Token ${token.address} on chain ${chainId} already exists in fromListsAtom, skipping import.`);
31
28
  }
32
29
  }
33
30
  result.listByChainId[chainId] = {
@@ -1 +1 @@
1
- {"version":3,"file":"allTokensByChainAtom.js","sources":["../../../src/tokens/state/allTokensByChainAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { fromListsAtom, type TokensFromListsState } from \"./fromListsAtom\";\nimport { importedTokensAtom } from \"./importedTokensAtom\";\nimport type { ImportedToken, TokenFromList } from \"./types\";\nimport { getLogger } from \"@/core/logger\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\n\n// returns TokenFromListState + ImportedTokenState merged, conforming the shape of the first one\nexport const allTokensByChainAtom = atom((get) => {\n const fromListsState = get(fromListsAtom);\n const importedByChain = get(importedTokensAtom);\n\n // start with a fresh result object to avoid mutating fromListsState\n const result: TokensFromListsState<TokenFromList | ImportedToken> = {\n listByChainId: {},\n // disabledListByChainId won't be deep-changed, so clone shallowly\n disabledListByChainId: fromListsState.disabledListByChainId,\n tokensFromAllChains: fromListsState.tokensFromAllChains.slice(),\n };\n\n // merge tokens list & map for chains present in fromListsState\n for (const [chainIdStr, fromListsArr] of Object.entries(\n fromListsState.listByChainId\n )) {\n const chainId = Number(chainIdStr);\n const imported = importedByChain[chainId] || [];\n\n // clone base tokens and addressMap to avoid mutation\n const tokens: (TokenFromList | ImportedToken)[] =\n fromListsArr.tokens.slice();\n const addressMap: { [address: string]: TokenFromList | ImportedToken } = {\n ...fromListsArr.addressMap,\n };\n\n // add imported tokens if not already present\n for (const token of imported) {\n const addressKey = token.address.toLowerCase();\n if (!addressMap[addressKey]) {\n tokens.push(token);\n addressMap[addressKey] = token;\n\n // add imported to all Tokens\n result.tokensFromAllChains.push(token);\n } else {\n getLogger(\"AllTokensByChain\").log(\n `LOGIC ERROR: Token ${token.address} on chain ${chainId} already exists in fromListsAtom, skipping import.`\n );\n }\n }\n\n result.listByChainId[chainId] = { tokens, addressMap };\n }\n\n // normally shouldn't happen, but add chains that only have imported tokens\n for (const [chainIdStr, importedArr] of Object.entries(importedByChain)) {\n const chainId = Number(chainIdStr);\n if (!result.listByChainId[chainId]) {\n const addressMap = gatherObjectsByProp(importedArr, (token) =>\n token.address.toLowerCase()\n );\n result.listByChainId[chainId] = { tokens: importedArr, addressMap };\n }\n }\n\n return result;\n});\n"],"names":["allTokensByChainAtom","atom","get","fromListsState","fromListsAtom","importedByChain","importedTokensAtom","result","listByChainId","disabledListByChainId","tokensFromAllChains","slice","chainIdStr","fromListsArr","Object","entries","chainId","Number","imported","tokens","addressMap","token","addressKey","address","toLowerCase","push","getLogger","log","importedArr","gatherObjectsByProp"],"mappings":";;;;;;AAQO,MAAMA,oBAAAA,GAAuBC,KAAMC,CAAAA,GAAAA,KAAQ;AAChD,EAAA,MAAMC,cAAAA,GAAiBD,IAAIE,aAAa,CAAA;AACxC,EAAA,MAAMC,eAAAA,GAAkBH,IAAII,kBAAkB,CAAA;AAG9C,EAAA,MAAMC,MAAAA,GAA8D;AAAA,IAClEC,eAAe,EAAC;AAAA;AAAA,IAEhBC,uBAAuBN,cAAAA,CAAeM,qBAAAA;AAAAA,IACtCC,mBAAAA,EAAqBP,cAAAA,CAAeO,mBAAAA,CAAoBC,KAAAA;AAAM,GAChE;AAGA,EAAA,KAAA,MAAW,CAACC,YAAYC,YAAY,CAAA,IAAKC,OAAOC,OAAAA,CAC9CZ,cAAAA,CAAeK,aACjB,CAAA,EAAG;AACD,IAAA,MAAMQ,OAAAA,GAAUC,OAAOL,UAAU,CAAA;AACjC,IAAA,MAAMM,QAAAA,GAAWb,eAAAA,CAAgBW,OAAO,CAAA,IAAK,EAAA;AAG7C,IAAA,MAAMG,MAAAA,GACJN,YAAAA,CAAaM,MAAAA,CAAOR,KAAAA,EAAM;AAC5B,IAAA,MAAMS,UAAAA,GAAmE;AAAA,MACvE,GAAGP,YAAAA,CAAaO;AAAAA,KAClB;AAGA,IAAA,KAAA,MAAWC,SAASH,QAAAA,EAAU;AAC5B,MAAA,MAAMI,UAAAA,GAAaD,KAAAA,CAAME,OAAAA,CAAQC,WAAAA,EAAY;AAC7C,MAAA,IAAI,CAACJ,UAAAA,CAAWE,UAAU,CAAA,EAAG;AAC3BH,QAAAA,MAAAA,CAAOM,KAAKJ,KAAK,CAAA;AACjBD,QAAAA,UAAAA,CAAWE,UAAU,CAAA,GAAID,KAAAA;AAGzBd,QAAAA,MAAAA,CAAOG,mBAAAA,CAAoBe,KAAKJ,KAAK,CAAA;AAAA,MACvC,CAAA,MAAO;AACLK,QAAAA,SAAAA,CAAU,kBAAkB,EAAEC,GAAAA,CAC5B,CAAA,mBAAA,EAAsBN,MAAME,OAAO,CAAA,UAAA,EAAaP,OAAO,CAAA,kDAAA,CACzD,CAAA;AAAA,MACF;AAAA,IACF;AAEAT,IAAAA,MAAAA,CAAOC,aAAAA,CAAcQ,OAAO,CAAA,GAAI;AAAA,MAAEG,MAAAA;AAAAA,MAAQC;AAAAA,KAAW;AAAA,EACvD;AAGA,EAAA,KAAA,MAAW,CAACR,UAAAA,EAAYgB,WAAW,KAAKd,MAAAA,CAAOC,OAAAA,CAAQV,eAAe,CAAA,EAAG;AACvE,IAAA,MAAMW,OAAAA,GAAUC,OAAOL,UAAU,CAAA;AACjC,IAAA,IAAI,CAACL,MAAAA,CAAOC,aAAAA,CAAcQ,OAAO,CAAA,EAAG;AAClC,MAAA,MAAMI,aAAaS,mBAAAA,CAAoBD,WAAAA,EAAcP,WACnDA,KAAAA,CAAME,OAAAA,CAAQC,aAChB,CAAA;AACAjB,MAAAA,MAAAA,CAAOC,aAAAA,CAAcQ,OAAO,CAAA,GAAI;AAAA,QAAEG,MAAAA,EAAQS,WAAAA;AAAAA,QAAaR;AAAAA,OAAW;AAAA,IACpE;AAAA,EACF;AAEA,EAAA,OAAOb,MAAAA;AACT,CAAC;;;;"}
1
+ {"version":3,"file":"allTokensByChainAtom.js","sources":["../../../src/tokens/state/allTokensByChainAtom.ts"],"sourcesContent":["import { atom } from \"jotai\";\nimport { fromListsAtom, type TokensFromListsState } from \"./fromListsAtom\";\nimport { importedTokensAtom } from \"./importedTokensAtom\";\nimport type { ImportedToken, TokenFromList } from \"./types\";\n// import { getLogger } from \"@/core/logger\";\nimport { gatherObjectsByProp } from \"@/lib/utils\";\n\n// returns TokenFromListState + ImportedTokenState merged, conforming the shape of the first one\nexport const allTokensByChainAtom = atom((get) => {\n const fromListsState = get(fromListsAtom);\n const importedByChain = get(importedTokensAtom);\n\n // start with a fresh result object to avoid mutating fromListsState\n const result: TokensFromListsState<TokenFromList | ImportedToken> = {\n listByChainId: {},\n // disabledListByChainId won't be deep-changed, so clone shallowly\n disabledListByChainId: fromListsState.disabledListByChainId,\n tokensFromAllChains: fromListsState.tokensFromAllChains.slice(),\n };\n\n // merge tokens list & map for chains present in fromListsState\n for (const [chainIdStr, fromListsArr] of Object.entries(\n fromListsState.listByChainId\n )) {\n const chainId = Number(chainIdStr);\n const imported = importedByChain[chainId] || [];\n\n // clone base tokens and addressMap to avoid mutation\n const tokens: (TokenFromList | ImportedToken)[] =\n fromListsArr.tokens.slice();\n const addressMap: { [address: string]: TokenFromList | ImportedToken } = {\n ...fromListsArr.addressMap,\n };\n\n // add imported tokens if not already present\n for (const token of imported) {\n const addressKey = token.address.toLowerCase();\n if (!addressMap[addressKey]) {\n tokens.push(token);\n addressMap[addressKey] = token;\n\n // add imported to all Tokens\n result.tokensFromAllChains.push(token);\n }\n // @TODO: suppressing the logs for now as it clutters the console\n // else {\n // getLogger(\"AllTokensByChain\").log(\n // `LOGIC ERROR: Token ${token.address} on chain ${chainId} already exists in fromListsAtom, skipping import.`\n // );\n // }\n }\n\n result.listByChainId[chainId] = { tokens, addressMap };\n }\n\n // normally shouldn't happen, but add chains that only have imported tokens\n for (const [chainIdStr, importedArr] of Object.entries(importedByChain)) {\n const chainId = Number(chainIdStr);\n if (!result.listByChainId[chainId]) {\n const addressMap = gatherObjectsByProp(importedArr, (token) =>\n token.address.toLowerCase()\n );\n result.listByChainId[chainId] = { tokens: importedArr, addressMap };\n }\n }\n\n return result;\n});\n"],"names":["allTokensByChainAtom","atom","get","fromListsState","fromListsAtom","importedByChain","importedTokensAtom","result","listByChainId","disabledListByChainId","tokensFromAllChains","slice","chainIdStr","fromListsArr","Object","entries","chainId","Number","imported","tokens","addressMap","token","addressKey","address","toLowerCase","push","importedArr","gatherObjectsByProp"],"mappings":";;;;;AAQO,MAAMA,oBAAAA,GAAuBC,KAAMC,CAAAA,GAAAA,KAAQ;AAChD,EAAA,MAAMC,cAAAA,GAAiBD,IAAIE,aAAa,CAAA;AACxC,EAAA,MAAMC,eAAAA,GAAkBH,IAAII,kBAAkB,CAAA;AAG9C,EAAA,MAAMC,MAAAA,GAA8D;AAAA,IAClEC,eAAe,EAAC;AAAA;AAAA,IAEhBC,uBAAuBN,cAAAA,CAAeM,qBAAAA;AAAAA,IACtCC,mBAAAA,EAAqBP,cAAAA,CAAeO,mBAAAA,CAAoBC,KAAAA;AAAM,GAChE;AAGA,EAAA,KAAA,MAAW,CAACC,YAAYC,YAAY,CAAA,IAAKC,OAAOC,OAAAA,CAC9CZ,cAAAA,CAAeK,aACjB,CAAA,EAAG;AACD,IAAA,MAAMQ,OAAAA,GAAUC,OAAOL,UAAU,CAAA;AACjC,IAAA,MAAMM,QAAAA,GAAWb,eAAAA,CAAgBW,OAAO,CAAA,IAAK,EAAA;AAG7C,IAAA,MAAMG,MAAAA,GACJN,YAAAA,CAAaM,MAAAA,CAAOR,KAAAA,EAAM;AAC5B,IAAA,MAAMS,UAAAA,GAAmE;AAAA,MACvE,GAAGP,YAAAA,CAAaO;AAAAA,KAClB;AAGA,IAAA,KAAA,MAAWC,SAASH,QAAAA,EAAU;AAC5B,MAAA,MAAMI,UAAAA,GAAaD,KAAAA,CAAME,OAAAA,CAAQC,WAAAA,EAAY;AAC7C,MAAA,IAAI,CAACJ,UAAAA,CAAWE,UAAU,CAAA,EAAG;AAC3BH,QAAAA,MAAAA,CAAOM,KAAKJ,KAAK,CAAA;AACjBD,QAAAA,UAAAA,CAAWE,UAAU,CAAA,GAAID,KAAAA;AAGzBd,QAAAA,MAAAA,CAAOG,mBAAAA,CAAoBe,KAAKJ,KAAK,CAAA;AAAA,MACvC;AAAA,IAOF;AAEAd,IAAAA,MAAAA,CAAOC,aAAAA,CAAcQ,OAAO,CAAA,GAAI;AAAA,MAAEG,MAAAA;AAAAA,MAAQC;AAAAA,KAAW;AAAA,EACvD;AAGA,EAAA,KAAA,MAAW,CAACR,UAAAA,EAAYc,WAAW,KAAKZ,MAAAA,CAAOC,OAAAA,CAAQV,eAAe,CAAA,EAAG;AACvE,IAAA,MAAMW,OAAAA,GAAUC,OAAOL,UAAU,CAAA;AACjC,IAAA,IAAI,CAACL,MAAAA,CAAOC,aAAAA,CAAcQ,OAAO,CAAA,EAAG;AAClC,MAAA,MAAMI,aAAaO,mBAAAA,CAAoBD,WAAAA,EAAcL,WACnDA,KAAAA,CAAME,OAAAA,CAAQC,aAChB,CAAA;AACAjB,MAAAA,MAAAA,CAAOC,aAAAA,CAAcQ,OAAO,CAAA,GAAI;AAAA,QAAEG,MAAAA,EAAQO,WAAAA;AAAAA,QAAaN;AAAAA,OAAW;AAAA,IACpE;AAAA,EACF;AAEA,EAAA,OAAOb,MAAAA;AACT,CAAC;;;;"}
@@ -0,0 +1,7 @@
1
+ import { Hash } from 'viem';
2
+ import { TransactionItem } from './types';
3
+ export declare function getStandaloneTxHash({ transactionHash, }: {
4
+ transactionHash?: Hash;
5
+ }): Hash | null;
6
+ export declare function getTxHash(tx: TransactionItem): Hash | null;
7
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/transactions/hash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAA6B,eAAe,EAAE,MAAM,SAAS,CAAC;AAa1E,wBAAgB,mBAAmB,CAAC,EAClC,eAAe,GAChB,EAAE;IACD,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,GAAG,IAAI,GAAG,IAAI,CAKd;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAgB1D"}
@@ -0,0 +1,35 @@
1
+ import { jotaiStore } from '../core/store.js';
2
+ import { isBatchTransactionItem } from './utils.js';
3
+ import { allStandaloneTransactionItemsAtom } from './state/transactionsAtom.js';
4
+ import { isSafeConnector } from '../hooks/connectors/useIsGnosisSafeConnector.js';
5
+
6
+ function findStandaloneTx({
7
+ transactionHash
8
+ }) {
9
+ return jotaiStore.get(allStandaloneTransactionItemsAtom).find((tx) => tx.transactionHash === transactionHash);
10
+ }
11
+ function getStandaloneTxHash({
12
+ transactionHash
13
+ }) {
14
+ if (!transactionHash) return null;
15
+ const tx = findStandaloneTx({
16
+ transactionHash
17
+ });
18
+ if (!tx) return null;
19
+ return getTxHash(tx);
20
+ }
21
+ function getTxHash(tx) {
22
+ if (tx.receipt?.transactionHash) {
23
+ return tx.receipt.transactionHash;
24
+ }
25
+ if (isBatchTransactionItem(tx)) {
26
+ return tx.receipt?.transactionHash || null;
27
+ }
28
+ if (tx.connectorData && isSafeConnector(tx.connectorData)) {
29
+ return tx.receipt?.transactionHash || null;
30
+ }
31
+ return tx.transactionHash;
32
+ }
33
+
34
+ export { getStandaloneTxHash, getTxHash };
35
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sources":["../../src/transactions/hash.ts"],"sourcesContent":["import { jotaiStore } from \"@/core/store\";\nimport type { Hash } from \"viem\";\nimport type { StandaloneTransactionItem, TransactionItem } from \"./types\";\nimport { isBatchTransactionItem } from \"./utils\";\nimport { allStandaloneTransactionItemsAtom } from \"./state/transactionsAtom\";\nimport { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\n\nfunction findStandaloneTx({\n transactionHash,\n}: Pick<StandaloneTransactionItem, \"transactionHash\">) {\n return jotaiStore\n .get(allStandaloneTransactionItemsAtom)\n .find((tx) => tx.transactionHash === transactionHash);\n}\n\nexport function getStandaloneTxHash({\n transactionHash,\n}: {\n transactionHash?: Hash;\n}): Hash | null {\n if (!transactionHash) return null;\n const tx = findStandaloneTx({ transactionHash });\n if (!tx) return null;\n return getTxHash(tx);\n}\n\nexport function getTxHash(tx: TransactionItem): Hash | null {\n if (tx.receipt?.transactionHash) {\n // if tx is mined, receipt is always the source of truth for the transaction hash\n return tx.receipt.transactionHash;\n }\n if (isBatchTransactionItem(tx)) {\n // for batch transactions, we have the real transaction hash in the receipt when the batch is mined\n return tx.receipt?.transactionHash || null;\n }\n if (tx.connectorData && isSafeConnector(tx.connectorData)) {\n // for Safe transactions sent through Safe iframe provider,\n // we don't have the real transaction hash until the transaction is mined\n return tx.receipt?.transactionHash || null;\n }\n\n return tx.transactionHash;\n}\n"],"names":["findStandaloneTx","transactionHash","jotaiStore","get","allStandaloneTransactionItemsAtom","find","tx","getStandaloneTxHash","getTxHash","receipt","isBatchTransactionItem","connectorData","isSafeConnector"],"mappings":";;;;;AAOA,SAASA,gBAAAA,CAAiB;AAAA,EACxBC;AACkD,CAAA,EAAG;AACrD,EAAA,OAAOC,UAAAA,CACJC,IAAIC,iCAAiC,CAAA,CACrCC,KAAMC,CAAAA,EAAAA,KAAOA,EAAAA,CAAGL,oBAAoBA,eAAe,CAAA;AACxD;AAEO,SAASM,mBAAAA,CAAoB;AAAA,EAClCN;AAGF,CAAA,EAAgB;AACd,EAAA,IAAI,CAACA,iBAAiB,OAAO,IAAA;AAC7B,EAAA,MAAMK,KAAKN,gBAAAA,CAAiB;AAAA,IAAEC;AAAAA,GAAiB,CAAA;AAC/C,EAAA,IAAI,CAACK,IAAI,OAAO,IAAA;AAChB,EAAA,OAAOE,UAAUF,EAAE,CAAA;AACrB;AAEO,SAASE,UAAUF,EAAAA,EAAkC;AAC1D,EAAA,IAAIA,EAAAA,CAAGG,SAASR,eAAAA,EAAiB;AAE/B,IAAA,OAAOK,GAAGG,OAAAA,CAAQR,eAAAA;AAAAA,EACpB;AACA,EAAA,IAAIS,sBAAAA,CAAuBJ,EAAE,CAAA,EAAG;AAE9B,IAAA,OAAOA,EAAAA,CAAGG,SAASR,eAAAA,IAAmB,IAAA;AAAA,EACxC;AACA,EAAA,IAAIK,EAAAA,CAAGK,aAAAA,IAAiBC,eAAAA,CAAgBN,EAAAA,CAAGK,aAAa,CAAA,EAAG;AAGzD,IAAA,OAAOL,EAAAA,CAAGG,SAASR,eAAAA,IAAmB,IAAA;AAAA,EACxC;AAEA,EAAA,OAAOK,EAAAA,CAAGL,eAAAA;AACZ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ensureCallsStatus.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAC1C,EAAE,EAAE,MAAM,CAAC;CACZ,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEtC,KAAK,wBAAwB,GAAG,CAAC,MAAM,CAAC,EAAE;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,mBAAmB,CAAC;AAE1B,eAAO,MAAM,wBAAwB,EAAE,wBAwBpC,CAAC"}
1
+ {"version":3,"file":"ensureCallsStatus.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAkC,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1E,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAC1C,EAAE,EAAE,MAAM,CAAC;CACZ,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEtC,KAAK,wBAAwB,GAAG,CAAC,MAAM,CAAC,EAAE;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,mBAAmB,CAAC;AAE1B,eAAO,MAAM,wBAAwB,EAAE,wBAkCpC,CAAC"}
@@ -1,21 +1,29 @@
1
+ import { isExternalConnectorWithSafeIframe } from '../../core/state/externalProviderAtom.js';
2
+ import { isSafeConnector } from '../../hooks/connectors/useIsGnosisSafeConnector.js';
1
3
  import { SAFE_CALLS_WAIT_TIMEOUT } from '../../lib/constants/index.js';
2
4
  import { queryClient } from '../../lib/queryClient.js';
3
5
  import { wagmiConfig } from '../../lib/web3/wagmi/config.js';
4
- import { waitForCallsStatus } from '@wagmi/core';
6
+ import { getAccount, waitForCallsStatus } from '@wagmi/core';
5
7
  import { waitForCallsStatusQueryKey } from 'wagmi/query';
6
8
 
7
9
  const ensureCallsStatusFactory = ({
8
10
  queryClient: queryClient$1 = queryClient,
9
11
  wagmiConfig: wagmiConfig$1 = wagmiConfig,
10
- isSafe = false
12
+ isSafe: _isSafe
11
13
  } = {}) => async ({
12
14
  id
13
15
  }) => {
16
+ const {
17
+ connector
18
+ } = getAccount(wagmiConfig$1);
19
+ const isConnectorSafe = !!connector && isSafeConnector(connector);
20
+ const isSafe = _isSafe || isConnectorSafe || !!connector && await isExternalConnectorWithSafeIframe(connector);
14
21
  const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : void 0;
15
22
  const queryKey = waitForCallsStatusQueryKey({
16
23
  id,
17
- timeout
24
+ timeout,
18
25
  // important to include timeout into queryKey to match useAwaitCalls queryKey
26
+ throwOnFailure: true
19
27
  });
20
28
  const status = await queryClient$1.ensureQueryData({
21
29
  queryKey,
@@ -1 +1 @@
1
- {"version":3,"file":"ensureCallsStatus.js","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"sourcesContent":["import { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { waitForCallsStatus, type Config } from \"@wagmi/core\";\n\nimport {\n waitForCallsStatusQueryKey,\n type WaitForCallsStatusData,\n} from \"wagmi/query\";\n\nexport type EnsureCallsStatusFn = (options: {\n id: string;\n}) => Promise<WaitForCallsStatusData>;\n\ntype EnsureCallsStatusFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: Config;\n isSafe?: boolean;\n}) => EnsureCallsStatusFn;\n\nexport const ensureCallsStatusFactory: EnsureCallsStatusFactory =\n ({\n queryClient = _queryClient,\n wagmiConfig = _wagmiConfig,\n isSafe = false,\n } = {}) =>\n async ({ id }) => {\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n const queryKey = waitForCallsStatusQueryKey({\n id,\n timeout, // important to include timeout into queryKey to match useAwaitCalls queryKey\n });\n const status = await queryClient.ensureQueryData({\n queryKey,\n queryFn: async () => {\n return waitForCallsStatus(wagmiConfig, {\n id,\n throwOnFailure: true,\n timeout,\n });\n },\n });\n\n return status;\n };\n"],"names":["ensureCallsStatusFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","isSafe","id","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","queryKey","waitForCallsStatusQueryKey","status","ensureQueryData","queryFn","waitForCallsStatus","throwOnFailure"],"mappings":";;;;;;AAqBO,MAAMA,2BACXA,CAAC;AAAA,eACCC,aAAAA,GAAcC,WAAAA;AAAAA,eACdC,aAAAA,GAAcC,WAAAA;AAAAA,EACdC,MAAAA,GAAS;AACX,CAAA,GAAI,OACJ,OAAO;AAAA,EAAEC;AAAG,CAAA,KAAM;AAChB,EAAA,MAAMC,OAAAA,GAAUF,SAASG,uBAAAA,GAA0BC,MAAAA;AACnD,EAAA,MAAMC,WAAWC,0BAAAA,CAA2B;AAAA,IAC1CL,EAAAA;AAAAA,IACAC;AAAAA;AAAAA,GACD,CAAA;AACD,EAAA,MAAMK,MAAAA,GAAS,MAAMX,aAAAA,CAAYY,eAAAA,CAAgB;AAAA,IAC/CH,QAAAA;AAAAA,IACAI,SAAS,YAAY;AACnB,MAAA,OAAOC,mBAAmBZ,aAAAA,EAAa;AAAA,QACrCG,EAAAA;AAAAA,QACAU,cAAAA,EAAgB,IAAA;AAAA,QAChBT;AAAAA,OACD,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAED,EAAA,OAAOK,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"ensureCallsStatus.js","sources":["../../../src/transactions/queries/ensureCallsStatus.ts"],"sourcesContent":["import { isExternalConnectorWithSafeIframe } from \"@/core/state/externalProviderAtom\";\nimport { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\nimport { getAccount, waitForCallsStatus, type Config } from \"@wagmi/core\";\n\nimport {\n waitForCallsStatusQueryKey,\n type WaitForCallsStatusData,\n} from \"wagmi/query\";\n\nexport type EnsureCallsStatusFn = (options: {\n id: string;\n}) => Promise<WaitForCallsStatusData>;\n\ntype EnsureCallsStatusFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: Config;\n isSafe?: boolean;\n}) => EnsureCallsStatusFn;\n\nexport const ensureCallsStatusFactory: EnsureCallsStatusFactory =\n ({\n queryClient = _queryClient,\n wagmiConfig = _wagmiConfig,\n isSafe: _isSafe,\n } = {}) =>\n async ({ id }) => {\n const { connector } = getAccount(wagmiConfig);\n const isConnectorSafe = !!connector && isSafeConnector(connector);\n\n const isSafe =\n _isSafe ||\n isConnectorSafe ||\n (!!connector && (await isExternalConnectorWithSafeIframe(connector)));\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n const queryKey = waitForCallsStatusQueryKey({\n id,\n timeout, // important to include timeout into queryKey to match useAwaitCalls queryKey\n throwOnFailure: true,\n });\n const status = await queryClient.ensureQueryData({\n queryKey,\n queryFn: async () => {\n return waitForCallsStatus(wagmiConfig, {\n id,\n throwOnFailure: true,\n timeout,\n });\n },\n });\n\n return status;\n };\n"],"names":["ensureCallsStatusFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","isSafe","_isSafe","id","connector","getAccount","isConnectorSafe","isSafeConnector","isExternalConnectorWithSafeIframe","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","queryKey","waitForCallsStatusQueryKey","throwOnFailure","status","ensureQueryData","queryFn","waitForCallsStatus"],"mappings":";;;;;;;;AAuBO,MAAMA,2BACXA,CAAC;AAAA,eACCC,aAAAA,GAAcC,WAAAA;AAAAA,eACdC,aAAAA,GAAcC,WAAAA;AAAAA,EACdC,MAAAA,EAAQC;AACV,CAAA,GAAI,OACJ,OAAO;AAAA,EAAEC;AAAG,CAAA,KAAM;AAChB,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAU,GAAIC,WAAWN,aAAW,CAAA;AAC5C,EAAA,MAAMO,eAAAA,GAAkB,CAAC,CAACF,SAAAA,IAAaG,gBAAgBH,SAAS,CAAA;AAEhE,EAAA,MAAMH,MAAAA,GACJC,WACAI,eAAAA,IACC,CAAC,CAACF,SAAAA,IAAc,MAAMI,kCAAkCJ,SAAS,CAAA;AAEpE,EAAA,MAAMK,OAAAA,GAAUR,SAASS,uBAAAA,GAA0BC,MAAAA;AAEnD,EAAA,MAAMC,WAAWC,0BAAAA,CAA2B;AAAA,IAC1CV,EAAAA;AAAAA,IACAM,OAAAA;AAAAA;AAAAA,IACAK,cAAAA,EAAgB;AAAA,GACjB,CAAA;AACD,EAAA,MAAMC,MAAAA,GAAS,MAAMlB,aAAAA,CAAYmB,eAAAA,CAAgB;AAAA,IAC/CJ,QAAAA;AAAAA,IACAK,SAAS,YAAY;AACnB,MAAA,OAAOC,mBAAmBnB,aAAAA,EAAa;AAAA,QACrCI,EAAAA;AAAAA,QACAW,cAAAA,EAAgB,IAAA;AAAA,QAChBL;AAAAA,OACD,CAAA;AAAA,IACH;AAAA,GACD,CAAA;AAED,EAAA,OAAOM,MAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ensureTxReceipt.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAI3E,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAI1C,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,YAAY,CACnB,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC,EAChE,MAAM,GAAG,SAAS,CACnB,GAAG;IACF,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,KAAK,sBAAsB,GAAG,CAAC,MAAM,CAAC,EAAE;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,iBAAiB,CAAC;AAExB,eAAO,MAAM,sBAAsB,EAAE,sBAsClC,CAAC"}
1
+ {"version":3,"file":"ensureTxReceipt.d.ts","sourceRoot":"","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAU,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAI3E,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAK1C,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,YAAY,CACnB,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC,EAChE,MAAM,GAAG,SAAS,CACnB,GAAG;IACF,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,KAAK,sBAAsB,GAAG,CAAC,MAAM,CAAC,EAAE;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,KAAK,iBAAiB,CAAC;AAExB,eAAO,MAAM,sBAAsB,EAAE,sBAgDlC,CAAC"}
@@ -7,23 +7,26 @@ import { SAFE_CALLS_WAIT_TIMEOUT } from '../../lib/constants/index.js';
7
7
  import 'wagmi/chains';
8
8
  import { getAccount, getConnectorClient } from '@wagmi/core';
9
9
  import { isSafeConnector } from '../../hooks/connectors/useIsGnosisSafeConnector.js';
10
+ import { isExternalConnectorWithSafeIframe } from '../../core/state/externalProviderAtom.js';
10
11
 
11
12
  const ensureTxReceiptFactory = ({
12
13
  queryClient: queryClient$1 = queryClient,
13
14
  wagmiConfig: wagmiConfig$1 = wagmiConfig,
14
- isSafe
15
+ isSafe: _isSafe
15
16
  } = {}) => async ({
16
17
  hash,
17
18
  chainId,
18
19
  confirmations,
19
20
  onReplaced
20
21
  }) => {
21
- const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : void 0;
22
- let config = wagmiConfig$1;
23
22
  const {
24
23
  connector
25
24
  } = getAccount(wagmiConfig$1);
26
- if (connector && isSafeConnector(connector)) {
25
+ const isConnectorSafe = !!connector && isSafeConnector(connector);
26
+ const isSafe = _isSafe || isConnectorSafe || !!connector && await isExternalConnectorWithSafeIframe(connector);
27
+ const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : void 0;
28
+ let config = wagmiConfig$1;
29
+ if (isConnectorSafe) {
27
30
  const safeClient = await getConnectorClient(wagmiConfig$1, {
28
31
  chainId,
29
32
  connector
@@ -1 +1 @@
1
- {"version":3,"file":"ensureTxReceipt.js","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"sourcesContent":["import type { UseAwaitTxParameters } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\n\nimport { assert, type MarkRequired } from \"ts-essentials\";\nimport { type ReplacementReturnType, type TransactionReceipt } from \"viem\";\n\nimport { waitForTransactionReceiptQueryOptions } from \"wagmi/query\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { type Chain } from \"wagmi/chains\";\nimport { getAccount, getConnectorClient } from \"@wagmi/core\";\nimport { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\n\ntype OnReplacedCb = (data: ReplacementReturnType<Chain>) => void;\n\nexport type EnsureTxReceiptFn = (\n options: MarkRequired<\n Pick<UseAwaitTxParameters, \"hash\" | \"chainId\" | \"confirmations\">,\n \"hash\" | \"chainId\"\n > & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\ntype EnsureTxReceiptFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: typeof _wagmiConfig;\n isSafe?: boolean;\n}) => EnsureTxReceiptFn;\n\nexport const ensureTxReceiptFactory: EnsureTxReceiptFactory =\n ({ queryClient = _queryClient, wagmiConfig = _wagmiConfig, isSafe } = {}) =>\n async ({ hash, chainId, confirmations, onReplaced }) => {\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n let config = wagmiConfig;\n const { connector } = getAccount(wagmiConfig);\n // always use connector client if connected through native safe connector.\n // safe provider returns a safeTxHash that is different from a real tx hash.\n // if connected to safe through WalletConnect - publicClient returns a real tx hash.\n if (connector && isSafeConnector(connector)) {\n const safeClient = await getConnectorClient(wagmiConfig, {\n chainId,\n connector,\n });\n // force waitForTransactionReceiptQueryOptions to use SafeClient internally\n config = {\n ...wagmiConfig,\n getClient: (options) => {\n assert(!options || options.chainId === chainId, \"chainId mismatch\");\n return safeClient;\n },\n } as typeof wagmiConfig;\n }\n\n // wagmi/core waitForTransactionReceipt throws on receipt.status==\"reverted\",\n // unlike viem waitForTransactionReceipt which returns the receipt as is\n const queryOptions = waitForTransactionReceiptQueryOptions(config, {\n hash,\n chainId,\n confirmations,\n timeout,\n onReplaced,\n });\n\n const receipt = await queryClient.ensureQueryData(queryOptions);\n\n return receipt;\n };\n"],"names":["ensureTxReceiptFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","isSafe","hash","chainId","confirmations","onReplaced","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","config","connector","getAccount","isSafeConnector","safeClient","getConnectorClient","getClient","options","assert","queryOptions","waitForTransactionReceiptQueryOptions","receipt","ensureQueryData"],"mappings":";;;;;;;;;;AA+BO,MAAMA,yBACXA,CAAC;AAAA,eAAEC,aAAAA,GAAcC,WAAAA;AAAAA,eAAcC,aAAAA,GAAcC,WAAAA;AAAAA,EAAcC;AAAO,CAAA,GAAI,OACtE,OAAO;AAAA,EAAEC,IAAAA;AAAAA,EAAMC,OAAAA;AAAAA,EAASC,aAAAA;AAAAA,EAAeC;AAAW,CAAA,KAAM;AACtD,EAAA,MAAMC,OAAAA,GAAUL,SAASM,uBAAAA,GAA0BC,MAAAA;AAEnD,EAAA,IAAIC,MAAAA,GAASV,aAAAA;AACb,EAAA,MAAM;AAAA,IAAEW;AAAAA,GAAU,GAAIC,WAAWZ,aAAW,CAAA;AAI5C,EAAA,IAAIW,SAAAA,IAAaE,eAAAA,CAAgBF,SAAS,CAAA,EAAG;AAC3C,IAAA,MAAMG,UAAAA,GAAa,MAAMC,kBAAAA,CAAmBf,aAAAA,EAAa;AAAA,MACvDI,OAAAA;AAAAA,MACAO;AAAAA,KACD,CAAA;AAEDD,IAAAA,MAAAA,GAAS;AAAA,MACP,GAAGV,aAAAA;AAAAA,MACHgB,WAAYC,CAAAA,OAAAA,KAAY;AACtBC,QAAAA,MAAAA,CAAO,CAACD,OAAAA,IAAWA,OAAAA,CAAQb,OAAAA,KAAYA,SAAS,kBAAkB,CAAA;AAClE,QAAA,OAAOU,UAAAA;AAAAA,MACT;AAAA,KACF;AAAA,EACF;AAIA,EAAA,MAAMK,YAAAA,GAAeC,sCAAsCV,MAAAA,EAAQ;AAAA,IACjEP,IAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAE,OAAAA;AAAAA,IACAD;AAAAA,GACD,CAAA;AAED,EAAA,MAAMe,OAAAA,GAAU,MAAMvB,aAAAA,CAAYwB,eAAAA,CAAgBH,YAAY,CAAA;AAE9D,EAAA,OAAOE,OAAAA;AACT;;;;"}
1
+ {"version":3,"file":"ensureTxReceipt.js","sources":["../../../src/transactions/queries/ensureTxReceipt.ts"],"sourcesContent":["import type { UseAwaitTxParameters } from \"@/hooks/txs/queries/useAwaitTx\";\nimport { queryClient as _queryClient } from \"@/lib/queryClient\";\nimport { wagmiConfig as _wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { QueryClient } from \"@tanstack/react-query\";\n\nimport { assert, type MarkRequired } from \"ts-essentials\";\nimport { type ReplacementReturnType, type TransactionReceipt } from \"viem\";\n\nimport { waitForTransactionReceiptQueryOptions } from \"wagmi/query\";\nimport { SAFE_CALLS_WAIT_TIMEOUT } from \"@/lib/constants\";\nimport { type Chain } from \"wagmi/chains\";\nimport { getAccount, getConnectorClient } from \"@wagmi/core\";\nimport { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\nimport { isExternalConnectorWithSafeIframe } from \"@/core/state/externalProviderAtom\";\n\ntype OnReplacedCb = (data: ReplacementReturnType<Chain>) => void;\n\nexport type EnsureTxReceiptFn = (\n options: MarkRequired<\n Pick<UseAwaitTxParameters, \"hash\" | \"chainId\" | \"confirmations\">,\n \"hash\" | \"chainId\"\n > & {\n onReplaced?: OnReplacedCb;\n }\n) => Promise<TransactionReceipt>;\n\ntype EnsureTxReceiptFactory = (params?: {\n queryClient?: QueryClient;\n wagmiConfig?: typeof _wagmiConfig;\n isSafe?: boolean;\n}) => EnsureTxReceiptFn;\n\nexport const ensureTxReceiptFactory: EnsureTxReceiptFactory =\n ({\n queryClient = _queryClient,\n wagmiConfig = _wagmiConfig,\n isSafe: _isSafe,\n } = {}) =>\n async ({ hash, chainId, confirmations, onReplaced }) => {\n const { connector } = getAccount(wagmiConfig);\n const isConnectorSafe = !!connector && isSafeConnector(connector);\n const isSafe =\n _isSafe ||\n isConnectorSafe ||\n (!!connector && (await isExternalConnectorWithSafeIframe(connector)));\n\n const timeout = isSafe ? SAFE_CALLS_WAIT_TIMEOUT : undefined;\n\n let config = wagmiConfig;\n // always use connector client if connected through native safe connector.\n // safe provider returns a safeTxHash that is different from a real tx hash.\n // if connected to safe through WalletConnect - publicClient returns a real tx hash.\n if (isConnectorSafe) {\n const safeClient = await getConnectorClient(wagmiConfig, {\n chainId,\n connector,\n });\n // force waitForTransactionReceiptQueryOptions to use SafeClient internally\n config = {\n ...wagmiConfig,\n getClient: (options) => {\n assert(!options || options.chainId === chainId, \"chainId mismatch\");\n return safeClient;\n },\n } as typeof wagmiConfig;\n }\n\n // wagmi/core waitForTransactionReceipt throws on receipt.status==\"reverted\",\n // unlike viem waitForTransactionReceipt which returns the receipt as is\n const queryOptions = waitForTransactionReceiptQueryOptions(config, {\n hash,\n chainId,\n confirmations,\n timeout,\n onReplaced,\n });\n\n const receipt = await queryClient.ensureQueryData(queryOptions);\n\n return receipt;\n };\n"],"names":["ensureTxReceiptFactory","queryClient","_queryClient","wagmiConfig","_wagmiConfig","isSafe","_isSafe","hash","chainId","confirmations","onReplaced","connector","getAccount","isConnectorSafe","isSafeConnector","isExternalConnectorWithSafeIframe","timeout","SAFE_CALLS_WAIT_TIMEOUT","undefined","config","safeClient","getConnectorClient","getClient","options","assert","queryOptions","waitForTransactionReceiptQueryOptions","receipt","ensureQueryData"],"mappings":";;;;;;;;;;;AAgCO,MAAMA,yBACXA,CAAC;AAAA,eACCC,aAAAA,GAAcC,WAAAA;AAAAA,eACdC,aAAAA,GAAcC,WAAAA;AAAAA,EACdC,MAAAA,EAAQC;AACV,CAAA,GAAI,OACJ,OAAO;AAAA,EAAEC,IAAAA;AAAAA,EAAMC,OAAAA;AAAAA,EAASC,aAAAA;AAAAA,EAAeC;AAAW,CAAA,KAAM;AACtD,EAAA,MAAM;AAAA,IAAEC;AAAAA,GAAU,GAAIC,WAAWT,aAAW,CAAA;AAC5C,EAAA,MAAMU,eAAAA,GAAkB,CAAC,CAACF,SAAAA,IAAaG,gBAAgBH,SAAS,CAAA;AAChE,EAAA,MAAMN,MAAAA,GACJC,WACAO,eAAAA,IACC,CAAC,CAACF,SAAAA,IAAc,MAAMI,kCAAkCJ,SAAS,CAAA;AAEpE,EAAA,MAAMK,OAAAA,GAAUX,SAASY,uBAAAA,GAA0BC,MAAAA;AAEnD,EAAA,IAAIC,MAAAA,GAAShB,aAAAA;AAIb,EAAA,IAAIU,eAAAA,EAAiB;AACnB,IAAA,MAAMO,UAAAA,GAAa,MAAMC,kBAAAA,CAAmBlB,aAAAA,EAAa;AAAA,MACvDK,OAAAA;AAAAA,MACAG;AAAAA,KACD,CAAA;AAEDQ,IAAAA,MAAAA,GAAS;AAAA,MACP,GAAGhB,aAAAA;AAAAA,MACHmB,WAAYC,CAAAA,OAAAA,KAAY;AACtBC,QAAAA,MAAAA,CAAO,CAACD,OAAAA,IAAWA,OAAAA,CAAQf,OAAAA,KAAYA,SAAS,kBAAkB,CAAA;AAClE,QAAA,OAAOY,UAAAA;AAAAA,MACT;AAAA,KACF;AAAA,EACF;AAIA,EAAA,MAAMK,YAAAA,GAAeC,sCAAsCP,MAAAA,EAAQ;AAAA,IACjEZ,IAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAO,OAAAA;AAAAA,IACAN;AAAAA,GACD,CAAA;AAED,EAAA,MAAMiB,OAAAA,GAAU,MAAM1B,aAAAA,CAAY2B,eAAAA,CAAgBH,YAAY,CAAA;AAE9D,EAAA,OAAOE,OAAAA;AACT;;;;"}
@@ -1,7 +1,13 @@
1
- export declare const finalizeStandoloneTxsEffect: import('jotai').Atom<void> & {
1
+ export declare const finalizeStandaloneTxsEffect: import('jotai').Atom<void> & {
2
+ effect: import('jotai-effect').Effect;
3
+ };
4
+ export declare const finalizeStandaloneSafeTxsEffect: import('jotai').Atom<void> & {
2
5
  effect: import('jotai-effect').Effect;
3
6
  };
4
7
  export declare const finalizeBatchTxsEffect: import('jotai').Atom<void> & {
5
8
  effect: import('jotai-effect').Effect;
6
9
  };
10
+ export declare const finalizeBatchSafeTxsEffect: import('jotai').Atom<void> & {
11
+ effect: import('jotai-effect').Effect;
12
+ };
7
13
  //# sourceMappingURL=finalize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../../../src/transactions/state/effects/finalize.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,2BAA2B;;CAOtC,CAAC;AAKH,eAAO,MAAM,sBAAsB;;CAWjC,CAAC"}
1
+ {"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../../../../src/transactions/state/effects/finalize.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,2BAA2B;;CAStC,CAAC;AAIH,eAAO,MAAM,+BAA+B;;CA0B1C,CAAC;AAKH,eAAO,MAAM,sBAAsB;;CAajC,CAAC;AAGH,eAAO,MAAM,0BAA0B;;CA0BrC,CAAC"}
@@ -2,27 +2,61 @@ import { atomEffect } from 'jotai-effect';
2
2
  import { allPendingStandaloneTransactionItemsAtom, allPendingBatchTransactionItemsAtom } from '../transactionsAtom.js';
3
3
  import { finalizeStandaloneTxAtom, finalizeBatchTxAtom } from '../transactionsActionAtom.js';
4
4
  import { transactionLogger } from '../../logger.js';
5
- import { accountAtom } from '../../../lib/web3/wagmi/external.js';
5
+ import { accountAtom, addressAtom } from '../../../lib/web3/wagmi/external.js';
6
+ import { isSafeConnector } from '../../../hooks/connectors/useIsGnosisSafeConnector.js';
7
+ import { isGnosisSafeTx } from '../../utils.js';
6
8
 
7
9
  let hasRunStandaloneEffect = false;
8
- const finalizeStandoloneTxsEffect = atomEffect((get, set) => {
10
+ const finalizeStandaloneTxsEffect = atomEffect((get, set) => {
9
11
  if (hasRunStandaloneEffect) return;
10
12
  hasRunStandaloneEffect = true;
11
- const pendingStandaloneTxs = get(allPendingStandaloneTransactionItemsAtom);
13
+ const pendingStandaloneTxs = get(allPendingStandaloneTransactionItemsAtom).filter((tx) => !isGnosisSafeTx(tx));
12
14
  transactionLogger.log("Effect::pendingStandaloneTxs", pendingStandaloneTxs);
13
15
  pendingStandaloneTxs.forEach((tx) => set(finalizeStandaloneTxAtom, tx));
14
16
  });
17
+ let hasRunStandaloneSafeEffect = false;
18
+ const finalizeStandaloneSafeTxsEffect = atomEffect((get, set) => {
19
+ if (hasRunStandaloneSafeEffect) return;
20
+ const {
21
+ connector,
22
+ address
23
+ } = get(accountAtom);
24
+ const connectedSafe = connector && isSafeConnector(connector);
25
+ if (connectedSafe && !!connector.getAccounts && !!connector.getChainId && address) {
26
+ hasRunStandaloneSafeEffect = true;
27
+ const addressLower = address.toLowerCase();
28
+ const pendingSafeTxs = get(allPendingStandaloneTransactionItemsAtom).filter(isGnosisSafeTx).filter((tx) => tx.account.toLowerCase() === addressLower);
29
+ transactionLogger.log("Effect::pendingSafeTxs", pendingSafeTxs);
30
+ pendingSafeTxs.forEach((tx) => set(finalizeStandaloneTxAtom, tx));
31
+ }
32
+ });
15
33
  let hasRunBatchEffect = false;
16
34
  const finalizeBatchTxsEffect = atomEffect((get, set) => {
17
35
  if (hasRunBatchEffect) return;
18
- const account = get(accountAtom);
19
- if (account) {
36
+ const address = get(addressAtom);
37
+ if (address) {
20
38
  hasRunBatchEffect = true;
21
- const pendingBatchTxs = get(allPendingBatchTransactionItemsAtom);
39
+ const pendingBatchTxs = get(allPendingBatchTransactionItemsAtom).filter((tx) => !isGnosisSafeTx(tx));
22
40
  transactionLogger.log("Effect::pendingBatchTxs", pendingBatchTxs);
23
41
  pendingBatchTxs.forEach((tx) => set(finalizeBatchTxAtom, tx));
24
42
  }
25
43
  });
44
+ let hasRunBatchSafeEffect = false;
45
+ const finalizeBatchSafeTxsEffect = atomEffect((get, set) => {
46
+ if (hasRunBatchSafeEffect) return;
47
+ const {
48
+ connector,
49
+ address
50
+ } = get(accountAtom);
51
+ const connectedSafe = connector && isSafeConnector(connector);
52
+ if (connectedSafe && !!connector.getAccounts && !!connector.getChainId && address) {
53
+ hasRunBatchSafeEffect = true;
54
+ const addressLower = address.toLowerCase();
55
+ const pendingSafeBatchTxs = get(allPendingBatchTransactionItemsAtom).filter(isGnosisSafeTx).filter((tx) => tx.account.toLowerCase() === addressLower);
56
+ transactionLogger.log("Effect::pendingSafeBatchTxs", pendingSafeBatchTxs);
57
+ pendingSafeBatchTxs.forEach((tx) => set(finalizeBatchTxAtom, tx));
58
+ }
59
+ });
26
60
 
27
- export { finalizeBatchTxsEffect, finalizeStandoloneTxsEffect };
61
+ export { finalizeBatchSafeTxsEffect, finalizeBatchTxsEffect, finalizeStandaloneSafeTxsEffect, finalizeStandaloneTxsEffect };
28
62
  //# sourceMappingURL=finalize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"finalize.js","sources":["../../../../src/transactions/state/effects/finalize.ts"],"sourcesContent":["import { atomEffect } from \"jotai-effect\";\nimport {\n allPendingBatchTransactionItemsAtom,\n allPendingStandaloneTransactionItemsAtom,\n} from \"../transactionsAtom\";\nimport {\n finalizeBatchTxAtom,\n finalizeStandaloneTxAtom,\n} from \"../transactionsActionAtom\";\n\nimport { transactionLogger } from \"../../logger\";\nimport { accountAtom } from \"@/lib/web3/wagmi/external\";\n\n// run only once on app load\nlet hasRunStandaloneEffect = false;\nexport const finalizeStandoloneTxsEffect = atomEffect((get, set) => {\n if (hasRunStandaloneEffect) return;\n hasRunStandaloneEffect = true;\n\n const pendingStandaloneTxs = get(allPendingStandaloneTransactionItemsAtom);\n transactionLogger.log(\"Effect::pendingStandaloneTxs\", pendingStandaloneTxs);\n pendingStandaloneTxs.forEach((tx) => set(finalizeStandaloneTxAtom, tx));\n});\n\n// run only once after account is connected and available in atom\n// because waitForCallsStatus requires wallet to be connected\nlet hasRunBatchEffect = false;\nexport const finalizeBatchTxsEffect = atomEffect((get, set) => {\n if (hasRunBatchEffect) return;\n\n const account = get(accountAtom);\n if (account) {\n hasRunBatchEffect = true;\n\n const pendingBatchTxs = get(allPendingBatchTransactionItemsAtom);\n transactionLogger.log(\"Effect::pendingBatchTxs\", pendingBatchTxs);\n pendingBatchTxs.forEach((tx) => set(finalizeBatchTxAtom, tx));\n }\n});\n"],"names":["hasRunStandaloneEffect","finalizeStandoloneTxsEffect","atomEffect","get","set","pendingStandaloneTxs","allPendingStandaloneTransactionItemsAtom","transactionLogger","log","forEach","tx","finalizeStandaloneTxAtom","hasRunBatchEffect","finalizeBatchTxsEffect","account","accountAtom","pendingBatchTxs","allPendingBatchTransactionItemsAtom","finalizeBatchTxAtom"],"mappings":";;;;;;AAcA,IAAIA,sBAAAA,GAAyB,KAAA;AACtB,MAAMC,2BAAAA,GAA8BC,UAAAA,CAAW,CAACC,GAAAA,EAAKC,GAAAA,KAAQ;AAClE,EAAA,IAAIJ,sBAAAA,EAAwB;AAC5BA,EAAAA,sBAAAA,GAAyB,IAAA;AAEzB,EAAA,MAAMK,oBAAAA,GAAuBF,IAAIG,wCAAwC,CAAA;AACzEC,EAAAA,iBAAAA,CAAkBC,GAAAA,CAAI,gCAAgCH,oBAAoB,CAAA;AAC1EA,EAAAA,oBAAAA,CAAqBI,OAAAA,CAASC,CAAAA,EAAAA,KAAON,GAAAA,CAAIO,wBAAAA,EAA0BD,EAAE,CAAC,CAAA;AACxE,CAAC;AAID,IAAIE,iBAAAA,GAAoB,KAAA;AACjB,MAAMC,sBAAAA,GAAyBX,UAAAA,CAAW,CAACC,GAAAA,EAAKC,GAAAA,KAAQ;AAC7D,EAAA,IAAIQ,iBAAAA,EAAmB;AAEvB,EAAA,MAAME,OAAAA,GAAUX,IAAIY,WAAW,CAAA;AAC/B,EAAA,IAAID,OAAAA,EAAS;AACXF,IAAAA,iBAAAA,GAAoB,IAAA;AAEpB,IAAA,MAAMI,eAAAA,GAAkBb,IAAIc,mCAAmC,CAAA;AAC/DV,IAAAA,iBAAAA,CAAkBC,GAAAA,CAAI,2BAA2BQ,eAAe,CAAA;AAChEA,IAAAA,eAAAA,CAAgBP,OAAAA,CAASC,CAAAA,EAAAA,KAAON,GAAAA,CAAIc,mBAAAA,EAAqBR,EAAE,CAAC,CAAA;AAAA,EAC9D;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"finalize.js","sources":["../../../../src/transactions/state/effects/finalize.ts"],"sourcesContent":["import { atomEffect } from \"jotai-effect\";\nimport {\n allPendingBatchTransactionItemsAtom,\n allPendingStandaloneTransactionItemsAtom,\n} from \"../transactionsAtom\";\nimport {\n finalizeBatchTxAtom,\n finalizeStandaloneTxAtom,\n} from \"../transactionsActionAtom\";\n\nimport { transactionLogger } from \"../../logger\";\nimport { accountAtom, addressAtom } from \"@/lib/web3/wagmi/external\";\nimport { isSafeConnector } from \"@/hooks/connectors/useIsGnosisSafeConnector\";\nimport { isGnosisSafeTx } from \"@/transactions/utils\";\n\n// run only once on app load\nlet hasRunStandaloneEffect = false;\nexport const finalizeStandaloneTxsEffect = atomEffect((get, set) => {\n if (hasRunStandaloneEffect) return;\n hasRunStandaloneEffect = true;\n\n const pendingStandaloneTxs = get(allPendingStandaloneTransactionItemsAtom)\n // txs through safe are handled in another effect\n .filter((tx) => !isGnosisSafeTx(tx));\n transactionLogger.log(\"Effect::pendingStandaloneTxs\", pendingStandaloneTxs);\n pendingStandaloneTxs.forEach((tx) => set(finalizeStandaloneTxAtom, tx));\n});\n\n// waitForTransactionReceipt(connectorClient,{safeTxHash}) requires wallet to be connected through safe connector\nlet hasRunStandaloneSafeEffect = false;\nexport const finalizeStandaloneSafeTxsEffect = atomEffect((get, set) => {\n if (hasRunStandaloneSafeEffect) return;\n const { connector, address } = get(accountAtom);\n const connectedSafe = connector && isSafeConnector(connector);\n\n // try finalize when:\n // - connected through safe connector\n // - all required methods are available for ensureTxReceipt(){getConnectorClient()}\n // otherwise it will throw ConnectorUnavailableReconnectingError\n if (\n connectedSafe &&\n !!connector.getAccounts &&\n !!connector.getChainId &&\n address\n ) {\n hasRunStandaloneSafeEffect = true;\n\n const addressLower = address.toLowerCase();\n\n const pendingSafeTxs = get(allPendingStandaloneTransactionItemsAtom)\n .filter(isGnosisSafeTx)\n // only trigger Safe tx finalization if the same Safe that made the tx is connected\n .filter((tx) => tx.account.toLowerCase() === addressLower);\n transactionLogger.log(\"Effect::pendingSafeTxs\", pendingSafeTxs);\n pendingSafeTxs.forEach((tx) => set(finalizeStandaloneTxAtom, tx));\n }\n});\n\n// run only once after account is connected and available in atom\n// because waitForCallsStatus requires wallet to be connected\nlet hasRunBatchEffect = false;\nexport const finalizeBatchTxsEffect = atomEffect((get, set) => {\n if (hasRunBatchEffect) return;\n\n const address = get(addressAtom);\n if (address) {\n hasRunBatchEffect = true;\n\n const pendingBatchTxs = get(allPendingBatchTransactionItemsAtom)\n // batch txs through safe are handled in another effect\n .filter((tx) => !isGnosisSafeTx(tx));\n transactionLogger.log(\"Effect::pendingBatchTxs\", pendingBatchTxs);\n pendingBatchTxs.forEach((tx) => set(finalizeBatchTxAtom, tx));\n }\n});\n\nlet hasRunBatchSafeEffect = false;\nexport const finalizeBatchSafeTxsEffect = atomEffect((get, set) => {\n if (hasRunBatchSafeEffect) return;\n const { connector, address } = get(accountAtom);\n const connectedSafe = connector && isSafeConnector(connector);\n\n // try finalize when:\n // - connected through safe connector\n // - all required methods are available for ensureCallsStatus(){getConnectorClient()}\n // otherwise it will throw ConnectorUnavailableReconnectingError\n if (\n connectedSafe &&\n !!connector.getAccounts &&\n !!connector.getChainId &&\n address\n ) {\n hasRunBatchSafeEffect = true;\n\n const addressLower = address.toLowerCase();\n\n const pendingSafeBatchTxs = get(allPendingBatchTransactionItemsAtom)\n .filter(isGnosisSafeTx)\n // only trigger Safe tx finalization if the same Safe that made the tx is connected\n .filter((tx) => tx.account.toLowerCase() === addressLower);\n transactionLogger.log(\"Effect::pendingSafeBatchTxs\", pendingSafeBatchTxs);\n pendingSafeBatchTxs.forEach((tx) => set(finalizeBatchTxAtom, tx));\n }\n});\n"],"names":["hasRunStandaloneEffect","finalizeStandaloneTxsEffect","atomEffect","get","set","pendingStandaloneTxs","allPendingStandaloneTransactionItemsAtom","filter","tx","isGnosisSafeTx","transactionLogger","log","forEach","finalizeStandaloneTxAtom","hasRunStandaloneSafeEffect","finalizeStandaloneSafeTxsEffect","connector","address","accountAtom","connectedSafe","isSafeConnector","getAccounts","getChainId","addressLower","toLowerCase","pendingSafeTxs","account","hasRunBatchEffect","finalizeBatchTxsEffect","addressAtom","pendingBatchTxs","allPendingBatchTransactionItemsAtom","finalizeBatchTxAtom","hasRunBatchSafeEffect","finalizeBatchSafeTxsEffect","pendingSafeBatchTxs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useActivateEffects.d.ts","sourceRoot":"","sources":["../../../../src/transactions/state/hooks/useActivateEffects.ts"],"names":[],"mappings":"AAMA,wBAAgB,kBAAkB,SAIjC"}
1
+ {"version":3,"file":"useActivateEffects.d.ts","sourceRoot":"","sources":["../../../../src/transactions/state/hooks/useActivateEffects.ts"],"names":[],"mappings":"AAQA,wBAAgB,kBAAkB,SAMjC"}
@@ -1,9 +1,11 @@
1
1
  import { useAtom } from '../../../core/store.js';
2
- import { finalizeStandoloneTxsEffect, finalizeBatchTxsEffect } from '../effects/finalize.js';
2
+ import { finalizeStandaloneTxsEffect, finalizeStandaloneSafeTxsEffect, finalizeBatchTxsEffect, finalizeBatchSafeTxsEffect } from '../effects/finalize.js';
3
3
 
4
4
  function useActivateEffects() {
5
- useAtom(finalizeStandoloneTxsEffect);
5
+ useAtom(finalizeStandaloneTxsEffect);
6
+ useAtom(finalizeStandaloneSafeTxsEffect);
6
7
  useAtom(finalizeBatchTxsEffect);
8
+ useAtom(finalizeBatchSafeTxsEffect);
7
9
  }
8
10
 
9
11
  export { useActivateEffects };
@@ -1 +1 @@
1
- {"version":3,"file":"useActivateEffects.js","sources":["../../../../src/transactions/state/hooks/useActivateEffects.ts"],"sourcesContent":["import { useAtom } from \"@/core/store\";\nimport {\n finalizeBatchTxsEffect,\n finalizeStandoloneTxsEffect,\n} from \"@/transactions/state/effects/finalize\";\n\nexport function useActivateEffects() {\n // atomEffects must be rendered for subscriptions to activate\n useAtom(finalizeStandoloneTxsEffect);\n useAtom(finalizeBatchTxsEffect);\n}\n"],"names":["useActivateEffects","useAtom","finalizeStandoloneTxsEffect","finalizeBatchTxsEffect"],"mappings":";;;AAMO,SAAAA,kBAAAA,GAAA;AAELC,EAAAA,OAAAA,CAAQC,2BAA2B,CAAA;AACnCD,EAAAA,OAAAA,CAAQE,sBAAsB,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"useActivateEffects.js","sources":["../../../../src/transactions/state/hooks/useActivateEffects.ts"],"sourcesContent":["import { useAtom } from \"@/core/store\";\nimport {\n finalizeBatchTxsEffect,\n finalizeStandaloneTxsEffect,\n finalizeStandaloneSafeTxsEffect,\n finalizeBatchSafeTxsEffect,\n} from \"@/transactions/state/effects/finalize\";\n\nexport function useActivateEffects() {\n // atomEffects must be rendered for subscriptions to activate\n useAtom(finalizeStandaloneTxsEffect);\n useAtom(finalizeStandaloneSafeTxsEffect);\n useAtom(finalizeBatchTxsEffect);\n useAtom(finalizeBatchSafeTxsEffect);\n}\n"],"names":["useActivateEffects","useAtom","finalizeStandaloneTxsEffect","finalizeStandaloneSafeTxsEffect","finalizeBatchTxsEffect","finalizeBatchSafeTxsEffect"],"mappings":";;;AAQO,SAAAA,kBAAAA,GAAA;AAELC,EAAAA,OAAAA,CAAQC,2BAA2B,CAAA;AACnCD,EAAAA,OAAAA,CAAQE,+BAA+B,CAAA;AACvCF,EAAAA,OAAAA,CAAQG,sBAAsB,CAAA;AAC9BH,EAAAA,OAAAA,CAAQI,0BAA0B,CAAA;AAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"transactionsActionAtom.d.ts","sourceRoot":"","sources":["../../../src/transactions/state/transactionsActionAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAsBlB,eAAO,MAAM,SAAS;;CAoBrB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;CA0BnC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;CA8B9B,CAAC;AAEH,eAAO,MAAM,KAAK,GAAU,aAAa,kBAAkB,kBAE1D,CAAC"}
1
+ {"version":3,"file":"transactionsActionAtom.d.ts","sourceRoot":"","sources":["../../../src/transactions/state/transactionsActionAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AA0BlB,eAAO,MAAM,SAAS;;CAuBrB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;CAkCnC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;CA8B9B,CAAC;AAEH,eAAO,MAAM,KAAK,GAAU,aAAa,kBAAkB,kBAE1D,CAAC"}