@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.
- package/dist/{abcWallet-TLGPQAMU.js → abcWallet-5GTT47V6.js} +1 -1
- package/dist/{chunk-MI7TNBED.js → chunk-REVMSQIO.js} +287 -71
- package/dist/index.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/abcAccessKeyProvider.d.ts +43 -0
- package/dist/wallets/walletConnectors/abcWallet/abcAccessKeyProvider.js +11 -0
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +4 -2
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +2 -1
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.d.ts +7 -0
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +5 -3
- package/dist/wallets/walletConnectors/abcWallet/api/index.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/index.js +8 -6
- package/dist/wallets/walletConnectors/abcWallet/types.d.ts +2 -0
- package/dist/wallets/walletConnectors/{chunk-HHZ3JZRH.js → chunk-HWXOTEC3.js} +12 -2
- package/dist/wallets/walletConnectors/chunk-K66HU6GX.js +732 -0
- package/dist/wallets/walletConnectors/{chunk-XNA5NIFE.js → chunk-QSP2A4LA.js} +5 -2
- package/dist/wallets/walletConnectors/chunk-S2SQYPGR.js +220 -0
- package/dist/wallets/walletConnectors/{chunk-NU3ITJNK.js → chunk-TQHS6APN.js} +7 -731
- package/dist/wallets/walletConnectors/index.js +31 -29
- package/package.json +1 -1
- package/dist/wallets/walletConnectors/chunk-CABLJOMU.js +0 -194
- package/dist/wallets/walletConnectors/chunk-J3YPHDHM.js +0 -827
- package/dist/wallets/walletConnectors/chunk-J566FC7T.js +0 -54
- package/dist/wallets/walletConnectors/chunk-OHQXPSR6.js +0 -300
- package/dist/wallets/walletConnectors/chunk-OMOYFHBT.js +0 -1485
|
@@ -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/
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
1178
|
-
|
|
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
|
|
1220
|
-
|
|
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
|
|
1309
|
-
|
|
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
|
|
1314
|
-
|
|
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
|
|
1325
|
-
|
|
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
|
|
1352
|
-
|
|
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
|
|
1358
|
-
|
|
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
|
|
1410
|
-
|
|
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
|
|
1417
|
-
|
|
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
|
|
1446
|
-
|
|
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
|
|
1452
|
-
|
|
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
|
|
1513
|
-
|
|
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
|
|
1520
|
-
|
|
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
|
|
1529
|
-
|
|
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
|
|
1554
|
-
|
|
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
|
|
1567
|
-
|
|
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
|
|
1573
|
-
|
|
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
|
|
1581
|
-
|
|
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
|
|
1619
|
-
|
|
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
|
|
1625
|
-
|
|
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
|
|
1632
|
-
|
|
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
|
|
1638
|
-
|
|
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
|
|
1670
|
-
|
|
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
|
|
1700
|
-
|
|
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
|
|
1722
|
-
|
|
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
|
|
1734
|
-
|
|
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
|
|
1741
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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-
|
|
17949
|
+
importProvider: async () => (await import("./abcWallet-5GTT47V6.js")).AbcTronProvider,
|
|
17950
17950
|
mapState: (nextWallet, provider) => ({
|
|
17951
17951
|
address: nextWallet.address,
|
|
17952
17952
|
publicKey: nextWallet.publicKey,
|