@talken/talkenkit 2.4.30 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/{abcWallet-TLGPQAMU.js → abcWallet-5GTT47V6.js} +1 -1
  2. package/dist/{chunk-MI7TNBED.js → chunk-REVMSQIO.js} +287 -71
  3. package/dist/index.js +5 -5
  4. package/dist/wallets/walletConnectors/abcWallet/abcAccessKeyProvider.d.ts +43 -0
  5. package/dist/wallets/walletConnectors/abcWallet/abcAccessKeyProvider.js +11 -0
  6. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +4 -2
  7. package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +2 -1
  8. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
  9. package/dist/wallets/walletConnectors/abcWallet/abcWallet.d.ts +7 -0
  10. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +5 -3
  11. package/dist/wallets/walletConnectors/abcWallet/api/index.js +3 -3
  12. package/dist/wallets/walletConnectors/abcWallet/index.js +8 -6
  13. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +2 -0
  14. package/dist/wallets/walletConnectors/{chunk-HHZ3JZRH.js → chunk-HWXOTEC3.js} +12 -2
  15. package/dist/wallets/walletConnectors/chunk-K66HU6GX.js +732 -0
  16. package/dist/wallets/walletConnectors/{chunk-XNA5NIFE.js → chunk-QSP2A4LA.js} +5 -2
  17. package/dist/wallets/walletConnectors/chunk-S2SQYPGR.js +220 -0
  18. package/dist/wallets/walletConnectors/{chunk-NU3ITJNK.js → chunk-TQHS6APN.js} +7 -731
  19. package/dist/wallets/walletConnectors/index.js +31 -29
  20. package/package.json +1 -1
  21. package/dist/wallets/walletConnectors/chunk-CABLJOMU.js +0 -194
  22. package/dist/wallets/walletConnectors/chunk-J3YPHDHM.js +0 -827
  23. package/dist/wallets/walletConnectors/chunk-J566FC7T.js +0 -54
  24. package/dist/wallets/walletConnectors/chunk-OHQXPSR6.js +0 -300
  25. package/dist/wallets/walletConnectors/chunk-OMOYFHBT.js +0 -1485
@@ -56,7 +56,7 @@ import {
56
56
  validateEmail,
57
57
  validateMpcWallets,
58
58
  validatePin
59
- } from "./chunk-MI7TNBED.js";
59
+ } from "./chunk-REVMSQIO.js";
60
60
  import {
61
61
  ABC_EVENTS,
62
62
  ABC_FEATURES,
@@ -16,10 +16,6 @@ import { setTalkenApiClient as setTalkenApiClient2 } from "@talken/talkenkit";
16
16
  import { getTalkenApiClient as getTalkenApiClient3 } from "@talken/talkenkit";
17
17
  import { createConnector } from "wagmi";
18
18
 
19
- // src/wallets/walletConnectors/abcWallet/abcProvider.ts
20
- import { getTalkenApiClient } from "@talken/talkenkit";
21
- import { parseGwei } from "viem";
22
-
23
19
  // src/config/networks.ts
24
20
  var NetworkType = /* @__PURE__ */ ((NetworkType2) => {
25
21
  NetworkType2["EVM"] = "EVM";
@@ -1051,8 +1047,218 @@ function numberToHex(num) {
1051
1047
  return `0x${num.toString(16)}`;
1052
1048
  }
1053
1049
 
1054
- // src/wallets/walletConnectors/abcWallet/abcProvider.ts
1050
+ // src/wallets/walletConnectors/abcWallet/abcAccessKeyProvider.ts
1055
1051
  var EventEmitter = class {
1052
+ constructor() {
1053
+ this.events = /* @__PURE__ */ new Map();
1054
+ }
1055
+ on(event, listener) {
1056
+ if (!this.events.has(event))
1057
+ this.events.set(event, []);
1058
+ this.events.get(event).push(listener);
1059
+ return this;
1060
+ }
1061
+ off(event, listener) {
1062
+ const listeners = this.events.get(event);
1063
+ if (listeners) {
1064
+ const idx = listeners.indexOf(listener);
1065
+ if (idx !== -1)
1066
+ listeners.splice(idx, 1);
1067
+ }
1068
+ return this;
1069
+ }
1070
+ removeListener(event, listener) {
1071
+ return this.off(event, listener);
1072
+ }
1073
+ emit(event, ...args) {
1074
+ const listeners = this.events.get(event);
1075
+ if (listeners) {
1076
+ for (const listener of listeners)
1077
+ listener(...args);
1078
+ return true;
1079
+ }
1080
+ return false;
1081
+ }
1082
+ removeAllListeners(event) {
1083
+ if (event)
1084
+ this.events.delete(event);
1085
+ else
1086
+ this.events.clear();
1087
+ return this;
1088
+ }
1089
+ };
1090
+ var ErrorCode = {
1091
+ USER_REJECTED: 4001,
1092
+ UNAUTHORIZED: 4100,
1093
+ UNSUPPORTED_METHOD: 4200,
1094
+ DISCONNECTED: 4900,
1095
+ INTERNAL_ERROR: -32603
1096
+ };
1097
+ var ProviderRpcError = class extends Error {
1098
+ constructor(code, message, data) {
1099
+ super(message);
1100
+ this.code = code;
1101
+ this.data = data;
1102
+ this.name = "ProviderRpcError";
1103
+ }
1104
+ };
1105
+ var AbcAccessKeyProvider = class extends EventEmitter {
1106
+ constructor(accessKey, apiBaseUrl) {
1107
+ super();
1108
+ this.wallet = null;
1109
+ this.chainId = 1;
1110
+ this.connected = false;
1111
+ this.accessKey = accessKey;
1112
+ this.apiBaseUrl = apiBaseUrl || (typeof window !== "undefined" ? window.__TALKEN_API_URL__ || "" : "");
1113
+ }
1114
+ // ── Wallet management ─────────────────────────────────────
1115
+ setWallet(wallet) {
1116
+ this.wallet = wallet;
1117
+ this.chainId = wallet.chainId || 1;
1118
+ this.connected = true;
1119
+ }
1120
+ clearWallet() {
1121
+ this.wallet = null;
1122
+ this.connected = false;
1123
+ }
1124
+ isConnected() {
1125
+ return this.connected && !!this.wallet;
1126
+ }
1127
+ getWallet() {
1128
+ return this.wallet;
1129
+ }
1130
+ getChainId() {
1131
+ return this.chainId;
1132
+ }
1133
+ setAccessKey(key) {
1134
+ this.accessKey = key;
1135
+ }
1136
+ // ── EIP-1193 request ──────────────────────────────────────
1137
+ async request(args) {
1138
+ const { method, params } = args;
1139
+ switch (method) {
1140
+ case "eth_requestAccounts":
1141
+ case "eth_accounts":
1142
+ return this.wallet ? [this.wallet.address] : [];
1143
+ case "eth_chainId":
1144
+ return numberToHex(this.chainId);
1145
+ case "wallet_switchEthereumChain": {
1146
+ const p = params?.[0];
1147
+ if (p?.chainId) {
1148
+ this.chainId = hexToNumber(p.chainId);
1149
+ this.emit("chainChanged", numberToHex(this.chainId));
1150
+ }
1151
+ return null;
1152
+ }
1153
+ case "eth_sendTransaction":
1154
+ return this.sendTransaction(params);
1155
+ case "personal_sign":
1156
+ return this.personalSign(params);
1157
+ case "eth_signTypedData":
1158
+ case "eth_signTypedData_v4":
1159
+ return this.signTypedData(params);
1160
+ case "eth_estimateGas":
1161
+ return this.rpcCall("eth_estimateGas", params);
1162
+ case "eth_getTransactionCount":
1163
+ return this.rpcCall("eth_getTransactionCount", params);
1164
+ case "wallet_getCapabilities":
1165
+ return {};
1166
+ default:
1167
+ return this.rpcCall(method, params);
1168
+ }
1169
+ }
1170
+ // ── Signing via access-key (server-side, no PIN) ──────────
1171
+ async sendTransaction(params) {
1172
+ if (!this.wallet) {
1173
+ throw new ProviderRpcError(
1174
+ ErrorCode.UNAUTHORIZED,
1175
+ "Wallet not connected"
1176
+ );
1177
+ }
1178
+ const tx = params?.[0];
1179
+ if (!tx) {
1180
+ throw new ProviderRpcError(
1181
+ ErrorCode.INTERNAL_ERROR,
1182
+ "Missing transaction params"
1183
+ );
1184
+ }
1185
+ const chainKey = getChainKey(this.chainId);
1186
+ const result = await this.apiPost("/tx/relay-execute", {
1187
+ chainKey,
1188
+ user: this.wallet.address,
1189
+ tokenIn: "0x0000000000000000000000000000000000000000",
1190
+ amountIn: tx.value || "0",
1191
+ target: tx.to,
1192
+ targetCalldata: tx.data || "0x",
1193
+ deadline: Math.floor(Date.now() / 1e3) + 600,
1194
+ auth: { method: "auto" }
1195
+ });
1196
+ return result?.txHash || result?.hash;
1197
+ }
1198
+ async personalSign(params) {
1199
+ if (!this.wallet) {
1200
+ throw new ProviderRpcError(
1201
+ ErrorCode.UNAUTHORIZED,
1202
+ "Wallet not connected"
1203
+ );
1204
+ }
1205
+ const p = params;
1206
+ const message = p?.[0];
1207
+ const result = await this.apiPost("/agent/sessions/sign", {
1208
+ operation: "signMessage",
1209
+ chainId: this.chainId,
1210
+ payload: { message }
1211
+ });
1212
+ return result?.signature;
1213
+ }
1214
+ async signTypedData(params) {
1215
+ if (!this.wallet) {
1216
+ throw new ProviderRpcError(
1217
+ ErrorCode.UNAUTHORIZED,
1218
+ "Wallet not connected"
1219
+ );
1220
+ }
1221
+ const p = params;
1222
+ const typedData = typeof p?.[1] === "string" ? JSON.parse(p[1]) : p?.[1];
1223
+ const result = await this.apiPost("/agent/sessions/sign", {
1224
+ operation: "signTypedData",
1225
+ chainId: this.chainId,
1226
+ payload: typedData
1227
+ });
1228
+ return result?.signature;
1229
+ }
1230
+ // ── HTTP helpers ──────────────────────────────────────────
1231
+ async apiPost(path, body) {
1232
+ const url = `${this.apiBaseUrl}${path}`;
1233
+ const res = await fetch(url, {
1234
+ method: "POST",
1235
+ headers: {
1236
+ "Content-Type": "application/json",
1237
+ "X-Access-Key": this.accessKey
1238
+ },
1239
+ body: JSON.stringify(body)
1240
+ });
1241
+ if (!res.ok) {
1242
+ const err = await res.json().catch(() => ({ message: res.statusText }));
1243
+ throw new ProviderRpcError(
1244
+ ErrorCode.INTERNAL_ERROR,
1245
+ err?.error?.message || err?.message || `API error: ${res.status}`
1246
+ );
1247
+ }
1248
+ const json = await res.json();
1249
+ return json?.data || json;
1250
+ }
1251
+ async rpcCall(method, params) {
1252
+ const chainKey = getChainKey(this.chainId);
1253
+ const result = await this.apiPost("/rpc", { chainKey, method, params });
1254
+ return result?.result ?? result;
1255
+ }
1256
+ };
1257
+
1258
+ // src/wallets/walletConnectors/abcWallet/abcProvider.ts
1259
+ import { getTalkenApiClient } from "@talken/talkenkit";
1260
+ import { parseGwei } from "viem";
1261
+ var EventEmitter2 = class {
1056
1262
  constructor() {
1057
1263
  this.events = /* @__PURE__ */ new Map();
1058
1264
  }
@@ -1095,7 +1301,7 @@ var EventEmitter = class {
1095
1301
  return this;
1096
1302
  }
1097
1303
  };
1098
- var ProviderRpcError = class extends Error {
1304
+ var ProviderRpcError2 = class extends Error {
1099
1305
  constructor(code, message, data) {
1100
1306
  super(message);
1101
1307
  this.code = code;
@@ -1103,7 +1309,7 @@ var ProviderRpcError = class extends Error {
1103
1309
  this.name = "ProviderRpcError";
1104
1310
  }
1105
1311
  };
1106
- var ErrorCode = {
1312
+ var ErrorCode2 = {
1107
1313
  USER_REJECTED: 4001,
1108
1314
  UNAUTHORIZED: 4100,
1109
1315
  UNSUPPORTED_METHOD: 4200,
@@ -1112,7 +1318,7 @@ var ErrorCode = {
1112
1318
  INVALID_PARAMS: -32602,
1113
1319
  INTERNAL_ERROR: -32603
1114
1320
  };
1115
- var AbcEvmProvider = class extends EventEmitter {
1321
+ var AbcEvmProvider = class extends EventEmitter2 {
1116
1322
  constructor(talkenApi) {
1117
1323
  super();
1118
1324
  this.wallet = null;
@@ -1152,7 +1358,7 @@ var AbcEvmProvider = class extends EventEmitter {
1152
1358
  this.wallet = null;
1153
1359
  this.connected = false;
1154
1360
  this.emit("disconnect", {
1155
- code: ErrorCode.DISCONNECTED,
1361
+ code: ErrorCode2.DISCONNECTED,
1156
1362
  message: "User disconnected"
1157
1363
  });
1158
1364
  this.emit("accountsChanged", []);
@@ -1174,8 +1380,8 @@ var AbcEvmProvider = class extends EventEmitter {
1174
1380
  getTalkenApiClientOrThrow() {
1175
1381
  const api = this.talkenApi || getTalkenApiClient();
1176
1382
  if (!api) {
1177
- throw new ProviderRpcError(
1178
- ErrorCode.INTERNAL_ERROR,
1383
+ throw new ProviderRpcError2(
1384
+ ErrorCode2.INTERNAL_ERROR,
1179
1385
  "TalkenApiClient not initialized"
1180
1386
  );
1181
1387
  }
@@ -1216,8 +1422,8 @@ var AbcEvmProvider = class extends EventEmitter {
1216
1422
  console.warn(
1217
1423
  "[AbcProvider] Cannot refresh signing credentials \u2014 PIN hash or email missing"
1218
1424
  );
1219
- throw new ProviderRpcError(
1220
- ErrorCode.UNAUTHORIZED,
1425
+ throw new ProviderRpcError2(
1426
+ ErrorCode2.UNAUTHORIZED,
1221
1427
  "Session expired. Please reconnect and verify your PIN."
1222
1428
  );
1223
1429
  }
@@ -1305,13 +1511,13 @@ var AbcEvmProvider = class extends EventEmitter {
1305
1511
  case "eth_getStorageAt":
1306
1512
  case "eth_getTransactionByHash":
1307
1513
  case "eth_getTransactionReceipt":
1308
- throw new ProviderRpcError(
1309
- ErrorCode.UNSUPPORTED_METHOD,
1514
+ throw new ProviderRpcError2(
1515
+ ErrorCode2.UNSUPPORTED_METHOD,
1310
1516
  `Method ${method} should be handled by RPC provider`
1311
1517
  );
1312
1518
  default:
1313
- throw new ProviderRpcError(
1314
- ErrorCode.UNSUPPORTED_METHOD,
1519
+ throw new ProviderRpcError2(
1520
+ ErrorCode2.UNSUPPORTED_METHOD,
1315
1521
  `Method ${method} not supported`
1316
1522
  );
1317
1523
  }
@@ -1321,8 +1527,8 @@ var AbcEvmProvider = class extends EventEmitter {
1321
1527
  */
1322
1528
  async eth_requestAccounts() {
1323
1529
  if (!this.wallet) {
1324
- throw new ProviderRpcError(
1325
- ErrorCode.UNAUTHORIZED,
1530
+ throw new ProviderRpcError2(
1531
+ ErrorCode2.UNAUTHORIZED,
1326
1532
  "Wallet not connected"
1327
1533
  );
1328
1534
  }
@@ -1348,14 +1554,14 @@ var AbcEvmProvider = class extends EventEmitter {
1348
1554
  */
1349
1555
  async eth_sendTransaction(params) {
1350
1556
  if (!this.wallet) {
1351
- throw new ProviderRpcError(
1352
- ErrorCode.UNAUTHORIZED,
1557
+ throw new ProviderRpcError2(
1558
+ ErrorCode2.UNAUTHORIZED,
1353
1559
  "Wallet not connected"
1354
1560
  );
1355
1561
  }
1356
1562
  if (!Array.isArray(params) || params.length === 0) {
1357
- throw new ProviderRpcError(
1358
- ErrorCode.INVALID_PARAMS,
1563
+ throw new ProviderRpcError2(
1564
+ ErrorCode2.INVALID_PARAMS,
1359
1565
  "Invalid transaction params"
1360
1566
  );
1361
1567
  }
@@ -1406,15 +1612,15 @@ var AbcEvmProvider = class extends EventEmitter {
1406
1612
  if (isContractDeployment) {
1407
1613
  tx.to = "0x";
1408
1614
  } else if (!tx.to) {
1409
- throw new ProviderRpcError(
1410
- ErrorCode.INVALID_PARAMS,
1615
+ throw new ProviderRpcError2(
1616
+ ErrorCode2.INVALID_PARAMS,
1411
1617
  'Transaction must have "to" field'
1412
1618
  );
1413
1619
  }
1414
1620
  const pinHash = getCredentialManager().getPinHash();
1415
1621
  if (!pinHash) {
1416
- throw new ProviderRpcError(
1417
- ErrorCode.INTERNAL_ERROR,
1622
+ throw new ProviderRpcError2(
1623
+ ErrorCode2.INTERNAL_ERROR,
1418
1624
  "PIN hash not found. Please login again."
1419
1625
  );
1420
1626
  }
@@ -1442,14 +1648,14 @@ var AbcEvmProvider = class extends EventEmitter {
1442
1648
  */
1443
1649
  async eth_signTransaction(params) {
1444
1650
  if (!this.wallet) {
1445
- throw new ProviderRpcError(
1446
- ErrorCode.UNAUTHORIZED,
1651
+ throw new ProviderRpcError2(
1652
+ ErrorCode2.UNAUTHORIZED,
1447
1653
  "Wallet not connected"
1448
1654
  );
1449
1655
  }
1450
1656
  if (!Array.isArray(params) || params.length === 0) {
1451
- throw new ProviderRpcError(
1452
- ErrorCode.INVALID_PARAMS,
1657
+ throw new ProviderRpcError2(
1658
+ ErrorCode2.INVALID_PARAMS,
1453
1659
  "Invalid transaction params"
1454
1660
  );
1455
1661
  }
@@ -1509,15 +1715,15 @@ var AbcEvmProvider = class extends EventEmitter {
1509
1715
  async personal_sign(params) {
1510
1716
  if (!this.wallet) {
1511
1717
  console.error("[AbcProvider] \u274C Wallet not connected");
1512
- throw new ProviderRpcError(
1513
- ErrorCode.UNAUTHORIZED,
1718
+ throw new ProviderRpcError2(
1719
+ ErrorCode2.UNAUTHORIZED,
1514
1720
  "Wallet not connected"
1515
1721
  );
1516
1722
  }
1517
1723
  if (!Array.isArray(params) || params.length < 2) {
1518
1724
  console.error("[AbcProvider] \u274C Invalid params:", params);
1519
- throw new ProviderRpcError(
1520
- ErrorCode.INVALID_PARAMS,
1725
+ throw new ProviderRpcError2(
1726
+ ErrorCode2.INVALID_PARAMS,
1521
1727
  "Invalid personal_sign params"
1522
1728
  );
1523
1729
  }
@@ -1525,8 +1731,8 @@ var AbcEvmProvider = class extends EventEmitter {
1525
1731
  const [message, address] = params;
1526
1732
  if (address.toLowerCase() !== this.wallet.address.toLowerCase()) {
1527
1733
  console.error("[AbcProvider] \u274C Address mismatch");
1528
- throw new ProviderRpcError(
1529
- ErrorCode.INVALID_PARAMS,
1734
+ throw new ProviderRpcError2(
1735
+ ErrorCode2.INVALID_PARAMS,
1530
1736
  "Address does not match connected wallet"
1531
1737
  );
1532
1738
  }
@@ -1550,8 +1756,8 @@ var AbcEvmProvider = class extends EventEmitter {
1550
1756
  */
1551
1757
  async eth_sign(params) {
1552
1758
  if (!Array.isArray(params) || params.length < 2) {
1553
- throw new ProviderRpcError(
1554
- ErrorCode.INVALID_PARAMS,
1759
+ throw new ProviderRpcError2(
1760
+ ErrorCode2.INVALID_PARAMS,
1555
1761
  "Invalid eth_sign params"
1556
1762
  );
1557
1763
  }
@@ -1563,22 +1769,22 @@ var AbcEvmProvider = class extends EventEmitter {
1563
1769
  */
1564
1770
  async eth_signTypedData(params) {
1565
1771
  if (!this.wallet) {
1566
- throw new ProviderRpcError(
1567
- ErrorCode.UNAUTHORIZED,
1772
+ throw new ProviderRpcError2(
1773
+ ErrorCode2.UNAUTHORIZED,
1568
1774
  "Wallet not connected"
1569
1775
  );
1570
1776
  }
1571
1777
  if (!Array.isArray(params) || params.length < 2) {
1572
- throw new ProviderRpcError(
1573
- ErrorCode.INVALID_PARAMS,
1778
+ throw new ProviderRpcError2(
1779
+ ErrorCode2.INVALID_PARAMS,
1574
1780
  "Invalid signTypedData params"
1575
1781
  );
1576
1782
  }
1577
1783
  await this.callInterceptor("eth_signTypedData_v4", params);
1578
1784
  const [address, typedData] = params;
1579
1785
  if (address.toLowerCase() !== this.wallet.address.toLowerCase()) {
1580
- throw new ProviderRpcError(
1581
- ErrorCode.INVALID_PARAMS,
1786
+ throw new ProviderRpcError2(
1787
+ ErrorCode2.INVALID_PARAMS,
1582
1788
  "Address does not match connected wallet"
1583
1789
  );
1584
1790
  }
@@ -1615,27 +1821,27 @@ var AbcEvmProvider = class extends EventEmitter {
1615
1821
  */
1616
1822
  async eth_signAuthorization(params) {
1617
1823
  if (!this.wallet) {
1618
- throw new ProviderRpcError(
1619
- ErrorCode.UNAUTHORIZED,
1824
+ throw new ProviderRpcError2(
1825
+ ErrorCode2.UNAUTHORIZED,
1620
1826
  "Wallet not connected"
1621
1827
  );
1622
1828
  }
1623
1829
  if (!Array.isArray(params) || params.length < 2) {
1624
- throw new ProviderRpcError(
1625
- ErrorCode.INVALID_PARAMS,
1830
+ throw new ProviderRpcError2(
1831
+ ErrorCode2.INVALID_PARAMS,
1626
1832
  "Invalid signAuthorization params"
1627
1833
  );
1628
1834
  }
1629
1835
  const [address, authorization] = params;
1630
1836
  if (address.toLowerCase() !== this.wallet.address.toLowerCase()) {
1631
- throw new ProviderRpcError(
1632
- ErrorCode.INVALID_PARAMS,
1837
+ throw new ProviderRpcError2(
1838
+ ErrorCode2.INVALID_PARAMS,
1633
1839
  "Address does not match connected wallet"
1634
1840
  );
1635
1841
  }
1636
1842
  if (!authorization?.address || authorization.chainId == null || authorization.nonce == null) {
1637
- throw new ProviderRpcError(
1638
- ErrorCode.INVALID_PARAMS,
1843
+ throw new ProviderRpcError2(
1844
+ ErrorCode2.INVALID_PARAMS,
1639
1845
  "Authorization payload is incomplete"
1640
1846
  );
1641
1847
  }
@@ -1666,8 +1872,8 @@ var AbcEvmProvider = class extends EventEmitter {
1666
1872
  */
1667
1873
  async wallet_switchEthereumChain(params) {
1668
1874
  if (!Array.isArray(params) || params.length === 0) {
1669
- throw new ProviderRpcError(
1670
- ErrorCode.INVALID_PARAMS,
1875
+ throw new ProviderRpcError2(
1876
+ ErrorCode2.INVALID_PARAMS,
1671
1877
  "Invalid switchEthereumChain params"
1672
1878
  );
1673
1879
  }
@@ -1696,8 +1902,8 @@ var AbcEvmProvider = class extends EventEmitter {
1696
1902
  async eth_getTransactionCount(params) {
1697
1903
  const address = params[0]?.toLowerCase();
1698
1904
  if (!address) {
1699
- throw new ProviderRpcError(
1700
- ErrorCode.INVALID_PARAMS,
1905
+ throw new ProviderRpcError2(
1906
+ ErrorCode2.INVALID_PARAMS,
1701
1907
  "Missing address parameter"
1702
1908
  );
1703
1909
  }
@@ -1718,8 +1924,8 @@ var AbcEvmProvider = class extends EventEmitter {
1718
1924
  "[AbcEvmProvider] \u274C Failed to get transaction count from ABC WaaS:",
1719
1925
  error
1720
1926
  );
1721
- throw new ProviderRpcError(
1722
- ErrorCode.INTERNAL_ERROR,
1927
+ throw new ProviderRpcError2(
1928
+ ErrorCode2.INTERNAL_ERROR,
1723
1929
  `Failed to get transaction count: ${error instanceof Error ? error.message : String(error)}`
1724
1930
  );
1725
1931
  }
@@ -1730,15 +1936,15 @@ var AbcEvmProvider = class extends EventEmitter {
1730
1936
  */
1731
1937
  async eth_estimateGas(params) {
1732
1938
  if (!Array.isArray(params) || params.length === 0) {
1733
- throw new ProviderRpcError(
1734
- ErrorCode.INVALID_PARAMS,
1939
+ throw new ProviderRpcError2(
1940
+ ErrorCode2.INVALID_PARAMS,
1735
1941
  "Invalid estimateGas params"
1736
1942
  );
1737
1943
  }
1738
1944
  const tx = params[0];
1739
1945
  if (!tx.to) {
1740
- throw new ProviderRpcError(
1741
- ErrorCode.INVALID_PARAMS,
1946
+ throw new ProviderRpcError2(
1947
+ ErrorCode2.INVALID_PARAMS,
1742
1948
  'Transaction must have "to" field'
1743
1949
  );
1744
1950
  }
@@ -2722,7 +2928,11 @@ function abcConnector(options) {
2722
2928
  defaultChainId: config.defaultChainId
2723
2929
  });
2724
2930
  setTalkenApiClient(talkenApi);
2725
- const provider = createAbcEvmProvider(talkenApi);
2931
+ const isAccessKeyMode = !!config.accessKey;
2932
+ const provider = isAccessKeyMode ? new AbcAccessKeyProvider(
2933
+ config.accessKey,
2934
+ resolveTalkenApiUrl(config.talkenApiUrl)
2935
+ ) : createAbcEvmProvider(talkenApi);
2726
2936
  let accountsChangedHandler;
2727
2937
  let chainChangedHandler;
2728
2938
  let disconnectHandler;
@@ -2866,6 +3076,9 @@ function abcConnector(options) {
2866
3076
  */
2867
3077
  async isAuthorized() {
2868
3078
  try {
3079
+ if (isAccessKeyMode && provider.isConnected()) {
3080
+ return true;
3081
+ }
2869
3082
  const authState = loadAuthState();
2870
3083
  if (!authState || !authState.isAuthenticated) {
2871
3084
  return false;
@@ -2976,6 +3189,7 @@ var abcWallet = (specificOptions) => ({ projectId }) => {
2976
3189
  debug: specificOptions?.environment === "development"
2977
3190
  });
2978
3191
  setTalkenApiClient2(talkenApi);
3192
+ const accessKey = specificOptions?.accessKey || (typeof localStorage !== "undefined" ? localStorage.getItem("talken_ak") : null) || null;
2979
3193
  const config = {
2980
3194
  talkenApiUrl,
2981
3195
  apiKey: specificOptions?.apiKey,
@@ -2985,7 +3199,8 @@ var abcWallet = (specificOptions) => ({ projectId }) => {
2985
3199
  defaultChainId: specificOptions?.defaultChainId,
2986
3200
  defaultSolanaNetwork: specificOptions?.defaultSolanaNetwork,
2987
3201
  defaultBitcoinNetwork: specificOptions?.defaultBitcoinNetwork,
2988
- projectId
3202
+ projectId,
3203
+ ...accessKey && { accessKey }
2989
3204
  };
2990
3205
  return {
2991
3206
  id: ABC_WALLET_METADATA.id,
@@ -2998,6 +3213,7 @@ var abcWallet = (specificOptions) => ({ projectId }) => {
2998
3213
  // No download URLs for embedded wallet
2999
3214
  downloadUrls: void 0,
3000
3215
  // Create connector - wrapper function required by Wallet type
3216
+ // If accessKey exists, abcConnector will use AbcAccessKeyProvider internally
3001
3217
  createConnector: (_walletDetails) => abcConnector({ config }),
3002
3218
  // Embedded wallet always available
3003
3219
  hidden: () => false
@@ -3527,7 +3743,7 @@ import { getTalkenApiClient as getTalkenApiClient10 } from "@talken/talkenkit";
3527
3743
  function isTalkenApiClient(client) {
3528
3744
  return typeof client?.bitcoin?.getUtxos === "function";
3529
3745
  }
3530
- var EventEmitter2 = class {
3746
+ var EventEmitter3 = class {
3531
3747
  constructor() {
3532
3748
  this.events = /* @__PURE__ */ new Map();
3533
3749
  }
@@ -3600,7 +3816,7 @@ var BITCOIN_NETWORKS = {
3600
3816
  explorer: "https://blockstream.info/testnet"
3601
3817
  }
3602
3818
  };
3603
- var AbcBitcoinProvider = class extends EventEmitter2 {
3819
+ var AbcBitcoinProvider = class extends EventEmitter3 {
3604
3820
  constructor(client) {
3605
3821
  super();
3606
3822
  this.wallet = null;
@@ -4391,7 +4607,7 @@ function createSolanaApi() {
4391
4607
  }
4392
4608
 
4393
4609
  // src/wallets/walletConnectors/abcWallet/abcSolanaProvider.ts
4394
- var EventEmitter3 = class {
4610
+ var EventEmitter4 = class {
4395
4611
  constructor() {
4396
4612
  this.events = /* @__PURE__ */ new Map();
4397
4613
  }
@@ -4450,7 +4666,7 @@ var SolanaProviderError = class extends Error {
4450
4666
  this.name = "SolanaProviderError";
4451
4667
  }
4452
4668
  };
4453
- var AbcSolanaProvider = class extends EventEmitter3 {
4669
+ var AbcSolanaProvider = class extends EventEmitter4 {
4454
4670
  constructor(talkenApi) {
4455
4671
  super();
4456
4672
  this.wallet = null;
@@ -4851,7 +5067,7 @@ var TRON_NETWORKS = {
4851
5067
  explorer: "https://nile.tronscan.org"
4852
5068
  }
4853
5069
  };
4854
- var EventEmitter4 = class {
5070
+ var EventEmitter5 = class {
4855
5071
  constructor() {
4856
5072
  this.events = /* @__PURE__ */ new Map();
4857
5073
  }
@@ -4891,7 +5107,7 @@ var EventEmitter4 = class {
4891
5107
  return this;
4892
5108
  }
4893
5109
  };
4894
- var AbcTronProvider = class extends EventEmitter4 {
5110
+ var AbcTronProvider = class extends EventEmitter5 {
4895
5111
  constructor(client) {
4896
5112
  super();
4897
5113
  this.wallet = null;
package/dist/index.js CHANGED
@@ -53,7 +53,7 @@ import {
53
53
  networkToChainId,
54
54
  resolveTalkenApiUrl,
55
55
  setTalkenApiClient
56
- } from "./chunk-MI7TNBED.js";
56
+ } from "./chunk-REVMSQIO.js";
57
57
  import {
58
58
  STORAGE_PREFIX,
59
59
  getCredentialManager
@@ -158,7 +158,7 @@ function useBitcoinWallet() {
158
158
  wallet: bitcoinWallet,
159
159
  emptyState: emptyWalletState,
160
160
  requestInterceptor,
161
- importProvider: async () => (await import("./abcWallet-TLGPQAMU.js")).AbcBitcoinProvider,
161
+ importProvider: async () => (await import("./abcWallet-5GTT47V6.js")).AbcBitcoinProvider,
162
162
  mapState: (nextWallet, provider) => ({
163
163
  address: nextWallet.address,
164
164
  publicKey: nextWallet.publicKey,
@@ -1329,7 +1329,7 @@ function useSolanaWallet() {
1329
1329
  wallet: solanaWallet,
1330
1330
  emptyState: emptyWalletState,
1331
1331
  requestInterceptor,
1332
- importProvider: async () => (await import("./abcWallet-TLGPQAMU.js")).AbcSolanaProvider,
1332
+ importProvider: async () => (await import("./abcWallet-5GTT47V6.js")).AbcSolanaProvider,
1333
1333
  mapState: (nextWallet, provider) => ({
1334
1334
  address: nextWallet.address,
1335
1335
  publicKey: nextWallet.publicKey,
@@ -8038,7 +8038,7 @@ function setRainbowKitVersion({ version }) {
8038
8038
  }
8039
8039
  function useFingerprint() {
8040
8040
  const fingerprint = useCallback14(() => {
8041
- setRainbowKitVersion({ version: "2.4.30" });
8041
+ setRainbowKitVersion({ version: "2.5.0" });
8042
8042
  }, []);
8043
8043
  useEffect19(() => {
8044
8044
  fingerprint();
@@ -17946,7 +17946,7 @@ function useTronWallet() {
17946
17946
  wallet: tronWallet,
17947
17947
  emptyState: emptyWalletState,
17948
17948
  requestInterceptor,
17949
- importProvider: async () => (await import("./abcWallet-TLGPQAMU.js")).AbcTronProvider,
17949
+ importProvider: async () => (await import("./abcWallet-5GTT47V6.js")).AbcTronProvider,
17950
17950
  mapState: (nextWallet, provider) => ({
17951
17951
  address: nextWallet.address,
17952
17952
  publicKey: nextWallet.publicKey,