@talken/talkenkit 2.4.20 → 2.4.22
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/LICENSE +9 -0
- package/dist/abcWallet-4RS3B4ZG.js +188 -0
- package/dist/abcWallet-EBOW2RJB.js +188 -0
- package/dist/abcWallet-RS4EOJ4I.js +188 -0
- package/dist/abcWallet-SNEZVK7V.js +188 -0
- package/dist/abcWallet-TC7M2JYX.js +188 -0
- package/dist/abcWallet-VZMW2DR3.js +188 -0
- package/dist/abcWallet-XJ3WSUVI.js +188 -0
- package/dist/abcWallet-XNCBZAIQ.js +188 -0
- package/dist/chunk-6FLQAAC4.js +7213 -0
- package/dist/chunk-7GIIMIPN.js +7213 -0
- package/dist/chunk-IBFA37SC.js +7228 -0
- package/dist/chunk-O5ZOC4NJ.js +7215 -0
- package/dist/chunk-OPOAKGEX.js +7216 -0
- package/dist/chunk-OTIHVCVR.js +7213 -0
- package/dist/chunk-P77BVZZF.js +7369 -0
- package/dist/chunk-RFLXXSQH.js +7139 -0
- package/dist/components/ConfirmationModal/NonEvmConfirmationModal.css.d.ts +11 -0
- package/dist/components/ConfirmationModal/NonEvmSignConfirmationModal.d.ts +9 -0
- package/dist/components/ConfirmationModal/NonEvmTransferConfirmationModal.d.ts +9 -0
- package/dist/components/ConfirmationModal/SignConfirmationModal.css.d.ts +1 -19
- package/dist/components/ConfirmationModal/TransactionConfirmationModal.css.d.ts +1 -20
- package/dist/components/ConfirmationModal/commonStyles.css.d.ts +19 -0
- package/dist/components/ConfirmationModal/index.d.ts +2 -0
- package/dist/components/ConfirmationModal/utils.d.ts +2 -1
- package/dist/hooks/useWalletCapabilities.d.ts +2 -0
- package/dist/index.css +227 -307
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2007 -1067
- package/dist/providers/SignConfirmationProvider/NonEvmConfirmationContext.d.ts +6 -0
- package/dist/providers/SignConfirmationProvider/index.d.ts +2 -1
- package/dist/providers/SignConfirmationProvider/requestParsers.d.ts +6 -1
- package/dist/providers/SignConfirmationProvider/types.d.ts +35 -1
- package/dist/wallets/capabilities/detectCapabilities.d.ts +7 -0
- package/dist/wallets/capabilities/requestWalletAction.d.ts +8 -0
- package/dist/wallets/capabilities/types.d.ts +50 -0
- package/dist/wallets/walletConnectors/abcWallet/abcApi.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +10 -0
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +9 -0
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +10 -0
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +16 -0
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +115 -33
- package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.d.ts +16 -0
- package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +7 -7
- package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/GasApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.d.ts +9 -4
- package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.js +2 -2
- package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/TronApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/index.js +17 -17
- package/dist/wallets/walletConnectors/abcWallet/constants.d.ts +5 -4
- package/dist/wallets/walletConnectors/abcWallet/constants.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/index.js +21 -21
- package/dist/wallets/walletConnectors/abcWallet/types.d.ts +31 -1
- package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
- package/dist/wallets/walletConnectors/berasigWallet/berasigWallet.js +2 -2
- package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
- package/dist/wallets/walletConnectors/binanceWallet/binanceWallet.js +2 -2
- package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
- package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
- package/dist/wallets/walletConnectors/chunk-2IZBLAHI.js +52 -0
- package/dist/wallets/walletConnectors/chunk-32IJ3ILH.js +71 -0
- package/dist/wallets/walletConnectors/chunk-3AX66UHT.js +479 -0
- package/dist/wallets/walletConnectors/chunk-3BVPV64G.js +36 -0
- package/dist/wallets/walletConnectors/chunk-3DGFHWI3.js +302 -0
- package/dist/wallets/walletConnectors/chunk-4FKUVQCM.js +655 -0
- package/dist/wallets/walletConnectors/chunk-56SF4VRC.js +640 -0
- package/dist/wallets/walletConnectors/chunk-5KOE7NJW.js +52 -0
- package/dist/wallets/walletConnectors/chunk-6CVXZ3ZW.js +771 -0
- package/dist/wallets/walletConnectors/chunk-6GCWEPU7.js +643 -0
- package/dist/wallets/walletConnectors/chunk-6YFP3Q2I.js +118 -0
- package/dist/wallets/walletConnectors/chunk-7EEPPULA.js +118 -0
- package/dist/wallets/walletConnectors/chunk-7QL42XTB.js +302 -0
- package/dist/wallets/walletConnectors/chunk-A7ZSPSFX.js +577 -0
- package/dist/wallets/walletConnectors/chunk-AI3CT254.js +302 -0
- package/dist/wallets/walletConnectors/chunk-AMNVH7CZ.js +151 -0
- package/dist/wallets/walletConnectors/chunk-AOREXGRM.js +350 -0
- package/dist/wallets/walletConnectors/chunk-BLO7E54F.js +302 -0
- package/dist/wallets/walletConnectors/chunk-BNRH5PYS.js +52 -0
- package/dist/wallets/walletConnectors/chunk-BOV5FXU6.js +151 -0
- package/dist/wallets/walletConnectors/chunk-BR25RFNF.js +260 -0
- package/dist/wallets/walletConnectors/chunk-BXQ2UWJ3.js +91 -0
- package/dist/wallets/walletConnectors/chunk-CAMPW7O2.js +874 -0
- package/dist/wallets/walletConnectors/chunk-CLMFCNP7.js +52 -0
- package/dist/wallets/walletConnectors/chunk-DSZOE65L.js +107 -0
- package/dist/wallets/walletConnectors/chunk-DU6RCLWT.js +272 -0
- package/dist/wallets/walletConnectors/chunk-ENN6UGGA.js +421 -0
- package/dist/wallets/walletConnectors/chunk-EXWDLN5V.js +204 -0
- package/dist/wallets/walletConnectors/chunk-FFU26Y5Y.js +272 -0
- package/dist/wallets/walletConnectors/chunk-FGS2WHVA.js +118 -0
- package/dist/wallets/walletConnectors/chunk-FJJ3QI4R.js +91 -0
- package/dist/wallets/walletConnectors/chunk-FS2OOQYF.js +204 -0
- package/dist/wallets/walletConnectors/chunk-G5X3COSW.js +205 -0
- package/dist/wallets/walletConnectors/chunk-H53R4SFZ.js +204 -0
- package/dist/wallets/walletConnectors/chunk-J4QGDATF.js +71 -0
- package/dist/wallets/walletConnectors/chunk-JIJNCMJR.js +874 -0
- package/dist/wallets/walletConnectors/chunk-JSGZYU4A.js +52 -0
- package/dist/wallets/walletConnectors/chunk-JVT7R2GZ.js +771 -0
- package/dist/wallets/walletConnectors/chunk-K3JNN5UK.js +71 -0
- package/dist/wallets/walletConnectors/chunk-KBHPY3NA.js +302 -0
- package/dist/wallets/walletConnectors/chunk-KEX6WS23.js +640 -0
- package/dist/wallets/walletConnectors/chunk-KHYKVVR7.js +52 -0
- package/dist/wallets/walletConnectors/chunk-LOL7ZZ3S.js +302 -0
- package/dist/wallets/walletConnectors/chunk-LOSXI36Y.js +479 -0
- package/dist/wallets/walletConnectors/chunk-M2U5QGM7.js +260 -0
- package/dist/wallets/walletConnectors/chunk-M73AWLIV.js +107 -0
- package/dist/wallets/walletConnectors/chunk-MAUC46AE.js +302 -0
- package/dist/wallets/walletConnectors/chunk-MBRXYEQC.js +272 -0
- package/dist/wallets/walletConnectors/chunk-MDDD4LG2.js +874 -0
- package/dist/wallets/walletConnectors/chunk-MMR2QAEU.js +642 -0
- package/dist/wallets/walletConnectors/chunk-MNZZRFUC.js +302 -0
- package/dist/wallets/walletConnectors/chunk-OIRY24PH.js +302 -0
- package/dist/wallets/walletConnectors/chunk-ORBX4JE2.js +52 -0
- package/dist/wallets/walletConnectors/chunk-OXJFFDW7.js +761 -0
- package/dist/wallets/walletConnectors/chunk-QD3PPWTN.js +272 -0
- package/dist/wallets/walletConnectors/chunk-RCIABMG5.js +259 -0
- package/dist/wallets/walletConnectors/chunk-RHC4SVLB.js +71 -0
- package/dist/wallets/walletConnectors/chunk-S2CB4KFC.js +71 -0
- package/dist/wallets/walletConnectors/chunk-S6HZD4XZ.js +302 -0
- package/dist/wallets/walletConnectors/chunk-S72LCNVX.js +272 -0
- package/dist/wallets/walletConnectors/chunk-SCWE5EEX.js +91 -0
- package/dist/wallets/walletConnectors/chunk-TKEL4D4E.js +151 -0
- package/dist/wallets/walletConnectors/chunk-TKJEMEBZ.js +71 -0
- package/dist/wallets/walletConnectors/chunk-TZ44ZREA.js +302 -0
- package/dist/wallets/walletConnectors/chunk-UGQSI3US.js +547 -0
- package/dist/wallets/walletConnectors/chunk-UU4JYY3C.js +205 -0
- package/dist/wallets/walletConnectors/chunk-V5P5BL6Z.js +302 -0
- package/dist/wallets/walletConnectors/chunk-VH6DIRPF.js +71 -0
- package/dist/wallets/walletConnectors/chunk-VPNZAMW5.js +205 -0
- package/dist/wallets/walletConnectors/chunk-W6QN6QXO.js +52 -0
- package/dist/wallets/walletConnectors/chunk-WDULICVN.js +302 -0
- package/dist/wallets/walletConnectors/chunk-WGGHGODM.js +272 -0
- package/dist/wallets/walletConnectors/chunk-XUCMTLM3.js +52 -0
- package/dist/wallets/walletConnectors/chunk-Y5WAX6WO.js +52 -0
- package/dist/wallets/walletConnectors/chunk-Y62PFBWE.js +640 -0
- package/dist/wallets/walletConnectors/chunk-Z6ABK6G6.js +107 -0
- package/dist/wallets/walletConnectors/chunk-ZCA5QSIM.js +71 -0
- package/dist/wallets/walletConnectors/chunk-ZJDZJW55.js +479 -0
- package/dist/wallets/walletConnectors/chunk-ZOF7ZDGU.js +52 -0
- package/dist/wallets/walletConnectors/chunk-ZUU57RHO.js +36 -0
- package/dist/wallets/walletConnectors/chunk-ZWFGRREM.js +36 -0
- package/dist/wallets/walletConnectors/chunk-ZY5BCHP2.js +302 -0
- package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
- package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
- package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
- package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
- package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
- package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
- package/dist/wallets/walletConnectors/index.js +88 -88
- package/dist/wallets/walletConnectors/iopayWallet/iopayWallet.js +2 -2
- package/dist/wallets/walletConnectors/kaiaWallet/kaiaWallet.js +2 -2
- package/dist/wallets/walletConnectors/kaikasWallet/kaikasWallet.js +2 -2
- package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
- package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
- package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
- package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
- package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
- package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
- package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
- package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
- package/dist/wallets/walletConnectors/zealWallet/zealWallet.js +2 -2
- package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
- package/package.json +11 -12
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
BaseApiClient
|
|
4
|
+
} from "./chunk-QD3PPWTN.js";
|
|
5
|
+
|
|
6
|
+
// src/wallets/walletConnectors/abcWallet/api/WalletscanApi.ts
|
|
7
|
+
import { getTalkenApiClient, networkNameToChainKey } from "@talken/talkenkit";
|
|
8
|
+
var WalletscanApi = class extends BaseApiClient {
|
|
9
|
+
/**
|
|
10
|
+
* Get token metadata via TalkenApiClient walletscan endpoint
|
|
11
|
+
*
|
|
12
|
+
* @param params - Contract address and networks
|
|
13
|
+
* @returns Token metadata or null if not found/failed
|
|
14
|
+
*/
|
|
15
|
+
async getContractToken(params) {
|
|
16
|
+
const api = getTalkenApiClient();
|
|
17
|
+
if (!api)
|
|
18
|
+
throw new Error("TalkenApiClient not initialized");
|
|
19
|
+
try {
|
|
20
|
+
const tokens = await api.walletscan.getToken({
|
|
21
|
+
contractAddress: params.contractAddress,
|
|
22
|
+
chainKeys: networkNameToChainKey(params.networks)
|
|
23
|
+
});
|
|
24
|
+
return tokens.length > 0 ? tokens[0] : null;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
console.warn(
|
|
27
|
+
"[WalletscanApi] TalkenApi getToken failed:",
|
|
28
|
+
params.contractAddress,
|
|
29
|
+
error
|
|
30
|
+
);
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get token metadata with timeout
|
|
36
|
+
*
|
|
37
|
+
* @param params - Contract address and networks
|
|
38
|
+
* @param timeoutMs - Timeout in milliseconds (default: 3000)
|
|
39
|
+
* @returns Token metadata or null if timeout/failed
|
|
40
|
+
*/
|
|
41
|
+
async getContractTokenWithTimeout(params, timeoutMs = 3e3) {
|
|
42
|
+
try {
|
|
43
|
+
const result = await Promise.race([
|
|
44
|
+
this.getContractToken(params),
|
|
45
|
+
new Promise(
|
|
46
|
+
(resolve) => setTimeout(() => resolve(null), timeoutMs)
|
|
47
|
+
)
|
|
48
|
+
]);
|
|
49
|
+
return result;
|
|
50
|
+
} catch (_error) {
|
|
51
|
+
console.warn(
|
|
52
|
+
"[WalletscanApi] Token metadata request timed out:",
|
|
53
|
+
params.contractAddress
|
|
54
|
+
);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get native coin info via TalkenApiClient walletscan endpoint
|
|
60
|
+
*
|
|
61
|
+
* @param params - Wallet address and networks
|
|
62
|
+
* @returns Array of native coins or empty array if failed
|
|
63
|
+
*/
|
|
64
|
+
async getNativeToken(params) {
|
|
65
|
+
const api = getTalkenApiClient();
|
|
66
|
+
if (!api)
|
|
67
|
+
throw new Error("TalkenApiClient not initialized");
|
|
68
|
+
try {
|
|
69
|
+
return await api.walletscan.getNativeTokens({
|
|
70
|
+
walletAddress: params.walletAddress,
|
|
71
|
+
chainKeys: networkNameToChainKey(params.networks)
|
|
72
|
+
});
|
|
73
|
+
} catch (error) {
|
|
74
|
+
console.warn("[WalletscanApi] TalkenApi getNativeTokens failed:", error);
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get native coin info with timeout
|
|
80
|
+
*
|
|
81
|
+
* @param params - Wallet address and networks
|
|
82
|
+
* @param timeoutMs - Timeout in milliseconds (default: 3000)
|
|
83
|
+
* @returns First native coin or null if timeout/failed
|
|
84
|
+
*/
|
|
85
|
+
async getNativeTokenWithTimeout(params, timeoutMs = 3e3) {
|
|
86
|
+
try {
|
|
87
|
+
const natives = await Promise.race([
|
|
88
|
+
this.getNativeToken(params),
|
|
89
|
+
new Promise(
|
|
90
|
+
(resolve) => setTimeout(() => resolve([]), timeoutMs)
|
|
91
|
+
)
|
|
92
|
+
]);
|
|
93
|
+
return natives.length > 0 ? natives[0] : null;
|
|
94
|
+
} catch (_error) {
|
|
95
|
+
console.warn("[WalletscanApi] Native coin request timed out");
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get NFT metadata via TalkenApiClient walletscan endpoint
|
|
101
|
+
*
|
|
102
|
+
* @param params - Contract address, wallet address, and networks
|
|
103
|
+
* @returns Array of NFT metadata or empty array if failed
|
|
104
|
+
*/
|
|
105
|
+
async getNFT(params) {
|
|
106
|
+
const api = getTalkenApiClient();
|
|
107
|
+
if (!api)
|
|
108
|
+
throw new Error("TalkenApiClient not initialized");
|
|
109
|
+
try {
|
|
110
|
+
return await api.walletscan.getNfts({
|
|
111
|
+
chainKeys: networkNameToChainKey(params.networks),
|
|
112
|
+
walletAddress: params.walletAddress
|
|
113
|
+
});
|
|
114
|
+
} catch (error) {
|
|
115
|
+
console.warn(
|
|
116
|
+
"[WalletscanApi] TalkenApi getNfts failed:",
|
|
117
|
+
params.contractAddress,
|
|
118
|
+
error
|
|
119
|
+
);
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get NFT metadata with timeout
|
|
125
|
+
*
|
|
126
|
+
* @param params - Contract address, wallet address, and networks
|
|
127
|
+
* @param timeoutMs - Timeout in milliseconds (default: 3000)
|
|
128
|
+
* @returns First NFT or null if timeout/failed/empty
|
|
129
|
+
*/
|
|
130
|
+
async getNFTWithTimeout(params, timeoutMs = 3e3) {
|
|
131
|
+
try {
|
|
132
|
+
const nfts = await Promise.race([
|
|
133
|
+
this.getNFT(params),
|
|
134
|
+
new Promise(
|
|
135
|
+
(resolve) => setTimeout(() => resolve([]), timeoutMs)
|
|
136
|
+
)
|
|
137
|
+
]);
|
|
138
|
+
return nfts.length > 0 ? nfts[0] : null;
|
|
139
|
+
} catch (_error) {
|
|
140
|
+
console.warn(
|
|
141
|
+
"[WalletscanApi] NFT metadata request timed out:",
|
|
142
|
+
params.contractAddress
|
|
143
|
+
);
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export {
|
|
150
|
+
WalletscanApi
|
|
151
|
+
};
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/wallets/walletConnectors/abcWallet/constants.ts
|
|
4
|
+
var DEFAULT_ABC_CONFIG = {
|
|
5
|
+
environment: "development",
|
|
6
|
+
waasUrl: ""
|
|
7
|
+
// All operations routed through TalkenApiClient
|
|
8
|
+
};
|
|
9
|
+
var TOKEN_EXPIRY = {
|
|
10
|
+
ACCESS_TOKEN: 10 * 60 * 1e3,
|
|
11
|
+
// 10 minutes
|
|
12
|
+
REFRESH_TOKEN: 60 * 60 * 1e3,
|
|
13
|
+
// 60 minutes
|
|
14
|
+
REFRESH_BUFFER: 60 * 1e3
|
|
15
|
+
// Refresh 60s before expiry (increased for network latency tolerance)
|
|
16
|
+
};
|
|
17
|
+
var ABC_ENDPOINTS = {
|
|
18
|
+
// Authentication
|
|
19
|
+
SNS_LOGIN: "/abc/snsLogin",
|
|
20
|
+
// Legacy - may need to update
|
|
21
|
+
REGISTER_SNS_USER: "/abc/registerSnsUser",
|
|
22
|
+
// Legacy - may need to update
|
|
23
|
+
// Secure channel
|
|
24
|
+
SECURE_CHANNEL_CREATE: "/secure/channel/create",
|
|
25
|
+
// Email OTP
|
|
26
|
+
SEND_OTP: "/member/mail-service/{email}/sendcode",
|
|
27
|
+
// {email} placeholder
|
|
28
|
+
VERIFY_OTP: "/member/mail-service/{email}/verifycode",
|
|
29
|
+
// {email} placeholder
|
|
30
|
+
// Wallet operations (EVM)
|
|
31
|
+
// Based on tg-wallet-frontend reference
|
|
32
|
+
MPC_WALLETS: "/wapi/v2/mpc/wallets",
|
|
33
|
+
// EVM wallet generation/recovery
|
|
34
|
+
MPC_WALLETS_INFO: "/wapi/v2/mpc/wallets/info",
|
|
35
|
+
// Get wallet info
|
|
36
|
+
// Signing operations
|
|
37
|
+
// Based on tg-wallet-frontend reference implementation
|
|
38
|
+
SIGN_HASH: "/wapi/v2/sign/hash",
|
|
39
|
+
// Personal sign with hash (EIP-191)
|
|
40
|
+
SIGN_TYPED: "/wapi/v2/sign/typed-data",
|
|
41
|
+
// Typed data sign (EIP-712)
|
|
42
|
+
SIGN_TRANSACTION: "/wapi/v2/sign",
|
|
43
|
+
// EVM transaction sign (LEGACY, EIP1559, PERSONAL)
|
|
44
|
+
// Transaction operations
|
|
45
|
+
SEND_RAW_TX: "/wapi/v2/transactions/raw-tx/send",
|
|
46
|
+
// Send signed transaction
|
|
47
|
+
TRANSACTION_COUNT: "/wapi/v2/transactions/count",
|
|
48
|
+
// Get transaction count (nonce)
|
|
49
|
+
// Gas estimation and fee data
|
|
50
|
+
GAS_SUGGESTED_FEES: "/wapi/v2/gas/suggestedGasFees",
|
|
51
|
+
// Get suggested gas fees for EIP-1559
|
|
52
|
+
GAS_ESTIMATE_EIP1559: "/wapi/v2/gas/estimate/eip1559",
|
|
53
|
+
// Estimate gas limit for EIP-1559
|
|
54
|
+
// Token info (Walletscan)
|
|
55
|
+
WALLETSCAN_TOKEN: "/wapi/v2/walletscan/token",
|
|
56
|
+
// GET /{contractAddress}?networks=xxx
|
|
57
|
+
WALLETSCAN_NATIVES: "/wapi/v2/walletscan/natives",
|
|
58
|
+
// GET ?walletAddress=xxx&networks=xxx
|
|
59
|
+
WALLETSCAN_NFTS: "/wapi/v2/walletscan/nfts",
|
|
60
|
+
// GET /{contractAddress}?walletAddress=xxx&networks=xxx
|
|
61
|
+
// Token refresh (based on tg-wallet-frontend reference)
|
|
62
|
+
REFRESH_TOKEN: "/abc/abcRefresh",
|
|
63
|
+
// Token refresh endpoint
|
|
64
|
+
// Legacy endpoints (kept for compatibility)
|
|
65
|
+
WALLETS_V3: "/abc/wallets/v3",
|
|
66
|
+
// Solana only
|
|
67
|
+
INFO: "/abc/info"
|
|
68
|
+
};
|
|
69
|
+
var AUTH_PROVIDERS = {
|
|
70
|
+
EMAIL: "email",
|
|
71
|
+
GOOGLE: "google",
|
|
72
|
+
APPLE: "apple",
|
|
73
|
+
TELEGRAM: "telegram",
|
|
74
|
+
TWITTER: "twitter"
|
|
75
|
+
};
|
|
76
|
+
var CHAIN_TYPES = {
|
|
77
|
+
EVM: "evm",
|
|
78
|
+
SOLANA: "solana",
|
|
79
|
+
BITCOIN: "bitcoin"
|
|
80
|
+
};
|
|
81
|
+
var SOLANA_CHAIN_ID = 900;
|
|
82
|
+
var BITCOIN_CHAIN_ID = 800;
|
|
83
|
+
var EVM_CHAINS = {
|
|
84
|
+
ETHEREUM_MAINNET: 1,
|
|
85
|
+
ETHEREUM_GOERLI: 5,
|
|
86
|
+
ETHEREUM_SEPOLIA: 11155111,
|
|
87
|
+
POLYGON_MAINNET: 137,
|
|
88
|
+
POLYGON_MUMBAI: 80001,
|
|
89
|
+
BSC_MAINNET: 56,
|
|
90
|
+
BSC_TESTNET: 97,
|
|
91
|
+
ARBITRUM_MAINNET: 42161,
|
|
92
|
+
ARBITRUM_GOERLI: 421613,
|
|
93
|
+
OPTIMISM_MAINNET: 10,
|
|
94
|
+
OPTIMISM_GOERLI: 420,
|
|
95
|
+
AVALANCHE_MAINNET: 43114,
|
|
96
|
+
AVALANCHE_FUJI: 43113,
|
|
97
|
+
KLAYTN_MAINNET: 8217,
|
|
98
|
+
KLAYTN_BAOBAB: 1001
|
|
99
|
+
};
|
|
100
|
+
var ABC_AUDIENCE = "https://mw.myabcwallet.com";
|
|
101
|
+
var PIN_CONFIG = {
|
|
102
|
+
MIN_LENGTH: 6,
|
|
103
|
+
MAX_LENGTH: 6,
|
|
104
|
+
MAX_ATTEMPTS: 5,
|
|
105
|
+
LOCKOUT_DURATION: 15 * 60 * 1e3
|
|
106
|
+
// 15 minutes
|
|
107
|
+
};
|
|
108
|
+
var STORAGE_VERSION = "1.0.0";
|
|
109
|
+
var REQUEST_TIMEOUT = 3e4;
|
|
110
|
+
var RETRY_CONFIG = {
|
|
111
|
+
MAX_RETRIES: 3,
|
|
112
|
+
RETRY_DELAY: 1e3,
|
|
113
|
+
// 1 second
|
|
114
|
+
BACKOFF_MULTIPLIER: 2
|
|
115
|
+
};
|
|
116
|
+
var ABC_WALLET_METADATA = {
|
|
117
|
+
id: "abc",
|
|
118
|
+
name: "ABC Wallet",
|
|
119
|
+
iconBackground: "#ffffff",
|
|
120
|
+
rdns: "com.abcwallet"
|
|
121
|
+
};
|
|
122
|
+
var MODAL_CONFIG = {
|
|
123
|
+
WIDTH: 400,
|
|
124
|
+
MAX_WIDTH: "90vw",
|
|
125
|
+
BORDER_RADIUS: 16,
|
|
126
|
+
PADDING: 24
|
|
127
|
+
};
|
|
128
|
+
var SOCIAL_BUTTONS = [
|
|
129
|
+
{
|
|
130
|
+
provider: AUTH_PROVIDERS.GOOGLE,
|
|
131
|
+
label: "Google",
|
|
132
|
+
iconName: "google"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
provider: AUTH_PROVIDERS.APPLE,
|
|
136
|
+
label: "Apple",
|
|
137
|
+
iconName: "apple"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
provider: AUTH_PROVIDERS.TELEGRAM,
|
|
141
|
+
label: "Telegram",
|
|
142
|
+
iconName: "telegram"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
provider: AUTH_PROVIDERS.TWITTER,
|
|
146
|
+
label: "X (Twitter)",
|
|
147
|
+
iconName: "twitter"
|
|
148
|
+
}
|
|
149
|
+
];
|
|
150
|
+
var ERROR_MESSAGES = {
|
|
151
|
+
INVALID_CREDENTIALS: "Invalid email or password",
|
|
152
|
+
TOKEN_EXPIRED: "Your session has expired. Please login again.",
|
|
153
|
+
WALLET_NOT_FOUND: "Wallet not found. Please create a new wallet.",
|
|
154
|
+
INVALID_PIN: "Invalid PIN code",
|
|
155
|
+
NETWORK_ERROR: "Network error. Please check your connection.",
|
|
156
|
+
SIGNATURE_FAILED: "Failed to sign transaction",
|
|
157
|
+
USER_CANCELLED: "User cancelled the operation",
|
|
158
|
+
UNKNOWN_ERROR: "An unknown error occurred",
|
|
159
|
+
INVALID_OTP: "Invalid or expired OTP code",
|
|
160
|
+
EMAIL_REQUIRED: "Email address is required",
|
|
161
|
+
PIN_REQUIRED: "PIN code is required",
|
|
162
|
+
WALLET_GENERATION_FAILED: "Failed to generate wallet"
|
|
163
|
+
};
|
|
164
|
+
var SUCCESS_MESSAGES = {
|
|
165
|
+
LOGIN_SUCCESS: "Successfully logged in",
|
|
166
|
+
WALLET_CREATED: "Wallet created successfully",
|
|
167
|
+
TRANSACTION_SENT: "Transaction sent successfully",
|
|
168
|
+
OTP_SENT: "OTP code sent to your email"
|
|
169
|
+
};
|
|
170
|
+
var ABC_EVENTS = {
|
|
171
|
+
CONNECT: "abc:connect",
|
|
172
|
+
DISCONNECT: "abc:disconnect",
|
|
173
|
+
ACCOUNTS_CHANGED: "abc:accountsChanged",
|
|
174
|
+
CHAIN_CHANGED: "abc:chainChanged",
|
|
175
|
+
ERROR: "abc:error",
|
|
176
|
+
AUTH_STATE_CHANGED: "abc:authStateChanged"
|
|
177
|
+
};
|
|
178
|
+
var STORAGE_PREFIX = "talkenkit_abc_";
|
|
179
|
+
var DEBUG_MODE = true;
|
|
180
|
+
var DEFAULT_HEADERS = {
|
|
181
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
182
|
+
Accept: "application/json"
|
|
183
|
+
};
|
|
184
|
+
var ABC_FEATURES = {
|
|
185
|
+
EMAIL_LOGIN: true,
|
|
186
|
+
SOCIAL_LOGIN: true,
|
|
187
|
+
MULTI_CHAIN: true,
|
|
188
|
+
EVM_SUPPORT: true,
|
|
189
|
+
SOLANA_SUPPORT: true,
|
|
190
|
+
BITCOIN_SUPPORT: false,
|
|
191
|
+
// Future feature
|
|
192
|
+
GASLESS_TRANSACTIONS: false,
|
|
193
|
+
// Future feature
|
|
194
|
+
SOCIAL_RECOVERY: false
|
|
195
|
+
// Future feature
|
|
196
|
+
};
|
|
197
|
+
var DEFAULT_TALKEN_API_CONFIG = {
|
|
198
|
+
baseUrl: void 0,
|
|
199
|
+
timeout: REQUEST_TIMEOUT
|
|
200
|
+
};
|
|
201
|
+
var TALKEN_API_ENDPOINTS = {
|
|
202
|
+
// ── Auth (single action-based endpoint) ─────────────────────────────
|
|
203
|
+
AUTH: "/wallet/auth",
|
|
204
|
+
// ── Wallet ──────────────────────────────────────────────────────────
|
|
205
|
+
WALLET_MPC: "/wallet/mpc",
|
|
206
|
+
WALLET_ADDRESS: "/wallet/address",
|
|
207
|
+
WALLET_SCAN: "/wallet/scan",
|
|
208
|
+
WALLET_BTC: "/wallet/btc",
|
|
209
|
+
// ── EVM Sign (WaaS proxy) ───────────────────────────────────────────
|
|
210
|
+
SIGN_EVM: "/wallet/sign/evm",
|
|
211
|
+
SIGN_TYPED: "/wallet/sign/evm/typed",
|
|
212
|
+
SIGN_PERSONAL: "/wallet/sign/evm/personal",
|
|
213
|
+
SIGN_AUTHORIZATION: "/wallet/sign/authorization",
|
|
214
|
+
// ── Hash Sign (secp256k1, universal: EVM/BTC/TVM) ───────────────────
|
|
215
|
+
SIGN_HASH: "/wallet/sign/hash",
|
|
216
|
+
// ── SOL Sign (WaaS proxy) ───────────────────────────────────────────
|
|
217
|
+
SIGN_SVM: "/wallet/sign/sol",
|
|
218
|
+
// ── TX ──────────────────────────────────────────────────────────────
|
|
219
|
+
TX_RAW: "/wallet/tx/raw",
|
|
220
|
+
TX_EVM: "/wallet/tx/evm",
|
|
221
|
+
TX_SOL: "/wallet/tx/sol",
|
|
222
|
+
TX_BTC: "/wallet/tx/btc",
|
|
223
|
+
TX_TVM: "/wallet/tx/tvm",
|
|
224
|
+
// ── Gas (WaaS proxy) ───────────────────────────────────────────────
|
|
225
|
+
GAS_PRICE: "/wallet/gas/price",
|
|
226
|
+
GAS_SUGGESTED: "/wallet/gas/suggested",
|
|
227
|
+
GAS_ESTIMATE: "/wallet/gas/estimate",
|
|
228
|
+
// ── Nonce (WaaS proxy) ─────────────────────────────────────────────
|
|
229
|
+
NONCE: "/wallet/nonce",
|
|
230
|
+
// ── Relayer ────────────────────────────────────────────────────────
|
|
231
|
+
RELAYER_FEE_ESTIMATE: "/relayer/estimate-fee"
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export {
|
|
235
|
+
DEFAULT_ABC_CONFIG,
|
|
236
|
+
TOKEN_EXPIRY,
|
|
237
|
+
ABC_ENDPOINTS,
|
|
238
|
+
AUTH_PROVIDERS,
|
|
239
|
+
CHAIN_TYPES,
|
|
240
|
+
SOLANA_CHAIN_ID,
|
|
241
|
+
BITCOIN_CHAIN_ID,
|
|
242
|
+
EVM_CHAINS,
|
|
243
|
+
ABC_AUDIENCE,
|
|
244
|
+
PIN_CONFIG,
|
|
245
|
+
STORAGE_VERSION,
|
|
246
|
+
REQUEST_TIMEOUT,
|
|
247
|
+
RETRY_CONFIG,
|
|
248
|
+
ABC_WALLET_METADATA,
|
|
249
|
+
MODAL_CONFIG,
|
|
250
|
+
SOCIAL_BUTTONS,
|
|
251
|
+
ERROR_MESSAGES,
|
|
252
|
+
SUCCESS_MESSAGES,
|
|
253
|
+
ABC_EVENTS,
|
|
254
|
+
STORAGE_PREFIX,
|
|
255
|
+
DEBUG_MODE,
|
|
256
|
+
DEFAULT_HEADERS,
|
|
257
|
+
ABC_FEATURES,
|
|
258
|
+
DEFAULT_TALKEN_API_CONFIG,
|
|
259
|
+
TALKEN_API_ENDPOINTS
|
|
260
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
BaseApiClient
|
|
4
|
+
} from "./chunk-QD3PPWTN.js";
|
|
5
|
+
import {
|
|
6
|
+
createAbcError
|
|
7
|
+
} from "./chunk-ZJDZJW55.js";
|
|
8
|
+
import {
|
|
9
|
+
ABC_ENDPOINTS
|
|
10
|
+
} from "./chunk-M2U5QGM7.js";
|
|
11
|
+
|
|
12
|
+
// src/wallets/walletConnectors/abcWallet/api/TransactionApi.ts
|
|
13
|
+
var TransactionApi = class extends BaseApiClient {
|
|
14
|
+
/**
|
|
15
|
+
* Get transaction count (nonce)
|
|
16
|
+
*/
|
|
17
|
+
async getTransactionCount(address, network, block = "latest") {
|
|
18
|
+
const nonceUrl = `${this.baseURL}${ABC_ENDPOINTS.TRANSACTION_COUNT}?address=${address}&network=${network}&block=${block}`;
|
|
19
|
+
const response = await fetch(nonceUrl, {
|
|
20
|
+
method: "GET",
|
|
21
|
+
headers: {
|
|
22
|
+
...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
if (response.ok) {
|
|
26
|
+
const data = await response.json();
|
|
27
|
+
return Number.parseInt(data.result, 16);
|
|
28
|
+
}
|
|
29
|
+
throw createAbcError(
|
|
30
|
+
"NETWORK_ERROR" /* NETWORK_ERROR */,
|
|
31
|
+
"Failed to get transaction count"
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get suggested gas fees for EIP-1559
|
|
36
|
+
*/
|
|
37
|
+
async getSuggestedGasFees(network) {
|
|
38
|
+
const url = `${this.baseURL}${ABC_ENDPOINTS.GAS_SUGGESTED_FEES}?network=${network}`;
|
|
39
|
+
const response = await fetch(url, {
|
|
40
|
+
method: "GET",
|
|
41
|
+
headers: {
|
|
42
|
+
...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
if (response.ok) {
|
|
46
|
+
const data = await response.json();
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
throw createAbcError(
|
|
50
|
+
"NETWORK_ERROR" /* NETWORK_ERROR */,
|
|
51
|
+
"Failed to get suggested gas fees"
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Estimate gas limit for EIP-1559 transaction
|
|
56
|
+
*/
|
|
57
|
+
async estimateGas(params) {
|
|
58
|
+
const estimateBody = new URLSearchParams({
|
|
59
|
+
network: params.network,
|
|
60
|
+
to: params.to || "0x",
|
|
61
|
+
...params.from ? { from: params.from } : {},
|
|
62
|
+
...params.value ? { value: params.value } : {},
|
|
63
|
+
...params.data && params.data !== "0x" ? { data: params.data } : {},
|
|
64
|
+
...params.maxFeePerGas ? { maxFeePerGas: params.maxFeePerGas } : {},
|
|
65
|
+
...params.maxPriorityFeePerGas ? { maxPriorityFeePerGas: params.maxPriorityFeePerGas } : {}
|
|
66
|
+
});
|
|
67
|
+
const url = `${this.baseURL}${ABC_ENDPOINTS.GAS_ESTIMATE_EIP1559}`;
|
|
68
|
+
const response = await fetch(url, {
|
|
69
|
+
method: "POST",
|
|
70
|
+
headers: {
|
|
71
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
72
|
+
...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
|
|
73
|
+
},
|
|
74
|
+
body: estimateBody.toString()
|
|
75
|
+
});
|
|
76
|
+
const data = await response.json();
|
|
77
|
+
if (response.ok && data.result) {
|
|
78
|
+
return data.result;
|
|
79
|
+
}
|
|
80
|
+
const fallbackGasLimit = "0x2dc6c0";
|
|
81
|
+
console.warn("\u26A0\uFE0F Gas estimate failed, using fallback:", {
|
|
82
|
+
error: data.errorMessage || data.msg,
|
|
83
|
+
fallbackGasLimit
|
|
84
|
+
});
|
|
85
|
+
return fallbackGasLimit;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export {
|
|
90
|
+
TransactionApi
|
|
91
|
+
};
|