@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.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { injected, metaMask, coinbaseWallet } from '@wagmi/connectors';
|
|
2
|
-
import { createConfig, getConnectors, signMessage, disconnect, connect, watchConnections } from '@wagmi/core';
|
|
3
|
-
import { http } from 'viem';
|
|
2
|
+
import { createConfig, getConnectors, signMessage, disconnect, connect, watchConnections, switchChain as switchChain$1, sendTransaction as sendTransaction$1, waitForTransactionReceipt as waitForTransactionReceipt$1, readContract, writeContract } from '@wagmi/core';
|
|
3
|
+
import { http, erc20Abi } from 'viem';
|
|
4
4
|
import { mainnet } from 'viem/chains';
|
|
5
5
|
import bs582 from 'bs58';
|
|
6
6
|
import nacl from 'tweetnacl';
|
|
@@ -165,7 +165,6 @@ var WALLETS = [
|
|
|
165
165
|
// src/lib/wallets/mappers.ts
|
|
166
166
|
var EVM_WALLET_ID_MAP = {
|
|
167
167
|
"app.phantom": "phantom",
|
|
168
|
-
"app.backpack": "backpack",
|
|
169
168
|
"com.trustwallet.app": "trust",
|
|
170
169
|
"com.binance.wallet": "binance",
|
|
171
170
|
"com.bitget.web3": "bitget",
|
|
@@ -192,7 +191,7 @@ var WC_CHAINS = {
|
|
|
192
191
|
SOLANA_MAINNET: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
|
|
193
192
|
};
|
|
194
193
|
var WC_METHODS = {
|
|
195
|
-
EVM: ["eth_sendTransaction", "personal_sign", "eth_signTypedData"],
|
|
194
|
+
EVM: ["eth_sendTransaction", "personal_sign", "eth_signTypedData", "wallet_switchEthereumChain"],
|
|
196
195
|
SOLANA: ["solana_signTransaction", "solana_signMessage"]
|
|
197
196
|
};
|
|
198
197
|
var WC_EVENTS = {
|
|
@@ -577,6 +576,54 @@ var requestWalletConnect = async (method, params, chainId) => {
|
|
|
577
576
|
}
|
|
578
577
|
};
|
|
579
578
|
|
|
579
|
+
// src/lib/walletconnect/transactions.ts
|
|
580
|
+
var toHex = (value) => `0x${value.toString(16)}`;
|
|
581
|
+
var getWcChainId = (chainId) => `eip155:${chainId}`;
|
|
582
|
+
var wcSwitchChain = async (chainId) => {
|
|
583
|
+
const session = getCurrentSession();
|
|
584
|
+
if (!session) throw new Error("No WalletConnect session");
|
|
585
|
+
await requestWalletConnect(
|
|
586
|
+
"wallet_switchEthereumChain",
|
|
587
|
+
[{ chainId: toHex(chainId) }],
|
|
588
|
+
getWcChainId(chainId)
|
|
589
|
+
);
|
|
590
|
+
};
|
|
591
|
+
var wcSendTransaction = async (params) => {
|
|
592
|
+
const session = getCurrentSession();
|
|
593
|
+
if (!session) throw new Error("No WalletConnect session");
|
|
594
|
+
const txParams = {
|
|
595
|
+
from: params.from,
|
|
596
|
+
to: params.to
|
|
597
|
+
};
|
|
598
|
+
if (params.value) {
|
|
599
|
+
txParams.value = params.value;
|
|
600
|
+
}
|
|
601
|
+
if (params.data) {
|
|
602
|
+
txParams.data = params.data;
|
|
603
|
+
}
|
|
604
|
+
const hash = await requestWalletConnect(
|
|
605
|
+
"eth_sendTransaction",
|
|
606
|
+
[txParams],
|
|
607
|
+
getWcChainId(params.chainId)
|
|
608
|
+
);
|
|
609
|
+
return { hash };
|
|
610
|
+
};
|
|
611
|
+
var getWcEvmAddress = () => {
|
|
612
|
+
const session = getCurrentSession();
|
|
613
|
+
if (!session) return null;
|
|
614
|
+
const account = session.namespaces.eip155?.accounts?.[0];
|
|
615
|
+
if (!account) return null;
|
|
616
|
+
return account.split(":")[2];
|
|
617
|
+
};
|
|
618
|
+
var getWcEvmChainId = () => {
|
|
619
|
+
const session = getCurrentSession();
|
|
620
|
+
if (!session) return null;
|
|
621
|
+
const account = session.namespaces.eip155?.accounts?.[0];
|
|
622
|
+
if (!account) return null;
|
|
623
|
+
const chainId = account.split(":")[1];
|
|
624
|
+
return chainId ? parseInt(chainId, 10) : null;
|
|
625
|
+
};
|
|
626
|
+
|
|
580
627
|
// src/lib/connectors/shared/walletconnect.ts
|
|
581
628
|
var connectViaWalletConnect = async (wcConfig, parseSession, getDeeplink) => {
|
|
582
629
|
let qrUri = null;
|
|
@@ -810,10 +857,12 @@ var createMetaMaskSolanaDappBrowserConnector = () => createDappBrowserSolanaConn
|
|
|
810
857
|
// src/lib/connectors/solflare.ts
|
|
811
858
|
var SOLFLARE_CONNECT_URL = "https://solflare.com/ul/v1/connect";
|
|
812
859
|
var SOLFLARE_SIGN_MESSAGE_URL = "https://solflare.com/ul/v1/signMessage";
|
|
813
|
-
var
|
|
860
|
+
var buildSolflareBrowseUrl = () => `https://solflare.com/ul/v1/browse/${encodeURIComponent(
|
|
861
|
+
window.location.href
|
|
862
|
+
)}?ref=${encodeURIComponent(window.location.origin)}`;
|
|
814
863
|
var createSolflareSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
815
864
|
walletId: "solflare",
|
|
816
|
-
|
|
865
|
+
buildUrl: buildSolflareBrowseUrl,
|
|
817
866
|
injectedKey: "isSolflare"
|
|
818
867
|
});
|
|
819
868
|
var SOLFLARE_CONFIG = {
|
|
@@ -885,12 +934,12 @@ var TRUST_CONFIG = {
|
|
|
885
934
|
wcDeeplink: "https://link.trustwallet.com/wc",
|
|
886
935
|
injectedKey: "isTrust"
|
|
887
936
|
};
|
|
888
|
-
var
|
|
937
|
+
var buildTrustBrowseUrl = () => `https://link.trustwallet.com/open_url?url=${encodeURIComponent(window.location.href)}`;
|
|
889
938
|
var createTrustEvmMobileConnector = () => createWcEvmConnector(TRUST_CONFIG);
|
|
890
939
|
var createTrustSolanaMobileConnector = () => createWcSolanaConnector(TRUST_CONFIG);
|
|
891
940
|
var createTrustSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
892
941
|
walletId: "trust",
|
|
893
|
-
|
|
942
|
+
buildUrl: buildTrustBrowseUrl,
|
|
894
943
|
injectedKey: "isTrust"
|
|
895
944
|
});
|
|
896
945
|
|
|
@@ -908,14 +957,8 @@ var EXODUS_CONFIG = {
|
|
|
908
957
|
wcDeeplink: "https://exodus.com/wc",
|
|
909
958
|
injectedKey: "isExodus"
|
|
910
959
|
};
|
|
911
|
-
var EXODUS_BROWSE_URL = "https://exodus.com/m/browser";
|
|
912
960
|
var createExodusEvmMobileConnector = () => createWcEvmConnector(EXODUS_CONFIG);
|
|
913
961
|
var createExodusSolanaMobileConnector = () => createWcSolanaConnector(EXODUS_CONFIG);
|
|
914
|
-
var createExodusSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
915
|
-
walletId: "exodus",
|
|
916
|
-
browseUrl: EXODUS_BROWSE_URL,
|
|
917
|
-
injectedKey: "isExodus"
|
|
918
|
-
});
|
|
919
962
|
|
|
920
963
|
// src/lib/connectors/binance.ts
|
|
921
964
|
var BINANCE_CONFIG = {
|
|
@@ -933,11 +976,7 @@ var createBinanceSolanaDappBrowserConnector = () => createDappBrowserSolanaConne
|
|
|
933
976
|
});
|
|
934
977
|
|
|
935
978
|
// src/lib/connectors/okx.ts
|
|
936
|
-
var buildOkxBrowseUrl = () => {
|
|
937
|
-
const dappUrl = window.location.href;
|
|
938
|
-
const deepLink = `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(dappUrl)}`;
|
|
939
|
-
return `https://web3.okx.com/download?deeplink=${encodeURIComponent(deepLink)}`;
|
|
940
|
-
};
|
|
979
|
+
var buildOkxBrowseUrl = () => `okx://wallet/dapp/url?dappUrl=${encodeURIComponent(window.location.href)}`;
|
|
941
980
|
var createOkxSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
942
981
|
walletId: "okx",
|
|
943
982
|
injectedKey: "isOkxWallet",
|
|
@@ -953,12 +992,17 @@ var createCoinbaseSolanaDappBrowserConnector = () => createDappBrowserSolanaConn
|
|
|
953
992
|
});
|
|
954
993
|
|
|
955
994
|
// src/lib/connectors/bitget.ts
|
|
956
|
-
var
|
|
995
|
+
var BITGET_CONFIG = {
|
|
996
|
+
walletId: "bitget",
|
|
997
|
+
wcDeeplink: "bitkeep://bkconnect",
|
|
998
|
+
injectedKey: "isBitKeep"
|
|
999
|
+
};
|
|
1000
|
+
var buildBitgetBrowseUrl = () => `https://bkcode.vip?action=dapp&url=${encodeURIComponent(window.location.href)}`;
|
|
1001
|
+
var createBitgetSolanaConnector = () => createWcSolanaConnector(BITGET_CONFIG);
|
|
957
1002
|
var createBitgetSolanaDappBrowserConnector = () => createDappBrowserSolanaConnector({
|
|
958
1003
|
walletId: "bitget",
|
|
959
|
-
browseUrl: BITGET_BROWSE_URL,
|
|
960
1004
|
injectedKey: "isBitKeep",
|
|
961
|
-
|
|
1005
|
+
buildUrl: buildBitgetBrowseUrl
|
|
962
1006
|
});
|
|
963
1007
|
var walletConfig = WALLETS.find((w) => w.id === "walletconnect");
|
|
964
1008
|
var disconnectWc2 = async () => {
|
|
@@ -1045,6 +1089,7 @@ var EVM_FALLBACK_CONNECTORS = [
|
|
|
1045
1089
|
{ id: "rainbow", create: createRainbowEvmMobileConnector },
|
|
1046
1090
|
{ id: "exodus", create: createExodusEvmMobileConnector }
|
|
1047
1091
|
];
|
|
1092
|
+
var sleep = (ms) => new Promise((r) => window.setTimeout(r, ms));
|
|
1048
1093
|
var cleanupWalletLocalStorage = () => {
|
|
1049
1094
|
Object.keys(window.localStorage).filter((key) => key.startsWith("wagmi.")).forEach((key) => window.localStorage.removeItem(key));
|
|
1050
1095
|
};
|
|
@@ -1059,9 +1104,21 @@ var getEvmConnectors = () => {
|
|
|
1059
1104
|
wallet: {
|
|
1060
1105
|
_connector: c,
|
|
1061
1106
|
connect: async () => {
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1107
|
+
try {
|
|
1108
|
+
const result = await connect(getEvmConfig(), { connector: c });
|
|
1109
|
+
if (!result.accounts[0]) throw new Error("No accounts returned");
|
|
1110
|
+
return connectedResult(result.accounts[0], { chainId: result.chainId });
|
|
1111
|
+
} catch (err) {
|
|
1112
|
+
if (err instanceof Error && err.name === "ConnectorAlreadyConnectedError") {
|
|
1113
|
+
cleanupWalletLocalStorage();
|
|
1114
|
+
await disconnect(getEvmConfig(), { connector: c });
|
|
1115
|
+
await sleep(100);
|
|
1116
|
+
const result = await connect(getEvmConfig(), { connector: c });
|
|
1117
|
+
if (!result.accounts[0]) throw new Error("No accounts returned");
|
|
1118
|
+
return connectedResult(result.accounts[0], { chainId: result.chainId });
|
|
1119
|
+
}
|
|
1120
|
+
throw err;
|
|
1121
|
+
}
|
|
1065
1122
|
},
|
|
1066
1123
|
disconnect: async () => {
|
|
1067
1124
|
cleanupWalletLocalStorage();
|
|
@@ -1078,6 +1135,60 @@ var getEvmConnectors = () => {
|
|
|
1078
1135
|
var watchEvmConnections = (onChange) => {
|
|
1079
1136
|
return watchConnections(getEvmConfig(), { onChange });
|
|
1080
1137
|
};
|
|
1138
|
+
var switchChain = async (chainId) => {
|
|
1139
|
+
await switchChain$1(getEvmConfig(), { chainId });
|
|
1140
|
+
};
|
|
1141
|
+
var sendTransaction = async (params) => {
|
|
1142
|
+
const hash = await sendTransaction$1(getEvmConfig(), {
|
|
1143
|
+
to: params.to,
|
|
1144
|
+
value: params.value,
|
|
1145
|
+
data: params.data
|
|
1146
|
+
});
|
|
1147
|
+
return { hash };
|
|
1148
|
+
};
|
|
1149
|
+
var waitForTransactionReceipt = async (hash) => {
|
|
1150
|
+
const receipt = await waitForTransactionReceipt$1(getEvmConfig(), { hash });
|
|
1151
|
+
return {
|
|
1152
|
+
hash: receipt.transactionHash,
|
|
1153
|
+
status: receipt.status,
|
|
1154
|
+
blockNumber: receipt.blockNumber
|
|
1155
|
+
};
|
|
1156
|
+
};
|
|
1157
|
+
var getAllowance = async (params) => {
|
|
1158
|
+
return readContract(getEvmConfig(), {
|
|
1159
|
+
abi: erc20Abi,
|
|
1160
|
+
address: params.tokenAddress,
|
|
1161
|
+
functionName: "allowance",
|
|
1162
|
+
args: [params.owner, params.spender]
|
|
1163
|
+
});
|
|
1164
|
+
};
|
|
1165
|
+
var approve = async (params) => {
|
|
1166
|
+
const hash = await writeContract(getEvmConfig(), {
|
|
1167
|
+
address: params.tokenAddress,
|
|
1168
|
+
abi: erc20Abi,
|
|
1169
|
+
functionName: "approve",
|
|
1170
|
+
args: [params.spender, params.amount]
|
|
1171
|
+
});
|
|
1172
|
+
return waitForTransactionReceipt(hash);
|
|
1173
|
+
};
|
|
1174
|
+
var ensureAllowance = async (params) => {
|
|
1175
|
+
const currentAllowance = await getAllowance({
|
|
1176
|
+
tokenAddress: params.tokenAddress,
|
|
1177
|
+
owner: params.owner,
|
|
1178
|
+
spender: params.spender
|
|
1179
|
+
});
|
|
1180
|
+
if (currentAllowance >= params.amount) {
|
|
1181
|
+
return null;
|
|
1182
|
+
}
|
|
1183
|
+
if (currentAllowance > 0n) {
|
|
1184
|
+
await approve({
|
|
1185
|
+
tokenAddress: params.tokenAddress,
|
|
1186
|
+
spender: params.spender,
|
|
1187
|
+
amount: 0n
|
|
1188
|
+
});
|
|
1189
|
+
}
|
|
1190
|
+
return approve(params);
|
|
1191
|
+
};
|
|
1081
1192
|
|
|
1082
1193
|
// src/lib/solana/connection.ts
|
|
1083
1194
|
var currentConnection = {
|
|
@@ -1194,11 +1305,10 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
|
|
|
1194
1305
|
},
|
|
1195
1306
|
{
|
|
1196
1307
|
id: "exodus",
|
|
1197
|
-
create: () => createSolanaMobileConnector(
|
|
1308
|
+
create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
|
|
1198
1309
|
}
|
|
1199
1310
|
] : [
|
|
1200
1311
|
{ id: "phantom", create: () => createSolanaMobileConnector(createPhantomSolanaConnector()) },
|
|
1201
|
-
// { id: 'metamask', create: () => createSolanaMobileConnector(createMetaMaskSolanaConnector()) },
|
|
1202
1312
|
{
|
|
1203
1313
|
id: "solflare",
|
|
1204
1314
|
create: () => createSolanaMobileConnector(createSolflareSolanaMobileConnector())
|
|
@@ -1208,6 +1318,7 @@ var SOLANA_FALLBACK_CONNECTORS = isMobile() ? [
|
|
|
1208
1318
|
create: () => createSolanaMobileConnector(createTrustSolanaMobileConnector())
|
|
1209
1319
|
},
|
|
1210
1320
|
{ id: "binance", create: () => createSolanaMobileConnector(createBinanceSolanaConnector()) },
|
|
1321
|
+
{ id: "bitget", create: createBitgetSolanaConnector },
|
|
1211
1322
|
{
|
|
1212
1323
|
id: "exodus",
|
|
1213
1324
|
create: () => createSolanaMobileConnector(createExodusSolanaMobileConnector())
|
|
@@ -1219,6 +1330,8 @@ var getSolanaWallets = () => {
|
|
|
1219
1330
|
const connectors = wallets.filter(isWalletAdapterCompatibleStandardWallet).filter((w) => {
|
|
1220
1331
|
return w.constructor.name !== "SolflareMetaMaskWallet";
|
|
1221
1332
|
}).map(createSolanaConnector);
|
|
1333
|
+
console.log({ wallets });
|
|
1334
|
+
console.log({ connectors });
|
|
1222
1335
|
addFallbackConnectors(connectors, SOLANA_FALLBACK_CONNECTORS);
|
|
1223
1336
|
return connectors;
|
|
1224
1337
|
};
|
|
@@ -1358,6 +1471,60 @@ var useEvmWallet = (options) => {
|
|
|
1358
1471
|
connectedEvmConnector: connectedConnector
|
|
1359
1472
|
};
|
|
1360
1473
|
};
|
|
1474
|
+
|
|
1475
|
+
// src/lib/context/hooks/useEvmTransactions.ts
|
|
1476
|
+
var useEvmTransactions = (hasWcSession) => {
|
|
1477
|
+
const isWc = () => hasWcSession() && getCurrentSession();
|
|
1478
|
+
const switchChain2 = async (chainId) => {
|
|
1479
|
+
if (isWc()) {
|
|
1480
|
+
await wcSwitchChain(chainId);
|
|
1481
|
+
} else {
|
|
1482
|
+
await switchChain(chainId);
|
|
1483
|
+
}
|
|
1484
|
+
};
|
|
1485
|
+
const sendTransaction2 = async (params) => {
|
|
1486
|
+
if (isWc()) {
|
|
1487
|
+
const address = getWcEvmAddress();
|
|
1488
|
+
if (!address) throw new Error("No WalletConnect EVM address");
|
|
1489
|
+
const chainId = getWcEvmChainId();
|
|
1490
|
+
if (!chainId) throw new Error("No WalletConnect chain ID");
|
|
1491
|
+
const result = await wcSendTransaction({
|
|
1492
|
+
from: address,
|
|
1493
|
+
to: params.to,
|
|
1494
|
+
value: params.value !== void 0 ? `0x${params.value.toString(16)}` : void 0,
|
|
1495
|
+
data: params.data,
|
|
1496
|
+
chainId
|
|
1497
|
+
});
|
|
1498
|
+
return { hash: result.hash };
|
|
1499
|
+
}
|
|
1500
|
+
return sendTransaction(params);
|
|
1501
|
+
};
|
|
1502
|
+
const sendAndWait = async (params) => {
|
|
1503
|
+
const { hash } = await sendTransaction2(params);
|
|
1504
|
+
return waitForTransactionReceipt(hash);
|
|
1505
|
+
};
|
|
1506
|
+
const approve2 = async (params) => {
|
|
1507
|
+
if (isWc()) {
|
|
1508
|
+
throw new Error("ERC20 approve via WalletConnect not yet supported");
|
|
1509
|
+
}
|
|
1510
|
+
return approve(params);
|
|
1511
|
+
};
|
|
1512
|
+
const ensureAllowance2 = async (params) => {
|
|
1513
|
+
if (isWc()) {
|
|
1514
|
+
throw new Error("ERC20 ensureAllowance via WalletConnect not yet supported");
|
|
1515
|
+
}
|
|
1516
|
+
return ensureAllowance(params);
|
|
1517
|
+
};
|
|
1518
|
+
return {
|
|
1519
|
+
switchChain: switchChain2,
|
|
1520
|
+
sendTransaction: sendTransaction2,
|
|
1521
|
+
sendAndWait,
|
|
1522
|
+
waitForReceipt: waitForTransactionReceipt,
|
|
1523
|
+
approve: approve2,
|
|
1524
|
+
ensureAllowance: ensureAllowance2,
|
|
1525
|
+
getAllowance
|
|
1526
|
+
};
|
|
1527
|
+
};
|
|
1361
1528
|
var useSolanaWallet = () => {
|
|
1362
1529
|
const [solanaConnectors, setSolanaConnectors] = createSignal([]);
|
|
1363
1530
|
const [solanaConnection, setSolanaConnection] = createSignal(null);
|
|
@@ -1365,13 +1532,16 @@ var useSolanaWallet = () => {
|
|
|
1365
1532
|
null
|
|
1366
1533
|
);
|
|
1367
1534
|
onMount(() => {
|
|
1368
|
-
const connectors = getSolanaWallets();
|
|
1369
1535
|
const wcConnector = createWalletConnectSolanaConnector();
|
|
1370
|
-
|
|
1371
|
-
connectors
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1536
|
+
const getConnectorsWithWc = () => {
|
|
1537
|
+
const connectors = getSolanaWallets();
|
|
1538
|
+
if (wcConnector) connectors.unshift(wcConnector);
|
|
1539
|
+
return connectors;
|
|
1540
|
+
};
|
|
1541
|
+
setSolanaConnectors(getConnectorsWithWc());
|
|
1542
|
+
const unsubscribeWallets = onSolanaWalletsChange(() => {
|
|
1543
|
+
setSolanaConnectors(getConnectorsWithWc());
|
|
1544
|
+
});
|
|
1375
1545
|
const unsubscribeConnection = watchSolanaConnection((state) => {
|
|
1376
1546
|
setSolanaConnection(state.connection);
|
|
1377
1547
|
if (state.connector) {
|
|
@@ -1501,6 +1671,7 @@ var WalletProvider = (props) => {
|
|
|
1501
1671
|
onEvmConnection: evm.setEvmConnection,
|
|
1502
1672
|
onSolanaConnection: solana.setSolanaConnection
|
|
1503
1673
|
});
|
|
1674
|
+
const evmTx = useEvmTransactions(wc.hasWcEvmSession);
|
|
1504
1675
|
const disconnectEvm = async () => {
|
|
1505
1676
|
if (evm.connectedEvmConnector()) {
|
|
1506
1677
|
await evm.disconnectEvm();
|
|
@@ -1566,7 +1737,8 @@ var WalletProvider = (props) => {
|
|
|
1566
1737
|
disconnectEvm,
|
|
1567
1738
|
connectSolana: solana.connectSolana,
|
|
1568
1739
|
disconnectSolana,
|
|
1569
|
-
signMessage
|
|
1740
|
+
signMessage,
|
|
1741
|
+
evmTx
|
|
1570
1742
|
};
|
|
1571
1743
|
return createComponent(WalletContext.Provider, {
|
|
1572
1744
|
value,
|