@talken/talkenkit 2.4.12 → 2.4.14
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-25AKGPRG.js +184 -0
- package/dist/abcWallet-2SXWQ2M6.js +184 -0
- package/dist/abcWallet-3E6Y5QS4.js +184 -0
- package/dist/abcWallet-3HKYSDOS.js +184 -0
- package/dist/abcWallet-4Y7KXZBE.js +184 -0
- package/dist/abcWallet-6VIUP4H3.js +184 -0
- package/dist/abcWallet-7CXDTXHX.js +184 -0
- package/dist/abcWallet-A3PX6AEW.js +184 -0
- package/dist/abcWallet-A6CRIFP2.js +184 -0
- package/dist/abcWallet-ACAOT2F3.js +184 -0
- package/dist/abcWallet-AWALYVJ7.js +184 -0
- package/dist/abcWallet-CEW3E2AX.js +184 -0
- package/dist/abcWallet-CEZAQ3ES.js +184 -0
- package/dist/abcWallet-CURD64AW.js +184 -0
- package/dist/abcWallet-E2A433S3.js +184 -0
- package/dist/abcWallet-ER37COEQ.js +184 -0
- package/dist/abcWallet-ETWMKZKD.js +184 -0
- package/dist/abcWallet-F6JAVHHQ.js +184 -0
- package/dist/abcWallet-GEHOIOZN.js +184 -0
- package/dist/abcWallet-H22OANDE.js +184 -0
- package/dist/abcWallet-H5BBPLGS.js +184 -0
- package/dist/abcWallet-I5BENZSH.js +184 -0
- package/dist/abcWallet-KPGRZYCP.js +184 -0
- package/dist/abcWallet-LABFRLNR.js +184 -0
- package/dist/abcWallet-MB2IAXV5.js +184 -0
- package/dist/abcWallet-MH6OGFBO.js +184 -0
- package/dist/abcWallet-NJGYOH52.js +184 -0
- package/dist/abcWallet-NTVWBYWF.js +184 -0
- package/dist/abcWallet-OG6ZQORS.js +184 -0
- package/dist/abcWallet-OJ7VCWHZ.js +184 -0
- package/dist/abcWallet-PBEQA5UT.js +184 -0
- package/dist/abcWallet-PMJEDGRW.js +184 -0
- package/dist/abcWallet-S7EO644R.js +184 -0
- package/dist/abcWallet-SX35BIXB.js +184 -0
- package/dist/abcWallet-TQTXUPJZ.js +184 -0
- package/dist/abcWallet-VKVKBQYN.js +184 -0
- package/dist/abcWallet-W6OZE7QD.js +184 -0
- package/dist/abcWallet-WH2J2YAV.js +184 -0
- package/dist/abcWallet-XA5DX7XK.js +184 -0
- package/dist/abcWallet-XANCTLMU.js +184 -0
- package/dist/abcWallet-XDP764EW.js +184 -0
- package/dist/abcWallet-Y3DONK5H.js +184 -0
- package/dist/abcWallet-YLBGJ5K6.js +184 -0
- package/dist/abcWallet-ZSL4HH7M.js +184 -0
- package/dist/chunk-2D6TXDN2.js +7450 -0
- package/dist/chunk-3K7INMEV.js +7470 -0
- package/dist/chunk-5FE4YAGR.js +7423 -0
- package/dist/chunk-5LD4QGWP.js +7423 -0
- package/dist/chunk-64RMUCRE.js +7447 -0
- package/dist/chunk-6KTOC6CY.js +7464 -0
- package/dist/chunk-6QW7GFF5.js +7450 -0
- package/dist/chunk-6RCVLZFG.js +7462 -0
- package/dist/chunk-7Y3M3LG3.js +7446 -0
- package/dist/chunk-A3EBU637.js +7441 -0
- package/dist/chunk-BVBWXZCX.js +7450 -0
- package/dist/chunk-CAXCHVY2.js +7469 -0
- package/dist/chunk-CBJW7X7O.js +7382 -0
- package/dist/chunk-CD36XA5S.js +7417 -0
- package/dist/chunk-EAKUQPJO.js +7463 -0
- package/dist/chunk-ER7H33CO.js +7450 -0
- package/dist/chunk-FCENPWP5.js +7452 -0
- package/dist/chunk-FPMB7NJE.js +7366 -0
- package/dist/chunk-GG57EUYL.js +7132 -0
- package/dist/chunk-GWIJVQBX.js +7420 -0
- package/dist/chunk-HGOFSTGT.js +7474 -0
- package/dist/chunk-JJ4CTD2J.js +7428 -0
- package/dist/chunk-JMBGLDYV.js +7368 -0
- package/dist/chunk-KBMHNBKL.js +7449 -0
- package/dist/chunk-KZRFIJW2.js +7452 -0
- package/dist/chunk-L6TCA4IF.js +7378 -0
- package/dist/chunk-LTRXFRER.js +7472 -0
- package/dist/chunk-MLJXZ6R2.js +7130 -0
- package/dist/chunk-MRLTYAPE.js +7451 -0
- package/dist/chunk-N3QOWEYR.js +7393 -0
- package/dist/chunk-NII34OZB.js +7442 -0
- package/dist/chunk-NWF5NI55.js +7130 -0
- package/dist/chunk-OAHLI7TU.js +7368 -0
- package/dist/chunk-RFJBWB7F.js +7467 -0
- package/dist/chunk-SBRDMKB6.js +7408 -0
- package/dist/chunk-SDRSLETV.js +7428 -0
- package/dist/chunk-SWO7BZQD.js +7463 -0
- package/dist/chunk-TR4Q6WOC.js +7427 -0
- package/dist/chunk-UBBAWTXE.js +7370 -0
- package/dist/chunk-VEOSJOVN.js +7377 -0
- package/dist/chunk-VGF34W25.js +7370 -0
- package/dist/chunk-VXSGQUAL.js +7458 -0
- package/dist/chunk-Z3FKXPV6.js +7430 -0
- package/dist/chunk-ZRBHEE5W.js +7130 -0
- package/dist/hooks/useSolanaWallet.d.ts +33 -1
- package/dist/index.css +24 -24
- package/dist/index.js +1837 -1570
- package/dist/wallets/walletConnectors/abcWallet/abcApi.d.ts +8 -0
- package/dist/wallets/walletConnectors/abcWallet/abcApi.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +4 -0
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +52 -4
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +2 -2
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.d.ts +52 -1
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/api/index.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/index.js +8 -8
- package/dist/wallets/walletConnectors/abcWallet/types.d.ts +2 -2
- package/dist/wallets/walletConnectors/chunk-2FUWP3CE.js +330 -0
- package/dist/wallets/walletConnectors/chunk-2HZI5GNW.js +422 -0
- package/dist/wallets/walletConnectors/chunk-2KHZAE46.js +47 -0
- package/dist/wallets/walletConnectors/chunk-2NHQTZGS.js +276 -0
- package/dist/wallets/walletConnectors/chunk-2OTYM5YW.js +461 -0
- package/dist/wallets/walletConnectors/chunk-2PVZZB7V.js +179 -0
- package/dist/wallets/walletConnectors/chunk-2SKUK3XZ.js +336 -0
- package/dist/wallets/walletConnectors/chunk-2THGB26Q.js +483 -0
- package/dist/wallets/walletConnectors/chunk-353AHAZG.js +420 -0
- package/dist/wallets/walletConnectors/chunk-3AV4L2Z3.js +63 -0
- package/dist/wallets/walletConnectors/chunk-3DMYAF74.js +495 -0
- package/dist/wallets/walletConnectors/chunk-3EVUNPYA.js +63 -0
- package/dist/wallets/walletConnectors/chunk-45FLFWVV.js +473 -0
- package/dist/wallets/walletConnectors/chunk-4JRATGCT.js +484 -0
- package/dist/wallets/walletConnectors/chunk-4Q7XTNTE.js +63 -0
- package/dist/wallets/walletConnectors/chunk-4SCX34NL.js +276 -0
- package/dist/wallets/walletConnectors/chunk-5AL2CK6V.js +336 -0
- package/dist/wallets/walletConnectors/chunk-5FSXV7UD.js +63 -0
- package/dist/wallets/walletConnectors/chunk-5JHX6GDO.js +63 -0
- package/dist/wallets/walletConnectors/chunk-5QGNWYOO.js +63 -0
- package/dist/wallets/walletConnectors/chunk-6I7AIIUA.js +330 -0
- package/dist/wallets/walletConnectors/chunk-A2AVZXFM.js +467 -0
- package/dist/wallets/walletConnectors/chunk-AB6IIS4Y.js +359 -0
- package/dist/wallets/walletConnectors/chunk-AB6NV5DJ.js +469 -0
- package/dist/wallets/walletConnectors/chunk-AYAW5CRA.js +459 -0
- package/dist/wallets/walletConnectors/chunk-B6GPEHW7.js +47 -0
- package/dist/wallets/walletConnectors/chunk-BCO6YLPB.js +505 -0
- package/dist/wallets/walletConnectors/chunk-BK65Y46D.js +494 -0
- package/dist/wallets/walletConnectors/chunk-BKJVG4GQ.js +463 -0
- package/dist/wallets/walletConnectors/chunk-BWVC6F6J.js +467 -0
- package/dist/wallets/walletConnectors/chunk-CZ7WCJW5.js +63 -0
- package/dist/wallets/walletConnectors/chunk-D3USECVX.js +333 -0
- package/dist/wallets/walletConnectors/chunk-DCBHTSF2.js +63 -0
- package/dist/wallets/walletConnectors/chunk-DNSC37SU.js +47 -0
- package/dist/wallets/walletConnectors/chunk-DSTCYPGN.js +314 -0
- package/dist/wallets/walletConnectors/chunk-DWPUUKA4.js +63 -0
- package/dist/wallets/walletConnectors/chunk-E33VQYPO.js +302 -0
- package/dist/wallets/walletConnectors/chunk-EBBETASF.js +424 -0
- package/dist/wallets/walletConnectors/chunk-EN5R4RRF.js +47 -0
- package/dist/wallets/walletConnectors/chunk-FCRLSDVW.js +513 -0
- package/dist/wallets/walletConnectors/chunk-FLCBPO5T.js +276 -0
- package/dist/wallets/walletConnectors/chunk-GMEXP6OH.js +314 -0
- package/dist/wallets/walletConnectors/chunk-HB7QT3ZB.js +332 -0
- package/dist/wallets/walletConnectors/chunk-HDXQ7BO6.js +314 -0
- package/dist/wallets/walletConnectors/chunk-HIRSPIIU.js +1760 -0
- package/dist/wallets/walletConnectors/chunk-HQQESMZJ.js +299 -0
- package/dist/wallets/walletConnectors/chunk-HWWFK52B.js +63 -0
- package/dist/wallets/walletConnectors/chunk-HYADQWNX.js +47 -0
- package/dist/wallets/walletConnectors/chunk-I56RJQOO.js +63 -0
- package/dist/wallets/walletConnectors/chunk-JKDAQWPW.js +47 -0
- package/dist/wallets/walletConnectors/chunk-JY4WWUAC.js +503 -0
- package/dist/wallets/walletConnectors/chunk-K42FR6F7.js +513 -0
- package/dist/wallets/walletConnectors/chunk-K7WCM7JL.js +513 -0
- package/dist/wallets/walletConnectors/chunk-KIKTI2QW.js +313 -0
- package/dist/wallets/walletConnectors/chunk-KPXEV65I.js +481 -0
- package/dist/wallets/walletConnectors/chunk-KXRUCXYG.js +63 -0
- package/dist/wallets/walletConnectors/chunk-L2ICV2P2.js +276 -0
- package/dist/wallets/walletConnectors/chunk-L3ZUQ2FT.js +494 -0
- package/dist/wallets/walletConnectors/chunk-LKM4HFVX.js +63 -0
- package/dist/wallets/walletConnectors/chunk-LKSMH5O4.js +63 -0
- package/dist/wallets/walletConnectors/chunk-MOQSXFIP.js +47 -0
- package/dist/wallets/walletConnectors/chunk-MSK4NN2E.js +47 -0
- package/dist/wallets/walletConnectors/chunk-NSAHMWXK.js +468 -0
- package/dist/wallets/walletConnectors/chunk-NY3HZ7C7.js +428 -0
- package/dist/wallets/walletConnectors/chunk-OA6D52JF.js +303 -0
- package/dist/wallets/walletConnectors/chunk-OSJ2GO4U.js +63 -0
- package/dist/wallets/walletConnectors/chunk-OYDALF2T.js +63 -0
- package/dist/wallets/walletConnectors/chunk-P5CZ24LM.js +312 -0
- package/dist/wallets/walletConnectors/chunk-PE6CXY5F.js +513 -0
- package/dist/wallets/walletConnectors/chunk-PER2ACFG.js +443 -0
- package/dist/wallets/walletConnectors/chunk-PGPH245S.js +63 -0
- package/dist/wallets/walletConnectors/chunk-PNE3IGZM.js +63 -0
- package/dist/wallets/walletConnectors/chunk-PQDQUIIL.js +276 -0
- package/dist/wallets/walletConnectors/chunk-Q2WYW3LQ.js +63 -0
- package/dist/wallets/walletConnectors/chunk-Q3KCTIZB.js +458 -0
- package/dist/wallets/walletConnectors/chunk-Q3W2LKFS.js +498 -0
- package/dist/wallets/walletConnectors/chunk-QAD7DCJI.js +473 -0
- package/dist/wallets/walletConnectors/chunk-QG6HVKA7.js +458 -0
- package/dist/wallets/walletConnectors/chunk-QHCY3K35.js +466 -0
- package/dist/wallets/walletConnectors/chunk-QHRV2IC7.js +63 -0
- package/dist/wallets/walletConnectors/chunk-QOZL4BMA.js +513 -0
- package/dist/wallets/walletConnectors/chunk-QWEA3UTQ.js +313 -0
- package/dist/wallets/walletConnectors/chunk-QYUVI6LM.js +500 -0
- package/dist/wallets/walletConnectors/chunk-RFNPDZJ5.js +299 -0
- package/dist/wallets/walletConnectors/chunk-RWJX5CRR.js +276 -0
- package/dist/wallets/walletConnectors/chunk-S6LSALLS.js +47 -0
- package/dist/wallets/walletConnectors/chunk-SUBWGTWM.js +459 -0
- package/dist/wallets/walletConnectors/chunk-TASM5LUN.js +276 -0
- package/dist/wallets/walletConnectors/chunk-U4DSASHD.js +63 -0
- package/dist/wallets/walletConnectors/chunk-UCKLTSEQ.js +467 -0
- package/dist/wallets/walletConnectors/chunk-UWC6AXPI.js +63 -0
- package/dist/wallets/walletConnectors/chunk-UX4IUIRD.js +515 -0
- package/dist/wallets/walletConnectors/chunk-V5LV4P2L.js +63 -0
- package/dist/wallets/walletConnectors/chunk-VP6SWGCN.js +63 -0
- package/dist/wallets/walletConnectors/chunk-W4MD4LZF.js +464 -0
- package/dist/wallets/walletConnectors/chunk-WCHG2Q2N.js +276 -0
- package/dist/wallets/walletConnectors/chunk-XHNXMXXX.js +493 -0
- package/dist/wallets/walletConnectors/chunk-XHOWI6QG.js +399 -0
- package/dist/wallets/walletConnectors/chunk-XKNVF62K.js +276 -0
- package/dist/wallets/walletConnectors/chunk-YDCQB2MV.js +309 -0
- package/dist/wallets/walletConnectors/chunk-Z2IWGNDA.js +515 -0
- package/dist/wallets/walletConnectors/chunk-Z34L5C76.js +1760 -0
- package/dist/wallets/walletConnectors/chunk-Z4LE4R6P.js +63 -0
- package/dist/wallets/walletConnectors/chunk-ZE3USY6D.js +156 -0
- package/dist/wallets/walletConnectors/chunk-ZHHPZPSF.js +489 -0
- package/dist/wallets/walletConnectors/chunk-ZOJTTG4G.js +63 -0
- package/dist/wallets/walletConnectors/index.js +46 -46
- package/package.json +2 -1
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
hexToNumber,
|
|
4
|
+
numberToHex
|
|
5
|
+
} from "./chunk-TYUEB4VT.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_estimateGas":
|
|
154
|
+
return this.eth_estimateGas(params);
|
|
155
|
+
case "eth_getTransactionCount":
|
|
156
|
+
return this.eth_getTransactionCount(
|
|
157
|
+
Array.isArray(params) ? params : []
|
|
158
|
+
);
|
|
159
|
+
case "eth_blockNumber":
|
|
160
|
+
case "eth_call":
|
|
161
|
+
case "eth_gasPrice":
|
|
162
|
+
case "eth_getBalance":
|
|
163
|
+
case "eth_getBlockByHash":
|
|
164
|
+
case "eth_getBlockByNumber":
|
|
165
|
+
case "eth_getCode":
|
|
166
|
+
case "eth_getStorageAt":
|
|
167
|
+
case "eth_getTransactionByHash":
|
|
168
|
+
case "eth_getTransactionReceipt":
|
|
169
|
+
throw new ProviderRpcError(
|
|
170
|
+
ErrorCode.UNSUPPORTED_METHOD,
|
|
171
|
+
`Method ${method} should be handled by RPC provider`
|
|
172
|
+
);
|
|
173
|
+
default:
|
|
174
|
+
throw new ProviderRpcError(
|
|
175
|
+
ErrorCode.UNSUPPORTED_METHOD,
|
|
176
|
+
`Method ${method} not supported`
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Request accounts (EIP-1193)
|
|
182
|
+
*/
|
|
183
|
+
async eth_requestAccounts() {
|
|
184
|
+
if (!this.wallet) {
|
|
185
|
+
throw new ProviderRpcError(
|
|
186
|
+
ErrorCode.UNAUTHORIZED,
|
|
187
|
+
"Wallet not connected"
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
return [this.wallet.address];
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get accounts
|
|
194
|
+
*/
|
|
195
|
+
async eth_accounts() {
|
|
196
|
+
if (!this.wallet) {
|
|
197
|
+
return [];
|
|
198
|
+
}
|
|
199
|
+
return [this.wallet.address];
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get chain ID
|
|
203
|
+
*/
|
|
204
|
+
async eth_chainId() {
|
|
205
|
+
return numberToHex(this.chainId);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Send transaction
|
|
209
|
+
*/
|
|
210
|
+
async eth_sendTransaction(params) {
|
|
211
|
+
if (!this.wallet) {
|
|
212
|
+
throw new ProviderRpcError(
|
|
213
|
+
ErrorCode.UNAUTHORIZED,
|
|
214
|
+
"Wallet not connected"
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
if (!Array.isArray(params) || params.length === 0) {
|
|
218
|
+
throw new ProviderRpcError(
|
|
219
|
+
ErrorCode.INVALID_PARAMS,
|
|
220
|
+
"Invalid transaction params"
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
const tx = params[0];
|
|
224
|
+
const isContractDeployment = !tx.to || tx.to === "0x" || tx.to === "0x0" || tx.to === "0x0000000000000000000000000000000000000000";
|
|
225
|
+
if (isContractDeployment) {
|
|
226
|
+
tx.to = "0x";
|
|
227
|
+
} else if (!tx.to) {
|
|
228
|
+
throw new ProviderRpcError(
|
|
229
|
+
ErrorCode.INVALID_PARAMS,
|
|
230
|
+
'Transaction must have "to" field'
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
const pin = await this.requestPin();
|
|
234
|
+
const signParams = {
|
|
235
|
+
chainId: this.chainId,
|
|
236
|
+
transaction: tx,
|
|
237
|
+
keyId: this.wallet.keyId,
|
|
238
|
+
encryptedShare: this.wallet.encryptedShare,
|
|
239
|
+
pin
|
|
240
|
+
};
|
|
241
|
+
const signResult = await this.client.signTransaction(signParams);
|
|
242
|
+
if (!signResult.signature) {
|
|
243
|
+
throw new ProviderRpcError(
|
|
244
|
+
ErrorCode.INTERNAL_ERROR,
|
|
245
|
+
"Failed to get signed transaction from ABC WaaS"
|
|
246
|
+
);
|
|
247
|
+
}
|
|
248
|
+
const sendResult = await this.client.sendRawTransaction(
|
|
249
|
+
this.chainId,
|
|
250
|
+
signResult.signature
|
|
251
|
+
// serializedTx
|
|
252
|
+
);
|
|
253
|
+
return sendResult.txHash;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Sign transaction (without sending)
|
|
257
|
+
*/
|
|
258
|
+
async eth_signTransaction(params) {
|
|
259
|
+
if (!this.wallet) {
|
|
260
|
+
throw new ProviderRpcError(
|
|
261
|
+
ErrorCode.UNAUTHORIZED,
|
|
262
|
+
"Wallet not connected"
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
if (!Array.isArray(params) || params.length === 0) {
|
|
266
|
+
throw new ProviderRpcError(
|
|
267
|
+
ErrorCode.INVALID_PARAMS,
|
|
268
|
+
"Invalid transaction params"
|
|
269
|
+
);
|
|
270
|
+
}
|
|
271
|
+
const tx = params[0];
|
|
272
|
+
const pin = await this.requestPin();
|
|
273
|
+
const signParams = {
|
|
274
|
+
chainId: this.chainId,
|
|
275
|
+
transaction: tx,
|
|
276
|
+
keyId: this.wallet.keyId,
|
|
277
|
+
encryptedShare: this.wallet.encryptedShare,
|
|
278
|
+
pin
|
|
279
|
+
};
|
|
280
|
+
const result = await this.client.signTransaction(signParams);
|
|
281
|
+
return result.signature;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Personal sign (EIP-191)
|
|
285
|
+
*/
|
|
286
|
+
async personal_sign(params) {
|
|
287
|
+
if (!this.wallet) {
|
|
288
|
+
console.error("[AbcProvider] \u274C Wallet not connected");
|
|
289
|
+
throw new ProviderRpcError(
|
|
290
|
+
ErrorCode.UNAUTHORIZED,
|
|
291
|
+
"Wallet not connected"
|
|
292
|
+
);
|
|
293
|
+
}
|
|
294
|
+
if (!Array.isArray(params) || params.length < 2) {
|
|
295
|
+
console.error("[AbcProvider] \u274C Invalid params:", params);
|
|
296
|
+
throw new ProviderRpcError(
|
|
297
|
+
ErrorCode.INVALID_PARAMS,
|
|
298
|
+
"Invalid personal_sign params"
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
const [message, address] = params;
|
|
302
|
+
if (address.toLowerCase() !== this.wallet.address.toLowerCase()) {
|
|
303
|
+
console.error("[AbcProvider] \u274C Address mismatch");
|
|
304
|
+
throw new ProviderRpcError(
|
|
305
|
+
ErrorCode.INVALID_PARAMS,
|
|
306
|
+
"Address does not match connected wallet"
|
|
307
|
+
);
|
|
308
|
+
}
|
|
309
|
+
if (!this.wallet.sid) {
|
|
310
|
+
console.error("[AbcProvider] \u274C Missing sid");
|
|
311
|
+
throw new ProviderRpcError(
|
|
312
|
+
ErrorCode.INTERNAL_ERROR,
|
|
313
|
+
"Wallet session ID (sid) is missing - please reconnect wallet"
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
if (!this.wallet.pvencstr) {
|
|
317
|
+
console.error("[AbcProvider] \u274C Missing pvencstr");
|
|
318
|
+
throw new ProviderRpcError(
|
|
319
|
+
ErrorCode.INTERNAL_ERROR,
|
|
320
|
+
"Wallet pvencstr is missing - please reconnect wallet"
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
if (!this.wallet.wid) {
|
|
324
|
+
console.error("[AbcProvider] \u274C Missing wid");
|
|
325
|
+
throw new ProviderRpcError(
|
|
326
|
+
ErrorCode.INTERNAL_ERROR,
|
|
327
|
+
"Wallet wid is missing - please reconnect wallet"
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
const result = await this.client.signMessage({
|
|
331
|
+
message,
|
|
332
|
+
address: this.wallet.address,
|
|
333
|
+
// ciphertext removed - not needed for message signing
|
|
334
|
+
sid: this.wallet.sid,
|
|
335
|
+
uid: this.wallet.uid,
|
|
336
|
+
pvencstr: this.wallet.pvencstr,
|
|
337
|
+
wid: this.wallet.wid
|
|
338
|
+
});
|
|
339
|
+
return result.signature;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Eth sign
|
|
343
|
+
*/
|
|
344
|
+
async eth_sign(params) {
|
|
345
|
+
if (!Array.isArray(params) || params.length < 2) {
|
|
346
|
+
throw new ProviderRpcError(
|
|
347
|
+
ErrorCode.INVALID_PARAMS,
|
|
348
|
+
"Invalid eth_sign params"
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
const [address, message] = params;
|
|
352
|
+
return this.personal_sign([message, address]);
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Sign typed data (EIP-712)
|
|
356
|
+
*/
|
|
357
|
+
async eth_signTypedData(params) {
|
|
358
|
+
if (!this.wallet) {
|
|
359
|
+
throw new ProviderRpcError(
|
|
360
|
+
ErrorCode.UNAUTHORIZED,
|
|
361
|
+
"Wallet not connected"
|
|
362
|
+
);
|
|
363
|
+
}
|
|
364
|
+
if (!Array.isArray(params) || params.length < 2) {
|
|
365
|
+
throw new ProviderRpcError(
|
|
366
|
+
ErrorCode.INVALID_PARAMS,
|
|
367
|
+
"Invalid signTypedData params"
|
|
368
|
+
);
|
|
369
|
+
}
|
|
370
|
+
const [address, typedData] = params;
|
|
371
|
+
if (address.toLowerCase() !== this.wallet.address.toLowerCase()) {
|
|
372
|
+
throw new ProviderRpcError(
|
|
373
|
+
ErrorCode.INVALID_PARAMS,
|
|
374
|
+
"Address does not match connected wallet"
|
|
375
|
+
);
|
|
376
|
+
}
|
|
377
|
+
const result = await this.client.signTypedData({
|
|
378
|
+
typedData: typeof typedData === "string" ? typedData : JSON.stringify(typedData)
|
|
379
|
+
// ciphertext removed - not needed for typed data signing
|
|
380
|
+
});
|
|
381
|
+
return result.signature;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Switch Ethereum chain
|
|
385
|
+
*/
|
|
386
|
+
async wallet_switchEthereumChain(params) {
|
|
387
|
+
if (!Array.isArray(params) || params.length === 0) {
|
|
388
|
+
throw new ProviderRpcError(
|
|
389
|
+
ErrorCode.INVALID_PARAMS,
|
|
390
|
+
"Invalid switchEthereumChain params"
|
|
391
|
+
);
|
|
392
|
+
}
|
|
393
|
+
const { chainId } = params[0];
|
|
394
|
+
const newChainId = hexToNumber(chainId);
|
|
395
|
+
if (this.chainId === newChainId) {
|
|
396
|
+
return null;
|
|
397
|
+
}
|
|
398
|
+
const _previousChainId = this.chainId;
|
|
399
|
+
this.chainId = newChainId;
|
|
400
|
+
if (this.wallet) {
|
|
401
|
+
this.wallet.chainId = newChainId;
|
|
402
|
+
}
|
|
403
|
+
this.emit("chainChanged", numberToHex(newChainId));
|
|
404
|
+
return null;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Add Ethereum chain
|
|
408
|
+
*/
|
|
409
|
+
async wallet_addEthereumChain(params) {
|
|
410
|
+
return this.wallet_switchEthereumChain(params);
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Get transaction count (nonce) using ABC WaaS API
|
|
414
|
+
*/
|
|
415
|
+
async eth_getTransactionCount(params) {
|
|
416
|
+
console.log("[AbcEvmProvider] \u{1F4CA} Getting transaction count for ABC Wallet");
|
|
417
|
+
const address = params[0]?.toLowerCase();
|
|
418
|
+
if (!address) {
|
|
419
|
+
throw new ProviderRpcError(
|
|
420
|
+
ErrorCode.INVALID_PARAMS,
|
|
421
|
+
"Missing address parameter"
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
const currentChainId = this.chainId;
|
|
425
|
+
console.log("[AbcEvmProvider] Transaction count for:", {
|
|
426
|
+
address,
|
|
427
|
+
chainId: currentChainId
|
|
428
|
+
});
|
|
429
|
+
try {
|
|
430
|
+
const nonce = await this.client.getTransactionCount({
|
|
431
|
+
chainId: currentChainId,
|
|
432
|
+
address
|
|
433
|
+
});
|
|
434
|
+
console.log(
|
|
435
|
+
`[AbcEvmProvider] \u2705 Transaction count from ABC WaaS: ${nonce}`
|
|
436
|
+
);
|
|
437
|
+
return nonce;
|
|
438
|
+
} catch (error) {
|
|
439
|
+
console.error(
|
|
440
|
+
"[AbcEvmProvider] \u274C Failed to get transaction count from ABC WaaS:",
|
|
441
|
+
error
|
|
442
|
+
);
|
|
443
|
+
throw new ProviderRpcError(
|
|
444
|
+
ErrorCode.INTERNAL_ERROR,
|
|
445
|
+
`Failed to get transaction count: ${error instanceof Error ? error.message : String(error)}`
|
|
446
|
+
);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Estimate gas for transaction
|
|
451
|
+
* Uses ABC WaaS gas estimation API with fallback
|
|
452
|
+
*/
|
|
453
|
+
async eth_estimateGas(params) {
|
|
454
|
+
if (!Array.isArray(params) || params.length === 0) {
|
|
455
|
+
throw new ProviderRpcError(
|
|
456
|
+
ErrorCode.INVALID_PARAMS,
|
|
457
|
+
"Invalid estimateGas params"
|
|
458
|
+
);
|
|
459
|
+
}
|
|
460
|
+
const tx = params[0];
|
|
461
|
+
if (!tx.to) {
|
|
462
|
+
throw new ProviderRpcError(
|
|
463
|
+
ErrorCode.INVALID_PARAMS,
|
|
464
|
+
'Transaction must have "to" field'
|
|
465
|
+
);
|
|
466
|
+
}
|
|
467
|
+
try {
|
|
468
|
+
const gasLimit = await this.client.estimateGas({
|
|
469
|
+
chainId: this.chainId,
|
|
470
|
+
from: tx.from || this.wallet?.address,
|
|
471
|
+
to: tx.to,
|
|
472
|
+
value: tx.value,
|
|
473
|
+
data: tx.data
|
|
474
|
+
});
|
|
475
|
+
return gasLimit;
|
|
476
|
+
} catch (error) {
|
|
477
|
+
console.warn(
|
|
478
|
+
"[AbcEvmProvider] Gas estimation failed, using fallback:",
|
|
479
|
+
error
|
|
480
|
+
);
|
|
481
|
+
if (tx.data && tx.data !== "0x") {
|
|
482
|
+
return "0x493e0";
|
|
483
|
+
}
|
|
484
|
+
return "0x5208";
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Check if connected
|
|
489
|
+
*/
|
|
490
|
+
isConnected() {
|
|
491
|
+
return this.connected;
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Get current wallet
|
|
495
|
+
*/
|
|
496
|
+
getWallet() {
|
|
497
|
+
return this.wallet;
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Get current chain ID
|
|
501
|
+
*/
|
|
502
|
+
getChainId() {
|
|
503
|
+
return this.chainId;
|
|
504
|
+
}
|
|
505
|
+
};
|
|
506
|
+
function createAbcEvmProvider(client) {
|
|
507
|
+
return new AbcEvmProvider(client);
|
|
508
|
+
}
|
|
509
|
+
var createAbcProvider = createAbcEvmProvider;
|
|
510
|
+
|
|
511
|
+
export {
|
|
512
|
+
AbcEvmProvider,
|
|
513
|
+
createAbcEvmProvider,
|
|
514
|
+
createAbcProvider
|
|
515
|
+
};
|