@0xsquid/react-hooks 3.0.30-beta.8 → 4.0.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/core/constants.d.ts +1 -0
- package/dist/core/constants.js +1 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/core/wagmiConfig.d.ts +2 -3
- package/dist/core/wagmiConfig.js +17 -17
- package/dist/core/wagmiConfig.js.map +1 -1
- package/dist/core/wallets.d.ts +2 -1
- package/dist/core/wallets.js +1 -1
- package/dist/core/wallets.js.map +1 -1
- package/dist/hooks/cosmos/useCosmos.js +2 -2
- package/dist/hooks/cosmos/useCosmos.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/store/useWalletStore.d.ts +1 -1
- package/dist/hooks/store/useWalletStore.js +20 -12
- package/dist/hooks/store/useWalletStore.js.map +1 -1
- package/dist/hooks/tokens/useAllConnectedWalletBalances.d.ts +17 -85
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js +50 -37
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +7 -26
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +70 -61
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
- package/dist/hooks/tokens/useBalance.js +10 -6
- package/dist/hooks/tokens/useBalance.js.map +1 -1
- package/dist/hooks/tokens/useMultipleTokenPrices.js +1 -1
- package/dist/hooks/tokens/useMultipleTokenPrices.js.map +1 -1
- package/dist/hooks/tokens/useNativeBalance.js +7 -7
- package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
- package/dist/hooks/transaction/useApproval.js +8 -3
- package/dist/hooks/transaction/useApproval.js.map +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.js +0 -15
- package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
- package/dist/hooks/wallet/useAutoConnect.d.ts +3 -1
- package/dist/hooks/wallet/useAutoConnect.js +43 -31
- package/dist/hooks/wallet/useAutoConnect.js.map +1 -1
- package/dist/hooks/wallet/useGnosisContext.d.ts +7 -3
- package/dist/hooks/wallet/useGnosisContext.js +31 -22
- package/dist/hooks/wallet/useGnosisContext.js.map +1 -1
- package/dist/hooks/wallet/useMultiChainWallet.js +6 -1
- package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
- package/dist/hooks/wallet/useWallet.d.ts +2 -1
- package/dist/hooks/wallet/useWallet.js +55 -25
- package/dist/hooks/wallet/useWallet.js.map +1 -1
- package/dist/provider/index.d.ts +2 -1
- package/dist/provider/index.js +15 -59
- package/dist/provider/index.js.map +1 -1
- package/dist/services/external/tokenDataService.js +3 -4
- package/dist/services/external/tokenDataService.js.map +1 -1
- package/dist/services/internal/errorService.d.ts +0 -9
- package/dist/services/internal/errorService.js +4 -17
- package/dist/services/internal/errorService.js.map +1 -1
- package/dist/services/internal/walletService.d.ts +8 -1
- package/dist/services/internal/walletService.js +13 -0
- package/dist/services/internal/walletService.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import SafeAppsSDK, { TransactionStatus as GnosisTransactionStatus, } from "@safe-global/safe-apps-sdk";
|
|
2
2
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
3
3
|
import { useAccount } from "wagmi";
|
|
4
|
-
import { useSwapRoutePersistStore } from "
|
|
5
|
-
import { useSwap } from "
|
|
6
|
-
import { useMultiChainWallet } from "
|
|
4
|
+
import { useSwapRoutePersistStore } from "../store/useSquidStore";
|
|
5
|
+
import { useSwap } from "../swap/useSwap";
|
|
6
|
+
import { useMultiChainWallet } from "./useMultiChainWallet";
|
|
7
7
|
export const useGnosisContext = () => {
|
|
8
|
-
const { connector } = useAccount();
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const { connectedAddress } = useMultiChainWallet(fromChain);
|
|
12
|
-
const [isGnosisContext, setisGnosisContext] = useState(false);
|
|
8
|
+
const { connector, isConnected, address } = useAccount();
|
|
9
|
+
const [isGnosisContext, setIsGnosisContext] = useState(false);
|
|
10
|
+
const [gnosisSafeInfo, setGnosisSafeInfo] = useState();
|
|
13
11
|
/**
|
|
14
12
|
* Method that will be used to send transaction
|
|
15
13
|
* TODO: could have loaded the sdk when app load and stored globally
|
|
@@ -20,24 +18,15 @@ export const useGnosisContext = () => {
|
|
|
20
18
|
const isSafeContext = safe.chainId !== undefined &&
|
|
21
19
|
safe.safeAddress !== undefined &&
|
|
22
20
|
connector?.id === "safe";
|
|
23
|
-
|
|
21
|
+
setGnosisSafeInfo(safe);
|
|
22
|
+
setIsGnosisContext(isSafeContext);
|
|
24
23
|
if (isSafeContext)
|
|
25
24
|
return appsSdk;
|
|
26
25
|
return undefined;
|
|
27
26
|
}, [connector]);
|
|
28
27
|
useEffect(() => {
|
|
29
28
|
getGnosisSafeContext();
|
|
30
|
-
}, [
|
|
31
|
-
/**
|
|
32
|
-
* Check if we are in a Gnosis Safe Context
|
|
33
|
-
* And if source wallet address = destination address
|
|
34
|
-
* If swapRoute.destinationAddress is not defined, it means that it's the same from the source
|
|
35
|
-
*/
|
|
36
|
-
const isSameAddressAndGnosisContext = useMemo(() => {
|
|
37
|
-
const destAddressSameAsSource = connectedAddress === swapRoute?.destinationAddress ||
|
|
38
|
-
swapRoute?.destinationAddress === undefined;
|
|
39
|
-
return isGnosisContext && destAddressSameAsSource;
|
|
40
|
-
}, [connectedAddress, swapRoute, isGnosisContext]);
|
|
29
|
+
}, [getGnosisSafeContext]);
|
|
41
30
|
/**
|
|
42
31
|
* There's a specific way to get the transaction hash for the safe connector
|
|
43
32
|
* Using then initial hash received by the transaction, we can get the real hash
|
|
@@ -59,11 +48,31 @@ export const useGnosisContext = () => {
|
|
|
59
48
|
}
|
|
60
49
|
return tx?.txHash ?? initialHash;
|
|
61
50
|
};
|
|
51
|
+
const isGnosisConnected = connector?.id === "safe" && isConnected;
|
|
62
52
|
return {
|
|
63
|
-
|
|
64
|
-
isSameAddressAndGnosisContext,
|
|
53
|
+
gnosisSafeInfo,
|
|
65
54
|
isGnosisContext,
|
|
66
55
|
getGnosisTransactionHash,
|
|
56
|
+
isGnosisConnected,
|
|
57
|
+
gnosisAddress: isGnosisConnected ? address : undefined,
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
export const useIsSameAddressAndGnosisContext = () => {
|
|
61
|
+
const { isGnosisContext } = useGnosisContext();
|
|
62
|
+
const { fromChain } = useSwap();
|
|
63
|
+
const { connectedAddress: sourceAddress } = useMultiChainWallet(fromChain);
|
|
64
|
+
const destinationAddress = useSwapRoutePersistStore((store) => store.swapRoute?.destinationAddress?.address);
|
|
65
|
+
/**
|
|
66
|
+
* Check if we are in a Gnosis Safe Context
|
|
67
|
+
* And if source wallet address = destination address
|
|
68
|
+
* If destinationAddress is not defined, it means that it's the same from the source
|
|
69
|
+
*/
|
|
70
|
+
const isSameAddressAndGnosisContext = useMemo(() => {
|
|
71
|
+
const destAddressSameAsSource = sourceAddress === destinationAddress || destinationAddress === undefined;
|
|
72
|
+
return isGnosisContext && destAddressSameAsSource;
|
|
73
|
+
}, [sourceAddress, destinationAddress, isGnosisContext]);
|
|
74
|
+
return {
|
|
75
|
+
isSameAddressAndGnosisContext,
|
|
67
76
|
};
|
|
68
77
|
};
|
|
69
78
|
//# sourceMappingURL=useGnosisContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGnosisContext.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useGnosisContext.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,EAAE,EAClB,iBAAiB,IAAI,uBAAuB,
|
|
1
|
+
{"version":3,"file":"useGnosisContext.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useGnosisContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,14 @@ import { useCosmosContext } from "../../core/providers/CosmosProvider";
|
|
|
7
7
|
import { addEthereumChain, formatHash, isEvmChainNotSupportedError, } from "../../services/internal/walletService";
|
|
8
8
|
import { useSquidChains } from "../chains/useSquidChains";
|
|
9
9
|
import { useEnsDataForAddress } from "./useEns";
|
|
10
|
+
import { useGnosisContext } from "./useGnosisContext";
|
|
10
11
|
import { useWallet } from "./useWallet";
|
|
11
12
|
export const useMultiChainWallet = (chain) => {
|
|
12
13
|
const { connectedAddresses, connectedWalletsByChainType } = useWallet();
|
|
13
14
|
const { chain: currentEvmChain, connector: evmConnector } = useAccount();
|
|
14
15
|
const { chains } = useSquidChains();
|
|
15
16
|
const { getCosmosAddressForChain } = useCosmosContext();
|
|
17
|
+
const { isGnosisConnected } = useGnosisContext();
|
|
16
18
|
const { switchChainAsync } = useSwitchChain();
|
|
17
19
|
const evmAddress = useMemo(() => connectedAddresses[ChainType.EVM], [connectedAddresses]);
|
|
18
20
|
const evmEnsData = useEnsDataForAddress({
|
|
@@ -85,9 +87,12 @@ export const useMultiChainWallet = (chain) => {
|
|
|
85
87
|
},
|
|
86
88
|
});
|
|
87
89
|
const isChainTypeConnected = useCallback((chainType) => {
|
|
90
|
+
if (isGnosisConnected && chainType === ChainType.EVM) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
88
93
|
const connectedWallet = connectedWalletsByChainType[chainType];
|
|
89
94
|
return !!connectedWallet?.wallet && !!connectedWallet?.address;
|
|
90
|
-
}, [connectedWalletsByChainType]);
|
|
95
|
+
}, [connectedWalletsByChainType, isGnosisConnected]);
|
|
91
96
|
/**
|
|
92
97
|
* Handle multiple chains
|
|
93
98
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMultiChainWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useMultiChainWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAA4B,EAAE,EAAE;IAClE,MAAM,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,GAAG,SAAS,EAAE,CAAC;IACxE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAAC;IACzE,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,EAAE,wBAAwB,EAAE,GAAG,gBAAgB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"useMultiChainWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useMultiChainWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { ChainData } from "@0xsquid/squid-types";
|
|
2
2
|
import { ChainType } from "@0xsquid/squid-types";
|
|
3
3
|
import type { Wallet } from "../../core/types/wallet";
|
|
4
|
-
export declare const useEvmWalletListener: () => void;
|
|
5
4
|
export declare const useWallet: () => {
|
|
6
5
|
wallets: Wallet[];
|
|
7
6
|
connectedWallets: Wallet[];
|
|
@@ -18,4 +17,6 @@ export declare const useWallet: () => {
|
|
|
18
17
|
chain?: ChainData | undefined;
|
|
19
18
|
}, unknown>;
|
|
20
19
|
isWalletConnected: (wallet: Wallet) => boolean;
|
|
20
|
+
isConnected: (chainType: ChainType) => boolean;
|
|
21
21
|
};
|
|
22
|
+
export declare const useEvmWalletListener: () => void;
|
|
@@ -6,29 +6,10 @@ import { CHAIN_IDS } from "../../core/constants";
|
|
|
6
6
|
import { useCosmosContext } from "../../core/providers/CosmosProvider";
|
|
7
7
|
import { connectWalletByType, findWalletByWagmiConnector, redirectExtensionStoreIfNotInstalled, } from "../../services/internal/walletService";
|
|
8
8
|
import { useSquidChains } from "../chains/useSquidChains";
|
|
9
|
+
import { useConfigStore } from "../store/useSquidStore";
|
|
9
10
|
import { useWalletStore } from "../store/useWalletStore";
|
|
11
|
+
import { useGnosisContext } from "./useGnosisContext";
|
|
10
12
|
import { useWallets } from "./useWallets";
|
|
11
|
-
export const useEvmWalletListener = () => {
|
|
12
|
-
const { address, connector, isConnected, isConnecting } = useAccount();
|
|
13
|
-
const { wallets } = useWallets();
|
|
14
|
-
const { setConnectedWallet } = useWalletStore();
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (isConnected && address && connector && !isConnecting) {
|
|
17
|
-
const wallet = findWalletByWagmiConnector(wallets, connector);
|
|
18
|
-
setConnectedWallet(ChainType.EVM, wallet, address);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
setConnectedWallet(ChainType.EVM, undefined, undefined);
|
|
22
|
-
}
|
|
23
|
-
}, [
|
|
24
|
-
isConnected,
|
|
25
|
-
address,
|
|
26
|
-
connector,
|
|
27
|
-
setConnectedWallet,
|
|
28
|
-
wallets,
|
|
29
|
-
isConnecting,
|
|
30
|
-
]);
|
|
31
|
-
};
|
|
32
13
|
export const useWallet = () => {
|
|
33
14
|
const { wallets } = useWallets();
|
|
34
15
|
const { connector: activeEvmConnector } = useAccount();
|
|
@@ -36,7 +17,7 @@ export const useWallet = () => {
|
|
|
36
17
|
const { connectCosmos, cosmosConnectedWallet } = useCosmosContext();
|
|
37
18
|
const { connectAsync: connectEvmAsync } = useConnect();
|
|
38
19
|
const { findChain } = useSquidChains();
|
|
39
|
-
|
|
20
|
+
const { isGnosisConnected, gnosisAddress } = useGnosisContext();
|
|
40
21
|
const { connectedWalletsByChainType, connectingWallet, setConnectedWallet, setConnectingWallet, disconnectWallet: storeDisconnectWallet, } = useWalletStore();
|
|
41
22
|
const getBaseChain = (wallet, chain) => {
|
|
42
23
|
if (chain)
|
|
@@ -63,7 +44,7 @@ export const useWallet = () => {
|
|
|
63
44
|
cosmosConnectedWallet,
|
|
64
45
|
});
|
|
65
46
|
if (result) {
|
|
66
|
-
setConnectedWallet(wallet
|
|
47
|
+
setConnectedWallet(wallet, result.address);
|
|
67
48
|
}
|
|
68
49
|
return true;
|
|
69
50
|
}
|
|
@@ -111,11 +92,18 @@ export const useWallet = () => {
|
|
|
111
92
|
}
|
|
112
93
|
};
|
|
113
94
|
const connectedAddresses = useMemo(() => {
|
|
114
|
-
|
|
95
|
+
const chainTypeToAddressMap = Object.fromEntries(Object.entries(connectedWalletsByChainType).map(([key, value]) => [
|
|
115
96
|
key,
|
|
116
97
|
value.address,
|
|
117
98
|
]));
|
|
118
|
-
|
|
99
|
+
if (isGnosisConnected) {
|
|
100
|
+
return {
|
|
101
|
+
...chainTypeToAddressMap,
|
|
102
|
+
[ChainType.EVM]: gnosisAddress,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
return chainTypeToAddressMap;
|
|
106
|
+
}, [connectedWalletsByChainType, isGnosisConnected, gnosisAddress]);
|
|
119
107
|
const isWalletConnected = useCallback((wallet) => {
|
|
120
108
|
const connectedWallet = connectedWalletsByChainType[wallet.type];
|
|
121
109
|
return connectedWallet?.wallet?.connectorId === wallet.connectorId;
|
|
@@ -125,6 +113,9 @@ export const useWallet = () => {
|
|
|
125
113
|
.map((c) => c.wallet)
|
|
126
114
|
.filter((w) => w !== null && w !== undefined);
|
|
127
115
|
}, [connectedWalletsByChainType]);
|
|
116
|
+
const isConnected = useCallback((chainType) => {
|
|
117
|
+
return !!connectedAddresses[chainType];
|
|
118
|
+
}, [connectedAddresses]);
|
|
128
119
|
return {
|
|
129
120
|
wallets,
|
|
130
121
|
connectedWallets,
|
|
@@ -135,6 +126,45 @@ export const useWallet = () => {
|
|
|
135
126
|
disconnectWallet,
|
|
136
127
|
connectWallet: connectWalletMutation.mutateAsync,
|
|
137
128
|
isWalletConnected,
|
|
129
|
+
isConnected,
|
|
138
130
|
};
|
|
139
131
|
};
|
|
132
|
+
export const useEvmWalletListener = () => {
|
|
133
|
+
const { address, connector, isConnected, isConnecting, isDisconnected } = useAccount();
|
|
134
|
+
const { connectedWalletsByChainType, disconnectWallet, connectWallet } = useWallet();
|
|
135
|
+
const { wallets } = useWallets();
|
|
136
|
+
const { setConnectedWallet } = useWalletStore();
|
|
137
|
+
const { isInitialized } = useConfigStore();
|
|
138
|
+
const evmConnectedWallet = connectedWalletsByChainType[ChainType.EVM];
|
|
139
|
+
useEffect(() => {
|
|
140
|
+
if (!isInitialized)
|
|
141
|
+
return;
|
|
142
|
+
if (isConnected &&
|
|
143
|
+
address &&
|
|
144
|
+
connector &&
|
|
145
|
+
!isConnecting &&
|
|
146
|
+
!evmConnectedWallet.wallet &&
|
|
147
|
+
!isDisconnected) {
|
|
148
|
+
const wallet = findWalletByWagmiConnector(wallets, connector);
|
|
149
|
+
if (wallet) {
|
|
150
|
+
setConnectedWallet(wallet, address);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else if (isDisconnected && evmConnectedWallet.wallet) {
|
|
154
|
+
disconnectWallet(ChainType.EVM);
|
|
155
|
+
}
|
|
156
|
+
}, [
|
|
157
|
+
address,
|
|
158
|
+
connectWallet,
|
|
159
|
+
connector,
|
|
160
|
+
disconnectWallet,
|
|
161
|
+
evmConnectedWallet.wallet,
|
|
162
|
+
isConnected,
|
|
163
|
+
isConnecting,
|
|
164
|
+
isDisconnected,
|
|
165
|
+
isInitialized,
|
|
166
|
+
setConnectedWallet,
|
|
167
|
+
wallets,
|
|
168
|
+
]);
|
|
169
|
+
};
|
|
140
170
|
//# sourceMappingURL=useWallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,oCAAoC,GACrC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,oCAAoC,GACrC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,UAAU,EAAE,CAAC;IACvD,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3D,MAAM,EAAE,aAAa,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACpE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,CAAC;IACvD,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IACvC,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEhE,MAAM,EACJ,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAAE,qBAAqB,GACxC,GAAG,cAAc,EAAE,CAAC;IAErB,MAAM,YAAY,GAAG,CACnB,MAAc,EACd,KAA4B,EACjB,EAAE;QACb,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,QAAQ,MAAM,CAAC,IAAI,EAAE;YACnB,KAAK,SAAS,CAAC,GAAG;gBAChB,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAc,CAAC;YAC5D,KAAK,SAAS,CAAC,MAAM;gBACnB,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAc,CAAC;YAC3D;gBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;SAC9D;IACH,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,WAAW,CAAC;QACxC,UAAU,EAAE,KAAK,EAAE,EACjB,MAAM,EACN,KAAK,GAIN,EAAE,EAAE;YACH,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC5B,oCAAoC,CAAC,MAAM,CAAC,CAAC;YAE7C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE9C,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE;oBAC1D,eAAe;oBACf,kBAAkB;oBAClB,aAAa;oBACb,qBAAqB;iBACtB,CAAC,CAAC;gBACH,IAAI,MAAM,EAAE;oBACV,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;iBAC5C;gBACD,OAAO,IAAI,CAAC;aACb;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBACjD,OAAO,KAAK,CAAC;aACd;oBAAS;gBACR,mBAAmB,CAAC,SAAS,CAAC,CAAC;aAChC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,KAAK,EAAE,SAAoB,EAAE,EAAE;QACtD,IAAI;YACF,QAAQ,SAAS,EAAE;gBACjB,KAAK,SAAS,CAAC,GAAG;oBAChB,MAAM,aAAa,EAAE,CAAC;oBACtB,MAAM;gBACR,KAAK,SAAS,CAAC,MAAM;oBACnB,oCAAoC;oBACpC,MAAM;aACT;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,wBAAwB,SAAS,UAAU,EAAE,KAAK,CAAC,CAAC;SACnE;gBAAS;YACR,qBAAqB,CAAC,SAAS,CAAC,CAAC;SAClC;IACH,CAAC,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAEjD,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;QAC9B,IAAI;YACF,MAAM,YAAY,EAAE,OAAO,CAAC;gBAC1B,MAAM,EAAE,2BAA2B;gBACnC,MAAM,EAAE;oBACN;wBACE,YAAY,EAAE,EAAE;qBACjB;iBACF;aACF,CAAC,CAAC;SACJ;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,MAAM,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAC9C,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAChE,GAAG;YACH,KAAK,CAAC,OAAO;SACd,CAAC,CACsC,CAAC;QAE3C,IAAI,iBAAiB,EAAE;YACrB,OAAO;gBACL,GAAG,qBAAqB;gBACxB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,aAAa;aAC/B,CAAC;SACH;QAED,OAAO,qBAAqB,CAAC;IAC/B,CAAC,EAAE,CAAC,2BAA2B,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;IAEpE,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,MAAc,EAAE,EAAE;QACjB,MAAM,eAAe,GAAG,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,eAAe,EAAE,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC;IACrE,CAAC,EACD,CAAC,2BAA2B,CAAC,CAC9B,CAAC;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/D,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,SAAoB,EAAE,EAAE;QACvB,OAAO,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,EACD,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,OAAO;QACL,OAAO;QACP,gBAAgB;QAChB,2BAA2B;QAC3B,kBAAkB;QAClB,gBAAgB;QAChB,YAAY;QACZ,gBAAgB;QAChB,aAAa,EAAE,qBAAqB,CAAC,WAAW;QAChD,iBAAiB;QACjB,WAAW;KACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,GACrE,UAAU,EAAE,CAAC;IACf,MAAM,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,aAAa,EAAE,GACpE,SAAS,EAAE,CAAC;IACd,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;IACjC,MAAM,EAAE,kBAAkB,EAAE,GAAG,cAAc,EAAE,CAAC;IAChD,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE,CAAC;IAC3C,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEtE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,IACE,WAAW;YACX,OAAO;YACP,SAAS;YACT,CAAC,YAAY;YACb,CAAC,kBAAkB,CAAC,MAAM;YAC1B,CAAC,cAAc,EACf;YACA,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,MAAM,EAAE;gBACV,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aACrC;SACF;aAAM,IAAI,cAAc,IAAI,kBAAkB,CAAC,MAAM,EAAE;YACtD,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACjC;IACH,CAAC,EAAE;QACD,OAAO;QACP,aAAa;QACb,SAAS;QACT,gBAAgB;QAChB,kBAAkB,CAAC,MAAM;QACzB,WAAW;QACX,YAAY;QACZ,cAAc;QACd,aAAa;QACb,kBAAkB;QAClB,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/dist/provider/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { AppConfig } from "../core/types/config";
|
|
2
|
+
import React from "react";
|
|
3
3
|
interface ISdkProviderProps {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
config: AppConfig;
|
|
6
|
+
placeholder?: React.ReactNode;
|
|
6
7
|
}
|
|
7
8
|
export declare const SquidProvider: React.FC<ISdkProviderProps>;
|
|
8
9
|
export {};
|
package/dist/provider/index.js
CHANGED
|
@@ -1,66 +1,25 @@
|
|
|
1
1
|
import { Squid } from "@0xsquid/sdk";
|
|
2
2
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
3
|
-
import { createConfig, http, injected } from "@wagmi/core";
|
|
4
|
-
import React, { createContext, useCallback, useEffect, useRef, useState, } from "react";
|
|
5
|
-
import { createClient } from "viem";
|
|
6
|
-
import { arbitrum, avalanche, base, blast, bsc, celo, fantom, kava, linea, mainnet, mantle, moonbeam, optimism, polygon, scroll, } from "viem/chains";
|
|
7
|
-
import { WagmiProvider } from "wagmi";
|
|
8
|
-
import { metaMask } from "wagmi/connectors";
|
|
9
3
|
import { squidApiBaseUrl } from "../core/externalLinks";
|
|
10
4
|
import { CosmosProvider } from "../core/providers/CosmosProvider";
|
|
11
5
|
import { defaultOptions } from "../core/queries/react-query-config";
|
|
12
6
|
import { createWagmiConfig } from "../core/wagmiConfig";
|
|
13
7
|
import { useConfigStore, useSquidStore, useSwapRoutePersistStore, } from "../hooks/store/useSquidStore";
|
|
14
8
|
import { getConfigWithDefaults } from "../services/internal/configService";
|
|
15
|
-
|
|
9
|
+
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
10
|
+
import { WagmiProvider } from "wagmi";
|
|
16
11
|
const queryClient = new QueryClient({ defaultOptions });
|
|
17
12
|
const verifyIntegratorIdValidity = (integratorId) => {
|
|
18
13
|
if (!integratorId) {
|
|
19
14
|
throw new Error("Integrator ID is required");
|
|
20
15
|
}
|
|
21
16
|
};
|
|
22
|
-
export const SquidProvider = ({ children, config, }) => {
|
|
17
|
+
export const SquidProvider = ({ children, config, placeholder, }) => {
|
|
23
18
|
verifyIntegratorIdValidity(config.integratorId);
|
|
24
|
-
const [wagmiConfig, setWagmiConfig] = useState(
|
|
25
|
-
chains: [
|
|
26
|
-
mainnet,
|
|
27
|
-
arbitrum,
|
|
28
|
-
avalanche,
|
|
29
|
-
base,
|
|
30
|
-
optimism,
|
|
31
|
-
polygon,
|
|
32
|
-
linea,
|
|
33
|
-
bsc,
|
|
34
|
-
fantom,
|
|
35
|
-
mantle,
|
|
36
|
-
moonbeam,
|
|
37
|
-
celo,
|
|
38
|
-
blast,
|
|
39
|
-
kava,
|
|
40
|
-
scroll,
|
|
41
|
-
],
|
|
42
|
-
connectors: [
|
|
43
|
-
metaMask({
|
|
44
|
-
dappMetadata: {
|
|
45
|
-
name: "Squid",
|
|
46
|
-
url: "https://app.squidrouter.com",
|
|
47
|
-
},
|
|
48
|
-
}),
|
|
49
|
-
injected(),
|
|
50
|
-
],
|
|
51
|
-
client({ chain }) {
|
|
52
|
-
return createClient({ chain, transport: http() });
|
|
53
|
-
},
|
|
54
|
-
}));
|
|
19
|
+
const [wagmiConfig, setWagmiConfig] = useState();
|
|
55
20
|
const sdkInitializedRef = useRef(false);
|
|
56
|
-
const initWagmiConfig = useCallback((chains) => {
|
|
57
|
-
const newConfig = createWagmiConfig(chains);
|
|
58
|
-
setWagmiConfig(newConfig);
|
|
59
|
-
useConfigStore.setState({ isInitialized: true, config: config });
|
|
60
|
-
}, [config]);
|
|
61
21
|
const initializeSdk = useCallback(async () => {
|
|
62
22
|
if (sdkInitializedRef.current) {
|
|
63
|
-
// SDK has already been initialized
|
|
64
23
|
return;
|
|
65
24
|
}
|
|
66
25
|
sdkInitializedRef.current = true;
|
|
@@ -70,9 +29,6 @@ export const SquidProvider = ({ children, config, }) => {
|
|
|
70
29
|
baseUrl: config.apiUrl ?? squidApiBaseUrl,
|
|
71
30
|
});
|
|
72
31
|
await squid.init();
|
|
73
|
-
// Reset config if integrator doesn't want to load local storage state
|
|
74
|
-
// From previous user session
|
|
75
|
-
// Or if integrator has set up some pre-defined states (initial tokens)
|
|
76
32
|
if (!config?.loadPreviousStateFromLocalStorage ||
|
|
77
33
|
config.initialAssets?.from ||
|
|
78
34
|
config.initialAssets?.to) {
|
|
@@ -82,14 +38,18 @@ export const SquidProvider = ({ children, config, }) => {
|
|
|
82
38
|
});
|
|
83
39
|
}
|
|
84
40
|
useSquidStore.setState((_) => ({
|
|
41
|
+
squid,
|
|
42
|
+
maintenanceMode: { active: false, message: undefined },
|
|
43
|
+
}));
|
|
44
|
+
const newWagmiConfig = createWagmiConfig(squid.chains);
|
|
45
|
+
setWagmiConfig(newWagmiConfig);
|
|
46
|
+
useConfigStore.setState({
|
|
47
|
+
isInitialized: true,
|
|
85
48
|
config: getConfigWithDefaults({
|
|
86
49
|
apiUrl: config.apiUrl ?? squidApiBaseUrl,
|
|
87
50
|
...config,
|
|
88
51
|
}),
|
|
89
|
-
|
|
90
|
-
maintenanceMode: { active: false, message: undefined },
|
|
91
|
-
}));
|
|
92
|
-
initWagmiConfig(squid.chains);
|
|
52
|
+
});
|
|
93
53
|
}
|
|
94
54
|
catch (error) {
|
|
95
55
|
const isAxios503Error = error.isAxiosError &&
|
|
@@ -109,16 +69,12 @@ export const SquidProvider = ({ children, config, }) => {
|
|
|
109
69
|
console.error("Error initializing SDK:", error);
|
|
110
70
|
}
|
|
111
71
|
}
|
|
112
|
-
}, [config
|
|
72
|
+
}, [config]);
|
|
113
73
|
useEffect(() => {
|
|
114
74
|
initializeSdk();
|
|
115
75
|
}, [initializeSdk]);
|
|
116
|
-
return (
|
|
117
|
-
// disable reconnect on mount
|
|
118
|
-
// handled manually by useAutoConnect hook
|
|
119
|
-
React.createElement(WagmiProvider, { config: wagmiConfig, reconnectOnMount: false },
|
|
76
|
+
return wagmiConfig ? (React.createElement(WagmiProvider, { config: wagmiConfig },
|
|
120
77
|
React.createElement(QueryClientProvider, { client: queryClient },
|
|
121
|
-
React.createElement(
|
|
122
|
-
React.createElement(CosmosProvider, null, children)))));
|
|
78
|
+
React.createElement(CosmosProvider, null, children)))) : (placeholder);
|
|
123
79
|
};
|
|
124
80
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
import { TOKEN_PRICE_API_URL } from "../../core/constants";
|
|
1
2
|
import { formatUsdAmount } from "../internal/numberService";
|
|
2
3
|
const MAX_COINGECKO_QUERY_TOKENS = 100;
|
|
3
|
-
// TODO: Change that to a prod API
|
|
4
|
-
const SQUID_COINGECKO_API_URL = `https://squid-app-v2-git-chore-wallet-token-chart-0xsquid.vercel.app/api/coingecko`;
|
|
5
4
|
export const fetchHistoricalData = async (coingeckoId, timeFrame) => {
|
|
6
5
|
const now = Math.floor(Date.now() / 1000);
|
|
7
6
|
let from;
|
|
@@ -20,7 +19,7 @@ export const fetchHistoricalData = async (coingeckoId, timeFrame) => {
|
|
|
20
19
|
break;
|
|
21
20
|
}
|
|
22
21
|
try {
|
|
23
|
-
const response = await fetch(`${
|
|
22
|
+
const response = await fetch(`${TOKEN_PRICE_API_URL}?action=getHistoricalData&id=${coingeckoId}&vs_currency=usd&from=${from}&to=${now}`);
|
|
24
23
|
if (!response.ok) {
|
|
25
24
|
throw new Error("Network response was not ok");
|
|
26
25
|
}
|
|
@@ -40,7 +39,7 @@ export const fetchTokensData = async (tokens) => {
|
|
|
40
39
|
if (coingeckoIds.length > MAX_COINGECKO_QUERY_TOKENS) {
|
|
41
40
|
throw new Error(`Too many tokens requested. Maximum allowed is ${MAX_COINGECKO_QUERY_TOKENS}.`);
|
|
42
41
|
}
|
|
43
|
-
const response = await fetch(`${
|
|
42
|
+
const response = await fetch(`${TOKEN_PRICE_API_URL}?action=getCoinData&ids=${coingeckoIds.join(",")}`);
|
|
44
43
|
if (!response.ok) {
|
|
45
44
|
throw new Error("Network response was not ok");
|
|
46
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenDataService.js","sourceRoot":"","sources":["../../../src/services/external/tokenDataService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokenDataService.js","sourceRoot":"","sources":["../../../src/services/external/tokenDataService.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,14 +8,6 @@ export declare const transactionErrorCode: Record<string, TransactionErrorWithMe
|
|
|
8
8
|
* @returns boolean
|
|
9
9
|
*/
|
|
10
10
|
export declare const isTransactionError: (error: any) => error is TransactionError;
|
|
11
|
-
interface GnosisTransactionError {
|
|
12
|
-
code: string;
|
|
13
|
-
error: {
|
|
14
|
-
message: string;
|
|
15
|
-
};
|
|
16
|
-
shortMessage: string;
|
|
17
|
-
}
|
|
18
|
-
export declare const isGnosisSafeTxError: (error: any) => error is GnosisTransactionError;
|
|
19
11
|
/**
|
|
20
12
|
* Return the error from enum entry
|
|
21
13
|
* @param error
|
|
@@ -31,7 +23,6 @@ export declare const getTransactionError: (error: any) => TransactionErrorWithMe
|
|
|
31
23
|
*/
|
|
32
24
|
export declare const isSwapRouteError: (error: any) => error is SquidRouteError;
|
|
33
25
|
export declare const isStatusError: (error: any) => error is SquidStatusError;
|
|
34
|
-
export {};
|
|
35
26
|
/**
|
|
36
27
|
* Tries to parse as SquidRouteError Type & Return the error from Record entries
|
|
37
28
|
* @param error
|
|
@@ -10,11 +10,6 @@ export const transactionErrorCode = {
|
|
|
10
10
|
type: TransactionErrorType.REJECTED_BY_USER,
|
|
11
11
|
message: "Return to the swap page and try again.",
|
|
12
12
|
},
|
|
13
|
-
// Gnosis Safe
|
|
14
|
-
"Transaction was rejected": {
|
|
15
|
-
type: TransactionErrorType.REJECTED_BY_USER,
|
|
16
|
-
message: "Return to the swap page and try again.",
|
|
17
|
-
},
|
|
18
13
|
// Metamask
|
|
19
14
|
4001: {
|
|
20
15
|
type: TransactionErrorType.REJECTED_BY_USER,
|
|
@@ -44,12 +39,9 @@ export const isTransactionError = (error) => {
|
|
|
44
39
|
typeof error.reason === "string" ||
|
|
45
40
|
typeof error.action === "string"));
|
|
46
41
|
};
|
|
47
|
-
|
|
42
|
+
const isGnosisSafeTxRejectedError = (error) => {
|
|
48
43
|
try {
|
|
49
|
-
return
|
|
50
|
-
typeof error.code === "string" &&
|
|
51
|
-
typeof error.error.message === "string" &&
|
|
52
|
-
typeof error.shortMessage === "string");
|
|
44
|
+
return error.error.message === "Transaction was rejected";
|
|
53
45
|
}
|
|
54
46
|
catch {
|
|
55
47
|
return false;
|
|
@@ -69,15 +61,10 @@ const isRainbowWalletTxRejectedError = (error) => {
|
|
|
69
61
|
* @returns boolean
|
|
70
62
|
*/
|
|
71
63
|
export const getTransactionError = (error) => {
|
|
72
|
-
if (isRainbowWalletTxRejectedError(error)
|
|
64
|
+
if (isRainbowWalletTxRejectedError(error) ||
|
|
65
|
+
isGnosisSafeTxRejectedError(error)) {
|
|
73
66
|
return transactionErrorCode.ACTION_REJECTED;
|
|
74
67
|
}
|
|
75
|
-
if (isGnosisSafeTxError(error)) {
|
|
76
|
-
const errorWithMessage = transactionErrorCode[error.error.message];
|
|
77
|
-
if (errorWithMessage) {
|
|
78
|
-
return errorWithMessage;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
68
|
if (isTransactionError(error)) {
|
|
82
69
|
const castError = error;
|
|
83
70
|
if (castError.code)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorService.js","sourceRoot":"","sources":["../../../src/services/internal/errorService.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAC/B;IACE,WAAW;IACX,eAAe,EAAE;QACf,IAAI,EAAE,oBAAoB,CAAC,gBAAgB;QAC3C,OAAO,EAAE,wCAAwC;KAClD;IACD,QAAQ;IACR,kBAAkB,EAAE;QAClB,IAAI,EAAE,oBAAoB,CAAC,gBAAgB;QAC3C,OAAO,EAAE,wCAAwC;KAClD;IACD,
|
|
1
|
+
{"version":3,"file":"errorService.js","sourceRoot":"","sources":["../../../src/services/internal/errorService.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,7 +96,14 @@ export declare function isEvmChainNotSupportedError(error: any): boolean;
|
|
|
96
96
|
* @param connector
|
|
97
97
|
* @returns
|
|
98
98
|
*/
|
|
99
|
-
export declare const findWalletByWagmiConnector: (wallets: Wallet[], connector: Connector) => Wallet | undefined;
|
|
99
|
+
export declare const findWalletByWagmiConnector: (wallets: Wallet[], connector: Connector | undefined) => Wallet | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Find a wallet by label (connector ID, name, or RDNS)
|
|
102
|
+
* @param wallets
|
|
103
|
+
* @param label
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
export declare const findWalletByLabel: (wallets: Wallet[], label: string) => Wallet | undefined;
|
|
100
107
|
export declare const connectEvmWallet: (wallet: EvmWallet, { connectEvmAsync, activeEvmConnector, }: {
|
|
101
108
|
connectEvmAsync: any;
|
|
102
109
|
activeEvmConnector: any;
|