@velora-dex/widget 0.3.12 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.d.ts.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js +75 -63
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/constants.d.ts +14 -0
- package/dist/components/web3/ConnectExternalProvider/constants.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/constants.js +6 -0
- package/dist/components/web3/ConnectExternalProvider/constants.js.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts +15 -0
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js +56 -0
- package/dist/components/web3/ConnectExternalProvider/metamaskProviderWrapper.js.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.d.ts +6 -0
- package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.js +76 -0
- package/dist/components/web3/ConnectExternalProvider/safeProviderWrapper.js.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/utils.d.ts +23 -0
- package/dist/components/web3/ConnectExternalProvider/utils.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/utils.js +42 -0
- package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -0
- package/dist/components/web3/ConnectWallets/index.js.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +8 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +23 -9
- package/dist/components/web3/ConnectWallets/walletIcons.js.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.d.ts.map +1 -1
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js +11 -5
- package/dist/components/widget/ReceiverAddress/state/subscriptions.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts +2 -2
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.d.ts.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js +22 -23
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/Controls.js.map +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js +1 -1
- package/dist/components/widget/TransactionDetails/LimitOrderDetails/TransactionDetails.js.map +1 -1
- package/dist/configurator/Configurator.d.ts.map +1 -1
- package/dist/configurator/Safe/SafeConnector.d.ts +23 -0
- package/dist/configurator/Safe/SafeConnector.d.ts.map +1 -0
- package/dist/configurator/Safe/useSafeConnector.d.ts +8 -0
- package/dist/configurator/Safe/useSafeConnector.d.ts.map +1 -0
- package/dist/core/state/configAtom.d.ts.map +1 -1
- package/dist/core/state/configAtom.js +5 -1
- package/dist/core/state/configAtom.js.map +1 -1
- package/dist/core/state/externalProviderAtom.d.ts +6 -0
- package/dist/core/state/externalProviderAtom.d.ts.map +1 -1
- package/dist/core/state/externalProviderAtom.js +4 -1
- package/dist/core/state/externalProviderAtom.js.map +1 -1
- package/dist/events/getters/swap.d.ts.map +1 -1
- package/dist/events/getters/swap.js +2 -1
- package/dist/events/getters/swap.js.map +1 -1
- package/dist/events/getters/widgetState.d.ts.map +1 -1
- package/dist/events/getters/widgetState.js +22 -1
- package/dist/events/getters/widgetState.js.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.d.ts.map +1 -1
- package/dist/events/hooks/useOnWalletConnect.js +17 -1
- package/dist/events/hooks/useOnWalletConnect.js.map +1 -1
- package/dist/events/types/common.d.ts +7 -0
- package/dist/events/types/common.d.ts.map +1 -1
- package/dist/events/types/connectWallet.d.ts +4 -3
- package/dist/events/types/connectWallet.d.ts.map +1 -1
- package/dist/hooks/batch/useAwaitCalls.d.ts.map +1 -1
- package/dist/hooks/batch/useAwaitCalls.js.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.d.ts +1 -0
- package/dist/hooks/connectors/useIsConnectedSafe.d.ts.map +1 -1
- package/dist/hooks/connectors/useIsConnectedSafe.js +10 -3
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts +5 -1
- package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts.map +1 -1
- package/dist/hooks/connectors/useIsGnosisSafeConnector.js +3 -4
- package/dist/hooks/connectors/useIsGnosisSafeConnector.js.map +1 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts +3 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +55 -11
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +2 -1
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +1 -0
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.d.ts.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js +7 -4
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderStep.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +2 -1
- package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.d.ts.map +1 -1
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js +7 -4
- package/dist/hooks/swap/tradeFlow/useMarketSwapStep.js.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.d.ts.map +1 -1
- package/dist/hooks/txs/queries/useAwaitTx.js +114 -20
- package/dist/hooks/txs/queries/useAwaitTx.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/constants/storage.d.ts +1 -1
- package/dist/lib/constants/storage.d.ts.map +1 -1
- package/dist/lib/constants/storage.js +3 -1
- package/dist/lib/constants/storage.js.map +1 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/toasts.d.ts +1 -1
- package/dist/lib/utils/toasts.d.ts.map +1 -1
- package/dist/lib/utils/toasts.js +5 -1
- package/dist/lib/utils/toasts.js.map +1 -1
- package/dist/lib/web3/privy/config.js +1 -1
- package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/config.js +2 -2
- package/dist/lib/web3/wagmi/config.js.map +1 -1
- package/dist/lib/web3/wagmi/external.d.ts +11 -3
- package/dist/lib/web3/wagmi/external.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/external.js +28 -2
- package/dist/lib/web3/wagmi/external.js.map +1 -1
- package/dist/lib/web3/wagmi/isInIframe.d.ts +2 -0
- package/dist/lib/web3/wagmi/isInIframe.d.ts.map +1 -0
- package/dist/lib/web3/wagmi/isInIframe.js +4 -0
- package/dist/lib/web3/wagmi/isInIframe.js.map +1 -0
- package/dist/lib/web3/wagmi/isInsideSafeIframe.d.ts +0 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js +2 -2
- package/dist/lib/web3/wagmi/isInsideSafeIframe.js.map +1 -1
- package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/switchChain.js +3 -3
- package/dist/lib/web3/wagmi/switchChain.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/transactions/hash.d.ts +7 -0
- package/dist/transactions/hash.d.ts.map +1 -0
- package/dist/transactions/hash.js +34 -0
- package/dist/transactions/hash.js.map +1 -0
- package/dist/transactions/queries/ensureCallsStatus.d.ts.map +1 -1
- package/dist/transactions/queries/ensureCallsStatus.js +14 -3
- package/dist/transactions/queries/ensureCallsStatus.js.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.d.ts.map +1 -1
- package/dist/transactions/queries/ensureTxReceipt.js +48 -12
- package/dist/transactions/queries/ensureTxReceipt.js.map +1 -1
- package/dist/transactions/state/effects/finalize.d.ts +7 -1
- package/dist/transactions/state/effects/finalize.d.ts.map +1 -1
- package/dist/transactions/state/effects/finalize.js +53 -7
- package/dist/transactions/state/effects/finalize.js.map +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.d.ts.map +1 -1
- package/dist/transactions/state/hooks/useActivateEffects.js +4 -2
- package/dist/transactions/state/hooks/useActivateEffects.js.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.d.ts.map +1 -1
- package/dist/transactions/state/transactionsActionAtom.js +74 -18
- package/dist/transactions/state/transactionsActionAtom.js.map +1 -1
- package/dist/transactions/state/transactionsAtom.js +2 -2
- package/dist/transactions/state/transactionsAtom.js.map +1 -1
- package/dist/transactions/types.d.ts +32 -1
- package/dist/transactions/types.d.ts.map +1 -1
- package/dist/transactions/utils.d.ts +2 -1
- package/dist/transactions/utils.d.ts.map +1 -1
- package/dist/transactions/utils.js +7 -1
- package/dist/transactions/utils.js.map +1 -1
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoconnectExternal.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/AutoconnectExternal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AutoconnectExternal.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/AutoconnectExternal.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,2BAA2B,SAkB1C"}
|
|
@@ -1,85 +1,97 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
2
|
import { useExternalProvider } from '../../../core/state/externalProviderAtom.js';
|
|
3
|
-
import { useConnect, useDisconnect
|
|
4
|
-
import {
|
|
3
|
+
import { useConnect, useDisconnect } from 'wagmi';
|
|
4
|
+
import { injected } from 'wagmi/connectors';
|
|
5
|
+
import { useEffect } from 'react';
|
|
6
|
+
import { EXTERNAL_CONNECTOR_ID } from './constants.js';
|
|
7
|
+
import { getConnections } from '@wagmi/core';
|
|
8
|
+
import { wagmiConfig } from '../../../lib/web3/wagmi/config.js';
|
|
9
|
+
import { useLogger } from '../../../core/logger.js';
|
|
10
|
+
import { prepareInjectedParamsForMetamask } from './metamaskProviderWrapper.js';
|
|
11
|
+
import { prepareInjectedParamsForSafeIframe, prepareInjectedParamsForSafeWalletConnect } from './safeProviderWrapper.js';
|
|
5
12
|
|
|
6
|
-
const EXTERNAL_CONNECTOR_ID = "external_provider_from_App";
|
|
7
13
|
function AutoconnectExternalProvider() {
|
|
8
|
-
const $ = distExports.c(
|
|
14
|
+
const $ = distExports.c(6);
|
|
9
15
|
const externalProvider = useExternalProvider();
|
|
10
16
|
const {
|
|
11
|
-
|
|
17
|
+
connectAsync
|
|
12
18
|
} = useConnect();
|
|
13
19
|
const {
|
|
14
|
-
|
|
20
|
+
disconnectAsync
|
|
15
21
|
} = useDisconnect();
|
|
16
|
-
const
|
|
17
|
-
connector: currentConnector
|
|
18
|
-
} = useAccount();
|
|
19
|
-
const connectorIsExternal = currentConnector?.id === EXTERNAL_CONNECTOR_ID;
|
|
22
|
+
const logger = useLogger("AutoconnectExternalProvider");
|
|
20
23
|
let t0;
|
|
21
|
-
if ($[0] !== connectorIsExternal || $[1] !== disconnect) {
|
|
22
|
-
t0 = () => {
|
|
23
|
-
if (connectorIsExternal) {
|
|
24
|
-
disconnect();
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
$[0] = connectorIsExternal;
|
|
28
|
-
$[1] = disconnect;
|
|
29
|
-
$[2] = t0;
|
|
30
|
-
} else {
|
|
31
|
-
t0 = $[2];
|
|
32
|
-
}
|
|
33
|
-
const disconnectExternalRef = useRef(t0);
|
|
34
24
|
let t1;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
25
|
+
if ($[0] !== connectAsync || $[1] !== disconnectAsync || $[2] !== externalProvider || $[3] !== logger) {
|
|
26
|
+
t0 = () => {
|
|
27
|
+
connectDisconnect({
|
|
28
|
+
externalProvider,
|
|
29
|
+
logger,
|
|
30
|
+
disconnectAsync,
|
|
31
|
+
connectAsync
|
|
32
|
+
});
|
|
43
33
|
};
|
|
44
|
-
|
|
45
|
-
$[
|
|
46
|
-
$[
|
|
34
|
+
t1 = [externalProvider, connectAsync, disconnectAsync, logger];
|
|
35
|
+
$[0] = connectAsync;
|
|
36
|
+
$[1] = disconnectAsync;
|
|
37
|
+
$[2] = externalProvider;
|
|
38
|
+
$[3] = logger;
|
|
39
|
+
$[4] = t0;
|
|
47
40
|
$[5] = t1;
|
|
48
|
-
$[6] = t2;
|
|
49
41
|
} else {
|
|
42
|
+
t0 = $[4];
|
|
50
43
|
t1 = $[5];
|
|
51
|
-
t2 = $[6];
|
|
52
44
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
})
|
|
45
|
+
useEffect(t0, t1);
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
let initialConnectors = wagmiConfig.connectors.slice();
|
|
49
|
+
async function connectDisconnect({
|
|
50
|
+
externalProvider,
|
|
51
|
+
logger,
|
|
52
|
+
disconnectAsync,
|
|
53
|
+
connectAsync
|
|
54
|
+
}) {
|
|
55
|
+
const connections = getConnections(wagmiConfig);
|
|
56
|
+
try {
|
|
57
|
+
for (const connection of connections) {
|
|
58
|
+
await disconnectAsync({
|
|
59
|
+
connector: connection.connector
|
|
70
60
|
});
|
|
61
|
+
}
|
|
62
|
+
} catch (error) {
|
|
63
|
+
logger.error("Failed to disconnect from active connections", error);
|
|
64
|
+
}
|
|
65
|
+
if (externalProvider === null) {
|
|
66
|
+
if (wagmiConfig.connectors.length === 0) {
|
|
67
|
+
wagmiConfig._internal.connectors.setState(initialConnectors);
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (wagmiConfig.connectors.length > initialConnectors.length) {
|
|
72
|
+
initialConnectors = wagmiConfig.connectors.slice();
|
|
73
|
+
}
|
|
74
|
+
wagmiConfig._internal.connectors.setState([]);
|
|
75
|
+
try {
|
|
76
|
+
const connectorParams = prepareInjectedParamsForMetamask(externalProvider, logger) || prepareInjectedParamsForSafeIframe(externalProvider, logger) || prepareInjectedParamsForSafeWalletConnect(externalProvider, logger) || {
|
|
77
|
+
target: {
|
|
78
|
+
id: EXTERNAL_CONNECTOR_ID,
|
|
79
|
+
name: "External",
|
|
80
|
+
provider: externalProvider
|
|
81
|
+
}
|
|
71
82
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
const connector = injected(connectorParams);
|
|
84
|
+
const result = await connectAsync({
|
|
85
|
+
connector
|
|
86
|
+
});
|
|
87
|
+
logger.info("Connected to external provider", {
|
|
88
|
+
connector,
|
|
89
|
+
provider: externalProvider
|
|
90
|
+
});
|
|
91
|
+
return result;
|
|
92
|
+
} catch (error) {
|
|
93
|
+
logger.error("Failed to connect to external provider", error);
|
|
80
94
|
}
|
|
81
|
-
useEffect(t3, t4);
|
|
82
|
-
return null;
|
|
83
95
|
}
|
|
84
96
|
|
|
85
97
|
export { AutoconnectExternalProvider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoconnectExternal.js","sources":["../../../../src/components/web3/ConnectExternalProvider/AutoconnectExternal.tsx"],"sourcesContent":["import { useExternalProvider } from \"@/core/state/externalProviderAtom\";\nimport {
|
|
1
|
+
{"version":3,"file":"AutoconnectExternal.js","sources":["../../../../src/components/web3/ConnectExternalProvider/AutoconnectExternal.tsx"],"sourcesContent":["import { useExternalProvider } from \"@/core/state/externalProviderAtom\";\nimport { useConnect, useDisconnect } from \"wagmi\";\nimport { injected } from \"wagmi/connectors\";\nimport { useEffect } from \"react\";\nimport {\n EXTERNAL_CONNECTOR_ID,\n type InjectedExternalConnectorParameters,\n} from \"./constants\";\nimport type { EIP1193Provider } from \"viem\";\nimport { getConnections } from \"@wagmi/core\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { useLogger } from \"@/core/logger\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport type { ConnectMutateAsync, DisconnectMutateAsync } from \"wagmi/query\";\nimport { prepareInjectedParamsForMetamask } from \"./metamaskProviderWrapper\";\nimport {\n prepareInjectedParamsForSafeIframe,\n prepareInjectedParamsForSafeWalletConnect,\n} from \"./safeProviderWrapper\";\n\nexport function AutoconnectExternalProvider() {\n const externalProvider = useExternalProvider();\n\n const { connectAsync } = useConnect();\n const { disconnectAsync } = useDisconnect();\n\n const logger = useLogger(\"AutoconnectExternalProvider\");\n\n useEffect(() => {\n connectDisconnect({\n externalProvider,\n logger,\n disconnectAsync,\n connectAsync,\n });\n }, [externalProvider, connectAsync, disconnectAsync, logger]);\n\n return null;\n}\n\ntype ConnectDisconnectProps = {\n externalProvider: EIP1193Provider | null;\n logger: LoggerInstance;\n disconnectAsync: DisconnectMutateAsync;\n connectAsync: ConnectMutateAsync<typeof wagmiConfig>;\n};\n\nlet initialConnectors = wagmiConfig.connectors.slice();\n\nasync function connectDisconnect({\n externalProvider,\n logger,\n disconnectAsync,\n connectAsync,\n}: ConnectDisconnectProps) {\n // disconnect any of the current connectors belonging to active connections\n const connections = getConnections(wagmiConfig); // actual connections made, can be multiple active\n\n try {\n for (const connection of connections) {\n // connection.connector.disconnect(); does not work, starts disconnect sync\n\n // make sure to wait for proper disconnection,\n // otherwise if disconnecting injected connector,\n // and then below we connect injected but with a different provider,\n // it doesn't connect, only disconnects\n await disconnectAsync({ connector: connection.connector });\n\n // this will also disconnect external provider when removing it from WidgetProps\n }\n } catch (error) {\n logger.error(\"Failed to disconnect from active connections\", error);\n }\n\n if (externalProvider === null) {\n // when disconnecting externalProvider,\n // if connectors were previously removed\n if (wagmiConfig.connectors.length === 0) {\n // restore them\n wagmiConfig._internal.connectors.setState(initialConnectors);\n }\n return;\n }\n if (wagmiConfig.connectors.length > initialConnectors.length) {\n // new EIP6963 connectors may have been discovered since config creation\n initialConnectors = wagmiConfig.connectors.slice();\n }\n // remove all connectors which may autoconnect and override external provider connection\n wagmiConfig._internal.connectors.setState([]); // wagmiConfig.setState doesn't deal with connectors\n try {\n const connectorParams: InjectedExternalConnectorParameters =\n prepareInjectedParamsForMetamask(externalProvider, logger) ||\n prepareInjectedParamsForSafeIframe(externalProvider, logger) ||\n prepareInjectedParamsForSafeWalletConnect(externalProvider, logger) || {\n target: {\n id: EXTERNAL_CONNECTOR_ID,\n name: \"External\",\n provider: externalProvider,\n },\n };\n const connector = injected(connectorParams);\n\n // not necessary to await, but for uniformity\n const result = await connectAsync({ connector });\n logger.info(\"Connected to external provider\", {\n connector,\n provider: externalProvider,\n });\n\n return result;\n } catch (error) {\n logger.error(\"Failed to connect to external provider\", error);\n }\n}\n"],"names":["AutoconnectExternalProvider","$","_c","externalProvider","useExternalProvider","connectAsync","useConnect","disconnectAsync","useDisconnect","logger","useLogger","t0","t1","connectDisconnect","useEffect","initialConnectors","wagmiConfig","connectors","slice","connections","getConnections","connection","connector","error","length","_internal","setState","connectorParams","prepareInjectedParamsForMetamask","prepareInjectedParamsForSafeIframe","prepareInjectedParamsForSafeWalletConnect","target","id","EXTERNAL_CONNECTOR_ID","name","provider","injected","result","info"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { InjectedParameters } from '@wagmi/core';
|
|
2
|
+
import { EIP1193Provider } from 'viem';
|
|
3
|
+
export declare const EXTERNAL_CONNECTOR_ID = "external_provider_from_App";
|
|
4
|
+
export declare const EXTERNAL_CONNECTOR_SAFE_ID = "external_provider_from_Safe";
|
|
5
|
+
export declare const EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID = "external_provider_from_Safe_WalletConnect";
|
|
6
|
+
export type ExternalConnectorId = typeof EXTERNAL_CONNECTOR_ID | typeof EXTERNAL_CONNECTOR_SAFE_ID | typeof EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID;
|
|
7
|
+
export type InjectedExternalConnectorParameters = Pick<InjectedParameters, "shimDisconnect"> & {
|
|
8
|
+
target: {
|
|
9
|
+
name: "External";
|
|
10
|
+
id: ExternalConnectorId;
|
|
11
|
+
provider: EIP1193Provider;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5C,eAAO,MAAM,qBAAqB,+BAA+B,CAAC;AAClE,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AACxE,eAAO,MAAM,wCAAwC,8CACR,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAC3B,OAAO,qBAAqB,GAC5B,OAAO,0BAA0B,GACjC,OAAO,wCAAwC,CAAC;AAEpD,MAAM,MAAM,mCAAmC,GAAG,IAAI,CACpD,kBAAkB,EAClB,gBAAgB,CACjB,GAAG;IACF,MAAM,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;QACjB,EAAE,EAAE,mBAAmB,CAAC;QACxB,QAAQ,EAAE,eAAe,CAAC;KAC3B,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const EXTERNAL_CONNECTOR_ID = "external_provider_from_App";
|
|
2
|
+
const EXTERNAL_CONNECTOR_SAFE_ID = "external_provider_from_Safe";
|
|
3
|
+
const EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID = "external_provider_from_Safe_WalletConnect";
|
|
4
|
+
|
|
5
|
+
export { EXTERNAL_CONNECTOR_ID, EXTERNAL_CONNECTOR_SAFE_ID, EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID };
|
|
6
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/components/web3/ConnectExternalProvider/constants.ts"],"sourcesContent":["import type { InjectedParameters } from \"@wagmi/core\";\nimport type { EIP1193Provider } from \"viem\";\n\nexport const EXTERNAL_CONNECTOR_ID = \"external_provider_from_App\";\nexport const EXTERNAL_CONNECTOR_SAFE_ID = \"external_provider_from_Safe\";\nexport const EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID =\n \"external_provider_from_Safe_WalletConnect\";\n\nexport type ExternalConnectorId =\n | typeof EXTERNAL_CONNECTOR_ID\n | typeof EXTERNAL_CONNECTOR_SAFE_ID\n | typeof EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID;\n\nexport type InjectedExternalConnectorParameters = Pick<\n InjectedParameters,\n \"shimDisconnect\"\n> & {\n target: {\n name: \"External\";\n id: ExternalConnectorId;\n provider: EIP1193Provider;\n };\n};\n"],"names":["EXTERNAL_CONNECTOR_ID","EXTERNAL_CONNECTOR_SAFE_ID","EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID"],"mappings":"AAGO,MAAMA,qBAAAA,GAAwB;AAC9B,MAAMC,0BAAAA,GAA6B;AACnC,MAAMC,wCAAAA,GACX;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EIP1193Provider } from 'viem';
|
|
2
|
+
import { InjectedExternalConnectorParameters } from './constants';
|
|
3
|
+
import { LoggerInstance } from '../../../lib/utils/logger';
|
|
4
|
+
declare const providerFlags: readonly ["isApexWallet", "isAvalanche", "isBitKeep", "isBlockWallet", "isKuCoinWallet", "isMathWallet", "isOkxWallet", "isOKExWallet", "isOneInchIOSWallet", "isOneInchAndroidWallet", "isOpera", "isPhantom", "isPortal", "isRabby", "isTokenPocket", "isTokenary", "isUniswapWallet", "isZerion", "isBraveWallet"];
|
|
5
|
+
type ProvFlags = (typeof providerFlags)[number];
|
|
6
|
+
export declare function isMetaMaskProvider(provider: EIP1193Provider & {
|
|
7
|
+
isMetaMask?: boolean;
|
|
8
|
+
isConnected?: () => boolean;
|
|
9
|
+
} & Partial<Record<ProvFlags, boolean>>): provider is EIP1193Provider & {
|
|
10
|
+
isMetaMask: true;
|
|
11
|
+
isConnected: () => boolean;
|
|
12
|
+
} & Partial<Record<ProvFlags, boolean>>;
|
|
13
|
+
export declare function prepareInjectedParamsForMetamask(provider: EIP1193Provider, logger?: LoggerInstance): InjectedExternalConnectorParameters | null;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=metamaskProviderWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metamaskProviderWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/metamaskProviderWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,MAAM,CAAC;AAC7D,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,QAAA,MAAM,aAAa,uTAoBT,CAAC;AAEX,KAAK,SAAS,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,GAAG;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,GACtC,QAAQ,IAAI,eAAe,GAAG;IAC/B,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAOtC;AA8BD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,cAAc,GACtB,mCAAmC,GAAG,IAAI,CAoB5C"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { EXTERNAL_CONNECTOR_ID } from './constants.js';
|
|
2
|
+
|
|
3
|
+
const providerFlags = ["isApexWallet", "isAvalanche", "isBitKeep", "isBlockWallet", "isKuCoinWallet", "isMathWallet", "isOkxWallet", "isOKExWallet", "isOneInchIOSWallet", "isOneInchAndroidWallet", "isOpera", "isPhantom", "isPortal", "isRabby", "isTokenPocket", "isTokenary", "isUniswapWallet", "isZerion", "isBraveWallet"];
|
|
4
|
+
function isMetaMaskProvider(provider) {
|
|
5
|
+
if (!provider.isMetaMask) return false;
|
|
6
|
+
if (typeof provider.isConnected !== "function") return false;
|
|
7
|
+
if (providerFlags.some((flag) => provider[flag])) return false;
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
function wrapMetamaskExternalProvider(provider) {
|
|
11
|
+
if (isMetaMaskProvider(provider)) {
|
|
12
|
+
const request = async (args) => {
|
|
13
|
+
if (isRevokeAccountPermissionsCall(args)) {
|
|
14
|
+
throw new Error("Interrupt revoking permissions in MetaMask");
|
|
15
|
+
}
|
|
16
|
+
const result = await provider.request(args);
|
|
17
|
+
return result;
|
|
18
|
+
};
|
|
19
|
+
const on = provider.on?.bind(provider);
|
|
20
|
+
const removeListener = provider.removeListener?.bind(provider);
|
|
21
|
+
return {
|
|
22
|
+
...provider,
|
|
23
|
+
request,
|
|
24
|
+
on,
|
|
25
|
+
removeListener
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
function prepareInjectedParamsForMetamask(provider, logger) {
|
|
31
|
+
try {
|
|
32
|
+
const wrappedProvider = wrapMetamaskExternalProvider(provider);
|
|
33
|
+
if (wrappedProvider === null) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
// shimDisconnect=false avoids wallet_requestPermissions call in MetaMask that always prompts Connect in the Wallet,
|
|
38
|
+
// even if permissions weren't revoked between calls
|
|
39
|
+
shimDisconnect: false,
|
|
40
|
+
target: {
|
|
41
|
+
id: EXTERNAL_CONNECTOR_ID,
|
|
42
|
+
name: "External",
|
|
43
|
+
provider: wrappedProvider
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
} catch (error) {
|
|
47
|
+
logger?.error("Failed to prepare injected params for MetaMask", error);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function isRevokeAccountPermissionsCall(args) {
|
|
52
|
+
return args.method === "wallet_revokePermissions" && Array.isArray(args.params) && args.params[0]?.eth_accounts;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export { isMetaMaskProvider, prepareInjectedParamsForMetamask };
|
|
56
|
+
//# sourceMappingURL=metamaskProviderWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metamaskProviderWrapper.js","sources":["../../../../src/components/web3/ConnectExternalProvider/metamaskProviderWrapper.ts"],"sourcesContent":["import type { EIP1193Provider, WalletRpcSchema } from \"viem\";\nimport {\n EXTERNAL_CONNECTOR_ID,\n type InjectedExternalConnectorParameters,\n} from \"./constants\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\n\n// flag list from wagmi/connectors/injected\nconst providerFlags = [\n \"isApexWallet\",\n \"isAvalanche\",\n \"isBitKeep\",\n \"isBlockWallet\",\n \"isKuCoinWallet\",\n \"isMathWallet\",\n \"isOkxWallet\",\n \"isOKExWallet\",\n \"isOneInchIOSWallet\",\n \"isOneInchAndroidWallet\",\n \"isOpera\",\n \"isPhantom\",\n \"isPortal\",\n \"isRabby\",\n \"isTokenPocket\",\n \"isTokenary\",\n \"isUniswapWallet\",\n \"isZerion\",\n \"isBraveWallet\",\n] as const;\n\ntype ProvFlags = (typeof providerFlags)[number];\n\nexport function isMetaMaskProvider(\n provider: EIP1193Provider & {\n isMetaMask?: boolean;\n isConnected?: () => boolean;\n } & Partial<Record<ProvFlags, boolean>>\n): provider is EIP1193Provider & {\n isMetaMask: true;\n isConnected: () => boolean;\n} & Partial<Record<ProvFlags, boolean>> {\n if (!provider.isMetaMask) return false;\n if (typeof provider.isConnected !== \"function\") return false;\n\n // a provider that pretends to be MetaMask but has one of the flags is not MetaMask\n if (providerFlags.some((flag) => provider[flag])) return false;\n return true;\n}\n\n// workaround to avoid revoking permissions in MetaMask, which causes all subsequent wallet_requestAccounts to prompt Connect in the Wallet\n// returns null if the provider is not MetaMask\nfunction wrapMetamaskExternalProvider(\n provider: EIP1193Provider\n): EIP1193Provider | null {\n if (isMetaMaskProvider(provider)) {\n const request = (async (args) => {\n if (isRevokeAccountPermissionsCall(args)) {\n // avoid revoking permissions in MetaMask, which causes all subsequent wallet_requestAccounts to prompt Connect in the Wallet\n throw new Error(\"Interrupt revoking permissions in MetaMask\");\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = await provider.request(args as any);\n return result;\n }) as typeof provider.request;\n\n const on = provider.on?.bind(provider);\n const removeListener = provider.removeListener?.bind(provider);\n return {\n ...provider,\n request,\n on,\n removeListener,\n };\n }\n return null;\n}\n\nexport function prepareInjectedParamsForMetamask(\n provider: EIP1193Provider,\n logger?: LoggerInstance\n): InjectedExternalConnectorParameters | null {\n try {\n const wrappedProvider = wrapMetamaskExternalProvider(provider);\n if (wrappedProvider === null) {\n return null;\n }\n return {\n // shimDisconnect=false avoids wallet_requestPermissions call in MetaMask that always prompts Connect in the Wallet,\n // even if permissions weren't revoked between calls\n shimDisconnect: false,\n target: {\n id: EXTERNAL_CONNECTOR_ID,\n name: \"External\",\n provider: wrappedProvider,\n },\n };\n } catch (error) {\n logger?.error(\"Failed to prepare injected params for MetaMask\", error);\n return null;\n }\n}\n\ntype RevokeAccountsPermissionsArgs = Extract<\n WalletRpcSchema[number],\n { Method: \"wallet_revokePermissions\" }\n>;\n\nfunction isRevokeAccountPermissionsCall(args: {\n method: string;\n params?: unknown;\n}): args is {\n method: RevokeAccountsPermissionsArgs[\"Method\"];\n params: RevokeAccountsPermissionsArgs[\"Parameters\"];\n} {\n return (\n args.method === \"wallet_revokePermissions\" &&\n Array.isArray(args.params) &&\n args.params[0]?.eth_accounts\n );\n}\n"],"names":["providerFlags","isMetaMaskProvider","provider","isMetaMask","isConnected","some","flag","wrapMetamaskExternalProvider","request","args","isRevokeAccountPermissionsCall","Error","result","on","bind","removeListener","prepareInjectedParamsForMetamask","logger","wrappedProvider","shimDisconnect","target","id","EXTERNAL_CONNECTOR_ID","name","error","method","Array","isArray","params","eth_accounts"],"mappings":";;AAQA,MAAMA,aAAAA,GAAgB,CACpB,cAAA,EACA,aAAA,EACA,aACA,eAAA,EACA,gBAAA,EACA,gBACA,aAAA,EACA,cAAA,EACA,sBACA,wBAAA,EACA,SAAA,EACA,aACA,UAAA,EACA,SAAA,EACA,iBACA,YAAA,EACA,iBAAA,EACA,YACA,eAAe,CAAA;AAKV,SAASC,mBACdC,QAAAA,EAOsC;AACtC,EAAA,IAAI,CAACA,QAAAA,CAASC,UAAAA,EAAY,OAAO,KAAA;AACjC,EAAA,IAAI,OAAOD,QAAAA,CAASE,WAAAA,KAAgB,UAAA,EAAY,OAAO,KAAA;AAGvD,EAAA,IAAIJ,cAAcK,IAAAA,CAAMC,CAAAA,IAAAA,KAASJ,SAASI,IAAI,CAAC,GAAG,OAAO,KAAA;AACzD,EAAA,OAAO,IAAA;AACT;AAIA,SAASC,6BACPL,QAAAA,EACwB;AACxB,EAAA,IAAID,kBAAAA,CAAmBC,QAAQ,CAAA,EAAG;AAChC,IAAA,MAAMM,OAAAA,GAAW,OAAOC,IAAAA,KAAS;AAC/B,MAAA,IAAIC,8BAAAA,CAA+BD,IAAI,CAAA,EAAG;AAExC,QAAA,MAAM,IAAIE,MAAM,4CAA4C,CAAA;AAAA,MAC9D;AAEA,MAAA,MAAMC,MAAAA,GAAS,MAAMV,QAAAA,CAASM,OAAAA,CAAQC,IAAW,CAAA;AACjD,MAAA,OAAOG,MAAAA;AAAAA,IACT,CAAA;AAEA,IAAA,MAAMC,EAAAA,GAAKX,QAAAA,CAASW,EAAAA,EAAIC,IAAAA,CAAKZ,QAAQ,CAAA;AACrC,IAAA,MAAMa,cAAAA,GAAiBb,QAAAA,CAASa,cAAAA,EAAgBD,IAAAA,CAAKZ,QAAQ,CAAA;AAC7D,IAAA,OAAO;AAAA,MACL,GAAGA,QAAAA;AAAAA,MACHM,OAAAA;AAAAA,MACAK,EAAAA;AAAAA,MACAE;AAAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAASC,gCAAAA,CACdd,UACAe,MAAAA,EAC4C;AAC5C,EAAA,IAAI;AACF,IAAA,MAAMC,eAAAA,GAAkBX,6BAA6BL,QAAQ,CAAA;AAC7D,IAAA,IAAIgB,oBAAoB,IAAA,EAAM;AAC5B,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,OAAO;AAAA;AAAA;AAAA,MAGLC,cAAAA,EAAgB,KAAA;AAAA,MAChBC,MAAAA,EAAQ;AAAA,QACNC,EAAAA,EAAIC,qBAAAA;AAAAA,QACJC,IAAAA,EAAM,UAAA;AAAA,QACNrB,QAAAA,EAAUgB;AAAAA;AACZ,KACF;AAAA,EACF,SAASM,KAAAA,EAAO;AACdP,IAAAA,MAAAA,EAAQO,KAAAA,CAAM,kDAAkDA,KAAK,CAAA;AACrE,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAOA,SAASd,+BAA+BD,IAAAA,EAMtC;AACA,EAAA,OACEA,IAAAA,CAAKgB,MAAAA,KAAW,0BAAA,IAChBC,KAAAA,CAAMC,OAAAA,CAAQlB,IAAAA,CAAKmB,MAAM,CAAA,IACzBnB,IAAAA,CAAKmB,MAAAA,CAAO,CAAC,CAAA,EAAGC,YAAAA;AAEpB;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EIP1193Provider } from 'viem';
|
|
2
|
+
import { InjectedExternalConnectorParameters } from './constants';
|
|
3
|
+
import { LoggerInstance } from '../../../lib/utils/logger';
|
|
4
|
+
export declare function prepareInjectedParamsForSafeIframe(provider: EIP1193Provider, logger?: LoggerInstance): InjectedExternalConnectorParameters | null;
|
|
5
|
+
export declare function prepareInjectedParamsForSafeWalletConnect(provider: EIP1193Provider, logger?: LoggerInstance): InjectedExternalConnectorParameters | null;
|
|
6
|
+
//# sourceMappingURL=safeProviderWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeProviderWrapper.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/safeProviderWrapper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAGL,KAAK,mCAAmC,EACzC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAmCzD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,cAAc,GACtB,mCAAmC,GAAG,IAAI,CAiB5C;AAED,wBAAgB,yCAAyC,CACvD,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,cAAc,GACtB,mCAAmC,GAAG,IAAI,CAmC5C"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { isSafeIframeProvider } from '../../../core/state/externalProviderAtom.js';
|
|
2
|
+
import { EXTERNAL_CONNECTOR_SAFE_ID, EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID } from './constants.js';
|
|
3
|
+
import { getWalletConnectMetadata } from '../ConnectWallets/walletIcons.js';
|
|
4
|
+
import { isSafeConnectorThroughWalletConnect } from '../../../hooks/connectors/useIsSafeThroughWalletConnect.js';
|
|
5
|
+
import { injected } from 'wagmi/connectors';
|
|
6
|
+
|
|
7
|
+
function wrapSafeIframeExternalProvider(provider) {
|
|
8
|
+
if (isSafeIframeProvider(provider)) {
|
|
9
|
+
const request = async (args) => {
|
|
10
|
+
if (args.method === "eth_requestAccounts") {
|
|
11
|
+
return provider.request({
|
|
12
|
+
method: "eth_accounts"
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
const result = await provider.request(args);
|
|
16
|
+
return result;
|
|
17
|
+
};
|
|
18
|
+
const on = provider.on?.bind(provider);
|
|
19
|
+
const removeListener = provider.removeListener?.bind(provider);
|
|
20
|
+
return {
|
|
21
|
+
...provider,
|
|
22
|
+
request,
|
|
23
|
+
on,
|
|
24
|
+
removeListener
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
function prepareInjectedParamsForSafeIframe(provider, logger) {
|
|
30
|
+
try {
|
|
31
|
+
const wrappedProvider = wrapSafeIframeExternalProvider(provider);
|
|
32
|
+
if (wrappedProvider === null) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
target: {
|
|
37
|
+
id: EXTERNAL_CONNECTOR_SAFE_ID,
|
|
38
|
+
name: "External",
|
|
39
|
+
provider: wrappedProvider
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
} catch (error) {
|
|
43
|
+
logger?.error("Failed to prepare injected params for Safe", error);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function prepareInjectedParamsForSafeWalletConnect(provider, logger) {
|
|
48
|
+
try {
|
|
49
|
+
const metadata = getWalletConnectMetadata(provider);
|
|
50
|
+
if (!metadata) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const target = {
|
|
54
|
+
id: EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID,
|
|
55
|
+
name: "External",
|
|
56
|
+
provider
|
|
57
|
+
};
|
|
58
|
+
const isSafeThroughWalletConnect = isSafeConnectorThroughWalletConnect({
|
|
59
|
+
connectorType: injected.type,
|
|
60
|
+
connectorId: target.id,
|
|
61
|
+
name: metadata.name
|
|
62
|
+
});
|
|
63
|
+
if (!isSafeThroughWalletConnect) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
target
|
|
68
|
+
};
|
|
69
|
+
} catch (error) {
|
|
70
|
+
logger?.error("Failed to prepare injected params for Safe WalletConnect", error);
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export { prepareInjectedParamsForSafeIframe, prepareInjectedParamsForSafeWalletConnect };
|
|
76
|
+
//# sourceMappingURL=safeProviderWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeProviderWrapper.js","sources":["../../../../src/components/web3/ConnectExternalProvider/safeProviderWrapper.ts"],"sourcesContent":["import { isSafeIframeProvider } from \"@/core/state/externalProviderAtom\";\nimport type { EIP1193Provider } from \"viem\";\nimport {\n EXTERNAL_CONNECTOR_SAFE_ID,\n EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID,\n type InjectedExternalConnectorParameters,\n} from \"./constants\";\nimport type { LoggerInstance } from \"@/lib/utils/logger\";\nimport { getWalletConnectMetadata } from \"../ConnectWallets/walletIcons\";\nimport { isSafeConnectorThroughWalletConnect } from \"@/hooks/connectors/useIsSafeThroughWalletConnect\";\nimport { injected } from \"wagmi/connectors\";\n\n// applies a workaround to Safe iframe provider to fix its connection inside injected connector\n// returns null if the provider is not Safe iframe provider\nfunction wrapSafeIframeExternalProvider(\n provider: EIP1193Provider\n): EIP1193Provider | null {\n if (isSafeIframeProvider(provider)) {\n // Safe iframe provider doesn't support eth_requestAccounts;\n // this isn't a problem with safe() connector (skips eth_requestAccounts), but external provider fails on connect()\n const request = (async (args) => {\n if (args.method === \"eth_requestAccounts\") {\n return provider.request({ method: \"eth_accounts\" });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = await provider.request(args as any);\n return result;\n }) as typeof provider.request;\n\n const on = provider.on?.bind(provider);\n const removeListener = provider.removeListener?.bind(provider);\n return {\n ...provider,\n request,\n on,\n removeListener,\n };\n }\n\n return null;\n}\n\nexport function prepareInjectedParamsForSafeIframe(\n provider: EIP1193Provider,\n logger?: LoggerInstance\n): InjectedExternalConnectorParameters | null {\n try {\n const wrappedProvider = wrapSafeIframeExternalProvider(provider);\n if (wrappedProvider === null) {\n return null;\n }\n return {\n target: {\n id: EXTERNAL_CONNECTOR_SAFE_ID,\n name: \"External\",\n provider: wrappedProvider,\n },\n };\n } catch (error) {\n logger?.error(\"Failed to prepare injected params for Safe\", error);\n return null;\n }\n}\n\nexport function prepareInjectedParamsForSafeWalletConnect(\n provider: EIP1193Provider,\n logger?: LoggerInstance\n): InjectedExternalConnectorParameters | null {\n try {\n const metadata = getWalletConnectMetadata(provider);\n if (!metadata) {\n // not WalletConnect provider\n return null;\n }\n\n const target = {\n id: EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID,\n name: \"External\",\n provider,\n } as const;\n\n const isSafeThroughWalletConnect = isSafeConnectorThroughWalletConnect({\n connectorType: injected.type,\n connectorId: target.id,\n name: metadata.name,\n });\n\n if (!isSafeThroughWalletConnect) {\n // not Safe through WalletConnect\n return null;\n }\n\n return {\n target,\n };\n } catch (error) {\n logger?.error(\n \"Failed to prepare injected params for Safe WalletConnect\",\n error\n );\n return null;\n }\n}\n"],"names":["wrapSafeIframeExternalProvider","provider","isSafeIframeProvider","request","args","method","result","on","bind","removeListener","prepareInjectedParamsForSafeIframe","logger","wrappedProvider","target","id","EXTERNAL_CONNECTOR_SAFE_ID","name","error","prepareInjectedParamsForSafeWalletConnect","metadata","getWalletConnectMetadata","EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID","isSafeThroughWalletConnect","isSafeConnectorThroughWalletConnect","connectorType","injected","type","connectorId"],"mappings":";;;;;;AAcA,SAASA,+BACPC,QAAAA,EACwB;AACxB,EAAA,IAAIC,oBAAAA,CAAqBD,QAAQ,CAAA,EAAG;AAGlC,IAAA,MAAME,OAAAA,GAAW,OAAOC,IAAAA,KAAS;AAC/B,MAAA,IAAIA,IAAAA,CAAKC,WAAW,qBAAA,EAAuB;AACzC,QAAA,OAAOJ,SAASE,OAAAA,CAAQ;AAAA,UAAEE,MAAAA,EAAQ;AAAA,SAAgB,CAAA;AAAA,MACpD;AAEA,MAAA,MAAMC,MAAAA,GAAS,MAAML,QAAAA,CAASE,OAAAA,CAAQC,IAAW,CAAA;AACjD,MAAA,OAAOE,MAAAA;AAAAA,IACT,CAAA;AAEA,IAAA,MAAMC,EAAAA,GAAKN,QAAAA,CAASM,EAAAA,EAAIC,IAAAA,CAAKP,QAAQ,CAAA;AACrC,IAAA,MAAMQ,cAAAA,GAAiBR,QAAAA,CAASQ,cAAAA,EAAgBD,IAAAA,CAAKP,QAAQ,CAAA;AAC7D,IAAA,OAAO;AAAA,MACL,GAAGA,QAAAA;AAAAA,MACHE,OAAAA;AAAAA,MACAI,EAAAA;AAAAA,MACAE;AAAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,SAASC,kCAAAA,CACdT,UACAU,MAAAA,EAC4C;AAC5C,EAAA,IAAI;AACF,IAAA,MAAMC,eAAAA,GAAkBZ,+BAA+BC,QAAQ,CAAA;AAC/D,IAAA,IAAIW,oBAAoB,IAAA,EAAM;AAC5B,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,OAAO;AAAA,MACLC,MAAAA,EAAQ;AAAA,QACNC,EAAAA,EAAIC,0BAAAA;AAAAA,QACJC,IAAAA,EAAM,UAAA;AAAA,QACNf,QAAAA,EAAUW;AAAAA;AACZ,KACF;AAAA,EACF,SAASK,KAAAA,EAAO;AACdN,IAAAA,MAAAA,EAAQM,KAAAA,CAAM,8CAA8CA,KAAK,CAAA;AACjE,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEO,SAASC,yCAAAA,CACdjB,UACAU,MAAAA,EAC4C;AAC5C,EAAA,IAAI;AACF,IAAA,MAAMQ,QAAAA,GAAWC,yBAAyBnB,QAAQ,CAAA;AAClD,IAAA,IAAI,CAACkB,QAAAA,EAAU;AAEb,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAMN,MAAAA,GAAS;AAAA,MACbC,EAAAA,EAAIO,wCAAAA;AAAAA,MACJL,IAAAA,EAAM,UAAA;AAAA,MACNf;AAAAA,KACF;AAEA,IAAA,MAAMqB,6BAA6BC,mCAAAA,CAAoC;AAAA,MACrEC,eAAeC,QAAAA,CAASC,IAAAA;AAAAA,MACxBC,aAAad,MAAAA,CAAOC,EAAAA;AAAAA,MACpBE,MAAMG,QAAAA,CAASH;AAAAA,KAChB,CAAA;AAED,IAAA,IAAI,CAACM,0BAAAA,EAA4B;AAE/B,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,OAAO;AAAA,MACLT;AAAAA,KACF;AAAA,EACF,SAASI,KAAAA,EAAO;AACdN,IAAAA,MAAAA,EAAQM,KAAAA,CACN,4DACAA,KACF,CAAA;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AACF;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Connector } from '@wagmi/core';
|
|
2
|
+
import { injected } from 'wagmi/connectors';
|
|
3
|
+
import { EXTERNAL_CONNECTOR_SAFE_ID, EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID, ExternalConnectorId } from './constants';
|
|
4
|
+
import { SafeMinConnector } from '../../../hooks/connectors/useIsGnosisSafeConnector';
|
|
5
|
+
export declare function isExternalConnector<T extends Pick<Connector, "type" | "id">>(connector: T): connector is T & {
|
|
6
|
+
id: ExternalConnectorId;
|
|
7
|
+
type: typeof injected.type;
|
|
8
|
+
};
|
|
9
|
+
type SafeIframeMinConnector = {
|
|
10
|
+
id: typeof EXTERNAL_CONNECTOR_SAFE_ID;
|
|
11
|
+
type: typeof injected.type;
|
|
12
|
+
};
|
|
13
|
+
type SafeWalletConnectMinConnector = {
|
|
14
|
+
id: typeof EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID;
|
|
15
|
+
type: typeof injected.type;
|
|
16
|
+
};
|
|
17
|
+
export declare function isExternalConnectorSafeIframe<T extends Pick<Connector, "type" | "id">>(connector: T): connector is T & SafeIframeMinConnector;
|
|
18
|
+
export declare function isExternalConnectorSafeWalletConnect<T extends Pick<Connector, "type" | "id">>(connector: T): connector is T & SafeWalletConnectMinConnector;
|
|
19
|
+
export declare function useIsExternalConnectorWithSafe(): boolean;
|
|
20
|
+
export declare function isConnectorWithSafeProvider<T extends Pick<Connector, "type" | "id">>(connector: T): connector is T & (SafeMinConnector | SafeIframeMinConnector | SafeWalletConnectMinConnector);
|
|
21
|
+
export declare function isConnectorWithSafeIframeProvider<T extends Pick<Connector, "type" | "id">>(connector: T): connector is T & (SafeIframeMinConnector | SafeMinConnector);
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAEL,0BAA0B,EAC1B,wCAAwC,EACxC,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AAErB,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,6CAA6C,CAAC;AAErD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,EAC1E,SAAS,EAAE,CAAC,GACX,SAAS,IAAI,CAAC,GAAG;IAClB,EAAE,EAAE,mBAAmB,CAAC;IACxB,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;CAC5B,CAOA;AAED,KAAK,sBAAsB,GAAG;IAC5B,EAAE,EAAE,OAAO,0BAA0B,CAAC;IACtC,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;CAC5B,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,EAAE,EAAE,OAAO,wCAAwC,CAAC;IACpD,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;CAC5B,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,EACxC,SAAS,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,GAAG,sBAAsB,CAKvD;AAED,wBAAgB,oCAAoC,CAClD,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,EACxC,SAAS,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,GAAG,6BAA6B,CAK9D;AAED,wBAAgB,8BAA8B,IAAI,OAAO,CAIxD;AAED,wBAAgB,2BAA2B,CACzC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,EAExC,SAAS,EAAE,CAAC,GACX,SAAS,IAAI,CAAC,GACf,CAAC,gBAAgB,GAAG,sBAAsB,GAAG,6BAA6B,CAAC,CAM5E;AAED,wBAAgB,iCAAiC,CAC/C,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,EACxC,SAAS,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,GAAG,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAE5E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
+
import { injected } from 'wagmi/connectors';
|
|
3
|
+
import { EXTERNAL_CONNECTOR_SAFE_ID, EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID, EXTERNAL_CONNECTOR_ID } from './constants.js';
|
|
4
|
+
import { useAccount } from 'wagmi';
|
|
5
|
+
import { isSafeConnector } from '../../../hooks/connectors/useIsGnosisSafeConnector.js';
|
|
6
|
+
|
|
7
|
+
function isExternalConnector(connector) {
|
|
8
|
+
return connector.type === injected.type && (connector.id === EXTERNAL_CONNECTOR_ID || connector.id === EXTERNAL_CONNECTOR_SAFE_ID || connector.id === EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID);
|
|
9
|
+
}
|
|
10
|
+
function isExternalConnectorSafeIframe(connector) {
|
|
11
|
+
return connector.type === injected.type && connector.id === EXTERNAL_CONNECTOR_SAFE_ID;
|
|
12
|
+
}
|
|
13
|
+
function isExternalConnectorSafeWalletConnect(connector) {
|
|
14
|
+
return connector.type === injected.type && connector.id === EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID;
|
|
15
|
+
}
|
|
16
|
+
function useIsExternalConnectorWithSafe() {
|
|
17
|
+
const $ = distExports.c(2);
|
|
18
|
+
const {
|
|
19
|
+
connector
|
|
20
|
+
} = useAccount();
|
|
21
|
+
if (!connector) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
let t0;
|
|
25
|
+
if ($[0] !== connector) {
|
|
26
|
+
t0 = isExternalConnectorSafeIframe(connector);
|
|
27
|
+
$[0] = connector;
|
|
28
|
+
$[1] = t0;
|
|
29
|
+
} else {
|
|
30
|
+
t0 = $[1];
|
|
31
|
+
}
|
|
32
|
+
return t0;
|
|
33
|
+
}
|
|
34
|
+
function isConnectorWithSafeProvider(connector) {
|
|
35
|
+
return isSafeConnector(connector) || isExternalConnectorSafeIframe(connector) || isExternalConnectorSafeWalletConnect(connector);
|
|
36
|
+
}
|
|
37
|
+
function isConnectorWithSafeIframeProvider(connector) {
|
|
38
|
+
return isSafeConnector(connector) || isExternalConnectorSafeIframe(connector);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { isConnectorWithSafeIframeProvider, isConnectorWithSafeProvider, isExternalConnector, isExternalConnectorSafeIframe, isExternalConnectorSafeWalletConnect, useIsExternalConnectorWithSafe };
|
|
42
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/components/web3/ConnectExternalProvider/utils.ts"],"sourcesContent":["import type { Connector } from \"@wagmi/core\";\nimport { injected } from \"wagmi/connectors\";\nimport {\n EXTERNAL_CONNECTOR_ID,\n EXTERNAL_CONNECTOR_SAFE_ID,\n EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID,\n type ExternalConnectorId,\n} from \"./constants\";\nimport { useAccount } from \"wagmi\";\nimport {\n isSafeConnector,\n type SafeMinConnector,\n} from \"@/hooks/connectors/useIsGnosisSafeConnector\";\n\nexport function isExternalConnector<T extends Pick<Connector, \"type\" | \"id\">>(\n connector: T\n): connector is T & {\n id: ExternalConnectorId;\n type: typeof injected.type;\n} {\n return (\n connector.type === injected.type &&\n (connector.id === EXTERNAL_CONNECTOR_ID ||\n connector.id === EXTERNAL_CONNECTOR_SAFE_ID ||\n connector.id === EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID)\n );\n}\n\ntype SafeIframeMinConnector = {\n id: typeof EXTERNAL_CONNECTOR_SAFE_ID;\n type: typeof injected.type;\n};\n\ntype SafeWalletConnectMinConnector = {\n id: typeof EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID;\n type: typeof injected.type;\n};\n\nexport function isExternalConnectorSafeIframe<\n T extends Pick<Connector, \"type\" | \"id\">,\n>(connector: T): connector is T & SafeIframeMinConnector {\n return (\n connector.type === injected.type &&\n connector.id === EXTERNAL_CONNECTOR_SAFE_ID\n );\n}\n\nexport function isExternalConnectorSafeWalletConnect<\n T extends Pick<Connector, \"type\" | \"id\">,\n>(connector: T): connector is T & SafeWalletConnectMinConnector {\n return (\n connector.type === injected.type &&\n connector.id === EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID\n );\n}\n\nexport function useIsExternalConnectorWithSafe(): boolean {\n const { connector } = useAccount();\n if (!connector) return false;\n return isExternalConnectorSafeIframe(connector);\n}\n\nexport function isConnectorWithSafeProvider<\n T extends Pick<Connector, \"type\" | \"id\">,\n>(\n connector: T\n): connector is T &\n (SafeMinConnector | SafeIframeMinConnector | SafeWalletConnectMinConnector) {\n return (\n isSafeConnector(connector) ||\n isExternalConnectorSafeIframe(connector) ||\n isExternalConnectorSafeWalletConnect(connector)\n );\n}\n\nexport function isConnectorWithSafeIframeProvider<\n T extends Pick<Connector, \"type\" | \"id\">,\n>(connector: T): connector is T & (SafeIframeMinConnector | SafeMinConnector) {\n return isSafeConnector(connector) || isExternalConnectorSafeIframe(connector);\n}\n"],"names":["isExternalConnector","connector","type","injected","id","EXTERNAL_CONNECTOR_ID","EXTERNAL_CONNECTOR_SAFE_ID","EXTERNAL_CONNECTOR_SAFE_WALLETCONNECT_ID","isExternalConnectorSafeIframe","isExternalConnectorSafeWalletConnect","useIsExternalConnectorWithSafe","$","_c","useAccount","t0","isConnectorWithSafeProvider","isSafeConnector","isConnectorWithSafeIframeProvider"],"mappings":";;;;;;AAcO,SAASA,oBACdC,SAAAA,EAIA;AACA,EAAA,OACEA,SAAAA,CAAUC,IAAAA,KAASC,QAAAA,CAASD,IAAAA,KAC3BD,SAAAA,CAAUG,EAAAA,KAAOC,qBAAAA,IAChBJ,SAAAA,CAAUG,EAAAA,KAAOE,0BAAAA,IACjBL,SAAAA,CAAUG,EAAAA,KAAOG,wCAAAA,CAAAA;AAEvB;AAYO,SAASC,8BAEdP,SAAAA,EAAuD;AACvD,EAAA,OACEA,SAAAA,CAAUC,IAAAA,KAASC,QAAAA,CAASD,IAAAA,IAC5BD,UAAUG,EAAAA,KAAOE,0BAAAA;AAErB;AAEO,SAASG,qCAEdR,SAAAA,EAA8D;AAC9D,EAAA,OACEA,SAAAA,CAAUC,IAAAA,KAASC,QAAAA,CAASD,IAAAA,IAC5BD,UAAUG,EAAAA,KAAOG,wCAAAA;AAErB;AAEO,SAAAG,8BAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAA;AAAA,IAAAX;AAAAA,MAAsBY,UAAAA,EAAW;AACjC,EAAA,IAAI,CAACZ,SAAAA,EAAS;AAAA,IAAA,OAAS,KAAA;AAAA,EAAK;AAAC,EAAA,IAAAa,EAAAA;AAAA,EAAA,IAAAH,CAAAA,QAAAV,SAAAA,EAAA;AACtBa,IAAAA,EAAAA,GAAAN,8BAA8BP,SAAS,CAAA;AAACU,IAAAA,CAAAA,MAAAV,SAAAA;AAAAU,IAAAA,CAAAA,MAAAG,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAH,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAAxCG,EAAAA;AAAwC;AAG1C,SAASC,4BAGdd,SAAAA,EAE4E;AAC5E,EAAA,OACEe,gBAAgBf,SAAS,CAAA,IACzBO,8BAA8BP,SAAS,CAAA,IACvCQ,qCAAqCR,SAAS,CAAA;AAElD;AAEO,SAASgB,kCAEdhB,SAAAA,EAA4E;AAC5E,EAAA,OAAOe,eAAAA,CAAgBf,SAAS,CAAA,IAAKO,6BAAAA,CAA8BP,SAAS,CAAA;AAC9E;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/web3/ConnectWallets/index.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport {\n BasicConnectorsButtons,\n PrivyWalletButton,\n} from \"./WalletConnectButtons\";\nimport { useAccount, useConnect, useDisconnect, type Connector } from \"wagmi\";\nimport type { ActivateConnectionObject, MinConnector } from \"./types\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\ntype ConnectWalletsProps = {\n children: React.ReactNode;\n};\n\nfunction ConnectWalletsInitial({ children }: ConnectWalletsProps) {\n return (\n <div className=\"flex flex-col gap-[16px] pr-[24px] pl-[24px] pb-[32px] w-full\">\n {children}\n </div>\n );\n}\n\nfunction ConnectWalletsMultiInjected({ children }: ConnectWalletsProps) {\n return (\n <div className=\"p-[16px] pb-[32px] w-full grid grid-cols-[repeat(auto-fit,minmax(120px,1fr))] justify-items-center gap-[16px]\">\n {children}\n </div>\n );\n}\n\ntype ConnectWalletSteps = \"initial\" | \"multiinjected\";\n\ntype ConnectWalletsContainerProps = {\n onComplete?: (connector?: Connector | MinConnector) => void;\n};\n\nexport function ConnectWalletsContainer({\n onComplete,\n}: ConnectWalletsContainerProps) {\n const [step, setStep] = useState<ConnectWalletSteps>(\"initial\");\n\n const { connectAsync, connectors } = useConnect();\n const { connector: currentConnector } = useAccount();\n const { disconnect } = useDisconnect();\n\n const activeConnectorId = currentConnector?.id;\n\n const handleActivate = async (connectorObject?: ActivateConnectionObject) => {\n if (!connectorObject) {\n onComplete?.();\n return;\n }\n\n const { connectorForChecks, connectorForConnection } =\n \"connectorFunction\" in connectorObject\n ? {\n // connectorFunction only comes from Privy so far\n connectorForChecks: connectorObject.minConnector,\n connectorForConnection: connectorObject.connectorFunction,\n }\n : {\n connectorForChecks: connectorObject.connector,\n connectorForConnection: connectorObject.connector,\n };\n\n const isAlreadyActive = activeConnectorId === connectorForChecks.id;\n if (isAlreadyActive) {\n onComplete?.(connectorForChecks);\n return;\n }\n\n if (isMainInjectedConnector(connectorForChecks)) {\n setStep(\"multiinjected\");\n return;\n }\n\n if (currentConnector) {\n disconnect({ connector: currentConnector });\n }\n\n await connectAsync({ connector: connectorForConnection });\n onComplete?.(connectorForChecks);\n };\n\n return (\n <div className=\"max-w-[460px]\">\n {step === \"initial\" && (\n <InitialStep\n connectors={connectors}\n activeConnectorId={activeConnectorId}\n handleActivate={handleActivate}\n />\n )}\n {step === \"multiinjected\" && (\n <MultiInjectedStep\n connectors={connectors}\n activeConnectorId={activeConnectorId}\n handleActivate={handleActivate}\n />\n )}\n </div>\n );\n}\n\nfunction isInjectedConnector(connector: Pick<Connector, \"type\">) {\n return connector.type === \"injected\";\n}\n\nfunction isUniqueInjectedConnector(connector: Pick<Connector, \"type\" | \"id\">) {\n // detected by injected() connector but not injected() itself\n return isInjectedConnector(connector) && connector.id !== \"injected\";\n}\n\nfunction isMainInjectedConnector(connector: Pick<Connector, \"type\" | \"id\">) {\n return isInjectedConnector(connector) && connector.id === \"injected\";\n}\n\nfunction isDistinctWalletOrMainInjectedConnector(\n connector: Pick<Connector, \"type\" | \"id\">\n) {\n return connector.type !== \"injected\" || isMainInjectedConnector(connector);\n}\n\nfunction isDistinctWalletExceptMainInjectedConnector(\n connector: Pick<Connector, \"type\" | \"id\">\n) {\n return !isMainInjectedConnector(connector);\n}\n\ntype ConnectStepProps = {\n connectors: readonly Connector[];\n activeConnectorId?: string;\n handleActivate: (connector?: ActivateConnectionObject) => void;\n};\n\nconst privyWalletFauxConnector = {\n id: \"io.privy.wallet\", // real id getting assigned to injectd({target: privyProvider}) on connection\n name: \"Privy Wallet\", // real name getting assigned to injectd({target: privyProvider}) on connection\n type: \"injected\", // real type that comes from injected() connector\n};\n\nfunction sortConnectors(\n connectors: readonly Connector[]\n): readonly Connector[] {\n /**\n * walletConnect first, then all injected, then coinbaseWallet, then Privy\n */\n return connectors.slice().sort((a, b) => {\n // walletConnect first\n if (a.type === \"walletConnect\") return -1;\n if (b.type === \"walletConnect\") return 1;\n\n // injected wallets second\n if (a.type === \"injected\") return -1;\n if (b.type === \"injected\") return 1;\n\n // coinbaseWallet third\n if (a.type === \"coinbaseWallet\") return -1;\n if (b.type === \"coinbaseWallet\") return 1;\n\n // Privy fourth\n if (a.type === \"privy\") return -1;\n if (b.type === \"privy\") return 1;\n\n // Keep other connectors in their original order\n return 0;\n });\n}\n\nfunction InitialStep({\n connectors,\n activeConnectorId,\n handleActivate,\n}: ConnectStepProps) {\n const injectedConnectors = connectors.filter(isInjectedConnector);\n // 1 of them is injected(), second is metamask() or some other if available\n // injected() is always there\n const onlyOneInjectedWalletDetected = injectedConnectors.length === 2;\n\n const displayedConnectors = connectors.filter(\n onlyOneInjectedWalletDetected\n ? // only MMask detected among injected, use it right away\n isDistinctWalletExceptMainInjectedConnector\n : // injected wallets>1, show BrowserWallets and go to next step onClick\n isDistinctWalletOrMainInjectedConnector\n );\n\n const sortedConnectors = sortConnectors(displayedConnectors);\n\n const widgetConfig = useWidgetConfig();\n\n return (\n <ConnectWalletsInitial>\n <BasicConnectorsButtons\n connectors={sortedConnectors}\n activeConnectorId={activeConnectorId}\n onActivate={handleActivate}\n />\n {widgetConfig.privyAppId && (\n <PrivyWalletButton\n onActivate={handleActivate}\n connector={privyWalletFauxConnector}\n activeConnectorId={activeConnectorId}\n privyAppId={widgetConfig.privyAppId}\n privyClientId={widgetConfig.privyClientId}\n />\n )}\n </ConnectWalletsInitial>\n );\n}\n\nfunction MultiInjectedStep({\n connectors,\n activeConnectorId,\n handleActivate,\n}: ConnectStepProps) {\n const displayedConnectors = connectors.filter(isUniqueInjectedConnector);\n\n return (\n <ConnectWalletsMultiInjected>\n <BasicConnectorsButtons\n connectors={displayedConnectors}\n activeConnectorId={activeConnectorId}\n onActivate={handleActivate}\n compact\n />\n </ConnectWalletsMultiInjected>\n );\n}\n"],"names":["ConnectWalletsInitial","t0","$","_c","children","t1","ConnectWalletsMultiInjected","ConnectWalletsContainer","onComplete","step","setStep","useState","connectAsync","connectors","useConnect","connector","currentConnector","useAccount","disconnect","useDisconnect","activeConnectorId","id","connectorObject","connectorForChecks","connectorForConnection","minConnector","connectorFunction","isAlreadyActive","isMainInjectedConnector","handleActivate","t2","t3","t4","isInjectedConnector","type","isUniqueInjectedConnector","isDistinctWalletOrMainInjectedConnector","isDistinctWalletExceptMainInjectedConnector","privyWalletFauxConnector","name","sortConnectors","slice","sort","a","b","InitialStep","filter","injectedConnectors","onlyOneInjectedWalletDetected","length","displayedConnectors","sortedConnectors","widgetConfig","useWidgetConfig","privyAppId","privyClientId","t5","MultiInjectedStep"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/web3/ConnectWallets/index.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport {\n BasicConnectorsButtons,\n PrivyWalletButton,\n} from \"./WalletConnectButtons\";\nimport { useAccount, useConnect, useDisconnect, type Connector } from \"wagmi\";\nimport type { ActivateConnectionObject, MinConnector } from \"./types\";\nimport { useWidgetConfig } from \"@/core/state/configAtom\";\n\ntype ConnectWalletsProps = {\n children: React.ReactNode;\n};\n\nfunction ConnectWalletsInitial({ children }: ConnectWalletsProps) {\n return (\n <div className=\"flex flex-col gap-[16px] pr-[24px] pl-[24px] pb-[32px] w-full\">\n {children}\n </div>\n );\n}\n\nfunction ConnectWalletsMultiInjected({ children }: ConnectWalletsProps) {\n return (\n <div className=\"p-[16px] pb-[32px] w-full grid grid-cols-[repeat(auto-fit,minmax(120px,1fr))] justify-items-center gap-[16px]\">\n {children}\n </div>\n );\n}\n\ntype ConnectWalletSteps = \"initial\" | \"multiinjected\";\n\ntype ConnectWalletsContainerProps = {\n onComplete?: (connector?: Connector | MinConnector) => void;\n};\n\nexport function ConnectWalletsContainer({\n onComplete,\n}: ConnectWalletsContainerProps) {\n const [step, setStep] = useState<ConnectWalletSteps>(\"initial\");\n\n const { connectAsync, connectors } = useConnect();\n const { connector: currentConnector } = useAccount();\n const { disconnect } = useDisconnect();\n\n const activeConnectorId = currentConnector?.id;\n\n const handleActivate = async (connectorObject?: ActivateConnectionObject) => {\n if (!connectorObject) {\n onComplete?.();\n return;\n }\n\n const { connectorForChecks, connectorForConnection } =\n \"connectorFunction\" in connectorObject\n ? {\n // connectorFunction only comes from Privy so far\n connectorForChecks: connectorObject.minConnector,\n connectorForConnection: connectorObject.connectorFunction,\n }\n : {\n connectorForChecks: connectorObject.connector,\n connectorForConnection: connectorObject.connector,\n };\n\n const isAlreadyActive = activeConnectorId === connectorForChecks.id;\n if (isAlreadyActive) {\n onComplete?.(connectorForChecks);\n return;\n }\n\n if (isMainInjectedConnector(connectorForChecks)) {\n setStep(\"multiinjected\");\n return;\n }\n\n if (currentConnector) {\n disconnect({ connector: currentConnector });\n }\n\n await connectAsync({ connector: connectorForConnection });\n onComplete?.(connectorForChecks);\n };\n\n return (\n <div className=\"max-w-[460px]\">\n {step === \"initial\" && (\n <InitialStep\n connectors={connectors}\n activeConnectorId={activeConnectorId}\n handleActivate={handleActivate}\n />\n )}\n {step === \"multiinjected\" && (\n <MultiInjectedStep\n connectors={connectors}\n activeConnectorId={activeConnectorId}\n handleActivate={handleActivate}\n />\n )}\n </div>\n );\n}\n\nfunction isInjectedConnector(connector: Pick<Connector, \"type\">) {\n return connector.type === \"injected\";\n}\n\nfunction isUniqueInjectedConnector(connector: Pick<Connector, \"type\" | \"id\">) {\n // detected by injected() connector but not injected() itself\n return isInjectedConnector(connector) && connector.id !== \"injected\";\n}\n\nfunction isMainInjectedConnector(connector: Pick<Connector, \"type\" | \"id\">) {\n return isInjectedConnector(connector) && connector.id === \"injected\";\n}\n\nfunction isDistinctWalletOrMainInjectedConnector(\n connector: Pick<Connector, \"type\" | \"id\">\n) {\n return connector.type !== \"injected\" || isMainInjectedConnector(connector);\n}\n\nfunction isDistinctWalletExceptMainInjectedConnector(\n connector: Pick<Connector, \"type\" | \"id\">\n) {\n return !isMainInjectedConnector(connector);\n}\n\ntype ConnectStepProps = {\n connectors: readonly Connector[];\n activeConnectorId?: string;\n handleActivate: (connector?: ActivateConnectionObject) => void;\n};\n\nconst privyWalletFauxConnector = {\n id: \"io.privy.wallet\", // real id getting assigned to injectd({target: privyProvider}) on connection\n name: \"Privy Wallet\", // real name getting assigned to injectd({target: privyProvider}) on connection\n type: \"injected\", // real type that comes from injected() connector\n};\n\nfunction sortConnectors(\n connectors: readonly Connector[]\n): readonly Connector[] {\n /**\n * walletConnect first, then all injected, then coinbaseWallet, then Privy\n */\n return connectors.slice().sort((a, b) => {\n // walletConnect first\n if (a.type === \"walletConnect\") return -1;\n if (b.type === \"walletConnect\") return 1;\n\n // injected wallets second\n if (a.type === \"injected\") return -1;\n if (b.type === \"injected\") return 1;\n\n // coinbaseWallet third\n if (a.type === \"coinbaseWallet\") return -1;\n if (b.type === \"coinbaseWallet\") return 1;\n\n // Privy fourth\n if (a.type === \"privy\") return -1;\n if (b.type === \"privy\") return 1;\n\n // Keep other connectors in their original order\n return 0;\n });\n}\n\nfunction InitialStep({\n connectors,\n activeConnectorId,\n handleActivate,\n}: ConnectStepProps) {\n const injectedConnectors = connectors.filter(isInjectedConnector);\n // 1 of them is injected(), second is metamask() or some other if available\n // injected() is always there\n const onlyOneInjectedWalletDetected = injectedConnectors.length === 2;\n\n const displayedConnectors = connectors.filter(\n onlyOneInjectedWalletDetected\n ? // only MetaMask (or any other single injected wallet) detected among injected? use it right away\n isDistinctWalletExceptMainInjectedConnector\n : // injected wallets>1? show BrowserWallets and go to next step onClick\n isDistinctWalletOrMainInjectedConnector\n );\n\n const sortedConnectors = sortConnectors(displayedConnectors);\n\n const widgetConfig = useWidgetConfig();\n\n return (\n <ConnectWalletsInitial>\n <BasicConnectorsButtons\n connectors={sortedConnectors}\n activeConnectorId={activeConnectorId}\n onActivate={handleActivate}\n />\n {widgetConfig.privyAppId && (\n <PrivyWalletButton\n onActivate={handleActivate}\n connector={privyWalletFauxConnector}\n activeConnectorId={activeConnectorId}\n privyAppId={widgetConfig.privyAppId}\n privyClientId={widgetConfig.privyClientId}\n />\n )}\n </ConnectWalletsInitial>\n );\n}\n\nfunction MultiInjectedStep({\n connectors,\n activeConnectorId,\n handleActivate,\n}: ConnectStepProps) {\n const displayedConnectors = connectors.filter(isUniqueInjectedConnector);\n\n return (\n <ConnectWalletsMultiInjected>\n <BasicConnectorsButtons\n connectors={displayedConnectors}\n activeConnectorId={activeConnectorId}\n onActivate={handleActivate}\n compact\n />\n </ConnectWalletsMultiInjected>\n );\n}\n"],"names":["ConnectWalletsInitial","t0","$","_c","children","t1","ConnectWalletsMultiInjected","ConnectWalletsContainer","onComplete","step","setStep","useState","connectAsync","connectors","useConnect","connector","currentConnector","useAccount","disconnect","useDisconnect","activeConnectorId","id","connectorObject","connectorForChecks","connectorForConnection","minConnector","connectorFunction","isAlreadyActive","isMainInjectedConnector","handleActivate","t2","t3","t4","isInjectedConnector","type","isUniqueInjectedConnector","isDistinctWalletOrMainInjectedConnector","isDistinctWalletExceptMainInjectedConnector","privyWalletFauxConnector","name","sortConnectors","slice","sort","a","b","InitialStep","filter","injectedConnectors","onlyOneInjectedWalletDetected","length","displayedConnectors","sortedConnectors","widgetConfig","useWidgetConfig","privyAppId","privyClientId","t5","MultiInjectedStep"],"mappings":"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"}
|