@velora-dex/widget 0.3.11-dev.3 → 0.3.11-dev.5
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 +84 -65
- package/dist/components/web3/ConnectExternalProvider/AutoconnectExternal.js.map +1 -1
- package/dist/components/web3/ConnectExternalProvider/constants.d.ts +2 -0
- package/dist/components/web3/ConnectExternalProvider/constants.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/constants.js +4 -0
- package/dist/components/web3/ConnectExternalProvider/constants.js.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/utils.d.ts +8 -0
- package/dist/components/web3/ConnectExternalProvider/utils.d.ts.map +1 -0
- package/dist/components/web3/ConnectExternalProvider/utils.js +9 -0
- package/dist/components/web3/ConnectExternalProvider/utils.js.map +1 -0
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts +4 -1
- package/dist/components/web3/ConnectWallets/walletIcons.d.ts.map +1 -1
- package/dist/components/web3/ConnectWallets/walletIcons.js +18 -7
- 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 +7 -0
- package/dist/configurator/Safe/useSafeConnector.d.ts.map +1 -0
- package/dist/core/limit/useLimitTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/limit/useLimitTokenFromInputProps.js +15 -2
- package/dist/core/limit/useLimitTokenFromInputProps.js.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.d.ts.map +1 -1
- package/dist/core/otc/useOtcTokenFromInputProps.js +15 -2
- package/dist/core/otc/useOtcTokenFromInputProps.js.map +1 -1
- 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 +9 -0
- package/dist/core/state/externalProviderAtom.d.ts.map +1 -1
- package/dist/core/state/externalProviderAtom.js +28 -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/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/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 +9 -2
- package/dist/hooks/connectors/useIsConnectedSafe.js.map +1 -1
- package/dist/hooks/connectors/useIsGnosisSafeConnector.d.ts +4 -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 +1 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.d.ts.map +1 -1
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js +16 -2
- package/dist/hooks/connectors/useIsSafeThroughWalletConnect.js.map +1 -1
- package/dist/hooks/otc/mutations/useFillOrder.js +3 -14
- package/dist/hooks/otc/mutations/useFillOrder.js.map +1 -1
- package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +0 -12
- 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/prices/delta/queries/useDeltaPriceQuery.d.ts +2 -4
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/delta/queries/useDeltaPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts +1 -3
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.d.ts.map +1 -1
- package/dist/hooks/swap/prices/market/queries/useMarketPriceQuery.js.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.d.ts +1 -3
- package/dist/hooks/swap/prices/usePricesParams.d.ts.map +1 -1
- package/dist/hooks/swap/prices/usePricesParams.js +0 -5
- package/dist/hooks/swap/prices/usePricesParams.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 +71 -20
- package/dist/hooks/txs/queries/useAwaitTx.js.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 +10 -3
- package/dist/lib/web3/wagmi/external.d.ts.map +1 -1
- package/dist/lib/web3/wagmi/external.js +17 -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 +5 -1
- 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 +35 -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 +11 -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 +7 -4
- 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 +41 -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 +66 -17
- 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 +11 -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 +6 -1
- package/dist/transactions/utils.js.map +1 -1
- package/package.json +4 -2
|
@@ -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":"AAeA,wBAAgB,2BAA2B,SAkB1C"}
|
|
@@ -1,85 +1,104 @@
|
|
|
1
1
|
import { d as distExports } from '../../../_virtual/index.js';
|
|
2
|
-
import { useExternalProvider } from '../../../core/state/externalProviderAtom.js';
|
|
3
|
-
import { useConnect, useDisconnect
|
|
4
|
-
import {
|
|
2
|
+
import { useExternalProvider, isSafeIframeProvider } from '../../../core/state/externalProviderAtom.js';
|
|
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';
|
|
5
10
|
|
|
6
|
-
const EXTERNAL_CONNECTOR_ID = "external_provider_from_App";
|
|
7
11
|
function AutoconnectExternalProvider() {
|
|
8
|
-
const $ = distExports.c(
|
|
12
|
+
const $ = distExports.c(6);
|
|
9
13
|
const externalProvider = useExternalProvider();
|
|
10
14
|
const {
|
|
11
|
-
|
|
15
|
+
connectAsync
|
|
12
16
|
} = useConnect();
|
|
13
17
|
const {
|
|
14
|
-
|
|
18
|
+
disconnectAsync
|
|
15
19
|
} = useDisconnect();
|
|
16
|
-
const
|
|
17
|
-
connector: currentConnector
|
|
18
|
-
} = useAccount();
|
|
19
|
-
const connectorIsExternal = currentConnector?.id === EXTERNAL_CONNECTOR_ID;
|
|
20
|
+
const logger = useLogger("AutoconnectExternalProvider");
|
|
20
21
|
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
22
|
let t1;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
23
|
+
if ($[0] !== connectAsync || $[1] !== disconnectAsync || $[2] !== externalProvider || $[3] !== logger) {
|
|
24
|
+
t0 = () => {
|
|
25
|
+
connectDisconnect({
|
|
26
|
+
externalProvider,
|
|
27
|
+
logger,
|
|
28
|
+
disconnectAsync,
|
|
29
|
+
connectAsync
|
|
30
|
+
});
|
|
43
31
|
};
|
|
44
|
-
|
|
45
|
-
$[
|
|
46
|
-
$[
|
|
32
|
+
t1 = [externalProvider, connectAsync, disconnectAsync, logger];
|
|
33
|
+
$[0] = connectAsync;
|
|
34
|
+
$[1] = disconnectAsync;
|
|
35
|
+
$[2] = externalProvider;
|
|
36
|
+
$[3] = logger;
|
|
37
|
+
$[4] = t0;
|
|
47
38
|
$[5] = t1;
|
|
48
|
-
$[6] = t2;
|
|
49
39
|
} else {
|
|
40
|
+
t0 = $[4];
|
|
50
41
|
t1 = $[5];
|
|
51
|
-
t2 = $[6];
|
|
52
42
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
connect({
|
|
63
|
-
connector: injected({
|
|
64
|
-
target: {
|
|
65
|
-
id: EXTERNAL_CONNECTOR_ID,
|
|
66
|
-
name: "External",
|
|
67
|
-
provider: externalProvider
|
|
68
|
-
}
|
|
69
|
-
})
|
|
43
|
+
useEffect(t0, t1);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
function wrapExternalProvider(provider) {
|
|
47
|
+
if (!isSafeIframeProvider(provider)) return provider;
|
|
48
|
+
const request = async (args) => {
|
|
49
|
+
if (args.method === "eth_requestAccounts") {
|
|
50
|
+
return provider.request({
|
|
51
|
+
method: "eth_accounts"
|
|
70
52
|
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
53
|
+
}
|
|
54
|
+
const result = await provider.request(args);
|
|
55
|
+
return result;
|
|
56
|
+
};
|
|
57
|
+
const on = provider.on?.bind(provider);
|
|
58
|
+
const removeListener = provider.removeListener?.bind(provider);
|
|
59
|
+
return {
|
|
60
|
+
...provider,
|
|
61
|
+
request,
|
|
62
|
+
on,
|
|
63
|
+
removeListener
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async function connectDisconnect({
|
|
67
|
+
externalProvider,
|
|
68
|
+
logger,
|
|
69
|
+
disconnectAsync,
|
|
70
|
+
connectAsync
|
|
71
|
+
}) {
|
|
72
|
+
const connections = getConnections(wagmiConfig);
|
|
73
|
+
try {
|
|
74
|
+
for (const connection of connections) {
|
|
75
|
+
await disconnectAsync({
|
|
76
|
+
connector: connection.connector
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
} catch (error) {
|
|
80
|
+
logger.error("Failed to disconnect from active connections", error);
|
|
81
|
+
}
|
|
82
|
+
if (externalProvider === null) return;
|
|
83
|
+
try {
|
|
84
|
+
const connector = injected({
|
|
85
|
+
target: {
|
|
86
|
+
id: EXTERNAL_CONNECTOR_ID,
|
|
87
|
+
name: "External",
|
|
88
|
+
provider: wrapExternalProvider(externalProvider)
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
const result = await connectAsync({
|
|
92
|
+
connector
|
|
93
|
+
});
|
|
94
|
+
logger.info("Connected to external provider", {
|
|
95
|
+
connector,
|
|
96
|
+
provider: externalProvider
|
|
97
|
+
});
|
|
98
|
+
return result;
|
|
99
|
+
} catch (error) {
|
|
100
|
+
logger.error("Failed to connect to external provider", error);
|
|
80
101
|
}
|
|
81
|
-
useEffect(t3, t4);
|
|
82
|
-
return null;
|
|
83
102
|
}
|
|
84
103
|
|
|
85
104
|
export { AutoconnectExternalProvider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoconnectExternal.js","sources":["../../../../src/components/web3/ConnectExternalProvider/AutoconnectExternal.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"AutoconnectExternal.js","sources":["../../../../src/components/web3/ConnectExternalProvider/AutoconnectExternal.tsx"],"sourcesContent":["import {\n isSafeIframeProvider,\n useExternalProvider,\n} from \"@/core/state/externalProviderAtom\";\nimport { useConnect, useDisconnect } from \"wagmi\";\nimport { injected } from \"wagmi/connectors\";\nimport { useEffect } from \"react\";\nimport { EXTERNAL_CONNECTOR_ID } 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\";\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\nfunction wrapExternalProvider(provider: EIP1193Provider): EIP1193Provider {\n if (!isSafeIframeProvider(provider)) return 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\ntype ConnectDisconnectProps = {\n externalProvider: EIP1193Provider | null;\n logger: LoggerInstance;\n disconnectAsync: DisconnectMutateAsync;\n connectAsync: ConnectMutateAsync<typeof wagmiConfig>;\n};\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 } catch (error) {\n logger.error(\"Failed to disconnect from active connections\", error);\n }\n\n if (externalProvider === null) return;\n try {\n const connector = injected({\n target: {\n id: EXTERNAL_CONNECTOR_ID,\n name: \"External\",\n provider: wrapExternalProvider(externalProvider),\n },\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","wrapExternalProvider","provider","isSafeIframeProvider","request","args","method","result","on","bind","removeListener","connections","getConnections","wagmiConfig","connection","connector","error","injected","target","id","EXTERNAL_CONNECTOR_ID","name","info"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectExternalProvider/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/components/web3/ConnectExternalProvider/constants.ts"],"sourcesContent":["export const EXTERNAL_CONNECTOR_ID = \"external_provider_from_App\";\n"],"names":["EXTERNAL_CONNECTOR_ID"],"mappings":"AAAO,MAAMA,qBAAAA,GAAwB;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Connector } from '@wagmi/core';
|
|
2
|
+
import { injected } from 'wagmi/connectors';
|
|
3
|
+
import { EXTERNAL_CONNECTOR_ID } from './constants';
|
|
4
|
+
export declare function isExternalConnector<T extends Pick<Connector, "type" | "id">>(connector: T): connector is T & {
|
|
5
|
+
id: typeof EXTERNAL_CONNECTOR_ID;
|
|
6
|
+
type: typeof injected.type;
|
|
7
|
+
};
|
|
8
|
+
//# 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,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,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,OAAO,qBAAqB,CAAC;IACjC,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;CAC5B,CAIA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { injected } from 'wagmi/connectors';
|
|
2
|
+
import { EXTERNAL_CONNECTOR_ID } from './constants.js';
|
|
3
|
+
|
|
4
|
+
function isExternalConnector(connector) {
|
|
5
|
+
return connector.type === injected.type && connector.id === EXTERNAL_CONNECTOR_ID;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export { isExternalConnector };
|
|
9
|
+
//# 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 { EXTERNAL_CONNECTOR_ID } from \"./constants\";\n\nexport function isExternalConnector<T extends Pick<Connector, \"type\" | \"id\">>(\n connector: T\n): connector is T & {\n id: typeof EXTERNAL_CONNECTOR_ID;\n type: typeof injected.type;\n} {\n return (\n connector.type === injected.type && connector.id === EXTERNAL_CONNECTOR_ID\n );\n}\n"],"names":["isExternalConnector","connector","type","injected","id","EXTERNAL_CONNECTOR_ID"],"mappings":";;;AAIO,SAASA,oBACdC,SAAAA,EAIA;AACA,EAAA,OACEA,SAAAA,CAAUC,IAAAA,KAASC,QAAAA,CAASD,IAAAA,IAAQD,UAAUG,EAAAA,KAAOC,qBAAAA;AAEzD;;;;"}
|
|
@@ -34,11 +34,14 @@ export type WalletMeta = {
|
|
|
34
34
|
icon: string | null;
|
|
35
35
|
name: string | null;
|
|
36
36
|
connectorId: string;
|
|
37
|
+
connectorUid: string;
|
|
37
38
|
connectorName: string;
|
|
38
39
|
connectorType: string;
|
|
40
|
+
isWalletConnect: boolean;
|
|
41
|
+
isExternal: boolean;
|
|
39
42
|
};
|
|
40
43
|
export declare function useWalletMetadata(connector?: Connector): WalletMeta | undefined;
|
|
41
|
-
export declare function walletMetadataQueryKey(
|
|
44
|
+
export declare function walletMetadataQueryKey(connectorUid?: string): readonly ["wallet-metadata", string | undefined];
|
|
42
45
|
export declare function getWalletMetadata(connector: Connector): Promise<WalletMeta>;
|
|
43
46
|
export {};
|
|
44
47
|
//# sourceMappingURL=walletIcons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletIcons.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectWallets/walletIcons.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"walletIcons.d.ts","sourceRoot":"","sources":["../../../../src/components/web3/ConnectWallets/walletIcons.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA+BvC,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,kBAAkB,iBAE7D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,kBAAkB,iBAE7D;AAED,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,OAAO,GACxB,QAAQ,GAAG,IAAI,CAKjB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,UAAU,UAAU;IAClB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,QAAQ,CAAC;KACpB,CAAC;CACH;AAED,KAAK,mBAAmB,GAAG;IACzB,eAAe,EAAE,IAAI,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,GAChB,QAAQ,IAAI,mBAAmB,CAOjC;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,SAAS,CAAC,EAAE,SAAS,GACpB,UAAU,GAAG,SAAS,CAexB;AAED,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,MAAM,oDAE3D;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,UAAU,CAAC,CAyDrB"}
|
|
@@ -12,6 +12,7 @@ import SafeSVG from './assets/safe.svg.js';
|
|
|
12
12
|
import { useQuery } from '@tanstack/react-query';
|
|
13
13
|
import { assert } from 'ts-essentials';
|
|
14
14
|
import { walletConnect } from 'wagmi/connectors';
|
|
15
|
+
import { isExternalConnector } from '../ConnectExternalProvider/utils.js';
|
|
15
16
|
|
|
16
17
|
const connectorId2Icon = {
|
|
17
18
|
privy: EmailSVG,
|
|
@@ -62,7 +63,7 @@ function isWConnectProvider(provider) {
|
|
|
62
63
|
}
|
|
63
64
|
function useWalletMetadata(connector) {
|
|
64
65
|
const $ = distExports.c(8);
|
|
65
|
-
const t0 = connector?.
|
|
66
|
+
const t0 = connector?.uid;
|
|
66
67
|
let t1;
|
|
67
68
|
if ($[0] !== t0) {
|
|
68
69
|
t1 = walletMetadataQueryKey(t0);
|
|
@@ -103,8 +104,8 @@ function useWalletMetadata(connector) {
|
|
|
103
104
|
} = useQuery(t4);
|
|
104
105
|
return walletMetadata;
|
|
105
106
|
}
|
|
106
|
-
function walletMetadataQueryKey(
|
|
107
|
-
return ["wallet-metadata",
|
|
107
|
+
function walletMetadataQueryKey(connectorUid) {
|
|
108
|
+
return ["wallet-metadata", connectorUid];
|
|
108
109
|
}
|
|
109
110
|
async function getWalletMetadata(connector) {
|
|
110
111
|
const connectorIsWConnect = connector.type === walletConnect.type;
|
|
@@ -116,13 +117,17 @@ async function getWalletMetadata(connector) {
|
|
|
116
117
|
id: connector.id,
|
|
117
118
|
name: connector.name
|
|
118
119
|
});
|
|
119
|
-
|
|
120
|
+
const connectorIsExternal = isExternalConnector(connector);
|
|
121
|
+
if (!connectorIsWConnect && !connectorIsExternal) {
|
|
120
122
|
return {
|
|
121
123
|
icon: fallbackIcon,
|
|
122
124
|
name: fallbackName,
|
|
123
125
|
connectorId: connector.id,
|
|
126
|
+
connectorUid: connector.uid,
|
|
124
127
|
connectorType: connector.type,
|
|
125
|
-
connectorName: connector.name
|
|
128
|
+
connectorName: connector.name,
|
|
129
|
+
isWalletConnect: false,
|
|
130
|
+
isExternal: false
|
|
126
131
|
};
|
|
127
132
|
}
|
|
128
133
|
const provider = await connector.getProvider();
|
|
@@ -133,16 +138,22 @@ async function getWalletMetadata(connector) {
|
|
|
133
138
|
icon: metadata?.icons?.[0] ?? fallbackIcon,
|
|
134
139
|
name: metadata?.name ?? fallbackName,
|
|
135
140
|
connectorId: connector.id,
|
|
141
|
+
connectorUid: connector.uid,
|
|
136
142
|
connectorType: connector.type,
|
|
137
|
-
connectorName: connector.name
|
|
143
|
+
connectorName: connector.name,
|
|
144
|
+
isWalletConnect: true,
|
|
145
|
+
isExternal: connectorIsExternal
|
|
138
146
|
};
|
|
139
147
|
}
|
|
140
148
|
return {
|
|
141
149
|
icon: fallbackIcon,
|
|
142
150
|
name: fallbackName,
|
|
143
151
|
connectorId: connector.id,
|
|
152
|
+
connectorUid: connector.uid,
|
|
144
153
|
connectorType: connector.type,
|
|
145
|
-
connectorName: connector.name
|
|
154
|
+
connectorName: connector.name,
|
|
155
|
+
isWalletConnect: false,
|
|
156
|
+
isExternal: connectorIsExternal
|
|
146
157
|
};
|
|
147
158
|
}
|
|
148
159
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletIcons.js","sources":["../../../../src/components/web3/ConnectWallets/walletIcons.ts"],"sourcesContent":["// import PrivySVG from \"./assets/privy.svg?url\";\nimport TrezorSVG from \"./assets/trezor.svg?url\";\nimport WalletConnectSVG from \"./assets/walletconnect.svg?url\";\nimport LedgerSVG from \"./assets/ledger.svg?url\";\nimport MetamaskSVG from \"./assets/metamask.svg?url\";\nimport ParaswapSVG from \"./assets/paraswap.svg?url\";\nimport BrowserWalletSVG from \"./assets/browser-wallet.svg?url\";\nimport BscWalletSVG from \"./assets/bscwallet.svg?url\";\nimport CoinbaseWalletSVG from \"./assets/coinbasewallet.svg?url\";\nimport EmailSVG from \"./assets/email.svg?url\";\nimport SafeSVG from \"./assets/safe.svg?url\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\nimport { walletConnect } from \"wagmi/connectors\";\nimport type { Connector } from \"wagmi\";\n\nconst connectorId2Icon: Record<string, string> = {\n privy: EmailSVG,\n \"io.privy.wallet\": EmailSVG,\n trezor: TrezorSVG,\n walletconnect: WalletConnectSVG,\n walletConnect: WalletConnectSVG,\n ledger: LedgerSVG,\n metamask: MetamaskSVG,\n metaMaskSDK: MetamaskSVG,\n paraswap: ParaswapSVG,\n injected: BrowserWalletSVG,\n bscwallet: BscWalletSVG,\n coinbasewallet: CoinbaseWalletSVG,\n coinbaseWalletSDK: CoinbaseWalletSVG,\n safe: SafeSVG,\n};\n\nconst connectorId2Name: Record<string, string> = {\n privy: \"Connect with Email\",\n \"io.privy.wallet\": \"Connect with Email\",\n walletconnect: \"Wallet Connect\",\n walletConnect: \"Wallet Connect\",\n ledger: \"Ledger\",\n metamask: \"MetaMask\",\n injected: \"Browser Wallet\",\n safe: \"Safe Wallet\",\n};\n\ntype GetWalletIconProps = {\n id: string;\n icon?: string;\n name?: string;\n};\n\nexport function getWalletIcon({ id, icon }: GetWalletIconProps) {\n return connectorId2Icon[id] || icon || null;\n}\n\nexport function getWalletName({ id, name }: GetWalletIconProps) {\n return connectorId2Name[id] || name || null;\n}\n\nexport function getWalletConnectMetadata(\n wconnectProvider: unknown\n): Metadata | null {\n if (!isWConnectProvider(wconnectProvider)) {\n return null;\n }\n return wconnectProvider?.session?.peer?.metadata || null;\n}\n\ninterface Metadata {\n name: string;\n description: string;\n url: string;\n icons: string[];\n verifyUrl?: string;\n redirect?: {\n native?: string;\n universal?: string;\n linkMode?: boolean;\n };\n}\n\ninterface MinSession {\n peer: {\n publicKey: string;\n metadata: Metadata;\n };\n}\n\ntype MinWConnectProvider = {\n isWalletConnect: true;\n session: MinSession;\n};\n\nexport function isWConnectProvider(\n provider: unknown\n): provider is MinWConnectProvider {\n return (\n !!provider &&\n typeof provider === \"object\" &&\n \"isWalletConnect\" in provider &&\n !!provider.isWalletConnect\n );\n}\n\nexport type WalletMeta = {\n icon: string | null;\n name: string | null;\n connectorId: string;\n connectorName: string;\n connectorType: string;\n};\n\nexport function useWalletMetadata(\n connector?: Connector\n): WalletMeta | undefined {\n const { data: walletMetadata } = useQuery<WalletMeta>({\n queryKey: walletMetadataQueryKey(connector?.id),\n queryFn: async () => {\n assert(connector, \"Connector must be provided to fetch wallet metadata\");\n\n return getWalletMetadata(connector);\n },\n enabled: !!connector,\n gcTime: Infinity,\n // without staleTime, because WalletConnect connector keeps same id even if underlying wallet is changed,\n // safer to retry\n });\n\n return walletMetadata;\n}\n\nexport function walletMetadataQueryKey(connectorId?: string) {\n return [\"wallet-metadata\", connectorId] as const;\n}\n\nexport async function getWalletMetadata(\n connector: Connector\n): Promise<WalletMeta> {\n const connectorIsWConnect = connector.type === walletConnect.type;\n const fallbackIcon = getWalletIcon({\n id: connector.id,\n icon: connector.icon,\n });\n const fallbackName = getWalletName({\n id: connector.id,\n name: connector.name,\n });\n\n if (!connectorIsWConnect) {\n // non-WalletConnect connectors use their own icon and name, when available\n return {\n icon: fallbackIcon,\n name: fallbackName,\n connectorId: connector.id,\n connectorType: connector.type,\n connectorName: connector.name,\n };\n }\n\n const provider = await connector.getProvider();\n\n // WalletConnect connectors have icon and name in their metadata\n if (isWConnectProvider(provider)) {\n const metadata = getWalletConnectMetadata(provider);\n return {\n // Wallet-specific WalletConnect icon, or default WalletConnect icon\n icon: metadata?.icons?.[0] ?? fallbackIcon,\n name: metadata?.name ?? fallbackName,\n connectorId: connector.id,\n connectorType: connector.type,\n connectorName: connector.name,\n };\n }\n return {\n icon: fallbackIcon,\n name: fallbackName,\n connectorId: connector.id,\n connectorType: connector.type,\n connectorName: connector.name,\n };\n}\n"],"names":["connectorId2Icon","privy","EmailSVG","trezor","TrezorSVG","walletconnect","WalletConnectSVG","walletConnect","ledger","LedgerSVG","metamask","MetamaskSVG","metaMaskSDK","paraswap","ParaswapSVG","injected","BrowserWalletSVG","bscwallet","BscWalletSVG","coinbasewallet","CoinbaseWalletSVG","coinbaseWalletSDK","safe","SafeSVG","connectorId2Name","getWalletIcon","id","icon","getWalletName","name","getWalletConnectMetadata","wconnectProvider","isWConnectProvider","session","peer","metadata","provider","isWalletConnect","useWalletMetadata","connector","$","_c","t0","t1","walletMetadataQueryKey","t2","assert","getWalletMetadata","t3","t4","queryKey","queryFn","enabled","gcTime","Infinity","data","walletMetadata","useQuery","connectorId","connectorIsWConnect","type","fallbackIcon","fallbackName","connectorType","connectorName","getProvider","icons"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"walletIcons.js","sources":["../../../../src/components/web3/ConnectWallets/walletIcons.ts"],"sourcesContent":["// import PrivySVG from \"./assets/privy.svg?url\";\nimport TrezorSVG from \"./assets/trezor.svg?url\";\nimport WalletConnectSVG from \"./assets/walletconnect.svg?url\";\nimport LedgerSVG from \"./assets/ledger.svg?url\";\nimport MetamaskSVG from \"./assets/metamask.svg?url\";\nimport ParaswapSVG from \"./assets/paraswap.svg?url\";\nimport BrowserWalletSVG from \"./assets/browser-wallet.svg?url\";\nimport BscWalletSVG from \"./assets/bscwallet.svg?url\";\nimport CoinbaseWalletSVG from \"./assets/coinbasewallet.svg?url\";\nimport EmailSVG from \"./assets/email.svg?url\";\nimport SafeSVG from \"./assets/safe.svg?url\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { assert } from \"ts-essentials\";\nimport { walletConnect } from \"wagmi/connectors\";\nimport type { Connector } from \"wagmi\";\nimport { isExternalConnector } from \"../ConnectExternalProvider/utils\";\n\nconst connectorId2Icon: Record<string, string> = {\n privy: EmailSVG,\n \"io.privy.wallet\": EmailSVG,\n trezor: TrezorSVG,\n walletconnect: WalletConnectSVG,\n walletConnect: WalletConnectSVG,\n ledger: LedgerSVG,\n metamask: MetamaskSVG,\n metaMaskSDK: MetamaskSVG,\n paraswap: ParaswapSVG,\n injected: BrowserWalletSVG,\n bscwallet: BscWalletSVG,\n coinbasewallet: CoinbaseWalletSVG,\n coinbaseWalletSDK: CoinbaseWalletSVG,\n safe: SafeSVG,\n};\n\nconst connectorId2Name: Record<string, string> = {\n privy: \"Connect with Email\",\n \"io.privy.wallet\": \"Connect with Email\",\n walletconnect: \"Wallet Connect\",\n walletConnect: \"Wallet Connect\",\n ledger: \"Ledger\",\n metamask: \"MetaMask\",\n injected: \"Browser Wallet\",\n safe: \"Safe Wallet\",\n};\n\ntype GetWalletIconProps = {\n id: string;\n icon?: string;\n name?: string;\n};\n\nexport function getWalletIcon({ id, icon }: GetWalletIconProps) {\n return connectorId2Icon[id] || icon || null;\n}\n\nexport function getWalletName({ id, name }: GetWalletIconProps) {\n return connectorId2Name[id] || name || null;\n}\n\nexport function getWalletConnectMetadata(\n wconnectProvider: unknown\n): Metadata | null {\n if (!isWConnectProvider(wconnectProvider)) {\n return null;\n }\n return wconnectProvider?.session?.peer?.metadata || null;\n}\n\ninterface Metadata {\n name: string;\n description: string;\n url: string;\n icons: string[];\n verifyUrl?: string;\n redirect?: {\n native?: string;\n universal?: string;\n linkMode?: boolean;\n };\n}\n\ninterface MinSession {\n peer: {\n publicKey: string;\n metadata: Metadata;\n };\n}\n\ntype MinWConnectProvider = {\n isWalletConnect: true;\n session: MinSession;\n};\n\nexport function isWConnectProvider(\n provider: unknown\n): provider is MinWConnectProvider {\n return (\n !!provider &&\n typeof provider === \"object\" &&\n \"isWalletConnect\" in provider &&\n !!provider.isWalletConnect\n );\n}\n\nexport type WalletMeta = {\n icon: string | null;\n name: string | null;\n connectorId: string;\n connectorUid: string;\n connectorName: string;\n connectorType: string;\n isWalletConnect: boolean;\n isExternal: boolean;\n};\n\nexport function useWalletMetadata(\n connector?: Connector\n): WalletMeta | undefined {\n const { data: walletMetadata } = useQuery<WalletMeta>({\n queryKey: walletMetadataQueryKey(connector?.uid),\n queryFn: async () => {\n assert(connector, \"Connector must be provided to fetch wallet metadata\");\n\n return getWalletMetadata(connector);\n },\n enabled: !!connector,\n gcTime: Infinity,\n // without staleTime, because WalletConnect connector keeps same id even if underlying wallet is changed,\n // safer to retry\n });\n\n return walletMetadata;\n}\n\nexport function walletMetadataQueryKey(connectorUid?: string) {\n return [\"wallet-metadata\", connectorUid] as const;\n}\n\nexport async function getWalletMetadata(\n connector: Connector\n): Promise<WalletMeta> {\n const connectorIsWConnect = connector.type === walletConnect.type;\n const fallbackIcon = getWalletIcon({\n id: connector.id,\n icon: connector.icon,\n });\n const fallbackName = getWalletName({\n id: connector.id,\n name: connector.name,\n });\n\n const connectorIsExternal = isExternalConnector(connector);\n\n if (!connectorIsWConnect && !connectorIsExternal) {\n // non-WalletConnect connectors use their own icon and name, when available,\n // except for external provider that may also be a WalletConnect provider\n return {\n icon: fallbackIcon,\n name: fallbackName,\n connectorId: connector.id,\n connectorUid: connector.uid,\n connectorType: connector.type,\n connectorName: connector.name,\n isWalletConnect: false,\n isExternal: false,\n };\n }\n\n // connector here is either a WalletConnect connector or an external connector (injected connector with external provider)\n const provider = await connector.getProvider();\n // provider is either WalletConnect provider or external provider (may or may not be a WalletConnect provider)\n\n // WalletConnect provider has icon and name in their metadata\n if (isWConnectProvider(provider)) {\n const metadata = getWalletConnectMetadata(provider);\n return {\n // Wallet-specific WalletConnect icon, or default WalletConnect icon\n icon: metadata?.icons?.[0] ?? fallbackIcon,\n name: metadata?.name ?? fallbackName,\n connectorId: connector.id,\n connectorUid: connector.uid,\n connectorType: connector.type,\n connectorName: connector.name,\n isWalletConnect: true,\n isExternal: connectorIsExternal,\n };\n }\n return {\n icon: fallbackIcon,\n name: fallbackName,\n connectorId: connector.id,\n connectorUid: connector.uid,\n connectorType: connector.type,\n connectorName: connector.name,\n isWalletConnect: false,\n isExternal: connectorIsExternal,\n };\n}\n"],"names":["connectorId2Icon","privy","EmailSVG","trezor","TrezorSVG","walletconnect","WalletConnectSVG","walletConnect","ledger","LedgerSVG","metamask","MetamaskSVG","metaMaskSDK","paraswap","ParaswapSVG","injected","BrowserWalletSVG","bscwallet","BscWalletSVG","coinbasewallet","CoinbaseWalletSVG","coinbaseWalletSDK","safe","SafeSVG","connectorId2Name","getWalletIcon","id","icon","getWalletName","name","getWalletConnectMetadata","wconnectProvider","isWConnectProvider","session","peer","metadata","provider","isWalletConnect","useWalletMetadata","connector","$","_c","t0","uid","t1","walletMetadataQueryKey","t2","assert","getWalletMetadata","t3","t4","queryKey","queryFn","enabled","gcTime","Infinity","data","walletMetadata","useQuery","connectorUid","connectorIsWConnect","type","fallbackIcon","fallbackName","connectorIsExternal","isExternalConnector","connectorId","connectorType","connectorName","isExternal","getProvider","icons"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAMA,gBAAAA,GAA2C;AAAA,EAC/CC,KAAAA,EAAOC,QAAAA;AAAAA,EACP,iBAAA,EAAmBA,QAAAA;AAAAA,EACnBC,MAAAA,EAAQC,SAAAA;AAAAA,EACRC,aAAAA,EAAeC,gBAAAA;AAAAA,EACfC,aAAAA,EAAeD,gBAAAA;AAAAA,EACfE,MAAAA,EAAQC,SAAAA;AAAAA,EACRC,QAAAA,EAAUC,WAAAA;AAAAA,EACVC,WAAAA,EAAaD,WAAAA;AAAAA,EACbE,QAAAA,EAAUC,WAAAA;AAAAA,EACVC,QAAAA,EAAUC,gBAAAA;AAAAA,EACVC,SAAAA,EAAWC,YAAAA;AAAAA,EACXC,cAAAA,EAAgBC,iBAAAA;AAAAA,EAChBC,iBAAAA,EAAmBD,iBAAAA;AAAAA,EACnBE,IAAAA,EAAMC;AACR,CAAA;AAEA,MAAMC,gBAAAA,GAA2C;AAAA,EAC/CvB,KAAAA,EAAO,oBAAA;AAAA,EACP,iBAAA,EAAmB,oBAAA;AAAA,EACnBI,aAAAA,EAAe,gBAAA;AAAA,EACfE,aAAAA,EAAe,gBAAA;AAAA,EACfC,MAAAA,EAAQ,QAAA;AAAA,EACRE,QAAAA,EAAU,UAAA;AAAA,EACVK,QAAAA,EAAU,gBAAA;AAAA,EACVO,IAAAA,EAAM;AACR,CAAA;AAQO,SAASG,aAAAA,CAAc;AAAA,EAAEC,EAAAA;AAAAA,EAAIC;AAAyB,CAAA,EAAG;AAC9D,EAAA,OAAO3B,gBAAAA,CAAiB0B,EAAE,CAAA,IAAKC,IAAAA,IAAQ,IAAA;AACzC;AAEO,SAASC,aAAAA,CAAc;AAAA,EAAEF,EAAAA;AAAAA,EAAIG;AAAyB,CAAA,EAAG;AAC9D,EAAA,OAAOL,gBAAAA,CAAiBE,EAAE,CAAA,IAAKG,IAAAA,IAAQ,IAAA;AACzC;AAEO,SAASC,yBACdC,gBAAAA,EACiB;AACjB,EAAA,IAAI,CAACC,kBAAAA,CAAmBD,gBAAgB,CAAA,EAAG;AACzC,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAOA,gBAAAA,EAAkBE,OAAAA,EAASC,IAAAA,EAAMC,QAAAA,IAAY,IAAA;AACtD;AA2BO,SAASH,mBACdI,QAAAA,EACiC;AACjC,EAAA,OACE,CAAC,CAACA,QAAAA,IACF,OAAOA,QAAAA,KAAa,YACpB,iBAAA,IAAqBA,QAAAA,IACrB,CAAC,CAACA,QAAAA,CAASC,eAAAA;AAEf;AAaO,SAAAC,kBAAAC,SAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAI8B,EAAA,MAAAC,KAAAH,SAAAA,EAASI,GAAAA;AAAK,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,EAAAA,EAAA;AAArCE,IAAAA,EAAAA,GAAAC,uBAAuBH,EAAc,CAAA;AAACF,IAAAA,CAAAA,MAAAE,EAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAM,EAAAA;AAAA,EAAA,IAAAN,CAAAA,QAAAD,SAAAA,EAAA;AACvCO,IAAAA,EAAAA,eAAA;AACPC,MAAAA,MAAAA,CAAOR,WAAW,qDAAqD,CAAA;AAAC,MAAA,OAEjES,kBAAkBT,SAAS,CAAA;AAAA,IAAC,CAAA;AACpCC,IAAAA,CAAAA,MAAAD,SAAAA;AAAAC,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,EAAA;AACQ,EAAA,MAAAS,EAAAA,GAAA,CAAC,CAACV,SAAAA;AAAS,EAAA,IAAAW,EAAAA;AAAA,EAAA,IAAAV,CAAAA,CAAA,CAAA,CAAA,KAAAI,EAAAA,IAAAJ,CAAAA,QAAAM,EAAAA,IAAAN,CAAAA,CAAA,CAAA,CAAA,KAAAS,EAAAA,EAAA;AAPgCC,IAAAA,EAAAA,GAAA;AAAA,MAAAC,QAAAA,EAC1CP,EAAAA;AAAAA,MAAsCQ,OAAAA,EACvCN,EAAAA;AAAAA,MAIRO,OAAAA,EACQJ,EAAAA;AAAAA,MAAWK,MAAAA,EACZC;AAAAA,KAGV;AAACf,IAAAA,CAAAA,MAAAI,EAAAA;AAAAJ,IAAAA,CAAAA,MAAAM,EAAAA;AAAAN,IAAAA,CAAAA,MAAAS,EAAAA;AAAAT,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA,EAAA;AAXD,EAAA,MAAA;AAAA,IAAAgB,IAAAA,EAAAC;AAAAA,GAAA,GAAiCC,SAAqBR,EAWrD,CAAA;AAAE,EAAA,OAEIO,cAAAA;AAAc;AAGhB,SAASZ,uBAAuBc,YAAAA,EAAuB;AAC5D,EAAA,OAAO,CAAC,mBAAmBA,YAAY,CAAA;AACzC;AAEA,eAAsBX,kBACpBT,SAAAA,EACqB;AACrB,EAAA,MAAMqB,mBAAAA,GAAsBrB,SAAAA,CAAUsB,IAAAA,KAAStD,aAAAA,CAAcsD,IAAAA;AAC7D,EAAA,MAAMC,eAAerC,aAAAA,CAAc;AAAA,IACjCC,IAAIa,SAAAA,CAAUb,EAAAA;AAAAA,IACdC,MAAMY,SAAAA,CAAUZ;AAAAA,GACjB,CAAA;AACD,EAAA,MAAMoC,eAAenC,aAAAA,CAAc;AAAA,IACjCF,IAAIa,SAAAA,CAAUb,EAAAA;AAAAA,IACdG,MAAMU,SAAAA,CAAUV;AAAAA,GACjB,CAAA;AAED,EAAA,MAAMmC,mBAAAA,GAAsBC,oBAAoB1B,SAAS,CAAA;AAEzD,EAAA,IAAI,CAACqB,mBAAAA,IAAuB,CAACI,mBAAAA,EAAqB;AAGhD,IAAA,OAAO;AAAA,MACLrC,IAAAA,EAAMmC,YAAAA;AAAAA,MACNjC,IAAAA,EAAMkC,YAAAA;AAAAA,MACNG,aAAa3B,SAAAA,CAAUb,EAAAA;AAAAA,MACvBiC,cAAcpB,SAAAA,CAAUI,GAAAA;AAAAA,MACxBwB,eAAe5B,SAAAA,CAAUsB,IAAAA;AAAAA,MACzBO,eAAe7B,SAAAA,CAAUV,IAAAA;AAAAA,MACzBQ,eAAAA,EAAiB,KAAA;AAAA,MACjBgC,UAAAA,EAAY;AAAA,KACd;AAAA,EACF;AAGA,EAAA,MAAMjC,QAAAA,GAAW,MAAMG,SAAAA,CAAU+B,WAAAA,EAAY;AAI7C,EAAA,IAAItC,kBAAAA,CAAmBI,QAAQ,CAAA,EAAG;AAChC,IAAA,MAAMD,QAAAA,GAAWL,yBAAyBM,QAAQ,CAAA;AAClD,IAAA,OAAO;AAAA;AAAA,MAELT,IAAAA,EAAMQ,QAAAA,EAAUoC,KAAAA,GAAQ,CAAC,CAAA,IAAKT,YAAAA;AAAAA,MAC9BjC,IAAAA,EAAMM,UAAUN,IAAAA,IAAQkC,YAAAA;AAAAA,MACxBG,aAAa3B,SAAAA,CAAUb,EAAAA;AAAAA,MACvBiC,cAAcpB,SAAAA,CAAUI,GAAAA;AAAAA,MACxBwB,eAAe5B,SAAAA,CAAUsB,IAAAA;AAAAA,MACzBO,eAAe7B,SAAAA,CAAUV,IAAAA;AAAAA,MACzBQ,eAAAA,EAAiB,IAAA;AAAA,MACjBgC,UAAAA,EAAYL;AAAAA,KACd;AAAA,EACF;AACA,EAAA,OAAO;AAAA,IACLrC,IAAAA,EAAMmC,YAAAA;AAAAA,IACNjC,IAAAA,EAAMkC,YAAAA;AAAAA,IACNG,aAAa3B,SAAAA,CAAUb,EAAAA;AAAAA,IACvBiC,cAAcpB,SAAAA,CAAUI,GAAAA;AAAAA,IACxBwB,eAAe5B,SAAAA,CAAUsB,IAAAA;AAAAA,IACzBO,eAAe7B,SAAAA,CAAUV,IAAAA;AAAAA,IACzBQ,eAAAA,EAAiB,KAAA;AAAA,IACjBgC,UAAAA,EAAYL;AAAAA,GACd;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/ReceiverAddress/state/subscriptions.ts"],"names":[],"mappings":"AAmBA,wBAAgB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/ReceiverAddress/state/subscriptions.ts"],"names":[],"mappings":"AAmBA,wBAAgB,yBAAyB,iDA4DxC"}
|
|
@@ -14,23 +14,29 @@ import { screenAtom } from '../../../../core/screen/state/screenAtom.js';
|
|
|
14
14
|
|
|
15
15
|
function subscribeToAccountChanges() {
|
|
16
16
|
return watchAccount(wagmiConfig, {
|
|
17
|
-
onChange: async ({
|
|
18
|
-
address,
|
|
19
|
-
chainId
|
|
20
|
-
}, {
|
|
17
|
+
onChange: async (account, {
|
|
21
18
|
address: prevAddress
|
|
22
19
|
}) => {
|
|
20
|
+
const {
|
|
21
|
+
address,
|
|
22
|
+
chainId,
|
|
23
|
+
connector
|
|
24
|
+
} = account;
|
|
23
25
|
const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);
|
|
24
26
|
if (address !== prevAddress) {
|
|
25
27
|
jotaiStore.set(openDrawerAtom, null);
|
|
26
28
|
jotaiStore.set(screenAtom, null);
|
|
27
29
|
}
|
|
30
|
+
jotaiStore.set(accountAtom, {
|
|
31
|
+
address,
|
|
32
|
+
chainId,
|
|
33
|
+
connector
|
|
34
|
+
});
|
|
28
35
|
if (!address || chainId === void 0 || !isSupportedChainId(chainId) || !enabledSrcChains.includes(chainId)) {
|
|
29
36
|
jotaiStore.set(receiverAddressAtom, void 0);
|
|
30
37
|
jotaiStore.set(limitReceiverAddressAtom, void 0);
|
|
31
38
|
return;
|
|
32
39
|
}
|
|
33
|
-
jotaiStore.set(accountAtom, address);
|
|
34
40
|
jotaiStore.set(resetOrdersCountAtom);
|
|
35
41
|
if (chainId !== wagmiConfig.state.chainId)
|
|
36
42
|
wagmiConfig.setState((prev) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions.js","sources":["../../../../../src/components/widget/ReceiverAddress/state/subscriptions.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { watchAccount } from \"@wagmi/core\";\nimport { receiverAddressAtom } from \"./receiverAddressAtom\";\n\nimport { queryClient } from \"@/lib/queryClient\";\n\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport {\n constructIsContractAtAddressQueryKey,\n getIsContractAtAddress,\n} from \"@/hooks/getCode/query\";\nimport { jotaiStore } from \"@/core/store\";\nimport { accountAtom } from \"@/lib/web3/wagmi/external\";\nimport { resetOrdersCountAtom } from \"../../AppHeader/state/showMoreAtom\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { limitReceiverAddressAtom } from \"@/core/limit/state/receiverAddressAtom\";\nimport { openDrawerAtom } from \"../../Drawer/state/useDrawerControls\";\nimport { screenAtom } from \"@/core/screen/state/screenAtom\";\n\nexport function subscribeToAccountChanges() {\n // subscribes to wallet account changes\n // config.subscribe(() => getAccount(config), onChange)\n return watchAccount(wagmiConfig, {\n onChange: async (
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sources":["../../../../../src/components/widget/ReceiverAddress/state/subscriptions.ts"],"sourcesContent":["import { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport { watchAccount } from \"@wagmi/core\";\nimport { receiverAddressAtom } from \"./receiverAddressAtom\";\n\nimport { queryClient } from \"@/lib/queryClient\";\n\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport {\n constructIsContractAtAddressQueryKey,\n getIsContractAtAddress,\n} from \"@/hooks/getCode/query\";\nimport { jotaiStore } from \"@/core/store\";\nimport { accountAtom } from \"@/lib/web3/wagmi/external\";\nimport { resetOrdersCountAtom } from \"../../AppHeader/state/showMoreAtom\";\nimport { enabledSrcChainsAtom } from \"@/core/state/enabledChainsAtom\";\nimport { limitReceiverAddressAtom } from \"@/core/limit/state/receiverAddressAtom\";\nimport { openDrawerAtom } from \"../../Drawer/state/useDrawerControls\";\nimport { screenAtom } from \"@/core/screen/state/screenAtom\";\n\nexport function subscribeToAccountChanges() {\n // subscribes to wallet account changes\n // config.subscribe(() => getAccount(config), onChange)\n return watchAccount(wagmiConfig, {\n onChange: async (account, { address: prevAddress }) => {\n const { address, chainId, connector } = account;\n const enabledSrcChains = jotaiStore.get(enabledSrcChainsAtom);\n\n // close any open drawer and screen on account change\n // enforce account specific Widget state\n if (address !== prevAddress) {\n jotaiStore.set(openDrawerAtom, null);\n jotaiStore.set(screenAtom, null);\n }\n\n // internal account atom to trigger atomEffects\n jotaiStore.set(accountAtom, {\n address,\n chainId,\n connector,\n });\n\n // reset the receiver address if the address is not valid or chainId is not supported\n if (\n !address ||\n chainId === undefined ||\n !isSupportedChainId(chainId) ||\n !enabledSrcChains.includes(chainId)\n ) {\n jotaiStore.set(receiverAddressAtom, undefined);\n jotaiStore.set(limitReceiverAddressAtom, undefined);\n return;\n }\n\n // reset activities pagination\n jotaiStore.set(resetOrdersCountAtom);\n\n if (chainId !== wagmiConfig.state.chainId)\n // wallet chainId takes precedence\n wagmiConfig.setState((prev) => ({ ...prev, chainId }));\n\n const queryKey = constructIsContractAtAddressQueryKey({\n chainId,\n address,\n });\n\n const { isEOA } = await queryClient.ensureQueryData({\n queryKey,\n queryFn: () =>\n getIsContractAtAddress({\n address,\n chainId,\n }),\n });\n\n // save if address is EOA, otherwise reset\n jotaiStore.set(receiverAddressAtom, isEOA ? address : undefined);\n jotaiStore.set(limitReceiverAddressAtom, isEOA ? address : undefined);\n },\n });\n}\n"],"names":["subscribeToAccountChanges","watchAccount","wagmiConfig","onChange","account","address","prevAddress","chainId","connector","enabledSrcChains","jotaiStore","get","enabledSrcChainsAtom","set","openDrawerAtom","screenAtom","accountAtom","undefined","isSupportedChainId","includes","receiverAddressAtom","limitReceiverAddressAtom","resetOrdersCountAtom","state","setState","prev","queryKey","constructIsContractAtAddressQueryKey","isEOA","queryClient","ensureQueryData","queryFn","getIsContractAtAddress"],"mappings":";;;;;;;;;;;;;;AAmBO,SAASA,yBAAAA,GAA4B;AAG1C,EAAA,OAAOC,aAAaC,WAAAA,EAAa;AAAA,IAC/BC,QAAAA,EAAU,OAAOC,OAAAA,EAAS;AAAA,MAAEC,OAAAA,EAASC;AAAAA,KAAY,KAAM;AACrD,MAAA,MAAM;AAAA,QAAED,OAAAA;AAAAA,QAASE,OAAAA;AAAAA,QAASC;AAAAA,OAAU,GAAIJ,OAAAA;AACxC,MAAA,MAAMK,gBAAAA,GAAmBC,UAAAA,CAAWC,GAAAA,CAAIC,oBAAoB,CAAA;AAI5D,MAAA,IAAIP,YAAYC,WAAAA,EAAa;AAC3BI,QAAAA,UAAAA,CAAWG,GAAAA,CAAIC,gBAAgB,IAAI,CAAA;AACnCJ,QAAAA,UAAAA,CAAWG,GAAAA,CAAIE,YAAY,IAAI,CAAA;AAAA,MACjC;AAGAL,MAAAA,UAAAA,CAAWG,IAAIG,WAAAA,EAAa;AAAA,QAC1BX,OAAAA;AAAAA,QACAE,OAAAA;AAAAA,QACAC;AAAAA,OACD,CAAA;AAGD,MAAA,IACE,CAACH,OAAAA,IACDE,OAAAA,KAAYU,MAAAA,IACZ,CAACC,kBAAAA,CAAmBX,OAAO,CAAA,IAC3B,CAACE,gBAAAA,CAAiBU,QAAAA,CAASZ,OAAO,CAAA,EAClC;AACAG,QAAAA,UAAAA,CAAWG,GAAAA,CAAIO,qBAAqBH,MAAS,CAAA;AAC7CP,QAAAA,UAAAA,CAAWG,GAAAA,CAAIQ,0BAA0BJ,MAAS,CAAA;AAClD,QAAA;AAAA,MACF;AAGAP,MAAAA,UAAAA,CAAWG,IAAIS,oBAAoB,CAAA;AAEnC,MAAA,IAAIf,OAAAA,KAAYL,YAAYqB,KAAAA,CAAMhB,OAAAA;AAEhCL,QAAAA,WAAAA,CAAYsB,SAAUC,CAAAA,IAAAA,MAAU;AAAA,UAAE,GAAGA,IAAAA;AAAAA,UAAMlB;AAAAA,SAAQ,CAAE,CAAA;AAEvD,MAAA,MAAMmB,WAAWC,oCAAAA,CAAqC;AAAA,QACpDpB,OAAAA;AAAAA,QACAF;AAAAA,OACD,CAAA;AAED,MAAA,MAAM;AAAA,QAAEuB;AAAAA,OAAM,GAAI,MAAMC,WAAAA,CAAYC,eAAAA,CAAgB;AAAA,QAClDJ,QAAAA;AAAAA,QACAK,OAAAA,EAASA,MACPC,sBAAAA,CAAuB;AAAA,UACrB3B,OAAAA;AAAAA,UACAE;AAAAA,SACD;AAAA,OACJ,CAAA;AAGDG,MAAAA,UAAAA,CAAWG,GAAAA,CAAIO,mBAAAA,EAAqBQ,KAAAA,GAAQvB,OAAAA,GAAUY,MAAS,CAAA;AAC/DP,MAAAA,UAAAA,CAAWG,GAAAA,CAAIQ,wBAAAA,EAA0BO,KAAAA,GAAQvB,OAAAA,GAAUY,MAAS,CAAA;AAAA,IACtE;AAAA,GACD,CAAA;AACH;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TransactionListItem } from '../types';
|
|
2
2
|
export type TransactionItemControlsProps = {
|
|
3
|
-
|
|
3
|
+
txItem: TransactionListItem;
|
|
4
4
|
onDismiss: () => void;
|
|
5
5
|
};
|
|
6
|
-
export declare const Controls: ({
|
|
6
|
+
export declare const Controls: ({ txItem, onDismiss, }: TransactionItemControlsProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
//# sourceMappingURL=Controls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Controls.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/TransactionDetails/LimitOrderDetails/Controls.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,MAAM,MAAM,4BAA4B,GAAG;IACzC,
|
|
1
|
+
{"version":3,"file":"Controls.d.ts","sourceRoot":"","sources":["../../../../../src/components/widget/TransactionDetails/LimitOrderDetails/Controls.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,wBAGtB,4BAA4B,4CAuC9B,CAAC"}
|
|
@@ -2,57 +2,56 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { d as distExports } from '../../../../_virtual/index.js';
|
|
3
3
|
import { Button } from '../../../ui/button.js';
|
|
4
4
|
import { constructTxLinkForChain } from '../../../../lib/utils/explorer.js';
|
|
5
|
-
import {
|
|
5
|
+
import { getTxHash } from '../../../../transactions/hash.js';
|
|
6
6
|
|
|
7
7
|
const Controls = (t0) => {
|
|
8
|
-
const $ = distExports.c(
|
|
8
|
+
const $ = distExports.c(9);
|
|
9
9
|
const {
|
|
10
|
-
|
|
10
|
+
txItem,
|
|
11
11
|
onDismiss
|
|
12
12
|
} = t0;
|
|
13
|
-
const txHash = isStandaloneTransactionItem(order) ? order.transactionHash : order.receipt?.transactionHash;
|
|
14
13
|
let t1;
|
|
15
|
-
if ($[0] !==
|
|
14
|
+
if ($[0] !== txItem) {
|
|
15
|
+
const txHash = getTxHash(txItem);
|
|
16
16
|
t1 = txHash ? constructTxLinkForChain({
|
|
17
|
-
chainId:
|
|
17
|
+
chainId: txItem.chainId,
|
|
18
18
|
txHash
|
|
19
19
|
}) : void 0;
|
|
20
|
-
$[0] =
|
|
21
|
-
$[1] =
|
|
22
|
-
$[2] = t1;
|
|
20
|
+
$[0] = txItem;
|
|
21
|
+
$[1] = t1;
|
|
23
22
|
} else {
|
|
24
|
-
t1 = $[
|
|
23
|
+
t1 = $[1];
|
|
25
24
|
}
|
|
26
25
|
const explorerLink = t1;
|
|
27
26
|
let t2;
|
|
28
|
-
if ($[
|
|
27
|
+
if ($[2] !== onDismiss) {
|
|
29
28
|
t2 = /* @__PURE__ */ jsx(Button, { variant: "default", size: "xl", radius: "sm", className: "w-full text-sm", onClick: onDismiss, children: "Make Another Trade" });
|
|
30
|
-
$[
|
|
31
|
-
$[
|
|
29
|
+
$[2] = onDismiss;
|
|
30
|
+
$[3] = t2;
|
|
32
31
|
} else {
|
|
33
|
-
t2 = $[
|
|
32
|
+
t2 = $[3];
|
|
34
33
|
}
|
|
35
34
|
const makeAnotherTradeButton = t2;
|
|
36
35
|
let t3;
|
|
37
|
-
if ($[
|
|
36
|
+
if ($[4] !== explorerLink) {
|
|
38
37
|
t3 = explorerLink ? /* @__PURE__ */ jsx(Button, { variant: "secondary", size: "xl", radius: "sm", className: "w-full text-sm", asChild: true, children: /* @__PURE__ */ jsx("a", { href: explorerLink, rel: "noopener noreferrer", target: "_blank", children: "View On Explorer" }) }) : null;
|
|
39
|
-
$[
|
|
40
|
-
$[
|
|
38
|
+
$[4] = explorerLink;
|
|
39
|
+
$[5] = t3;
|
|
41
40
|
} else {
|
|
42
|
-
t3 = $[
|
|
41
|
+
t3 = $[5];
|
|
43
42
|
}
|
|
44
43
|
const explorerButton = t3;
|
|
45
44
|
let t4;
|
|
46
|
-
if ($[
|
|
45
|
+
if ($[6] !== explorerButton || $[7] !== makeAnotherTradeButton) {
|
|
47
46
|
t4 = /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 mt-auto", children: [
|
|
48
47
|
makeAnotherTradeButton,
|
|
49
48
|
explorerButton
|
|
50
49
|
] });
|
|
51
|
-
$[
|
|
52
|
-
$[
|
|
53
|
-
$[
|
|
50
|
+
$[6] = explorerButton;
|
|
51
|
+
$[7] = makeAnotherTradeButton;
|
|
52
|
+
$[8] = t4;
|
|
54
53
|
} else {
|
|
55
|
-
t4 = $[
|
|
54
|
+
t4 = $[8];
|
|
56
55
|
}
|
|
57
56
|
return t4;
|
|
58
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Controls.js","sources":["../../../../../src/components/widget/TransactionDetails/LimitOrderDetails/Controls.tsx"],"sourcesContent":["import { Button } from \"@/components/ui/button\";\n\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport type { TransactionListItem } from \"../types\";\nimport {
|
|
1
|
+
{"version":3,"file":"Controls.js","sources":["../../../../../src/components/widget/TransactionDetails/LimitOrderDetails/Controls.tsx"],"sourcesContent":["import { Button } from \"@/components/ui/button\";\n\nimport { constructTxLinkForChain } from \"@/lib/utils/explorer\";\nimport type { TransactionListItem } from \"../types\";\nimport { getTxHash } from \"@/transactions/hash\";\n\nexport type TransactionItemControlsProps = {\n txItem: TransactionListItem;\n onDismiss: () => void;\n};\n\nexport const Controls = ({\n txItem,\n onDismiss,\n}: TransactionItemControlsProps) => {\n const txHash = getTxHash(txItem);\n\n const explorerLink = txHash\n ? constructTxLinkForChain({ chainId: txItem.chainId, txHash })\n : undefined;\n\n const makeAnotherTradeButton = (\n <Button\n variant=\"default\"\n size=\"xl\"\n radius=\"sm\"\n className=\"w-full text-sm\"\n onClick={onDismiss}\n >\n Make Another Trade\n </Button>\n );\n\n const explorerButton = explorerLink ? (\n <Button\n variant=\"secondary\"\n size=\"xl\"\n radius=\"sm\"\n className=\"w-full text-sm\"\n asChild\n >\n <a href={explorerLink} rel=\"noopener noreferrer\" target=\"_blank\">\n View On Explorer\n </a>\n </Button>\n ) : null;\n\n return (\n <div className=\"flex flex-col gap-4 mt-auto\">\n {makeAnotherTradeButton}\n {explorerButton}\n </div>\n );\n};\n"],"names":["Controls","t0","$","_c","txItem","onDismiss","t1","txHash","getTxHash","constructTxLinkForChain","chainId","undefined","explorerLink","t2","makeAnotherTradeButton","t3","explorerButton","t4"],"mappings":";;;;;;AAWO,MAAMA,WAAWC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAAC,EAAA,MAAA;AAAA,IAAAC,MAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAJ,EAAAA;AAGM,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAJ,CAAAA,QAAAE,MAAAA,EAAA;AAC7B,IAAA,MAAAG,MAAAA,GAAeC,UAAUJ,MAAM,CAAA;AAEVE,IAAAA,EAAAA,GAAAC,SACjBE,uBAAAA,CAAwB;AAAA,MAAAC,SAAWN,MAAAA,CAAMM,OAAAA;AAAAA,MAAQH;AAAAA,KACzC,CAAA,GAFSI,MAAAA;AAERT,IAAAA,CAAAA,MAAAE,MAAAA;AAAAF,IAAAA,CAAAA,MAAAI,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAJ,EAAA,CAAA,CAAA;AAAA,EAAA;AAFb,EAAA,MAAAU,YAAAA,GAAqBN,EAAAA;AAEP,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAX,CAAAA,QAAAG,SAAAA,EAAA;AAGZQ,IAAAA,EAAAA,mBAAA,GAAA,CAAC,MAAA,EAAA,EACS,OAAA,EAAA,SAAA,EACH,IAAA,EAAA,IAAA,EACE,MAAA,EAAA,IAAA,EACG,SAAA,EAAA,gBAAA,EACDR,OAAAA,EAAAA,SAAAA,EACV,QAAA,EAAA,oBAAA,EAED,CAAA;AAASH,IAAAA,CAAAA,MAAAG,SAAAA;AAAAH,IAAAA,CAAAA,MAAAW,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAX,EAAA,CAAA,CAAA;AAAA,EAAA;AATX,EAAA,MAAAY,sBAAAA,GACED,EAAAA;AASA,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAb,CAAAA,QAAAU,YAAAA,EAAA;AAEqBG,IAAAA,EAAAA,GAAAH,YAAAA,uBACpB,MAAA,EAAA,EACS,OAAA,EAAA,aACH,IAAA,EAAA,IAAA,EACE,MAAA,EAAA,IAAA,EACG,SAAA,EAAA,gBAAA,EACV,SAAA,IAAA,EAEA,QAAA,kBAAA,GAAA,CAAA,GAAA,EAAA,EAASA,IAAAA,gBAAkB,GAAA,EAAA,uBAA6B,MAAA,EAAA,QAAA,EAAS,QAAA,EAAA,kBAAA,EAEjE,CAAA,EACF,CAAA,GAXqB,IAAA;AAYfV,IAAAA,CAAAA,MAAAU,YAAAA;AAAAV,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AAZR,EAAA,MAAAc,cAAAA,GAAuBD,EAAAA;AAYd,EAAA,IAAAE,EAAAA;AAAA,EAAA,IAAAf,EAAA,CAAA,CAAA,KAAAc,kBAAAd,CAAAA,QAAAY,sBAAAA,EAAA;AAGPG,IAAAA,EAAAA,mBAAA,IAAA,CAAA,KAAA,EAAA,EAAe,SAAA,EAAA,6BAAA,EACZH,QAAAA,EAAAA;AAAAA,MAAAA,sBAAAA;AAAAA,MACAE;AAAAA,KAAAA,EACH,CAAA;AAAMd,IAAAA,CAAAA,MAAAc,cAAAA;AAAAd,IAAAA,CAAAA,MAAAY,sBAAAA;AAAAZ,IAAAA,CAAAA,MAAAe,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAf,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAHNe,EAAAA;AAGM;;;;"}
|