@talken/talkenkit 2.4.5 → 2.4.6
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/Arc-YV22FANA.js +8 -0
- package/dist/Brave-VWDHFYI5.js +8 -0
- package/dist/Browser-2ZOVSFMK.js +8 -0
- package/dist/Chrome-VL7CYHGL.js +8 -0
- package/dist/Edge-6GQGEL5X.js +8 -0
- package/dist/Firefox-SY6PCZK3.js +8 -0
- package/dist/Linux-OP3H6PHU.js +8 -0
- package/dist/Macos-ZENZDYKP.js +8 -0
- package/dist/Opera-H2VDEHSS.js +8 -0
- package/dist/Safari-5BYQNFM3.js +8 -0
- package/dist/Windows-PHGTMIC7.js +8 -0
- package/dist/abcWallet-3CKLCZZC.js +184 -0
- package/dist/abcWallet-6M2KDUY5.js +184 -0
- package/dist/abcWallet-BUUIREII.js +184 -0
- package/dist/abcWallet-H4S47MXU.js +184 -0
- package/dist/abcWallet-KBANX52Y.js +8 -0
- package/dist/abcWallet-KWKFWA2B.js +184 -0
- package/dist/abcWallet-LSRIJG4P.js +184 -0
- package/dist/abcWallet-UHMZ3SBV.js +184 -0
- package/dist/abcWallet-VSM7O7LO.js +184 -0
- package/dist/abcWallet-X2GWIVEI.js +184 -0
- package/dist/abcWallet-X7NZ6VBW.js +180 -0
- package/dist/ar_AR-MAB4J7H2.js +8 -0
- package/dist/arbitrum-27LBECSN.js +8 -0
- package/dist/argentWallet-GX5VSJWF.js +8 -0
- package/dist/assets-GIFIMHMU.js +8 -0
- package/dist/avalanche-KSIA64PC.js +8 -0
- package/dist/base-SIBF7BBU.js +8 -0
- package/dist/berasigWallet-JO4Q4MSU.js +8 -0
- package/dist/bestWallet-LTW5DIP4.js +8 -0
- package/dist/bifrostWallet-JL6ZAC3C.js +8 -0
- package/dist/binanceWallet-ZNNDYS5Q.js +8 -0
- package/dist/bitgetWallet-A4DL5PUY.js +8 -0
- package/dist/bitskiWallet-274FSC74.js +8 -0
- package/dist/bitverseWallet-7DVG7NHE.js +8 -0
- package/dist/blast-RE46OGNS.js +8 -0
- package/dist/bloomWallet-DOYLILHG.js +8 -0
- package/dist/braveWallet-YZYG53SC.js +8 -0
- package/dist/bsc-LKNCKWB7.js +8 -0
- package/dist/bybitWallet-SZ7ZIJOM.js +8 -0
- package/dist/celo-3UGAQ3FA.js +8 -0
- package/dist/chunk-5524HDQP.js +6817 -0
- package/dist/chunk-A73PPSQU.js +6842 -0
- package/dist/chunk-AIBVBASK.js +35 -0
- package/dist/chunk-DFWCI4QG.js +326 -0
- package/dist/chunk-EGN5IX3Q.js +6817 -0
- package/dist/chunk-HSRSDVH7.js +6817 -0
- package/dist/chunk-IAY4522B.js +6894 -0
- package/dist/chunk-J6OAJTP7.js +6818 -0
- package/dist/chunk-JSDMSWIV.js +6631 -0
- package/dist/chunk-JSDVJD3R.js +6834 -0
- package/dist/chunk-L46ONWXN.js +6880 -0
- package/dist/chunk-OJUAVARC.js +6880 -0
- package/dist/clvWallet-AW3FLKWV.js +8 -0
- package/dist/coin98Wallet-O6REX7DQ.js +8 -0
- package/dist/coinbaseWallet-LVQLZHBK.js +8 -0
- package/dist/compassWallet-65OSMTR2.js +8 -0
- package/dist/config/networks.d.ts +15 -0
- package/dist/connect-CICKFS4L.js +8 -0
- package/dist/coreWallet-YSDA53EY.js +8 -0
- package/dist/create-5SJIEM24.js +8 -0
- package/dist/cronos-ZQWFYR7X.js +8 -0
- package/dist/dawnWallet-J36CF4FH.js +8 -0
- package/dist/de_DE-EG7KMNLA.js +8 -0
- package/dist/desigWallet-XGQ7234L.js +8 -0
- package/dist/en_US-FB5NGCIS.js +8 -0
- package/dist/enkryptWallet-ROHOLP4S.js +8 -0
- package/dist/es_419-3B34TR7B.js +8 -0
- package/dist/ethereum-EQ5JF37Q.js +8 -0
- package/dist/flow-SZDAO7RI.js +8 -0
- package/dist/foxWallet-3N4ERZ2Y.js +8 -0
- package/dist/fr_FR-R75UI3J6.js +1356 -0
- package/dist/frameWallet-AIE2VFHW.js +8 -0
- package/dist/frontierWallet-VZSDJHLV.js +8 -0
- package/dist/gateWallet-T2EK3VMK.js +8 -0
- package/dist/gnosis-JNLUBWJA.js +8 -0
- package/dist/hardhat-ZXHXXZ4F.js +8 -0
- package/dist/hi_IN-UE2ZBDLM.js +8 -0
- package/dist/hooks/useBitcoinWallet.d.ts +64 -0
- package/dist/hooks/useSolanaWallet.d.ts +86 -0
- package/dist/id_ID-WQSMTXEJ.js +8 -0
- package/dist/imTokenWallet-EZIOYBYU.js +8 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +10411 -14542
- package/dist/injectedWallet-AKTBXQHX.js +8 -0
- package/dist/iopayWallet-W7H23ECM.js +8 -0
- package/dist/ja_JP-O4XT7PNY.js +8 -0
- package/dist/kaia-LDZMGDTS.js +8 -0
- package/dist/kaiaWallet-IIGUMKV2.js +8 -0
- package/dist/kaikasWallet-XFICIF6T.js +8 -0
- package/dist/ko_KR-7DRM32ZL.js +8 -0
- package/dist/krakenWallet-JQX7ML3V.js +8 -0
- package/dist/kresusWallet-X76YOSCS.js +8 -0
- package/dist/ledgerWallet-LUOIK2NO.js +8 -0
- package/dist/login-L2V76XPP.js +8 -0
- package/dist/magicEden-PNA2N7LE.js +8 -0
- package/dist/manta-AXWSHRGV.js +8 -0
- package/dist/mantle-I27DZFXF.js +8 -0
- package/dist/metaMaskWallet-ZOW7SFN3.js +8 -0
- package/dist/mewWallet-NNOKYJGO.js +8 -0
- package/dist/ms_MY-QJAJAMMS.js +8 -0
- package/dist/nestWallet-PJ4UAPAM.js +8 -0
- package/dist/oktoWallet-IPI4NUPS.js +8 -0
- package/dist/okxWallet-BKIE62N5.js +8 -0
- package/dist/omniWallet-5MXTZQTD.js +8 -0
- package/dist/oneInchWallet-SUMUIBDE.js +8 -0
- package/dist/oneKeyWallet-W7XOJBFP.js +8 -0
- package/dist/optimism-7KW4YXCD.js +8 -0
- package/dist/paraSwapWallet-O7YFTXSA.js +8 -0
- package/dist/phantomWallet-JL7CK5LT.js +8 -0
- package/dist/polygon-O6VNIW2F.js +8 -0
- package/dist/pt_BR-CUVZKVMO.js +8 -0
- package/dist/rabbyWallet-QZAAFNR5.js +8 -0
- package/dist/rainbowWallet-3H5RIOTG.js +8 -0
- package/dist/ramperWallet-PADEB35A.js +8 -0
- package/dist/refresh-HBSYGKAX.js +8 -0
- package/dist/ronin-NIBR3M4Q.js +8 -0
- package/dist/roninWallet-VBWRYBSY.js +8 -0
- package/dist/ru_RU-DLZ46RWL.js +1356 -0
- package/dist/safeWallet-5S6VLRXL.js +8 -0
- package/dist/safeheronWallet-PK6H4FAC.js +8 -0
- package/dist/safepalWallet-OG53AE3J.js +8 -0
- package/dist/scan-QFKMQ54Z.js +8 -0
- package/dist/scroll-7LCBO5E3.js +8 -0
- package/dist/secure-4HM7LOQ7.js +8 -0
- package/dist/secure-I6UQYL5P.js +8 -0
- package/dist/seifWallet-W5POSWSQ.js +8 -0
- package/dist/sign-TGZ6C3LW.js +8 -0
- package/dist/solana/AbcSolanaAutoConnector.d.ts +6 -3
- package/dist/solana/index.d.ts +1 -0
- package/dist/solana/recentSolanaWalletIds.d.ts +22 -0
- package/dist/subWallet-EMI73DDU.js +8 -0
- package/dist/tahoWallet-BI5WGGIE.js +8 -0
- package/dist/talismanWallet-FSJ7PIII.js +8 -0
- package/dist/th_TH-AXZSCUYS.js +1356 -0
- package/dist/tokenPocketWallet-24CJ7CMD.js +8 -0
- package/dist/tokenaryWallet-253RCSOV.js +8 -0
- package/dist/tr_TR-WUMEEWNJ.js +1356 -0
- package/dist/trustWallet-2I5U2KE2.js +8 -0
- package/dist/uk_UA-BVWUMQ6Z.js +1356 -0
- package/dist/uniswapWallet-G4F52I6Y.js +8 -0
- package/dist/valoraWallet-JEACHQB4.js +8 -0
- package/dist/vi_VN-AI2OTA4F.js +8 -0
- package/dist/walletConnectWallet-NRHPTNNN.js +8 -0
- package/dist/wallets/walletConnectors/abcWallet/abcApi.js +4 -3
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +6 -5
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +83 -0
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +9 -0
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +6 -5
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +7 -6
- package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.d.ts +0 -4
- package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.js +5 -4
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.d.ts +0 -4
- package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +5 -4
- package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/index.js +13 -12
- package/dist/wallets/walletConnectors/abcWallet/index.d.ts +1 -0
- package/dist/wallets/walletConnectors/abcWallet/index.js +26 -19
- package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
- package/dist/wallets/walletConnectors/berasigWallet/berasigWallet.js +2 -2
- package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
- package/dist/wallets/walletConnectors/binanceWallet/binanceWallet.js +2 -2
- package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
- package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
- package/dist/wallets/walletConnectors/chunk-2HAU36T2.js +330 -0
- package/dist/wallets/walletConnectors/chunk-2QBCWLD2.js +207 -0
- package/dist/wallets/walletConnectors/chunk-3SVPZCA6.js +71 -0
- package/dist/wallets/walletConnectors/chunk-4PCVQBFZ.js +667 -0
- package/dist/wallets/walletConnectors/chunk-4RMNGZR2.js +253 -0
- package/dist/wallets/walletConnectors/chunk-4SAGH6IS.js +63 -0
- package/dist/wallets/walletConnectors/chunk-57YTMSPW.js +63 -0
- package/dist/wallets/walletConnectors/chunk-5QEUEPNY.js +94 -0
- package/dist/wallets/walletConnectors/chunk-664WS6CQ.js +267 -0
- package/dist/wallets/walletConnectors/chunk-6MSXHRIK.js +47 -0
- package/dist/wallets/walletConnectors/chunk-7VZDITAJ.js +330 -0
- package/dist/wallets/walletConnectors/chunk-AGC7JS5M.js +47 -0
- package/dist/wallets/walletConnectors/chunk-B56IHEUP.js +179 -0
- package/dist/wallets/walletConnectors/chunk-B6JLYR3I.js +66 -0
- package/dist/wallets/walletConnectors/chunk-CMJ4DIIQ.js +63 -0
- package/dist/wallets/walletConnectors/chunk-DCW43Y5T.js +190 -0
- package/dist/wallets/walletConnectors/chunk-DJKN2MCI.js +179 -0
- package/dist/wallets/walletConnectors/chunk-F5BORFRG.js +63 -0
- package/dist/wallets/walletConnectors/chunk-FEUW4SKR.js +63 -0
- package/dist/wallets/walletConnectors/chunk-FKPSLKA7.js +63 -0
- package/dist/wallets/walletConnectors/chunk-FTGER5ZB.js +196 -0
- package/dist/wallets/walletConnectors/chunk-GYJYTYIG.js +63 -0
- package/dist/wallets/walletConnectors/chunk-GZFBNALD.js +47 -0
- package/dist/wallets/walletConnectors/chunk-HJFZF4V3.js +276 -0
- package/dist/wallets/walletConnectors/chunk-HKWBR5B7.js +102 -0
- package/dist/wallets/walletConnectors/chunk-IKAN72JZ.js +253 -0
- package/dist/wallets/walletConnectors/chunk-K4APJ4PE.js +96 -0
- package/dist/wallets/walletConnectors/chunk-KKCRCQNN.js +276 -0
- package/dist/wallets/walletConnectors/chunk-KLQJJI76.js +215 -0
- package/dist/wallets/walletConnectors/chunk-LJ2B47VF.js +108 -0
- package/dist/wallets/walletConnectors/chunk-LQWC2NEM.js +63 -0
- package/dist/wallets/walletConnectors/chunk-LXINMUQC.js +186 -0
- package/dist/wallets/walletConnectors/chunk-MORUEOYX.js +76 -0
- package/dist/wallets/walletConnectors/chunk-MQTXA63X.js +27 -0
- package/dist/wallets/walletConnectors/chunk-NUAZNCMH.js +1590 -0
- package/dist/wallets/walletConnectors/chunk-ODL6WVZK.js +63 -0
- package/dist/wallets/walletConnectors/chunk-OJMVWBYG.js +191 -0
- package/dist/wallets/walletConnectors/chunk-PGMVGAXJ.js +63 -0
- package/dist/wallets/walletConnectors/chunk-PMZJGS7X.js +73 -0
- package/dist/wallets/walletConnectors/chunk-QELXKYHW.js +196 -0
- package/dist/wallets/walletConnectors/chunk-T3KJ4NFX.js +276 -0
- package/dist/wallets/walletConnectors/chunk-URJDAG63.js +190 -0
- package/dist/wallets/walletConnectors/chunk-WZZVA3LW.js +101 -0
- package/dist/wallets/walletConnectors/chunk-XOQNQKZE.js +98 -0
- package/dist/wallets/walletConnectors/chunk-YX4O33NC.js +1590 -0
- package/dist/wallets/walletConnectors/chunk-ZG4ZZVOW.js +63 -0
- package/dist/wallets/walletConnectors/chunk-ZJ6OFFD5.js +95 -0
- package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
- package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
- package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
- package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
- package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
- package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
- package/dist/wallets/walletConnectors/index.js +60 -59
- package/dist/wallets/walletConnectors/iopayWallet/iopayWallet.js +2 -2
- package/dist/wallets/walletConnectors/kaiaWallet/kaiaWallet.js +2 -2
- package/dist/wallets/walletConnectors/kaikasWallet/kaikasWallet.js +2 -2
- package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
- package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
- package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
- package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
- package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
- package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
- package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
- package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
- package/dist/wallets/walletConnectors/zealWallet/zealWallet.js +2 -2
- package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
- package/dist/wigwamWallet-R4AVGQ5E.js +8 -0
- package/dist/xdc-KO37AHY2.js +8 -0
- package/dist/xdefiWallet-Y273RRLT.js +8 -0
- package/dist/zealWallet-CQHZEJUT.js +8 -0
- package/dist/zerionWallet-67WXXHBG.js +8 -0
- package/dist/zetachain-CULDO7MF.js +8 -0
- package/dist/zh_CN-HBK3E2T5.js +8 -0
- package/dist/zh_HK-ZQP4TGHU.js +8 -0
- package/dist/zh_TW-DSHZXVLV.js +8 -0
- package/dist/zkSync-VZ5E5WP6.js +8 -0
- package/dist/zora-GXTHZKII.js +8 -0
- package/package.json +2 -1
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
createAbcEvmProvider
|
|
4
|
+
} from "./chunk-CZVBS7QE.js";
|
|
5
|
+
import {
|
|
6
|
+
createAbcWaasClient
|
|
7
|
+
} from "./chunk-YX4O33NC.js";
|
|
8
|
+
import {
|
|
9
|
+
setGlobalDefaultBitcoinNetwork,
|
|
10
|
+
setGlobalDefaultChainId,
|
|
11
|
+
setGlobalDefaultSolanaNetwork
|
|
12
|
+
} from "./chunk-A7FIBI6X.js";
|
|
13
|
+
import {
|
|
14
|
+
clearAuthState,
|
|
15
|
+
clearEncryptedTokens,
|
|
16
|
+
clearStorage,
|
|
17
|
+
loadAuthState,
|
|
18
|
+
loadFromStorage,
|
|
19
|
+
saveAuthState
|
|
20
|
+
} from "./chunk-TYUEB4VT.js";
|
|
21
|
+
|
|
22
|
+
// src/wallets/walletConnectors/abcWallet/abcConnector.ts
|
|
23
|
+
import { createConnector } from "wagmi";
|
|
24
|
+
function abcConnector(options) {
|
|
25
|
+
const { config } = options;
|
|
26
|
+
if (config.defaultChainId) {
|
|
27
|
+
setGlobalDefaultChainId(config.defaultChainId);
|
|
28
|
+
}
|
|
29
|
+
if (config.defaultSolanaNetwork) {
|
|
30
|
+
setGlobalDefaultSolanaNetwork(config.defaultSolanaNetwork);
|
|
31
|
+
}
|
|
32
|
+
if (config.defaultBitcoinNetwork) {
|
|
33
|
+
setGlobalDefaultBitcoinNetwork(config.defaultBitcoinNetwork);
|
|
34
|
+
}
|
|
35
|
+
return createConnector((wagmiConfig) => {
|
|
36
|
+
const client = createAbcWaasClient(config);
|
|
37
|
+
const provider = createAbcEvmProvider(client);
|
|
38
|
+
let accountsChangedHandler;
|
|
39
|
+
let chainChangedHandler;
|
|
40
|
+
let disconnectHandler;
|
|
41
|
+
return {
|
|
42
|
+
id: "abc",
|
|
43
|
+
name: "ABC Wallet",
|
|
44
|
+
type: "abc",
|
|
45
|
+
/**
|
|
46
|
+
* Connect wallet
|
|
47
|
+
*/
|
|
48
|
+
async connect() {
|
|
49
|
+
try {
|
|
50
|
+
const authState = loadAuthState();
|
|
51
|
+
if (!authState || !authState.isAuthenticated || !authState.wallet) {
|
|
52
|
+
throw new Error("ABC_LOGIN_REQUIRED");
|
|
53
|
+
}
|
|
54
|
+
provider.setWallet(authState.wallet);
|
|
55
|
+
if (authState.accessToken && authState.refreshToken && authState.expiresAt) {
|
|
56
|
+
client.setTokens(
|
|
57
|
+
authState.accessToken,
|
|
58
|
+
authState.refreshToken,
|
|
59
|
+
authState.expiresAt
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
const accounts = await provider.request({
|
|
63
|
+
method: "eth_requestAccounts"
|
|
64
|
+
});
|
|
65
|
+
const currentChainId = await provider.request({
|
|
66
|
+
method: "eth_chainId"
|
|
67
|
+
});
|
|
68
|
+
if (accountsChangedHandler) {
|
|
69
|
+
provider.removeListener("accountsChanged", accountsChangedHandler);
|
|
70
|
+
}
|
|
71
|
+
accountsChangedHandler = (accounts2) => {
|
|
72
|
+
wagmiConfig.emitter.emit("change", {
|
|
73
|
+
accounts: accounts2
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
provider.on("accountsChanged", accountsChangedHandler);
|
|
77
|
+
if (chainChangedHandler) {
|
|
78
|
+
provider.removeListener("chainChanged", chainChangedHandler);
|
|
79
|
+
}
|
|
80
|
+
chainChangedHandler = (chainId) => {
|
|
81
|
+
wagmiConfig.emitter.emit("change", {
|
|
82
|
+
chainId: Number(chainId)
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
provider.on("chainChanged", chainChangedHandler);
|
|
86
|
+
if (disconnectHandler) {
|
|
87
|
+
provider.removeListener("disconnect", disconnectHandler);
|
|
88
|
+
}
|
|
89
|
+
disconnectHandler = () => {
|
|
90
|
+
wagmiConfig.emitter.emit("disconnect");
|
|
91
|
+
this.onDisconnect();
|
|
92
|
+
};
|
|
93
|
+
provider.on("disconnect", disconnectHandler);
|
|
94
|
+
wagmiConfig.emitter.emit("connect", {
|
|
95
|
+
accounts,
|
|
96
|
+
chainId: Number(currentChainId)
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
accounts,
|
|
100
|
+
chainId: Number(currentChainId)
|
|
101
|
+
};
|
|
102
|
+
} catch (error) {
|
|
103
|
+
console.error("\u274C ABC Connector connect() failed:", {
|
|
104
|
+
message: error.message,
|
|
105
|
+
code: error.code,
|
|
106
|
+
error
|
|
107
|
+
});
|
|
108
|
+
if (error.message === "ABC_LOGIN_REQUIRED") {
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
/**
|
|
115
|
+
* Disconnect wallet
|
|
116
|
+
*/
|
|
117
|
+
async disconnect() {
|
|
118
|
+
if (accountsChangedHandler) {
|
|
119
|
+
provider.removeListener("accountsChanged", accountsChangedHandler);
|
|
120
|
+
accountsChangedHandler = void 0;
|
|
121
|
+
}
|
|
122
|
+
if (chainChangedHandler) {
|
|
123
|
+
provider.removeListener("chainChanged", chainChangedHandler);
|
|
124
|
+
chainChangedHandler = void 0;
|
|
125
|
+
}
|
|
126
|
+
if (disconnectHandler) {
|
|
127
|
+
provider.removeListener("disconnect", disconnectHandler);
|
|
128
|
+
disconnectHandler = void 0;
|
|
129
|
+
}
|
|
130
|
+
provider.clearWallet();
|
|
131
|
+
await client.logout();
|
|
132
|
+
let savedPinHash = null;
|
|
133
|
+
let savedEmail = null;
|
|
134
|
+
if (typeof window !== "undefined") {
|
|
135
|
+
savedPinHash = localStorage.getItem("talkenkit_abc_pin_hash");
|
|
136
|
+
savedEmail = localStorage.getItem("talkenkit_abc_saved_email");
|
|
137
|
+
}
|
|
138
|
+
clearAuthState();
|
|
139
|
+
clearEncryptedTokens();
|
|
140
|
+
if (typeof window !== "undefined") {
|
|
141
|
+
localStorage.removeItem("talkenkit_abc_enc_salt");
|
|
142
|
+
localStorage.removeItem("talkenkit_abc_enc_tokens");
|
|
143
|
+
if (savedPinHash) {
|
|
144
|
+
localStorage.setItem("talkenkit_abc_pin_hash", savedPinHash);
|
|
145
|
+
}
|
|
146
|
+
if (savedEmail) {
|
|
147
|
+
localStorage.setItem("talkenkit_abc_saved_email", savedEmail);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
console.log("\u2705 ABC Wallet disconnected (PIN preserved)");
|
|
151
|
+
},
|
|
152
|
+
/**
|
|
153
|
+
* Get accounts
|
|
154
|
+
*/
|
|
155
|
+
async getAccounts() {
|
|
156
|
+
const accounts = await provider.request({
|
|
157
|
+
method: "eth_accounts"
|
|
158
|
+
});
|
|
159
|
+
return accounts.map((account) => account);
|
|
160
|
+
},
|
|
161
|
+
/**
|
|
162
|
+
* Get chain ID
|
|
163
|
+
*/
|
|
164
|
+
async getChainId() {
|
|
165
|
+
const chainId = await provider.request({
|
|
166
|
+
method: "eth_chainId"
|
|
167
|
+
});
|
|
168
|
+
return Number(chainId);
|
|
169
|
+
},
|
|
170
|
+
/**
|
|
171
|
+
* Get provider
|
|
172
|
+
*/
|
|
173
|
+
async getProvider() {
|
|
174
|
+
return provider;
|
|
175
|
+
},
|
|
176
|
+
/**
|
|
177
|
+
* Check if authorized (has valid session)
|
|
178
|
+
* Auto-refreshes access token if expired but refresh token is valid
|
|
179
|
+
*/
|
|
180
|
+
async isAuthorized() {
|
|
181
|
+
try {
|
|
182
|
+
const authState = loadAuthState();
|
|
183
|
+
if (!authState || !authState.isAuthenticated) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
if (!authState.wallet) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
if (client.isAuthenticated()) {
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
const refreshToken = loadFromStorage(
|
|
193
|
+
"refresh_token" /* REFRESH_TOKEN */
|
|
194
|
+
);
|
|
195
|
+
if (!refreshToken) {
|
|
196
|
+
clearStorage();
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
try {
|
|
200
|
+
await client.refreshTokens(refreshToken);
|
|
201
|
+
const updatedState = loadAuthState();
|
|
202
|
+
return updatedState?.isAuthenticated ?? false;
|
|
203
|
+
} catch (error) {
|
|
204
|
+
console.error("[AbcConnector] Token refresh failed:", error);
|
|
205
|
+
clearStorage();
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
} catch (error) {
|
|
209
|
+
console.error(
|
|
210
|
+
"[AbcConnector] Unexpected error in isAuthorized:",
|
|
211
|
+
error
|
|
212
|
+
);
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
/**
|
|
217
|
+
* Switch chain
|
|
218
|
+
*/
|
|
219
|
+
async switchChain({ chainId }) {
|
|
220
|
+
await provider.request({
|
|
221
|
+
method: "wallet_switchEthereumChain",
|
|
222
|
+
params: [{ chainId: `0x${chainId.toString(16)}` }]
|
|
223
|
+
});
|
|
224
|
+
const newChainId = await this.getChainId();
|
|
225
|
+
const authState = loadAuthState();
|
|
226
|
+
if (authState?.wallet) {
|
|
227
|
+
authState.wallet.chainId = newChainId;
|
|
228
|
+
saveAuthState(authState);
|
|
229
|
+
}
|
|
230
|
+
return wagmiConfig.chains.find((x) => x.id === chainId) ?? {
|
|
231
|
+
id: chainId,
|
|
232
|
+
name: `Chain ${chainId}`,
|
|
233
|
+
nativeCurrency: {
|
|
234
|
+
name: "Ether",
|
|
235
|
+
decimals: 18,
|
|
236
|
+
symbol: "ETH"
|
|
237
|
+
},
|
|
238
|
+
rpcUrls: {
|
|
239
|
+
default: { http: [""] }
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
},
|
|
243
|
+
/**
|
|
244
|
+
* Handle accounts changed
|
|
245
|
+
*/
|
|
246
|
+
onAccountsChanged(accounts) {
|
|
247
|
+
if (accounts.length === 0) {
|
|
248
|
+
this.onDisconnect();
|
|
249
|
+
} else {
|
|
250
|
+
wagmiConfig.emitter.emit("change", {
|
|
251
|
+
accounts
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
/**
|
|
256
|
+
* Handle chain changed
|
|
257
|
+
*/
|
|
258
|
+
onChainChanged(chain) {
|
|
259
|
+
const chainId = Number(chain);
|
|
260
|
+
wagmiConfig.emitter.emit("change", { chainId });
|
|
261
|
+
},
|
|
262
|
+
/**
|
|
263
|
+
* Handle disconnect
|
|
264
|
+
*/
|
|
265
|
+
onDisconnect(_error) {
|
|
266
|
+
provider.clearWallet();
|
|
267
|
+
clearAuthState();
|
|
268
|
+
wagmiConfig.emitter.emit("disconnect");
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export {
|
|
275
|
+
abcConnector
|
|
276
|
+
};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
getInjectedConnector,
|
|
4
|
+
hasInjectedProvider
|
|
5
|
+
} from "./chunk-MBBGZGXF.js";
|
|
6
|
+
import {
|
|
7
|
+
isIOS
|
|
8
|
+
} from "./chunk-RETKWSKD.js";
|
|
9
|
+
import {
|
|
10
|
+
getWalletConnectConnector
|
|
11
|
+
} from "./chunk-PODFK4OS.js";
|
|
12
|
+
|
|
13
|
+
// src/wallets/walletConnectors/zerionWallet/zerionWallet.ts
|
|
14
|
+
var zerionWallet = ({
|
|
15
|
+
projectId,
|
|
16
|
+
walletConnectParameters
|
|
17
|
+
}) => {
|
|
18
|
+
const isZerionInjected = hasInjectedProvider({
|
|
19
|
+
namespace: "zerionWallet",
|
|
20
|
+
flag: "isZerion"
|
|
21
|
+
});
|
|
22
|
+
const shouldUseWalletConnect = !isZerionInjected;
|
|
23
|
+
const getUri = (uri) => {
|
|
24
|
+
return isIOS() ? `zerion://wc?uri=${encodeURIComponent(uri)}` : uri;
|
|
25
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
id: "zerion",
|
|
28
|
+
name: "Zerion",
|
|
29
|
+
rdns: "io.zerion.wallet",
|
|
30
|
+
iconUrl: async () => (await import("./zerionWallet-CYFHB5PA.js")).default,
|
|
31
|
+
iconAccent: "#2962ef",
|
|
32
|
+
iconBackground: "#2962ef",
|
|
33
|
+
installed: !shouldUseWalletConnect ? isZerionInjected : void 0,
|
|
34
|
+
downloadUrls: {
|
|
35
|
+
android: "https://play.google.com/store/apps/details?id=io.zerion.android",
|
|
36
|
+
ios: "https://apps.apple.com/app/apple-store/id1456732565",
|
|
37
|
+
mobile: "https://link.zerion.io/pt3gdRP0njb",
|
|
38
|
+
qrCode: "https://link.zerion.io/pt3gdRP0njb",
|
|
39
|
+
chrome: "https://chrome.google.com/webstore/detail/klghhnkeealcohjjanjjdaeeggmfmlpl",
|
|
40
|
+
browserExtension: "https://zerion.io/extension"
|
|
41
|
+
},
|
|
42
|
+
mobile: {
|
|
43
|
+
getUri: shouldUseWalletConnect ? getUri : void 0
|
|
44
|
+
},
|
|
45
|
+
qrCode: shouldUseWalletConnect ? {
|
|
46
|
+
getUri,
|
|
47
|
+
instructions: {
|
|
48
|
+
learnMoreUrl: "https://zerion.io/blog/announcing-the-zerion-smart-wallet/",
|
|
49
|
+
steps: [
|
|
50
|
+
{
|
|
51
|
+
description: "wallet_connectors.zerion.qr_code.step1.description",
|
|
52
|
+
step: "install",
|
|
53
|
+
title: "wallet_connectors.zerion.qr_code.step1.title"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
description: "wallet_connectors.zerion.qr_code.step2.description",
|
|
57
|
+
step: "create",
|
|
58
|
+
title: "wallet_connectors.zerion.qr_code.step2.title"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
description: "wallet_connectors.zerion.qr_code.step3.description",
|
|
62
|
+
step: "scan",
|
|
63
|
+
title: "wallet_connectors.zerion.qr_code.step3.title"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
} : void 0,
|
|
68
|
+
extension: {
|
|
69
|
+
instructions: {
|
|
70
|
+
learnMoreUrl: "https://help.zerion.io/en/",
|
|
71
|
+
steps: [
|
|
72
|
+
{
|
|
73
|
+
description: "wallet_connectors.zerion.extension.step1.description",
|
|
74
|
+
step: "install",
|
|
75
|
+
title: "wallet_connectors.zerion.extension.step1.title"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
description: "wallet_connectors.zerion.extension.step2.description",
|
|
79
|
+
step: "create",
|
|
80
|
+
title: "wallet_connectors.zerion.extension.step2.title"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
description: "wallet_connectors.zerion.extension.step3.description",
|
|
84
|
+
step: "refresh",
|
|
85
|
+
title: "wallet_connectors.zerion.extension.step3.title"
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
createConnector: shouldUseWalletConnect ? getWalletConnectConnector({
|
|
91
|
+
projectId,
|
|
92
|
+
walletConnectParameters
|
|
93
|
+
}) : getInjectedConnector({
|
|
94
|
+
namespace: "zerionWallet",
|
|
95
|
+
flag: "isZerion"
|
|
96
|
+
})
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export {
|
|
101
|
+
zerionWallet
|
|
102
|
+
};
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/wallets/walletConnectors/abcWallet/abcSolanaProvider.ts
|
|
4
|
+
var EventEmitter = class {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.events = /* @__PURE__ */ new Map();
|
|
7
|
+
}
|
|
8
|
+
on(event, listener) {
|
|
9
|
+
if (!this.events.has(event)) {
|
|
10
|
+
this.events.set(event, []);
|
|
11
|
+
}
|
|
12
|
+
this.events.get(event).push(listener);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
off(event, listener) {
|
|
16
|
+
const listeners = this.events.get(event);
|
|
17
|
+
if (listeners) {
|
|
18
|
+
const index = listeners.indexOf(listener);
|
|
19
|
+
if (index !== -1) {
|
|
20
|
+
listeners.splice(index, 1);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
removeListener(event, listener) {
|
|
26
|
+
return this.off(event, listener);
|
|
27
|
+
}
|
|
28
|
+
emit(event, ...args) {
|
|
29
|
+
const listeners = this.events.get(event);
|
|
30
|
+
if (listeners) {
|
|
31
|
+
for (const listener of listeners) {
|
|
32
|
+
listener(...args);
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
removeAllListeners(event) {
|
|
39
|
+
if (event) {
|
|
40
|
+
this.events.delete(event);
|
|
41
|
+
} else {
|
|
42
|
+
this.events.clear();
|
|
43
|
+
}
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var SolanaErrorCode = {
|
|
48
|
+
USER_REJECTED: 4001,
|
|
49
|
+
UNAUTHORIZED: 4100,
|
|
50
|
+
UNSUPPORTED_METHOD: 4200,
|
|
51
|
+
DISCONNECTED: 4900,
|
|
52
|
+
INVALID_PARAMS: -32602,
|
|
53
|
+
INTERNAL_ERROR: -32603
|
|
54
|
+
};
|
|
55
|
+
var SolanaProviderError = class extends Error {
|
|
56
|
+
constructor(code, message, data) {
|
|
57
|
+
super(message);
|
|
58
|
+
this.code = code;
|
|
59
|
+
this.data = data;
|
|
60
|
+
this.name = "SolanaProviderError";
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
var AbcSolanaProvider = class extends EventEmitter {
|
|
64
|
+
constructor(client) {
|
|
65
|
+
super();
|
|
66
|
+
this.wallet = null;
|
|
67
|
+
this.connected = false;
|
|
68
|
+
this.client = client;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Set wallet information
|
|
72
|
+
*/
|
|
73
|
+
setWallet(wallet) {
|
|
74
|
+
const previousAddress = this.wallet?.address;
|
|
75
|
+
this.wallet = wallet;
|
|
76
|
+
this.connected = true;
|
|
77
|
+
if (previousAddress !== wallet.address) {
|
|
78
|
+
this.emit("accountsChanged", [wallet.address]);
|
|
79
|
+
}
|
|
80
|
+
this.emit("connect", {
|
|
81
|
+
address: wallet.address,
|
|
82
|
+
network: wallet.network
|
|
83
|
+
});
|
|
84
|
+
console.log(
|
|
85
|
+
"[SolanaProvider] \u2705 Wallet connected:",
|
|
86
|
+
`${wallet.address.substring(0, 6)}...${wallet.address.substring(wallet.address.length - 6)}`
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Clear wallet (disconnect)
|
|
91
|
+
*/
|
|
92
|
+
clearWallet() {
|
|
93
|
+
this.wallet = null;
|
|
94
|
+
this.connected = false;
|
|
95
|
+
this.emit("disconnect");
|
|
96
|
+
this.emit("accountsChanged", []);
|
|
97
|
+
console.log("[SolanaProvider] \u{1F50C} Wallet disconnected");
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Set PIN request callback for transaction signing
|
|
101
|
+
*/
|
|
102
|
+
setRequestPinCallback(callback) {
|
|
103
|
+
this.requestPinCallback = callback;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Request PIN from user
|
|
107
|
+
*/
|
|
108
|
+
async requestPin() {
|
|
109
|
+
const globalRequestPin = window.__TALKENKIT_REQUEST_PIN__;
|
|
110
|
+
if (globalRequestPin && typeof globalRequestPin === "function") {
|
|
111
|
+
return globalRequestPin("transaction");
|
|
112
|
+
}
|
|
113
|
+
if (!this.requestPinCallback) {
|
|
114
|
+
throw new SolanaProviderError(
|
|
115
|
+
SolanaErrorCode.INTERNAL_ERROR,
|
|
116
|
+
"PIN request callback not configured. Make sure RainbowKitProvider is rendered."
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
return this.requestPinCallback();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Check if connected
|
|
123
|
+
*/
|
|
124
|
+
isConnected() {
|
|
125
|
+
return this.connected && this.wallet !== null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get Solana address
|
|
129
|
+
*/
|
|
130
|
+
async getAddress() {
|
|
131
|
+
if (!this.wallet) {
|
|
132
|
+
throw new SolanaProviderError(
|
|
133
|
+
SolanaErrorCode.DISCONNECTED,
|
|
134
|
+
"Wallet not connected"
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
return this.wallet.address;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get public key
|
|
141
|
+
*/
|
|
142
|
+
async getPublicKey() {
|
|
143
|
+
if (!this.wallet) {
|
|
144
|
+
throw new SolanaProviderError(
|
|
145
|
+
SolanaErrorCode.DISCONNECTED,
|
|
146
|
+
"Wallet not connected"
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
return this.wallet.publicKey;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Sign Solana message (no PIN required)
|
|
153
|
+
* Uses encrypted_share which doesn't require PIN
|
|
154
|
+
*/
|
|
155
|
+
async signMessage(encodedMessage, _display) {
|
|
156
|
+
if (!this.wallet) {
|
|
157
|
+
throw new SolanaProviderError(
|
|
158
|
+
SolanaErrorCode.DISCONNECTED,
|
|
159
|
+
"Wallet not connected"
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
console.log("[SolanaProvider] \u{1F58A}\uFE0F Signing Solana message...");
|
|
164
|
+
const messageHex = "0x" + Array.from(encodedMessage).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
165
|
+
const result = await this.client.solana.signSolanaMessage({
|
|
166
|
+
message: messageHex,
|
|
167
|
+
encryptedShare: this.wallet.encryptedShare,
|
|
168
|
+
keyId: this.wallet.keyId,
|
|
169
|
+
secretStore: this.wallet.secretStore || ""
|
|
170
|
+
});
|
|
171
|
+
const signatureHex = result.signature.startsWith("0x") ? result.signature.slice(2) : result.signature;
|
|
172
|
+
const signatureBytes = new Uint8Array(
|
|
173
|
+
signatureHex.match(/.{1,2}/g)?.map((byte) => parseInt(byte, 16)) || []
|
|
174
|
+
);
|
|
175
|
+
console.log("[SolanaProvider] \u2705 Message signed");
|
|
176
|
+
return { signature: signatureBytes };
|
|
177
|
+
} catch (error) {
|
|
178
|
+
console.error("[SolanaProvider] \u274C Sign message failed:", error.message);
|
|
179
|
+
this.emit("error", error);
|
|
180
|
+
throw new SolanaProviderError(
|
|
181
|
+
SolanaErrorCode.INTERNAL_ERROR,
|
|
182
|
+
"Failed to sign message",
|
|
183
|
+
error
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Sign Solana transaction (no PIN required - uses encrypted_share)
|
|
189
|
+
*/
|
|
190
|
+
async signTransaction(transaction, params) {
|
|
191
|
+
if (!this.wallet) {
|
|
192
|
+
throw new SolanaProviderError(
|
|
193
|
+
SolanaErrorCode.DISCONNECTED,
|
|
194
|
+
"Wallet not connected"
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
try {
|
|
198
|
+
console.log("[SolanaProvider] \u270D\uFE0F Signing Solana transaction...");
|
|
199
|
+
const serializedTx = transaction.serialize({ requireAllSignatures: false, verifySignatures: false }).toString("hex");
|
|
200
|
+
const messageHex = "0x" + serializedTx;
|
|
201
|
+
const result = await this.client.solana.signSolanaTransaction({
|
|
202
|
+
message: messageHex,
|
|
203
|
+
encryptedShare: this.wallet.encryptedShare,
|
|
204
|
+
keyId: this.wallet.keyId,
|
|
205
|
+
secretStore: this.wallet.secretStore || ""
|
|
206
|
+
});
|
|
207
|
+
const signatureHex = result.signature.startsWith("0x") ? result.signature.slice(2) : result.signature;
|
|
208
|
+
const signatureBytes = new Uint8Array(
|
|
209
|
+
signatureHex.match(/.{1,2}/g)?.map((byte) => parseInt(byte, 16)) || []
|
|
210
|
+
);
|
|
211
|
+
transaction.addSignature(
|
|
212
|
+
new (await import("@solana/web3.js")).PublicKey(this.wallet.address),
|
|
213
|
+
Buffer.from(signatureBytes)
|
|
214
|
+
);
|
|
215
|
+
console.log("[SolanaProvider] \u2705 Transaction signed");
|
|
216
|
+
transaction._abcSerializedTx = Buffer.from(serializedTx, "hex").toString("base64");
|
|
217
|
+
return transaction;
|
|
218
|
+
} catch (error) {
|
|
219
|
+
if (error.message?.includes("cancelled") || error.message?.includes("rejected")) {
|
|
220
|
+
console.log("[SolanaProvider] \u2139\uFE0F User cancelled transaction");
|
|
221
|
+
throw new SolanaProviderError(
|
|
222
|
+
SolanaErrorCode.USER_REJECTED,
|
|
223
|
+
"User rejected transaction",
|
|
224
|
+
error
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
console.error("[SolanaProvider] \u274C Sign transaction failed:", error.message);
|
|
228
|
+
this.emit("error", error);
|
|
229
|
+
throw new SolanaProviderError(
|
|
230
|
+
SolanaErrorCode.INTERNAL_ERROR,
|
|
231
|
+
"Failed to sign transaction",
|
|
232
|
+
error
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get wallet info
|
|
238
|
+
*/
|
|
239
|
+
getWalletInfo() {
|
|
240
|
+
if (!this.wallet)
|
|
241
|
+
return null;
|
|
242
|
+
return {
|
|
243
|
+
address: this.wallet.address,
|
|
244
|
+
publicKey: this.wallet.publicKey,
|
|
245
|
+
network: this.wallet.network
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
export {
|
|
251
|
+
SolanaProviderError,
|
|
252
|
+
AbcSolanaProvider
|
|
253
|
+
};
|