@talken/talkenkit 2.3.5 → 2.3.7

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.
Files changed (110) hide show
  1. package/dist/components/ChainIndicator/ChainIndicator.css.d.ts +4 -0
  2. package/dist/components/ChainIndicator/ChainIndicator.d.ts +53 -0
  3. package/dist/components/ChainIndicator/index.d.ts +2 -0
  4. package/dist/components/ChainSelector/ChainSelector.css.d.ts +5 -0
  5. package/dist/components/ChainSelector/ChainSelector.d.ts +38 -0
  6. package/dist/components/ChainSelector/index.d.ts +2 -0
  7. package/dist/components/ConnectButton/ConnectButtonRenderer.d.ts +9 -0
  8. package/dist/components/ConnectOptions/DesktopOptions.d.ts +5 -1
  9. package/dist/components/ConnectOptions/MultiChainConnectOptions.d.ts +31 -0
  10. package/dist/components/ConnectOptions/index.d.ts +3 -0
  11. package/dist/components/ModalSelection/ModalSelection.d.ts +2 -1
  12. package/dist/components/ProfileDetails/ProfileDetails.d.ts +1 -2
  13. package/dist/components/RainbowKitProvider/RainbowKitProvider.d.ts +8 -1
  14. package/dist/components/SolanaWalletList/SolanaWalletList.css.d.ts +7 -0
  15. package/dist/components/SolanaWalletList/SolanaWalletList.d.ts +32 -0
  16. package/dist/components/SolanaWalletList/index.d.ts +2 -0
  17. package/dist/contexts/MultiChainContext.d.ts +68 -0
  18. package/dist/contexts/index.d.ts +7 -0
  19. package/dist/index.css +105 -0
  20. package/dist/index.d.ts +12 -0
  21. package/dist/index.js +1445 -899
  22. package/dist/solana/SolanaWalletProvider.d.ts +38 -0
  23. package/dist/solana/config.d.ts +57 -0
  24. package/dist/solana/index.d.ts +11 -0
  25. package/dist/solana/utils/detection.d.ts +27 -0
  26. package/dist/solana/wallets/backpackWallet.d.ts +19 -0
  27. package/dist/solana/wallets/index.d.ts +8 -0
  28. package/dist/solana/wallets/phantomSolanaWallet.d.ts +17 -0
  29. package/dist/solana/wallets/solflareWallet.d.ts +17 -0
  30. package/dist/types/solana.d.ts +97 -0
  31. package/dist/wallets/recentSolanaWalletIds.d.ts +16 -0
  32. package/dist/wallets/walletConnectors/abcWallet/abcApi.js +1 -1
  33. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +2 -2
  34. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.js +2 -2
  35. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +3 -3
  36. package/dist/wallets/walletConnectors/abcWallet/index.js +4 -4
  37. package/dist/wallets/walletConnectors/chunk-3SVPZCA6.js +71 -0
  38. package/dist/wallets/walletConnectors/chunk-5QEUEPNY.js +94 -0
  39. package/dist/wallets/walletConnectors/chunk-B6JLYR3I.js +66 -0
  40. package/dist/wallets/walletConnectors/{chunk-6JKWIEGA.js → chunk-BHMMHU7Y.js} +1 -1
  41. package/dist/wallets/walletConnectors/chunk-HKWBR5B7.js +102 -0
  42. package/dist/wallets/walletConnectors/chunk-K4APJ4PE.js +96 -0
  43. package/dist/wallets/walletConnectors/chunk-LJ2B47VF.js +108 -0
  44. package/dist/wallets/walletConnectors/chunk-LXINMUQC.js +186 -0
  45. package/dist/wallets/walletConnectors/chunk-MORUEOYX.js +76 -0
  46. package/dist/wallets/walletConnectors/chunk-MQTXA63X.js +27 -0
  47. package/dist/wallets/walletConnectors/{chunk-G2IHR6PW.js → chunk-NLKL4KD2.js} +11 -11
  48. package/dist/wallets/walletConnectors/{chunk-KOT7JYJR.js → chunk-OEB7MRS5.js} +1 -1
  49. package/dist/wallets/walletConnectors/{chunk-RWIZ25FJ.js → chunk-P2E4LSYH.js} +17 -23
  50. package/dist/wallets/walletConnectors/chunk-PMZJGS7X.js +73 -0
  51. package/dist/wallets/walletConnectors/{chunk-BRM4ZVXZ.js → chunk-RSZS2RMC.js} +1 -1
  52. package/dist/wallets/walletConnectors/chunk-WZZVA3LW.js +101 -0
  53. package/dist/wallets/walletConnectors/chunk-XEIKWKH7.js +63 -0
  54. package/dist/wallets/walletConnectors/chunk-XOQNQKZE.js +98 -0
  55. package/dist/wallets/walletConnectors/chunk-ZAGAF6PO.js +63 -0
  56. package/dist/wallets/walletConnectors/chunk-ZJ6OFFD5.js +95 -0
  57. package/dist/wallets/walletConnectors/index.js +24 -24
  58. package/package.json +17 -11
  59. package/LICENSE +0 -9
  60. package/dist/wallets/walletConnectors/chunk-2J66VMY5.js +0 -152
  61. package/dist/wallets/walletConnectors/chunk-2ZPGPZCP.js +0 -228
  62. package/dist/wallets/walletConnectors/chunk-3DPCIDW6.js +0 -1730
  63. package/dist/wallets/walletConnectors/chunk-4HKJ53H3.js +0 -1742
  64. package/dist/wallets/walletConnectors/chunk-5EARL7FN.js +0 -39
  65. package/dist/wallets/walletConnectors/chunk-7SXCH5TL.js +0 -1752
  66. package/dist/wallets/walletConnectors/chunk-7UZBDZZZ.js +0 -599
  67. package/dist/wallets/walletConnectors/chunk-BUDWZAL7.js +0 -44
  68. package/dist/wallets/walletConnectors/chunk-CSWWNAYR.js +0 -44
  69. package/dist/wallets/walletConnectors/chunk-E4N7SPPU.js +0 -39
  70. package/dist/wallets/walletConnectors/chunk-ENU7XLF5.js +0 -44
  71. package/dist/wallets/walletConnectors/chunk-ESRU5KCF.js +0 -151
  72. package/dist/wallets/walletConnectors/chunk-FF7ZIXKD.js +0 -39
  73. package/dist/wallets/walletConnectors/chunk-FJCL2YPU.js +0 -1737
  74. package/dist/wallets/walletConnectors/chunk-FSU3WBH3.js +0 -63
  75. package/dist/wallets/walletConnectors/chunk-HD6YCICR.js +0 -228
  76. package/dist/wallets/walletConnectors/chunk-HDYBRMYW.js +0 -194
  77. package/dist/wallets/walletConnectors/chunk-HIZCIW5L.js +0 -228
  78. package/dist/wallets/walletConnectors/chunk-JRNBDHFL.js +0 -44
  79. package/dist/wallets/walletConnectors/chunk-KIQDE4N6.js +0 -39
  80. package/dist/wallets/walletConnectors/chunk-KZOSE2PI.js +0 -228
  81. package/dist/wallets/walletConnectors/chunk-LNZJLKFB.js +0 -39
  82. package/dist/wallets/walletConnectors/chunk-LV765WZL.js +0 -1748
  83. package/dist/wallets/walletConnectors/chunk-MSI2BPP5.js +0 -1722
  84. package/dist/wallets/walletConnectors/chunk-MX2IY5CD.js +0 -44
  85. package/dist/wallets/walletConnectors/chunk-NLX2EV7O.js +0 -44
  86. package/dist/wallets/walletConnectors/chunk-NVAZ3B3V.js +0 -228
  87. package/dist/wallets/walletConnectors/chunk-OEWU3ZMN.js +0 -39
  88. package/dist/wallets/walletConnectors/chunk-P2MTINFI.js +0 -280
  89. package/dist/wallets/walletConnectors/chunk-PNMSIVVT.js +0 -44
  90. package/dist/wallets/walletConnectors/chunk-PZNYT2HC.js +0 -1722
  91. package/dist/wallets/walletConnectors/chunk-QPAE4SDS.js +0 -39
  92. package/dist/wallets/walletConnectors/chunk-QZRNNI3E.js +0 -39
  93. package/dist/wallets/walletConnectors/chunk-R4UYVU5X.js +0 -1721
  94. package/dist/wallets/walletConnectors/chunk-RLBGBBIO.js +0 -309
  95. package/dist/wallets/walletConnectors/chunk-TUUNSVKZ.js +0 -345
  96. package/dist/wallets/walletConnectors/chunk-U2CUEL35.js +0 -240
  97. package/dist/wallets/walletConnectors/chunk-V6NRLREB.js +0 -44
  98. package/dist/wallets/walletConnectors/chunk-VM7AEC7H.js +0 -39
  99. package/dist/wallets/walletConnectors/chunk-W2VDZD74.js +0 -478
  100. package/dist/wallets/walletConnectors/chunk-WAO3KL5U.js +0 -285
  101. package/dist/wallets/walletConnectors/chunk-WPHTIILX.js +0 -228
  102. package/dist/wallets/walletConnectors/chunk-WSCJY2QD.js +0 -228
  103. package/dist/wallets/walletConnectors/chunk-X3JQB5QL.js +0 -44
  104. package/dist/wallets/walletConnectors/chunk-X4CDP7L7.js +0 -228
  105. package/dist/wallets/walletConnectors/chunk-XETOVXYM.js +0 -228
  106. package/dist/wallets/walletConnectors/chunk-XYPR4BAF.js +0 -436
  107. package/dist/wallets/walletConnectors/chunk-Z2ZRPTPX.js +0 -1726
  108. package/dist/wallets/walletConnectors/{chunk-VCBVYFLJ.js → chunk-6TLWAEJV.js} +7 -7
  109. package/dist/wallets/walletConnectors/{chunk-47TQ23J4.js → chunk-74ALNZG4.js} +8 -8
  110. package/dist/wallets/walletConnectors/{chunk-66SCJ77O.js → chunk-CM5OGUJV.js} +6 -6
@@ -1,228 +0,0 @@
1
- "use client";
2
- import {
3
- createAbcWaasClient
4
- } from "./chunk-PZNYT2HC.js";
5
- import {
6
- createAbcEvmProvider
7
- } from "./chunk-XYPR4BAF.js";
8
- import {
9
- clearAuthState,
10
- clearEncryptedTokens,
11
- loadAuthState,
12
- saveAuthState
13
- } from "./chunk-W2VDZD74.js";
14
-
15
- // src/wallets/walletConnectors/abcWallet/abcConnector.ts
16
- import { createConnector } from "wagmi";
17
- function abcConnector(options) {
18
- const { config } = options;
19
- return createConnector((wagmiConfig) => {
20
- const client = createAbcWaasClient(config);
21
- const provider = createAbcEvmProvider(client);
22
- let accountsChangedHandler;
23
- let chainChangedHandler;
24
- let disconnectHandler;
25
- return {
26
- id: "abc",
27
- name: "ABC Wallet",
28
- type: "abc",
29
- /**
30
- * Connect wallet
31
- */
32
- async connect() {
33
- try {
34
- const authState = loadAuthState();
35
- console.log("\u{1F527} ABC Connector connect() called:", {
36
- hasAuthState: !!authState,
37
- isAuthenticated: authState?.isAuthenticated,
38
- hasWallet: !!authState?.wallet,
39
- walletAddress: authState?.wallet?.address
40
- });
41
- if (!authState || !authState.isAuthenticated || !authState.wallet) {
42
- throw new Error("ABC_LOGIN_REQUIRED");
43
- }
44
- provider.setWallet(authState.wallet);
45
- console.log("\u2705 Provider wallet set:", {
46
- address: authState.wallet.address,
47
- hasPIN: !!authState.pin
48
- });
49
- const accounts = await provider.request({
50
- method: "eth_requestAccounts"
51
- });
52
- const currentChainId = await provider.request({
53
- method: "eth_chainId"
54
- });
55
- if (accountsChangedHandler) {
56
- provider.removeListener("accountsChanged", accountsChangedHandler);
57
- }
58
- accountsChangedHandler = (accounts2) => {
59
- wagmiConfig.emitter.emit("change", {
60
- accounts: accounts2
61
- });
62
- };
63
- provider.on("accountsChanged", accountsChangedHandler);
64
- if (chainChangedHandler) {
65
- provider.removeListener("chainChanged", chainChangedHandler);
66
- }
67
- chainChangedHandler = (chainId) => {
68
- wagmiConfig.emitter.emit("change", {
69
- chainId: Number(chainId)
70
- });
71
- };
72
- provider.on("chainChanged", chainChangedHandler);
73
- if (disconnectHandler) {
74
- provider.removeListener("disconnect", disconnectHandler);
75
- }
76
- disconnectHandler = () => {
77
- wagmiConfig.emitter.emit("disconnect");
78
- this.onDisconnect();
79
- };
80
- provider.on("disconnect", disconnectHandler);
81
- return {
82
- accounts,
83
- chainId: Number(currentChainId)
84
- };
85
- } catch (error) {
86
- if (error.message === "ABC_LOGIN_REQUIRED") {
87
- throw error;
88
- }
89
- throw error;
90
- }
91
- },
92
- /**
93
- * Disconnect wallet
94
- */
95
- async disconnect() {
96
- if (accountsChangedHandler) {
97
- provider.removeListener("accountsChanged", accountsChangedHandler);
98
- accountsChangedHandler = void 0;
99
- }
100
- if (chainChangedHandler) {
101
- provider.removeListener("chainChanged", chainChangedHandler);
102
- chainChangedHandler = void 0;
103
- }
104
- if (disconnectHandler) {
105
- provider.removeListener("disconnect", disconnectHandler);
106
- disconnectHandler = void 0;
107
- }
108
- provider.clearWallet();
109
- await client.logout();
110
- let savedPinHash = null;
111
- let savedEmail = null;
112
- if (typeof window !== "undefined") {
113
- savedPinHash = localStorage.getItem("talkenkit_abc_pin_hash");
114
- savedEmail = localStorage.getItem("talkenkit_abc_saved_email");
115
- }
116
- clearAuthState();
117
- clearEncryptedTokens();
118
- if (typeof window !== "undefined") {
119
- localStorage.removeItem("talkenkit_abc_enc_salt");
120
- localStorage.removeItem("talkenkit_abc_enc_tokens");
121
- if (savedPinHash) {
122
- localStorage.setItem("talkenkit_abc_pin_hash", savedPinHash);
123
- }
124
- if (savedEmail) {
125
- localStorage.setItem("talkenkit_abc_saved_email", savedEmail);
126
- }
127
- }
128
- console.log("\u2705 ABC Wallet disconnected (PIN preserved)");
129
- },
130
- /**
131
- * Get accounts
132
- */
133
- async getAccounts() {
134
- const accounts = await provider.request({
135
- method: "eth_accounts"
136
- });
137
- return accounts.map((account) => account);
138
- },
139
- /**
140
- * Get chain ID
141
- */
142
- async getChainId() {
143
- const chainId = await provider.request({
144
- method: "eth_chainId"
145
- });
146
- return Number(chainId);
147
- },
148
- /**
149
- * Get provider
150
- */
151
- async getProvider() {
152
- return provider;
153
- },
154
- /**
155
- * Check if authorized (has valid session)
156
- */
157
- async isAuthorized() {
158
- try {
159
- const authState = loadAuthState();
160
- if (!authState || !authState.isAuthenticated) {
161
- return false;
162
- }
163
- return client.isAuthenticated();
164
- } catch {
165
- return false;
166
- }
167
- },
168
- /**
169
- * Switch chain
170
- */
171
- async switchChain({ chainId }) {
172
- await provider.request({
173
- method: "wallet_switchEthereumChain",
174
- params: [{ chainId: `0x${chainId.toString(16)}` }]
175
- });
176
- const newChainId = await this.getChainId();
177
- const authState = loadAuthState();
178
- if (authState?.wallet) {
179
- authState.wallet.chainId = newChainId;
180
- saveAuthState(authState);
181
- }
182
- return wagmiConfig.chains.find((x) => x.id === chainId) ?? {
183
- id: chainId,
184
- name: `Chain ${chainId}`,
185
- nativeCurrency: {
186
- name: "Ether",
187
- decimals: 18,
188
- symbol: "ETH"
189
- },
190
- rpcUrls: {
191
- default: { http: [""] }
192
- }
193
- };
194
- },
195
- /**
196
- * Handle accounts changed
197
- */
198
- onAccountsChanged(accounts) {
199
- if (accounts.length === 0) {
200
- this.onDisconnect();
201
- } else {
202
- wagmiConfig.emitter.emit("change", {
203
- accounts
204
- });
205
- }
206
- },
207
- /**
208
- * Handle chain changed
209
- */
210
- onChainChanged(chain) {
211
- const chainId = Number(chain);
212
- wagmiConfig.emitter.emit("change", { chainId });
213
- },
214
- /**
215
- * Handle disconnect
216
- */
217
- onDisconnect(_error) {
218
- provider.clearWallet();
219
- clearAuthState();
220
- wagmiConfig.emitter.emit("disconnect");
221
- }
222
- };
223
- });
224
- }
225
-
226
- export {
227
- abcConnector
228
- };
@@ -1,436 +0,0 @@
1
- "use client";
2
- import {
3
- hexToNumber,
4
- numberToHex
5
- } from "./chunk-W2VDZD74.js";
6
-
7
- // src/wallets/walletConnectors/abcWallet/abcProvider.ts
8
- var EventEmitter = class {
9
- constructor() {
10
- this.events = /* @__PURE__ */ new Map();
11
- }
12
- on(event, listener) {
13
- if (!this.events.has(event)) {
14
- this.events.set(event, []);
15
- }
16
- this.events.get(event).push(listener);
17
- return this;
18
- }
19
- off(event, listener) {
20
- const listeners = this.events.get(event);
21
- if (listeners) {
22
- const index = listeners.indexOf(listener);
23
- if (index !== -1) {
24
- listeners.splice(index, 1);
25
- }
26
- }
27
- return this;
28
- }
29
- removeListener(event, listener) {
30
- return this.off(event, listener);
31
- }
32
- emit(event, ...args) {
33
- const listeners = this.events.get(event);
34
- if (listeners) {
35
- for (const listener of listeners) {
36
- listener(...args);
37
- }
38
- return true;
39
- }
40
- return false;
41
- }
42
- removeAllListeners(event) {
43
- if (event) {
44
- this.events.delete(event);
45
- } else {
46
- this.events.clear();
47
- }
48
- return this;
49
- }
50
- };
51
- var ProviderRpcError = class extends Error {
52
- constructor(code, message, data) {
53
- super(message);
54
- this.code = code;
55
- this.data = data;
56
- this.name = "ProviderRpcError";
57
- }
58
- };
59
- var ErrorCode = {
60
- USER_REJECTED: 4001,
61
- UNAUTHORIZED: 4100,
62
- UNSUPPORTED_METHOD: 4200,
63
- DISCONNECTED: 4900,
64
- CHAIN_DISCONNECTED: 4901,
65
- INVALID_PARAMS: -32602,
66
- INTERNAL_ERROR: -32603
67
- };
68
- var AbcEvmProvider = class extends EventEmitter {
69
- constructor(client) {
70
- super();
71
- this.wallet = null;
72
- this.chainId = 1;
73
- // Default to Ethereum mainnet
74
- this.connected = false;
75
- this.client = client;
76
- }
77
- /**
78
- * Set wallet information
79
- */
80
- setWallet(wallet) {
81
- const previousAddress = this.wallet?.address;
82
- const previousChainId = this.chainId;
83
- this.wallet = wallet;
84
- this.chainId = wallet.chainId;
85
- this.connected = true;
86
- if (previousAddress !== wallet.address) {
87
- this.emit("accountsChanged", [wallet.address]);
88
- }
89
- if (previousChainId !== wallet.chainId) {
90
- this.emit("chainChanged", numberToHex(wallet.chainId));
91
- }
92
- this.emit("connect", { chainId: numberToHex(wallet.chainId) });
93
- }
94
- /**
95
- * Clear wallet (disconnect)
96
- */
97
- clearWallet() {
98
- this.wallet = null;
99
- this.connected = false;
100
- this.emit("disconnect", {
101
- code: ErrorCode.DISCONNECTED,
102
- message: "User disconnected"
103
- });
104
- this.emit("accountsChanged", []);
105
- }
106
- /**
107
- * Set PIN request callback
108
- */
109
- setRequestPinCallback(callback) {
110
- this.requestPinCallback = callback;
111
- }
112
- /**
113
- * Request PIN from user
114
- */
115
- async requestPin() {
116
- if (!this.requestPinCallback) {
117
- throw new ProviderRpcError(
118
- ErrorCode.INTERNAL_ERROR,
119
- "PIN request callback not configured"
120
- );
121
- }
122
- return this.requestPinCallback();
123
- }
124
- /**
125
- * EIP-1193 request method
126
- */
127
- async request(args) {
128
- const { method, params } = args;
129
- switch (method) {
130
- case "eth_requestAccounts":
131
- return this.eth_requestAccounts();
132
- case "eth_accounts":
133
- return this.eth_accounts();
134
- case "eth_chainId":
135
- return this.eth_chainId();
136
- case "eth_sendTransaction":
137
- case "wallet_sendTransaction":
138
- return this.eth_sendTransaction(params);
139
- case "eth_signTransaction":
140
- return this.eth_signTransaction(params);
141
- case "personal_sign":
142
- return this.personal_sign(params);
143
- case "eth_sign":
144
- return this.eth_sign(params);
145
- case "eth_signTypedData":
146
- case "eth_signTypedData_v3":
147
- case "eth_signTypedData_v4":
148
- return this.eth_signTypedData(params);
149
- case "wallet_switchEthereumChain":
150
- return this.wallet_switchEthereumChain(params);
151
- case "wallet_addEthereumChain":
152
- return this.wallet_addEthereumChain(params);
153
- case "eth_blockNumber":
154
- case "eth_call":
155
- case "eth_estimateGas":
156
- case "eth_gasPrice":
157
- case "eth_getBalance":
158
- case "eth_getBlockByHash":
159
- case "eth_getBlockByNumber":
160
- case "eth_getCode":
161
- case "eth_getStorageAt":
162
- case "eth_getTransactionByHash":
163
- case "eth_getTransactionCount":
164
- case "eth_getTransactionReceipt":
165
- throw new ProviderRpcError(
166
- ErrorCode.UNSUPPORTED_METHOD,
167
- `Method ${method} should be handled by RPC provider`
168
- );
169
- default:
170
- throw new ProviderRpcError(
171
- ErrorCode.UNSUPPORTED_METHOD,
172
- `Method ${method} not supported`
173
- );
174
- }
175
- }
176
- /**
177
- * Request accounts (EIP-1193)
178
- */
179
- async eth_requestAccounts() {
180
- if (!this.wallet) {
181
- throw new ProviderRpcError(
182
- ErrorCode.UNAUTHORIZED,
183
- "Wallet not connected"
184
- );
185
- }
186
- return [this.wallet.address];
187
- }
188
- /**
189
- * Get accounts
190
- */
191
- async eth_accounts() {
192
- if (!this.wallet) {
193
- return [];
194
- }
195
- return [this.wallet.address];
196
- }
197
- /**
198
- * Get chain ID
199
- */
200
- async eth_chainId() {
201
- return numberToHex(this.chainId);
202
- }
203
- /**
204
- * Send transaction
205
- */
206
- async eth_sendTransaction(params) {
207
- if (!this.wallet) {
208
- throw new ProviderRpcError(
209
- ErrorCode.UNAUTHORIZED,
210
- "Wallet not connected"
211
- );
212
- }
213
- if (!Array.isArray(params) || params.length === 0) {
214
- throw new ProviderRpcError(
215
- ErrorCode.INVALID_PARAMS,
216
- "Invalid transaction params"
217
- );
218
- }
219
- const tx = params[0];
220
- const isContractDeployment = !tx.to || tx.to === "0x" || tx.to === "0x0" || tx.to === "0x0000000000000000000000000000000000000000";
221
- if (isContractDeployment) {
222
- tx.to = "0x";
223
- } else if (!tx.to) {
224
- throw new ProviderRpcError(
225
- ErrorCode.INVALID_PARAMS,
226
- 'Transaction must have "to" field'
227
- );
228
- }
229
- const pin = await this.requestPin();
230
- const signParams = {
231
- chainId: this.chainId,
232
- transaction: tx,
233
- keyId: this.wallet.keyId,
234
- encryptedShare: this.wallet.encryptedShare,
235
- pin
236
- };
237
- const signResult = await this.client.signTransaction(signParams);
238
- if (!signResult.signature) {
239
- throw new ProviderRpcError(
240
- ErrorCode.INTERNAL_ERROR,
241
- "Failed to get signed transaction from ABC WaaS"
242
- );
243
- }
244
- const sendResult = await this.client.sendRawTransaction(
245
- this.chainId,
246
- signResult.signature
247
- // serializedTx
248
- );
249
- return sendResult.txHash;
250
- }
251
- /**
252
- * Sign transaction (without sending)
253
- */
254
- async eth_signTransaction(params) {
255
- if (!this.wallet) {
256
- throw new ProviderRpcError(
257
- ErrorCode.UNAUTHORIZED,
258
- "Wallet not connected"
259
- );
260
- }
261
- if (!Array.isArray(params) || params.length === 0) {
262
- throw new ProviderRpcError(
263
- ErrorCode.INVALID_PARAMS,
264
- "Invalid transaction params"
265
- );
266
- }
267
- const tx = params[0];
268
- const pin = await this.requestPin();
269
- const signParams = {
270
- chainId: this.chainId,
271
- transaction: tx,
272
- keyId: this.wallet.keyId,
273
- encryptedShare: this.wallet.encryptedShare,
274
- pin
275
- };
276
- const result = await this.client.signTransaction(signParams);
277
- return result.signature;
278
- }
279
- /**
280
- * Personal sign (EIP-191)
281
- */
282
- async personal_sign(params) {
283
- if (!this.wallet) {
284
- console.error("[AbcProvider] \u274C Wallet not connected");
285
- throw new ProviderRpcError(
286
- ErrorCode.UNAUTHORIZED,
287
- "Wallet not connected"
288
- );
289
- }
290
- if (!Array.isArray(params) || params.length < 2) {
291
- console.error("[AbcProvider] \u274C Invalid params:", params);
292
- throw new ProviderRpcError(
293
- ErrorCode.INVALID_PARAMS,
294
- "Invalid personal_sign params"
295
- );
296
- }
297
- const [message, address] = params;
298
- if (address.toLowerCase() !== this.wallet.address.toLowerCase()) {
299
- console.error("[AbcProvider] \u274C Address mismatch");
300
- throw new ProviderRpcError(
301
- ErrorCode.INVALID_PARAMS,
302
- "Address does not match connected wallet"
303
- );
304
- }
305
- if (!this.wallet.sid) {
306
- console.error("[AbcProvider] \u274C Missing sid");
307
- throw new ProviderRpcError(
308
- ErrorCode.INTERNAL_ERROR,
309
- "Wallet session ID (sid) is missing - please reconnect wallet"
310
- );
311
- }
312
- if (!this.wallet.pvencstr) {
313
- console.error("[AbcProvider] \u274C Missing pvencstr");
314
- throw new ProviderRpcError(
315
- ErrorCode.INTERNAL_ERROR,
316
- "Wallet pvencstr is missing - please reconnect wallet"
317
- );
318
- }
319
- if (!this.wallet.wid) {
320
- console.error("[AbcProvider] \u274C Missing wid");
321
- throw new ProviderRpcError(
322
- ErrorCode.INTERNAL_ERROR,
323
- "Wallet wid is missing - please reconnect wallet"
324
- );
325
- }
326
- const result = await this.client.signMessage({
327
- message,
328
- address: this.wallet.address,
329
- // ciphertext removed - not needed for message signing
330
- sid: this.wallet.sid,
331
- uid: this.wallet.uid,
332
- pvencstr: this.wallet.pvencstr,
333
- wid: this.wallet.wid
334
- });
335
- return result.signature;
336
- }
337
- /**
338
- * Eth sign
339
- */
340
- async eth_sign(params) {
341
- if (!Array.isArray(params) || params.length < 2) {
342
- throw new ProviderRpcError(
343
- ErrorCode.INVALID_PARAMS,
344
- "Invalid eth_sign params"
345
- );
346
- }
347
- const [address, message] = params;
348
- return this.personal_sign([message, address]);
349
- }
350
- /**
351
- * Sign typed data (EIP-712)
352
- */
353
- async eth_signTypedData(params) {
354
- if (!this.wallet) {
355
- throw new ProviderRpcError(
356
- ErrorCode.UNAUTHORIZED,
357
- "Wallet not connected"
358
- );
359
- }
360
- if (!Array.isArray(params) || params.length < 2) {
361
- throw new ProviderRpcError(
362
- ErrorCode.INVALID_PARAMS,
363
- "Invalid signTypedData params"
364
- );
365
- }
366
- const [address, typedData] = params;
367
- if (address.toLowerCase() !== this.wallet.address.toLowerCase()) {
368
- throw new ProviderRpcError(
369
- ErrorCode.INVALID_PARAMS,
370
- "Address does not match connected wallet"
371
- );
372
- }
373
- const result = await this.client.signTypedData({
374
- typedData: typeof typedData === "string" ? typedData : JSON.stringify(typedData)
375
- // ciphertext removed - not needed for typed data signing
376
- });
377
- return result.signature;
378
- }
379
- /**
380
- * Switch Ethereum chain
381
- */
382
- async wallet_switchEthereumChain(params) {
383
- if (!Array.isArray(params) || params.length === 0) {
384
- throw new ProviderRpcError(
385
- ErrorCode.INVALID_PARAMS,
386
- "Invalid switchEthereumChain params"
387
- );
388
- }
389
- const { chainId } = params[0];
390
- const newChainId = hexToNumber(chainId);
391
- if (this.chainId === newChainId) {
392
- return null;
393
- }
394
- const _previousChainId = this.chainId;
395
- this.chainId = newChainId;
396
- if (this.wallet) {
397
- this.wallet.chainId = newChainId;
398
- }
399
- this.emit("chainChanged", numberToHex(newChainId));
400
- return null;
401
- }
402
- /**
403
- * Add Ethereum chain
404
- */
405
- async wallet_addEthereumChain(params) {
406
- return this.wallet_switchEthereumChain(params);
407
- }
408
- /**
409
- * Check if connected
410
- */
411
- isConnected() {
412
- return this.connected;
413
- }
414
- /**
415
- * Get current wallet
416
- */
417
- getWallet() {
418
- return this.wallet;
419
- }
420
- /**
421
- * Get current chain ID
422
- */
423
- getChainId() {
424
- return this.chainId;
425
- }
426
- };
427
- function createAbcEvmProvider(client) {
428
- return new AbcEvmProvider(client);
429
- }
430
- var createAbcProvider = createAbcEvmProvider;
431
-
432
- export {
433
- AbcEvmProvider,
434
- createAbcEvmProvider,
435
- createAbcProvider
436
- };