@bit-buccaneers/wallet-abstraction 0.0.9 → 0.0.11
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/dev.js +206 -34
- package/dist/dev.jsx +221 -33
- package/dist/index.js +204 -34
- package/dist/index.jsx +219 -33
- package/dist/lib/connectors/bitget.d.ts +1 -0
- package/dist/lib/connectors/index.d.ts +1 -1
- package/dist/lib/connectors/shared/constants.d.ts +2 -2
- package/dist/lib/context/WalletContext.d.ts +2 -0
- package/dist/lib/context/hooks/index.d.ts +1 -0
- package/dist/lib/context/hooks/useEvmTransactions.d.ts +17 -0
- package/dist/lib/core/types.d.ts +3 -2
- package/dist/lib/evm/connectors.d.ts +1 -0
- package/dist/lib/evm/erc20.d.ts +19 -0
- package/dist/lib/evm/index.d.ts +2 -0
- package/dist/lib/evm/transactions.d.ts +18 -0
- package/dist/lib/walletconnect/index.d.ts +1 -0
- package/dist/lib/walletconnect/transactions.d.ts +15 -0
- package/dist/lib/wallets/mappers.d.ts +3 -2
- package/package.json +1 -1
package/dist/dev.jsx
CHANGED
|
@@ -25,7 +25,12 @@ var getEvmConfig = () => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
// src/lib/evm/connectors.ts
|
|
28
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
connect,
|
|
30
|
+
disconnect,
|
|
31
|
+
getConnectors,
|
|
32
|
+
signMessage as wagmiSignMessage
|
|
33
|
+
} from "@wagmi/core";
|
|
29
34
|
|
|
30
35
|
// src/lib/core/constants.ts
|
|
31
36
|
var STORAGE_KEYS = {
|
|
@@ -160,7 +165,6 @@ var WALLETS = [
|
|
|
160
165
|
// src/lib/wallets/mappers.ts
|
|
161
166
|
var EVM_WALLET_ID_MAP = {
|
|
162
167
|
"app.phantom": "phantom",
|
|
163
|
-
"app.backpack": "backpack",
|
|
164
168
|
"com.trustwallet.app": "trust",
|
|
165
169
|
"com.binance.wallet": "binance",
|
|
166
170
|
"com.bitget.web3": "bitget",
|
|
@@ -187,7 +191,7 @@ var WC_CHAINS = {
|
|
|
187
191
|
SOLANA_MAINNET: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
|
|
188
192
|
};
|
|
189
193
|
var WC_METHODS = {
|
|
190
|
-
EVM: ["eth_sendTransaction", "personal_sign", "eth_signTypedData"],
|
|
194
|
+
EVM: ["eth_sendTransaction", "personal_sign", "eth_signTypedData", "wallet_switchEthereumChain"],
|
|
191
195
|
SOLANA: ["solana_signTransaction", "solana_signMessage"]
|
|
192
196
|
};
|
|
193
197
|
var WC_EVENTS = {
|
|
@@ -582,6 +586,54 @@ var requestWalletConnect = async (method, params, chainId) => {
|
|
|
582
586
|
}
|
|
583
587
|
};
|
|
584
588
|
|
|
589
|
+
// src/lib/walletconnect/transactions.ts
|
|
590
|
+
var toHex = (value) => `0x${value.toString(16)}`;
|
|
591
|
+
var getWcChainId = (chainId) => `eip155:${chainId}`;
|
|
592
|
+
var wcSwitchChain = async (chainId) => {
|
|
593
|
+
const session = getCurrentSession();
|
|
594
|
+
if (!session) throw new Error("No WalletConnect session");
|
|
595
|
+
await requestWalletConnect(
|
|
596
|
+
"wallet_switchEthereumChain",
|
|
597
|
+
[{ chainId: toHex(chainId) }],
|
|
598
|
+
getWcChainId(chainId)
|
|
599
|
+
);
|
|
600
|
+
};
|
|
601
|
+
var wcSendTransaction = async (params) => {
|
|
602
|
+
const session = getCurrentSession();
|
|
603
|
+
if (!session) throw new Error("No WalletConnect session");
|
|
604
|
+
const txParams = {
|
|
605
|
+
from: params.from,
|
|
606
|
+
to: params.to
|
|
607
|
+
};
|
|
608
|
+
if (params.value) {
|
|
609
|
+
txParams.value = params.value;
|
|
610
|
+
}
|
|
611
|
+
if (params.data) {
|
|
612
|
+
txParams.data = params.data;
|
|
613
|
+
}
|
|
614
|
+
const hash = await requestWalletConnect(
|
|
615
|
+
"eth_sendTransaction",
|
|
616
|
+
[txParams],
|
|
617
|
+
getWcChainId(params.chainId)
|
|
618
|
+
);
|
|
619
|
+
return { hash };
|
|
620
|
+
};
|
|
621
|
+
var getWcEvmAddress = () => {
|
|
622
|
+
const session = getCurrentSession();
|
|
623
|
+
if (!session) return null;
|
|
624
|
+
const account = session.namespaces.eip155?.accounts?.[0];
|
|
625
|
+
if (!account) return null;
|
|
626
|
+
return account.split(":")[2];
|
|
627
|
+
};
|
|
628
|
+
var getWcEvmChainId = () => {
|
|
629
|
+
const session = getCurrentSession();
|
|
630
|
+
if (!session) return null;
|
|
631
|
+
const account = session.namespaces.eip155?.accounts?.[0];
|
|
632
|
+
if (!account) return null;
|
|
633
|
+
const chainId = account.split(":")[1];
|
|
634
|
+
return chainId ? parseInt(chainId, 10) : null;
|
|
635
|
+
};
|
|
636
|
+
|
|
585
637
|
// src/lib/connectors/shared/walletconnect.ts
|
|
586
638
|
var connectViaWalletConnect = async (wcConfig, parseSession, getDeeplink) => {
|
|
587
639
|
let qrUri = null;
|
|
@@ -818,10 +870,12 @@ var createMetaMaskSolanaDappBrowserConnector = () => createDappBrowserSolanaConn
|
|
|
818
870
|
// src/lib/connectors/solflare.ts
|
|
819
871
|
var SOLFLARE_CONNECT_URL = "https://solflare.com/ul/v1/connect";
|
|
820
872
|
var SOLFLARE_SIGN_MESSAGE_URL = "https://solflare.com/ul/v1/signMessage";
|
|
821
|
-
var
|
|
873
|
+
var buildSolflareBrowseUrl = () => `https://solflare.com/ul/v1/browse/${encodeURIComponent(
|
|
874
|
+
window.location.href
|
|
875
|
+
)}?ref=${encodeURIComponent(window.location.origin)}`;
|
|
822
876
|
var createSolflareSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
823
877
|
walletId: "solflare",
|
|
824
|
-
|
|
878
|
+
buildUrl: buildSolflareBrowseUrl,
|
|
825
879
|
injectedKey: "isSolflare"
|
|
826
880
|
});
|
|
827
881
|
var SOLFLARE_CONFIG = {
|
|
@@ -893,12 +947,12 @@ var TRUST_CONFIG = {
|
|
|
893
947
|
wcDeeplink: "https://link.trustwallet.com/wc",
|
|
894
948
|
injectedKey: "isTrust"
|
|
895
949
|
};
|
|
896
|
-
var
|
|
950
|
+
var buildTrustBrowseUrl = () => `https://link.trustwallet.com/open_url?url=${encodeURIComponent(window.location.href)}`;
|
|
897
951
|
var createTrustEvmMobileConnector = () => createWcEvmConnector(TRUST_CONFIG);
|
|
898
952
|
var createTrustSolanaMobileConnector = () => createWcSolanaConnector(TRUST_CONFIG);
|
|
899
953
|
var createTrustSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
900
954
|
walletId: "trust",
|
|
901
|
-
|
|
955
|
+
buildUrl: buildTrustBrowseUrl,
|
|
902
956
|
injectedKey: "isTrust"
|
|
903
957
|
});
|
|
904
958
|
|
|
@@ -916,14 +970,8 @@ var EXODUS_CONFIG = {
|
|
|
916
970
|
wcDeeplink: "https://exodus.com/wc",
|
|
917
971
|
injectedKey: "isExodus"
|
|
918
972
|
};
|
|
919
|
-
var EXODUS_BROWSE_URL = "https://exodus.com/m/browser";
|
|
920
973
|
var createExodusEvmMobileConnector = () => createWcEvmConnector(EXODUS_CONFIG);
|
|
921
974
|
var createExodusSolanaMobileConnector = () => createWcSolanaConnector(EXODUS_CONFIG);
|
|
922
|
-
var createExodusSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
923
|
-
walletId: "exodus",
|
|
924
|
-
browseUrl: EXODUS_BROWSE_URL,
|
|
925
|
-
injectedKey: "isExodus"
|
|
926
|
-
});
|
|
927
975
|
|
|
928
976
|
// src/lib/connectors/binance.ts
|
|
929
977
|
var BINANCE_CONFIG = {
|
|
@@ -941,11 +989,7 @@ var createBinanceSolanaDappBrowserConnector = () => createDappBrowserSolanaConne
|
|
|
941
989
|
});
|
|
942
990
|
|
|
943
991
|
// src/lib/connectors/okx.ts
|
|
944
|
-
var buildOkxBrowseUrl = () => {
|
|
945
|
-
const dappUrl = window.location.href;
|
|
946
|
-
const deepLink = `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(dappUrl)}`;
|
|
947
|
-
return `https://web3.okx.com/download?deeplink=${encodeURIComponent(deepLink)}`;
|
|
948
|
-
};
|
|
992
|
+
var buildOkxBrowseUrl = () => `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(window.location.href)}`;
|
|
949
993
|
var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
950
994
|
walletId: "okx",
|
|
951
995
|
injectedKey: "isOkxWallet",
|
|
@@ -961,12 +1005,17 @@ var createCoinbaseSolanaDappBrowserConnector = () => createDappBrowserSolanaConn
|
|
|
961
1005
|
});
|
|
962
1006
|
|
|
963
1007
|
// src/lib/connectors/bitget.ts
|
|
964
|
-
var
|
|
1008
|
+
var BITGET_CONFIG = {
|
|
1009
|
+
walletId: "bitget",
|
|
1010
|
+
wcDeeplink: "bitkeep://bkconnect",
|
|
1011
|
+
injectedKey: "isBitKeep"
|
|
1012
|
+
};
|
|
1013
|
+
var buildBitgetBrowseUrl = () => `https://bkcode.vip?action=dapp&url=${encodeURIComponent(window.location.href)}`;
|
|
1014
|
+
var createBitgetSolanaConnector = () => createWcSolanaConnector(BITGET_CONFIG);
|
|
965
1015
|
var createBitgetSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
966
1016
|
walletId: "bitget",
|
|
967
|
-
browseUrl: BITGET_BROWSE_URL,
|
|
968
1017
|
injectedKey: "isBitKeep",
|
|
969
|
-
|
|
1018
|
+
buildUrl: buildBitgetBrowseUrl
|
|
970
1019
|
});
|
|
971
1020
|
|
|
972
1021
|
// src/lib/connectors/walletconnect.ts
|
|
@@ -1056,6 +1105,7 @@ var EVM_FALLBACK_CONNECTORS = [
|
|
|
1056
1105
|
{ id: "rainbow", create: createRainbowEvmMobileConnector },
|
|
1057
1106
|
{ id: "exodus", create: createExodusEvmMobileConnector }
|
|
1058
1107
|
];
|
|
1108
|
+
var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
|
|
1059
1109
|
var cleanupWalletLocalStorage = () => {
|
|
1060
1110
|
Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
|
|
1061
1111
|
};
|
|
@@ -1070,9 +1120,21 @@ var getEvmConnectors = () => {
|
|
|
1070
1120
|
wallet: {
|
|
1071
1121
|
_connector: c,
|
|
1072
1122
|
connect: async () => {
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1123
|
+
try {
|
|
1124
|
+
const result = await connect(getEvmConfig(), { connector: c });
|
|
1125
|
+
if (!result.accounts[0]) throw new Error("No accounts returned");
|
|
1126
|
+
return connectedResult(result.accounts[0], { chainId: result.chainId });
|
|
1127
|
+
} catch (err) {
|
|
1128
|
+
if (err instanceof Error && err.name === "ConnectorAlreadyConnectedError") {
|
|
1129
|
+
cleanupWalletLocalStorage();
|
|
1130
|
+
await disconnect(getEvmConfig(), { connector: c });
|
|
1131
|
+
await sleep(100);
|
|
1132
|
+
const result = await connect(getEvmConfig(), { connector: c });
|
|
1133
|
+
if (!result.accounts[0]) throw new Error("No accounts returned");
|
|
1134
|
+
return connectedResult(result.accounts[0], { chainId: result.chainId });
|
|
1135
|
+
}
|
|
1136
|
+
throw err;
|
|
1137
|
+
}
|
|
1076
1138
|
},
|
|
1077
1139
|
disconnect: async () => {
|
|
1078
1140
|
cleanupWalletLocalStorage();
|
|
@@ -1093,6 +1155,71 @@ var watchEvmConnections = (onChange) => {
|
|
|
1093
1155
|
return watchConnections(getEvmConfig(), { onChange });
|
|
1094
1156
|
};
|
|
1095
1157
|
|
|
1158
|
+
// src/lib/evm/transactions.ts
|
|
1159
|
+
import {
|
|
1160
|
+
sendTransaction as wagmiSendTransaction,
|
|
1161
|
+
switchChain as wagmiSwitchChain,
|
|
1162
|
+
waitForTransactionReceipt as wagmiWaitForReceipt
|
|
1163
|
+
} from "@wagmi/core";
|
|
1164
|
+
var switchChain = async (chainId) => {
|
|
1165
|
+
await wagmiSwitchChain(getEvmConfig(), { chainId });
|
|
1166
|
+
};
|
|
1167
|
+
var sendTransaction = async (params) => {
|
|
1168
|
+
const hash = await wagmiSendTransaction(getEvmConfig(), {
|
|
1169
|
+
to: params.to,
|
|
1170
|
+
value: params.value,
|
|
1171
|
+
data: params.data
|
|
1172
|
+
});
|
|
1173
|
+
return { hash };
|
|
1174
|
+
};
|
|
1175
|
+
var waitForTransactionReceipt = async (hash) => {
|
|
1176
|
+
const receipt = await wagmiWaitForReceipt(getEvmConfig(), { hash });
|
|
1177
|
+
return {
|
|
1178
|
+
hash: receipt.transactionHash,
|
|
1179
|
+
status: receipt.status,
|
|
1180
|
+
blockNumber: receipt.blockNumber
|
|
1181
|
+
};
|
|
1182
|
+
};
|
|
1183
|
+
|
|
1184
|
+
// src/lib/evm/erc20.ts
|
|
1185
|
+
import { readContract, writeContract } from "@wagmi/core";
|
|
1186
|
+
import { erc20Abi } from "viem";
|
|
1187
|
+
var getAllowance = async (params) => {
|
|
1188
|
+
return readContract(getEvmConfig(), {
|
|
1189
|
+
abi: erc20Abi,
|
|
1190
|
+
address: params.tokenAddress,
|
|
1191
|
+
functionName: "allowance",
|
|
1192
|
+
args: [params.owner, params.spender]
|
|
1193
|
+
});
|
|
1194
|
+
};
|
|
1195
|
+
var approve = async (params) => {
|
|
1196
|
+
const hash = await writeContract(getEvmConfig(), {
|
|
1197
|
+
address: params.tokenAddress,
|
|
1198
|
+
abi: erc20Abi,
|
|
1199
|
+
functionName: "approve",
|
|
1200
|
+
args: [params.spender, params.amount]
|
|
1201
|
+
});
|
|
1202
|
+
return waitForTransactionReceipt(hash);
|
|
1203
|
+
};
|
|
1204
|
+
var ensureAllowance = async (params) => {
|
|
1205
|
+
const currentAllowance = await getAllowance({
|
|
1206
|
+
tokenAddress: params.tokenAddress,
|
|
1207
|
+
owner: params.owner,
|
|
1208
|
+
spender: params.spender
|
|
1209
|
+
});
|
|
1210
|
+
if (currentAllowance >= params.amount) {
|
|
1211
|
+
return null;
|
|
1212
|
+
}
|
|
1213
|
+
if (currentAllowance > 0n) {
|
|
1214
|
+
await approve({
|
|
1215
|
+
tokenAddress: params.tokenAddress,
|
|
1216
|
+
spender: params.spender,
|
|
1217
|
+
amount: 0n
|
|
1218
|
+
});
|
|
1219
|
+
}
|
|
1220
|
+
return approve(params);
|
|
1221
|
+
};
|
|
1222
|
+
|
|
1096
1223
|
// src/lib/solana/connection.ts
|
|
1097
1224
|
var currentConnection = {
|
|
1098
1225
|
connection: null,
|
|
@@ -1215,11 +1342,10 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
|
|
|
1215
1342
|
},
|
|
1216
1343
|
{
|
|
1217
1344
|
id: "exodus",
|
|
1218
|
-
create: () => createSolanaMobileConnector(
|
|
1345
|
+
create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
|
|
1219
1346
|
}
|
|
1220
1347
|
] : [
|
|
1221
1348
|
{ id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
|
|
1222
|
-
// { id: 'metamask', create: () => createSolanaMobileConnector(createMetaMaskSolanaConnector()) },
|
|
1223
1349
|
{
|
|
1224
1350
|
id: "solflare",
|
|
1225
1351
|
create: () => createSolanaMobileConnector(createSolflareSolanaMobileConnector())
|
|
@@ -1229,6 +1355,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
|
|
|
1229
1355
|
create: () => createSolanaMobileConnector(createTrustSolanaMobileConnector())
|
|
1230
1356
|
},
|
|
1231
1357
|
{ id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
|
|
1358
|
+
{ id: "bitget", create: createBitgetSolanaConnector },
|
|
1232
1359
|
{
|
|
1233
1360
|
id: "exodus",
|
|
1234
1361
|
create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
|
|
@@ -1240,6 +1367,8 @@ var getSolanaWallets = () => {
|
|
|
1240
1367
|
const connectors = wallets.filter(isWalletAdapterCompatibleStandardWallet).filter((w) => {
|
|
1241
1368
|
return w.constructor.name !== "SolflareMetaMaskWallet";
|
|
1242
1369
|
}).map(createSolanaConnector);
|
|
1370
|
+
console.log({ wallets });
|
|
1371
|
+
console.log({ connectors });
|
|
1243
1372
|
addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
|
|
1244
1373
|
return connectors;
|
|
1245
1374
|
};
|
|
@@ -1389,6 +1518,60 @@ var useEvmWallet = (options) => {
|
|
|
1389
1518
|
};
|
|
1390
1519
|
};
|
|
1391
1520
|
|
|
1521
|
+
// src/lib/context/hooks/useEvmTransactions.ts
|
|
1522
|
+
var useEvmTransactions = (hasWcSession) => {
|
|
1523
|
+
const isWc = () => hasWcSession() && getCurrentSession();
|
|
1524
|
+
const switchChain2 = async (chainId) => {
|
|
1525
|
+
if (isWc()) {
|
|
1526
|
+
await wcSwitchChain(chainId);
|
|
1527
|
+
} else {
|
|
1528
|
+
await switchChain(chainId);
|
|
1529
|
+
}
|
|
1530
|
+
};
|
|
1531
|
+
const sendTransaction2 = async (params) => {
|
|
1532
|
+
if (isWc()) {
|
|
1533
|
+
const address = getWcEvmAddress();
|
|
1534
|
+
if (!address) throw new Error("No WalletConnect EVM address");
|
|
1535
|
+
const chainId = getWcEvmChainId();
|
|
1536
|
+
if (!chainId) throw new Error("No WalletConnect chain ID");
|
|
1537
|
+
const result = await wcSendTransaction({
|
|
1538
|
+
from: address,
|
|
1539
|
+
to: params.to,
|
|
1540
|
+
value: params.value !== void 0 ? `0x${params.value.toString(16)}` : void 0,
|
|
1541
|
+
data: params.data,
|
|
1542
|
+
chainId
|
|
1543
|
+
});
|
|
1544
|
+
return { hash: result.hash };
|
|
1545
|
+
}
|
|
1546
|
+
return sendTransaction(params);
|
|
1547
|
+
};
|
|
1548
|
+
const sendAndWait = async (params) => {
|
|
1549
|
+
const { hash } = await sendTransaction2(params);
|
|
1550
|
+
return waitForTransactionReceipt(hash);
|
|
1551
|
+
};
|
|
1552
|
+
const approve2 = async (params) => {
|
|
1553
|
+
if (isWc()) {
|
|
1554
|
+
throw new Error("ERC20 approve via WalletConnect not yet supported");
|
|
1555
|
+
}
|
|
1556
|
+
return approve(params);
|
|
1557
|
+
};
|
|
1558
|
+
const ensureAllowance2 = async (params) => {
|
|
1559
|
+
if (isWc()) {
|
|
1560
|
+
throw new Error("ERC20 ensureAllowance via WalletConnect not yet supported");
|
|
1561
|
+
}
|
|
1562
|
+
return ensureAllowance(params);
|
|
1563
|
+
};
|
|
1564
|
+
return {
|
|
1565
|
+
switchChain: switchChain2,
|
|
1566
|
+
sendTransaction: sendTransaction2,
|
|
1567
|
+
sendAndWait,
|
|
1568
|
+
waitForReceipt: waitForTransactionReceipt,
|
|
1569
|
+
approve: approve2,
|
|
1570
|
+
ensureAllowance: ensureAllowance2,
|
|
1571
|
+
getAllowance
|
|
1572
|
+
};
|
|
1573
|
+
};
|
|
1574
|
+
|
|
1392
1575
|
// src/lib/context/hooks/useSolanaWallet.ts
|
|
1393
1576
|
import { createSignal as createSignal2, onCleanup as onCleanup2, onMount as onMount2 } from "solid-js";
|
|
1394
1577
|
var useSolanaWallet = () => {
|
|
@@ -1398,13 +1581,16 @@ var useSolanaWallet = () => {
|
|
|
1398
1581
|
null
|
|
1399
1582
|
);
|
|
1400
1583
|
onMount2(() => {
|
|
1401
|
-
const connectors = getSolanaWallets();
|
|
1402
1584
|
const wcConnector = createWalletConnectSolanaConnector();
|
|
1403
|
-
|
|
1404
|
-
connectors
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1585
|
+
const getConnectorsWithWc = () => {
|
|
1586
|
+
const connectors = getSolanaWallets();
|
|
1587
|
+
if (wcConnector) connectors.unshift(wcConnector);
|
|
1588
|
+
return connectors;
|
|
1589
|
+
};
|
|
1590
|
+
setSolanaConnectors(getConnectorsWithWc());
|
|
1591
|
+
const unsubscribeWallets = onSolanaWalletsChange(() => {
|
|
1592
|
+
setSolanaConnectors(getConnectorsWithWc());
|
|
1593
|
+
});
|
|
1408
1594
|
const unsubscribeConnection = watchSolanaConnection((state) => {
|
|
1409
1595
|
setSolanaConnection(state.connection);
|
|
1410
1596
|
if (state.connector) {
|
|
@@ -1536,6 +1722,7 @@ var WalletProvider = (props) => {
|
|
|
1536
1722
|
onEvmConnection: evm.setEvmConnection,
|
|
1537
1723
|
onSolanaConnection: solana.setSolanaConnection
|
|
1538
1724
|
});
|
|
1725
|
+
const evmTx = useEvmTransactions(wc.hasWcEvmSession);
|
|
1539
1726
|
const disconnectEvm = async () => {
|
|
1540
1727
|
if (evm.connectedEvmConnector()) {
|
|
1541
1728
|
await evm.disconnectEvm();
|
|
@@ -1601,7 +1788,8 @@ var WalletProvider = (props) => {
|
|
|
1601
1788
|
disconnectEvm,
|
|
1602
1789
|
connectSolana: solana.connectSolana,
|
|
1603
1790
|
disconnectSolana,
|
|
1604
|
-
signMessage
|
|
1791
|
+
signMessage,
|
|
1792
|
+
evmTx
|
|
1605
1793
|
};
|
|
1606
1794
|
return <WalletContext.Provider value={value}>{props.children}</WalletContext.Provider>;
|
|
1607
1795
|
};
|