@talken/talkenkit 2.3.15 → 2.4.4
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/{chunk-UWHLB4MJ.js → chunk-RQ637EP3.js} +0 -2
- package/dist/components/ConnectOptions/ExternalWallets/EthereumWallet/EthereumWalletList.d.ts +4 -4
- package/dist/index.d.ts +6 -5
- package/dist/index.js +6783 -6571
- package/dist/{secure-SSSSQ4NA.js → secure-X6ZSGFOB.js} +1 -1
- package/dist/services/AbcAuthService.d.ts +1 -1
- package/dist/solana/AbcSolanaAutoConnector.d.ts +7 -0
- package/dist/solana/SolanaWalletProvider.d.ts +18 -2
- package/dist/solana/config.d.ts +26 -0
- package/dist/wallets/walletConnectors/abcWallet/AbcEvmAutoConnector.d.ts +7 -0
- package/dist/wallets/walletConnectors/abcWallet/AbcEvmAutoConnector.js +37 -0
- package/dist/wallets/walletConnectors/abcWallet/abcApi.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +6 -6
- package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -3
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +166 -0
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +725 -0
- package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +7 -7
- package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.d.ts +5 -0
- package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +4 -4
- package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.d.ts +16 -5
- package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +5 -5
- package/dist/wallets/walletConnectors/abcWallet/api/index.js +13 -13
- package/dist/wallets/walletConnectors/abcWallet/googleAuth.d.ts +1 -1
- package/dist/wallets/walletConnectors/abcWallet/googleAuth.js +5 -7
- package/dist/wallets/walletConnectors/abcWallet/index.d.ts +3 -7
- package/dist/wallets/walletConnectors/abcWallet/index.js +36 -46
- package/dist/wallets/walletConnectors/abcWallet/secure.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/sessionUtils.d.ts +38 -0
- package/dist/wallets/walletConnectors/abcWallet/sessionUtils.js +15 -0
- package/dist/wallets/walletConnectors/abcWallet/types.d.ts +34 -1
- package/dist/wallets/walletConnectors/abcWallet/types.js +1 -1
- package/dist/wallets/walletConnectors/abcWallet/utils.d.ts +1 -1
- package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
- package/dist/wallets/walletConnectors/abcWallet/walletGeneration.js +2 -2
- package/dist/wallets/walletConnectors/chunk-2GNL2GNB.js +154 -0
- package/dist/wallets/walletConnectors/{chunk-5DDAV4BZ.js → chunk-2NAY6X3G.js} +1 -1
- package/dist/wallets/walletConnectors/{chunk-ZIYAL44B.js → chunk-2NVHWZUE.js} +1 -1
- package/dist/wallets/walletConnectors/{chunk-LENPUTNQ.js → chunk-36J4NGMW.js} +12 -20
- package/dist/wallets/walletConnectors/{chunk-4MF5RSML.js → chunk-3CTIR723.js} +1 -1
- package/dist/wallets/walletConnectors/{chunk-AVPBPELO.js → chunk-3WLUH24A.js} +10 -10
- package/dist/wallets/walletConnectors/{chunk-YEHCPL4R.js → chunk-53LPTQ6J.js} +2 -2
- package/dist/wallets/walletConnectors/{chunk-GXGRTWJM.js → chunk-5CZGFT24.js} +10 -10
- package/dist/wallets/walletConnectors/{chunk-BJHGC546.js → chunk-5JIPWC5W.js} +12 -24
- package/dist/wallets/walletConnectors/{chunk-4N6JD6LY.js → chunk-5LPD35BU.js} +9 -9
- package/dist/wallets/walletConnectors/{chunk-UV5HHESJ.js → chunk-5RSS3SRV.js} +29 -12
- package/dist/wallets/walletConnectors/{chunk-3ZE57J3R.js → chunk-64TRAZ6V.js} +1 -1
- package/dist/wallets/walletConnectors/{chunk-KKPINUPY.js → chunk-6BAXMYSN.js} +2 -2
- package/dist/wallets/walletConnectors/{chunk-PPIFAF7N.js → chunk-7MOCKWA7.js} +65 -19
- package/dist/wallets/walletConnectors/{chunk-75RN2RLT.js → chunk-7TYZCXIR.js} +12 -12
- package/dist/wallets/walletConnectors/{chunk-HVPQO6ZG.js → chunk-7UIXGYOT.js} +5 -20
- package/dist/wallets/walletConnectors/{chunk-BL57XWJY.js → chunk-7UQQKSV7.js} +1 -1
- package/dist/wallets/walletConnectors/{chunk-FGBDWBWQ.js → chunk-AIKTQX6B.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-AO24PU7X.js +104 -0
- package/dist/wallets/walletConnectors/{chunk-4YJWX7I3.js → chunk-APLOMU6R.js} +1 -1
- package/dist/wallets/walletConnectors/chunk-AZAV5URB.js +267 -0
- package/dist/wallets/walletConnectors/chunk-BO6OI7XU.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-P2GV6NQG.js → chunk-BV3DCJXA.js} +12 -20
- package/dist/wallets/walletConnectors/{chunk-KJHOGJ3A.js → chunk-CNRPEVLV.js} +16 -4
- package/dist/wallets/walletConnectors/{chunk-OC2O4BHA.js → chunk-COPAK5YT.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-CZVBS7QE.js +436 -0
- package/dist/wallets/walletConnectors/{chunk-QKUFFUM5.js → chunk-DA5J6GHZ.js} +14 -4
- package/dist/wallets/walletConnectors/chunk-FMDSZ2CE.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-5CCU7PNU.js → chunk-FQTLYAWT.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-FUOQBONI.js +47 -0
- package/dist/wallets/walletConnectors/chunk-FWCS4HBL.js +1695 -0
- package/dist/wallets/walletConnectors/chunk-FY7UDC3W.js +63 -0
- package/dist/wallets/walletConnectors/chunk-GZUP3M2X.js +63 -0
- package/dist/wallets/walletConnectors/chunk-H52W4ZFE.js +272 -0
- package/dist/wallets/walletConnectors/chunk-HEQZLRTH.js +309 -0
- package/dist/wallets/walletConnectors/{chunk-ISAMATTH.js → chunk-HFC4AK72.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-HKIV22NT.js +63 -0
- package/dist/wallets/walletConnectors/chunk-HLC24OGS.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-5TDZSXJ4.js → chunk-HTD7IRKM.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-IQJWD4IN.js +269 -0
- package/dist/wallets/walletConnectors/chunk-IZUAJRJ4.js +311 -0
- package/dist/wallets/walletConnectors/{chunk-NX5MQHSQ.js → chunk-J6VUIOSE.js} +23 -2
- package/dist/wallets/walletConnectors/chunk-JQ57SCY6.js +313 -0
- package/dist/wallets/walletConnectors/{chunk-F5P2INHS.js → chunk-KB7OGAUC.js} +14 -4
- package/dist/wallets/walletConnectors/chunk-KXEAFXAA.js +226 -0
- package/dist/wallets/walletConnectors/{chunk-JR2C4XXX.js → chunk-LLWI2QWC.js} +74 -18
- package/dist/wallets/walletConnectors/{chunk-H2MX4NAL.js → chunk-LQ2U33WM.js} +29 -16
- package/dist/wallets/walletConnectors/{chunk-BNSBK5PQ.js → chunk-M7KXDTM6.js} +14 -4
- package/dist/wallets/walletConnectors/{chunk-CYYBGUSO.js → chunk-MKAXMNZM.js} +4 -4
- package/dist/wallets/walletConnectors/chunk-MNRRJSFM.js +272 -0
- package/dist/wallets/walletConnectors/chunk-MPFE6GP2.js +306 -0
- package/dist/wallets/walletConnectors/{chunk-EEY5CXKO.js → chunk-MPNSYA4E.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-NDLQSZ2F.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-G2LI5MVX.js → chunk-NDYGTKP5.js} +0 -2
- package/dist/wallets/walletConnectors/chunk-NLBRSN6Q.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-BSBRWKNG.js → chunk-NPF7NOA7.js} +69 -23
- package/dist/wallets/walletConnectors/{chunk-7DEZCGNV.js → chunk-NUJ6VD2U.js} +82 -16
- package/dist/wallets/walletConnectors/chunk-PSRATZTN.js +47 -0
- package/dist/wallets/walletConnectors/{chunk-MZOFZ2NQ.js → chunk-QCIIXMAZ.js} +2 -2
- package/dist/wallets/walletConnectors/{chunk-GHLLVM7O.js → chunk-RCI7QYCZ.js} +82 -18
- package/dist/wallets/walletConnectors/{chunk-QI2VB7LL.js → chunk-RHQXGWIW.js} +82 -16
- package/dist/wallets/walletConnectors/chunk-RPOLRZ4N.js +276 -0
- package/dist/wallets/walletConnectors/{chunk-5UEBEMEE.js → chunk-RQIUWXDF.js} +2 -1
- package/dist/wallets/walletConnectors/{chunk-RLR4Y5WO.js → chunk-SCD35IRD.js} +4 -0
- package/dist/wallets/walletConnectors/{chunk-EGOIRXTV.js → chunk-SOCVQ5N3.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-TTRSCIGA.js +194 -0
- package/dist/wallets/walletConnectors/chunk-TYUEB4VT.js +477 -0
- package/dist/wallets/walletConnectors/{chunk-WTYSUOKN.js → chunk-UZXTNCDO.js} +17 -5
- package/dist/wallets/walletConnectors/chunk-V33I7JGZ.js +156 -0
- package/dist/wallets/walletConnectors/chunk-V4Q3GNBX.js +484 -0
- package/dist/wallets/walletConnectors/chunk-VCCTIYUJ.js +63 -0
- package/dist/wallets/walletConnectors/chunk-VGOISIH3.js +223 -0
- package/dist/wallets/walletConnectors/chunk-XFGVJOQL.js +223 -0
- package/dist/wallets/walletConnectors/chunk-XIOPKI2F.js +47 -0
- package/dist/wallets/walletConnectors/{chunk-O6EAIC4G.js → chunk-XJ4SP35I.js} +4 -1
- package/dist/wallets/walletConnectors/chunk-XKGUE56S.js +226 -0
- package/dist/wallets/walletConnectors/chunk-XQEAXENJ.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-RY4RAB3D.js → chunk-YCZ4CZQ6.js} +106 -66
- package/dist/wallets/walletConnectors/chunk-Z2DC2J7S.js +345 -0
- package/dist/wallets/walletConnectors/chunk-Z2K3RHWK.js +47 -0
- package/dist/wallets/walletConnectors/chunk-ZASMSEC3.js +63 -0
- package/dist/wallets/walletConnectors/{chunk-G7PEFBL6.js → chunk-ZNBWRE3K.js} +2 -2
- package/dist/wallets/walletConnectors/chunk-ZNVFM2J2.js +156 -0
- package/dist/wallets/walletConnectors/chunk-ZQLQELFC.js +309 -0
- package/dist/wallets/walletConnectors/chunk-ZR7CEF64.js +63 -0
- package/dist/wallets/walletConnectors/chunk-ZSGFDK77.js +63 -0
- package/dist/wallets/walletConnectors/chunk-ZUIY2TRJ.js +1695 -0
- package/dist/wallets/walletConnectors/index.js +22 -22
- package/package.json +12 -11
- package/LICENSE +0 -9
- package/dist/solana/hooks/index.d.ts +0 -12
- package/dist/solana/hooks/useSolanaAccount.d.ts +0 -98
- package/dist/solana/hooks/useSolanaConnection.d.ts +0 -72
- package/dist/solana/hooks/useSolanaSendTransaction.d.ts +0 -98
- package/dist/solana/hooks/useSolanaSignMessage.d.ts +0 -82
- package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.d.ts +0 -45
- package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.js +0 -10
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.d.ts +0 -115
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.js +0 -12
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +0 -143
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +0 -13
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.d.ts +0 -18
- package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.js +0 -15
- package/dist/wallets/walletConnectors/chunk-2XZBPMQJ.js +0 -39
- package/dist/wallets/walletConnectors/chunk-3SVPZCA6.js +0 -71
- package/dist/wallets/walletConnectors/chunk-3ZZXE7EL.js +0 -39
- package/dist/wallets/walletConnectors/chunk-5QEUEPNY.js +0 -94
- package/dist/wallets/walletConnectors/chunk-75W4VLFA.js +0 -482
- package/dist/wallets/walletConnectors/chunk-B6JLYR3I.js +0 -66
- package/dist/wallets/walletConnectors/chunk-FROV5VDF.js +0 -346
- package/dist/wallets/walletConnectors/chunk-HKWBR5B7.js +0 -102
- package/dist/wallets/walletConnectors/chunk-K4APJ4PE.js +0 -96
- package/dist/wallets/walletConnectors/chunk-LJ2B47VF.js +0 -108
- package/dist/wallets/walletConnectors/chunk-LXINMUQC.js +0 -186
- package/dist/wallets/walletConnectors/chunk-MORUEOYX.js +0 -76
- package/dist/wallets/walletConnectors/chunk-MQTXA63X.js +0 -27
- package/dist/wallets/walletConnectors/chunk-N4FOYXQD.js +0 -63
- package/dist/wallets/walletConnectors/chunk-NEXFU6BZ.js +0 -39
- package/dist/wallets/walletConnectors/chunk-PMZJGS7X.js +0 -73
- package/dist/wallets/walletConnectors/chunk-QEHZXKRF.js +0 -39
- package/dist/wallets/walletConnectors/chunk-T6KJZAPR.js +0 -47
- package/dist/wallets/walletConnectors/chunk-UBCMBPX3.js +0 -58
- package/dist/wallets/walletConnectors/chunk-UGQXI3RN.js +0 -284
- package/dist/wallets/walletConnectors/chunk-WZZVA3LW.js +0 -101
- package/dist/wallets/walletConnectors/chunk-X4WUD7PF.js +0 -63
- package/dist/wallets/walletConnectors/chunk-XOQNQKZE.js +0 -98
- package/dist/wallets/walletConnectors/chunk-XPSCFUX6.js +0 -372
- package/dist/wallets/walletConnectors/chunk-Y3LWEDF6.js +0 -63
- package/dist/wallets/walletConnectors/chunk-ZJ6OFFD5.js +0 -95
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
BaseApiClient
|
|
4
|
+
} from "./chunk-LQ2U33WM.js";
|
|
5
|
+
import {
|
|
6
|
+
getSolanaNetwork
|
|
7
|
+
} from "./chunk-A7FIBI6X.js";
|
|
8
|
+
import {
|
|
9
|
+
createAbcError
|
|
10
|
+
} from "./chunk-TYUEB4VT.js";
|
|
11
|
+
|
|
12
|
+
// src/wallets/walletConnectors/abcWallet/api/SolanaApi.ts
|
|
13
|
+
import { PublicKey } from "@solana/web3.js";
|
|
14
|
+
var SolanaApi = class extends BaseApiClient {
|
|
15
|
+
/**
|
|
16
|
+
* Generate Solana wallet (Ed25519)
|
|
17
|
+
* Uses V3 API with Ed25519 curve
|
|
18
|
+
*
|
|
19
|
+
* @param pin - Hashed PIN (SHA-256)
|
|
20
|
+
* @param isRecover - Whether to recover existing wallet (default: false)
|
|
21
|
+
* @returns Solana wallet information
|
|
22
|
+
*/
|
|
23
|
+
async generateSolanaWallet(pin, isRecover = false) {
|
|
24
|
+
const endpoint = `/v3/wallet/${isRecover ? "recover" : "generate"}`;
|
|
25
|
+
const network = getSolanaNetwork();
|
|
26
|
+
const response = await this.request(endpoint, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
contentType: "json",
|
|
29
|
+
body: {
|
|
30
|
+
curve: "ed25519",
|
|
31
|
+
password: pin,
|
|
32
|
+
network
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
let result;
|
|
36
|
+
if (response.status === "success" && response.result) {
|
|
37
|
+
result = response.result;
|
|
38
|
+
} else if (response.encrypted_share && response.key_id) {
|
|
39
|
+
result = response;
|
|
40
|
+
} else {
|
|
41
|
+
throw createAbcError(
|
|
42
|
+
"WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
|
|
43
|
+
`Failed to ${isRecover ? "recover" : "generate"} Solana wallet`,
|
|
44
|
+
response
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
let address;
|
|
48
|
+
try {
|
|
49
|
+
address = this.deriveAddressFromPublicKey(result.public_key);
|
|
50
|
+
} catch (_error) {
|
|
51
|
+
address = result.public_key.startsWith("0x") ? result.public_key.slice(2) : result.public_key;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
uid: result.uid || "",
|
|
55
|
+
sessionId: result.share_id,
|
|
56
|
+
shareId: result.share_id,
|
|
57
|
+
publicKey: result.public_key,
|
|
58
|
+
address,
|
|
59
|
+
keyId: result.key_id || result.share_id,
|
|
60
|
+
// API returns snake_case key_id
|
|
61
|
+
encryptedShare: result.encrypted_share || "",
|
|
62
|
+
// API returns snake_case encrypted_share
|
|
63
|
+
secretStore: result.secret_store || "",
|
|
64
|
+
// API returns snake_case secret_store
|
|
65
|
+
network
|
|
66
|
+
// Use network from request (already has correct value)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Recover Solana wallet (alias for generateSolanaWallet with isRecover=true)
|
|
71
|
+
*
|
|
72
|
+
* @param pin - Hashed PIN (SHA-256)
|
|
73
|
+
* @returns Recovered Solana wallet information
|
|
74
|
+
*/
|
|
75
|
+
async recoverSolanaWallet(pin) {
|
|
76
|
+
return this.generateSolanaWallet(pin, true);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Derive Solana address from Ed25519 public key
|
|
80
|
+
* @param publicKey - Ed25519 public key (hex)
|
|
81
|
+
* @returns Solana address (base58)
|
|
82
|
+
*/
|
|
83
|
+
deriveAddressFromPublicKey(publicKey) {
|
|
84
|
+
const cleanKey = publicKey.startsWith("0x") ? publicKey.slice(2) : publicKey;
|
|
85
|
+
const bytes = new Uint8Array(
|
|
86
|
+
cleanKey.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
|
|
87
|
+
);
|
|
88
|
+
try {
|
|
89
|
+
const pubkey = new PublicKey(bytes);
|
|
90
|
+
return pubkey.toBase58();
|
|
91
|
+
} catch (error) {
|
|
92
|
+
console.error("[SolanaApi] Failed to encode address:", error);
|
|
93
|
+
return cleanKey;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Sign Solana transaction with Ed25519
|
|
98
|
+
* Reference: /v3/wallet/sign API requires only 5 fields
|
|
99
|
+
*/
|
|
100
|
+
async signSolanaTransaction(params) {
|
|
101
|
+
const network = getSolanaNetwork();
|
|
102
|
+
const response = await this.request("/v3/wallet/sign", {
|
|
103
|
+
method: "POST",
|
|
104
|
+
contentType: "json",
|
|
105
|
+
body: {
|
|
106
|
+
curve: "ed25519",
|
|
107
|
+
network,
|
|
108
|
+
key_id: params.keyId,
|
|
109
|
+
encrypted_share: params.encryptedShare,
|
|
110
|
+
secret_store: params.secretStore || "",
|
|
111
|
+
message: params.message
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
let signature;
|
|
115
|
+
if (response.status === "success" && response.result?.signature) {
|
|
116
|
+
signature = response.result.signature;
|
|
117
|
+
} else if (response.signature) {
|
|
118
|
+
signature = response.signature;
|
|
119
|
+
} else {
|
|
120
|
+
throw createAbcError(
|
|
121
|
+
"SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
|
|
122
|
+
"Failed to sign Solana transaction",
|
|
123
|
+
response
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
signature
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Sign Solana message with Ed25519
|
|
132
|
+
* Reference: /v3/wallet/sign API requires only 5 fields
|
|
133
|
+
*/
|
|
134
|
+
async signSolanaMessage(params) {
|
|
135
|
+
const network = getSolanaNetwork();
|
|
136
|
+
const response = await this.request("/v3/wallet/sign", {
|
|
137
|
+
method: "POST",
|
|
138
|
+
contentType: "json",
|
|
139
|
+
body: {
|
|
140
|
+
curve: "ed25519",
|
|
141
|
+
network,
|
|
142
|
+
key_id: params.keyId,
|
|
143
|
+
encrypted_share: params.encryptedShare,
|
|
144
|
+
secret_store: params.secretStore || "",
|
|
145
|
+
message: params.message
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
let signature;
|
|
149
|
+
if (response.status === "success" && response.result?.signature) {
|
|
150
|
+
signature = response.result.signature;
|
|
151
|
+
} else if (response.signature) {
|
|
152
|
+
signature = response.signature;
|
|
153
|
+
} else {
|
|
154
|
+
throw createAbcError(
|
|
155
|
+
"SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
|
|
156
|
+
"Failed to sign Solana message",
|
|
157
|
+
response
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
signature
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Generate Solana transfer transaction via ABC WaaS API
|
|
166
|
+
* This ensures the transaction uses the same RPC and blockhash as the server
|
|
167
|
+
*/
|
|
168
|
+
async generateTransferTransaction(params) {
|
|
169
|
+
const response = await this.request(
|
|
170
|
+
"/wapi/v2/solana/tx/generateTransferSOLTransaction",
|
|
171
|
+
{
|
|
172
|
+
method: "POST",
|
|
173
|
+
contentType: "json",
|
|
174
|
+
body: {
|
|
175
|
+
network: params.network,
|
|
176
|
+
amount: params.amount,
|
|
177
|
+
fromAddress: params.fromAddress,
|
|
178
|
+
toAddress: params.toAddress,
|
|
179
|
+
feePayerAddress: params.feePayerAddress
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
);
|
|
183
|
+
const responseData = response;
|
|
184
|
+
const serializedTx = responseData.data?.serialized_tx || response.status === "success" && response.result?.data?.serialized_tx;
|
|
185
|
+
if (!serializedTx) {
|
|
186
|
+
throw createAbcError(
|
|
187
|
+
"NETWORK_ERROR" /* NETWORK_ERROR */,
|
|
188
|
+
"Failed to generate Solana transaction",
|
|
189
|
+
response
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
serialized_tx: serializedTx
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Send Solana transaction
|
|
198
|
+
*/
|
|
199
|
+
async sendSolanaTransaction(params) {
|
|
200
|
+
const response = await this.request("/wapi/v2/solana/tx/sendTransaction", {
|
|
201
|
+
method: "POST",
|
|
202
|
+
contentType: "json",
|
|
203
|
+
body: {
|
|
204
|
+
network: params.network,
|
|
205
|
+
serializedTX: params.serializedTX,
|
|
206
|
+
signatures: params.signatures
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
const responseData = response;
|
|
210
|
+
const txHash = responseData.data || response.status === "success" && response.result?.data;
|
|
211
|
+
if (!txHash || typeof txHash !== "string") {
|
|
212
|
+
throw createAbcError(
|
|
213
|
+
"NETWORK_ERROR" /* NETWORK_ERROR */,
|
|
214
|
+
"Failed to send Solana transaction",
|
|
215
|
+
response
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
txHash
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
export {
|
|
225
|
+
SolanaApi
|
|
226
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
BitcoinApi
|
|
4
|
+
} from "./chunk-M7KXDTM6.js";
|
|
5
|
+
import {
|
|
6
|
+
SigningApi
|
|
7
|
+
} from "./chunk-HTD7IRKM.js";
|
|
8
|
+
import {
|
|
9
|
+
TransactionApi
|
|
10
|
+
} from "./chunk-HFC4AK72.js";
|
|
11
|
+
import {
|
|
12
|
+
AuthApi
|
|
13
|
+
} from "./chunk-ZQLQELFC.js";
|
|
14
|
+
import {
|
|
15
|
+
WalletApi
|
|
16
|
+
} from "./chunk-MKAXMNZM.js";
|
|
17
|
+
import {
|
|
18
|
+
SolanaApi
|
|
19
|
+
} from "./chunk-JQ57SCY6.js";
|
|
20
|
+
|
|
21
|
+
// src/wallets/walletConnectors/abcWallet/api/index.ts
|
|
22
|
+
var AbcWaasApiClient = class {
|
|
23
|
+
constructor(config) {
|
|
24
|
+
this.auth = new AuthApi(config);
|
|
25
|
+
this.wallet = new WalletApi(config);
|
|
26
|
+
this.transaction = new TransactionApi(config);
|
|
27
|
+
this.signing = new SigningApi(config);
|
|
28
|
+
this.solana = new SolanaApi(config);
|
|
29
|
+
this.bitcoin = new BitcoinApi(config);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if user is authenticated
|
|
33
|
+
*/
|
|
34
|
+
isAuthenticated() {
|
|
35
|
+
return this.auth.isAuthenticated();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if access token is expired
|
|
39
|
+
*/
|
|
40
|
+
isTokenExpired() {
|
|
41
|
+
return this.auth.isTokenExpired();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get current access token
|
|
45
|
+
*/
|
|
46
|
+
getAccessToken() {
|
|
47
|
+
return this.auth.getAccessToken();
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Logout (clear tokens)
|
|
51
|
+
*/
|
|
52
|
+
async logout() {
|
|
53
|
+
await this.auth.logout();
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
function createAbcWaasApiClient(config) {
|
|
57
|
+
return new AbcWaasApiClient(config);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export {
|
|
61
|
+
AbcWaasApiClient,
|
|
62
|
+
createAbcWaasApiClient
|
|
63
|
+
};
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
loadAuthState,
|
|
4
4
|
saveAuthState
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-TYUEB4VT.js";
|
|
6
6
|
|
|
7
|
-
// src/wallets/walletConnectors/abcWallet/
|
|
8
|
-
var
|
|
7
|
+
// src/wallets/walletConnectors/abcWallet/abcBitcoinConnector.ts
|
|
8
|
+
var AbcBitcoinConnector = class {
|
|
9
9
|
constructor(config) {
|
|
10
10
|
this.wallet = null;
|
|
11
11
|
this.connected = false;
|
|
@@ -13,6 +13,7 @@ var AbcSolanaConnector = class {
|
|
|
13
13
|
this.connectListeners = /* @__PURE__ */ new Set();
|
|
14
14
|
this.disconnectListeners = /* @__PURE__ */ new Set();
|
|
15
15
|
this.accountsChangedListeners = /* @__PURE__ */ new Set();
|
|
16
|
+
this.networkChangedListeners = /* @__PURE__ */ new Set();
|
|
16
17
|
this.client = config.client;
|
|
17
18
|
this.provider = config.provider;
|
|
18
19
|
this.setupProviderListeners();
|
|
@@ -41,78 +42,126 @@ var AbcSolanaConnector = class {
|
|
|
41
42
|
listener(accounts);
|
|
42
43
|
}
|
|
43
44
|
});
|
|
45
|
+
this.provider.on("networkChanged", (network) => {
|
|
46
|
+
for (const listener of this.networkChangedListeners) {
|
|
47
|
+
listener(network);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
44
50
|
}
|
|
45
51
|
/**
|
|
46
|
-
* Connect
|
|
52
|
+
* Connect Bitcoin wallet
|
|
47
53
|
*/
|
|
48
54
|
async connect() {
|
|
49
55
|
try {
|
|
50
56
|
const authState = loadAuthState();
|
|
51
|
-
console.log("\u{1F527}
|
|
57
|
+
console.log("[BitcoinConnector] \u{1F527} connect() called:", {
|
|
52
58
|
hasAuthState: !!authState,
|
|
53
59
|
isAuthenticated: authState?.isAuthenticated,
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
hasBitcoinWallet: !!authState?.bitcoinWallet,
|
|
61
|
+
bitcoinAddress: authState?.bitcoinWallet?.address
|
|
56
62
|
});
|
|
57
|
-
if (!authState || !authState.isAuthenticated || !authState.
|
|
58
|
-
throw new Error("
|
|
63
|
+
if (!authState || !authState.isAuthenticated || !authState.bitcoinWallet) {
|
|
64
|
+
throw new Error("BITCOIN_LOGIN_REQUIRED");
|
|
59
65
|
}
|
|
60
|
-
this.wallet = authState.
|
|
61
|
-
this.provider.setWallet(authState.
|
|
66
|
+
this.wallet = authState.bitcoinWallet;
|
|
67
|
+
this.provider.setWallet(authState.bitcoinWallet);
|
|
62
68
|
this.provider.setRequestPinCallback(async () => {
|
|
63
69
|
if (!authState.pin) {
|
|
64
|
-
console.error("\u274C PIN not available in authState");
|
|
70
|
+
console.error("[BitcoinConnector] \u274C PIN not available in authState");
|
|
65
71
|
throw new Error("PIN not available");
|
|
66
72
|
}
|
|
67
73
|
return authState.pin;
|
|
68
74
|
});
|
|
69
|
-
console.log("\u2705
|
|
70
|
-
address: authState.
|
|
71
|
-
publicKey: authState.
|
|
75
|
+
console.log("[BitcoinConnector] \u2705 Wallet and PIN callback set:", {
|
|
76
|
+
address: authState.bitcoinWallet.address,
|
|
77
|
+
publicKey: authState.bitcoinWallet.publicKey,
|
|
78
|
+
addressType: authState.bitcoinWallet.addressType,
|
|
79
|
+
network: authState.bitcoinWallet.network,
|
|
72
80
|
hasPIN: !!authState.pin
|
|
73
81
|
});
|
|
74
|
-
const result = await this.provider.connect();
|
|
75
82
|
this.connected = true;
|
|
76
|
-
return
|
|
83
|
+
return {
|
|
84
|
+
address: authState.bitcoinWallet.address,
|
|
85
|
+
publicKey: authState.bitcoinWallet.publicKey,
|
|
86
|
+
network: authState.bitcoinWallet.network
|
|
87
|
+
};
|
|
77
88
|
} catch (error) {
|
|
78
|
-
if (error.message === "
|
|
89
|
+
if (error.message === "BITCOIN_LOGIN_REQUIRED") {
|
|
79
90
|
throw error;
|
|
80
91
|
}
|
|
81
|
-
console.error("
|
|
92
|
+
console.error("[BitcoinConnector] \u274C connect error:", error);
|
|
82
93
|
throw error;
|
|
83
94
|
}
|
|
84
95
|
}
|
|
85
96
|
/**
|
|
86
|
-
* Disconnect
|
|
97
|
+
* Disconnect Bitcoin wallet
|
|
87
98
|
*/
|
|
88
99
|
async disconnect() {
|
|
89
100
|
try {
|
|
90
|
-
|
|
101
|
+
this.provider.clearWallet();
|
|
91
102
|
this.wallet = null;
|
|
92
103
|
this.connected = false;
|
|
93
|
-
console.log("\u2705
|
|
104
|
+
console.log("[BitcoinConnector] \u2705 Wallet disconnected");
|
|
94
105
|
} catch (error) {
|
|
95
|
-
console.error("
|
|
106
|
+
console.error("[BitcoinConnector] \u274C disconnect error:", error);
|
|
96
107
|
throw error;
|
|
97
108
|
}
|
|
98
109
|
}
|
|
99
110
|
/**
|
|
100
|
-
* Get
|
|
111
|
+
* Get Bitcoin address
|
|
101
112
|
*/
|
|
102
|
-
async
|
|
103
|
-
return this.provider.
|
|
113
|
+
async getAddress() {
|
|
114
|
+
return this.provider.getAddress();
|
|
104
115
|
}
|
|
105
116
|
/**
|
|
106
|
-
* Get public key
|
|
117
|
+
* Get compressed public key (33 bytes)
|
|
107
118
|
*/
|
|
108
|
-
getPublicKey() {
|
|
119
|
+
async getPublicKey() {
|
|
109
120
|
return this.provider.getPublicKey();
|
|
110
121
|
}
|
|
111
122
|
/**
|
|
112
|
-
* Get address
|
|
123
|
+
* Get address type (bech32, p2pkh, etc.)
|
|
113
124
|
*/
|
|
114
|
-
|
|
115
|
-
return this.provider.
|
|
125
|
+
getAddressType() {
|
|
126
|
+
return this.provider.getAddressType();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get UTXOs
|
|
130
|
+
*/
|
|
131
|
+
async getUtxos(forceRefresh = false) {
|
|
132
|
+
return this.provider.getUtxos(forceRefresh);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get balance (in satoshis)
|
|
136
|
+
*/
|
|
137
|
+
async getBalance(forceRefresh = false) {
|
|
138
|
+
return this.provider.getBalance(forceRefresh);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Estimate transaction fee
|
|
142
|
+
*/
|
|
143
|
+
async estimateFee(targetBlocks = 6) {
|
|
144
|
+
return this.provider.estimateFee(targetBlocks);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Sign Bitcoin message (BIP-322)
|
|
148
|
+
* NOTE: Currently not supported - Bitcoin uses v2 API which doesn't have message signing endpoint
|
|
149
|
+
*/
|
|
150
|
+
async signMessage(message) {
|
|
151
|
+
return this.provider.signMessage(message);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Send Bitcoin transaction (high-level API)
|
|
155
|
+
* Creates, signs, and broadcasts transaction
|
|
156
|
+
*/
|
|
157
|
+
async sendTransaction(params) {
|
|
158
|
+
return this.provider.sendTransaction(params);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Broadcast signed transaction to network (low-level API)
|
|
162
|
+
*/
|
|
163
|
+
async broadcastTransaction(rawTransaction, psbt) {
|
|
164
|
+
return this.provider.broadcastTransaction(rawTransaction, psbt);
|
|
116
165
|
}
|
|
117
166
|
/**
|
|
118
167
|
* Check if authorized (has valid session)
|
|
@@ -123,10 +172,10 @@ var AbcSolanaConnector = class {
|
|
|
123
172
|
if (!authState || !authState.isAuthenticated) {
|
|
124
173
|
return false;
|
|
125
174
|
}
|
|
126
|
-
if (!authState.
|
|
175
|
+
if (!authState.bitcoinWallet) {
|
|
127
176
|
return false;
|
|
128
177
|
}
|
|
129
|
-
return this.client.
|
|
178
|
+
return !this.client.auth.isTokenExpired();
|
|
130
179
|
} catch {
|
|
131
180
|
return false;
|
|
132
181
|
}
|
|
@@ -150,34 +199,10 @@ var AbcSolanaConnector = class {
|
|
|
150
199
|
return this.provider;
|
|
151
200
|
}
|
|
152
201
|
/**
|
|
153
|
-
*
|
|
154
|
-
*/
|
|
155
|
-
async signTransaction(transaction) {
|
|
156
|
-
return this.provider.signTransaction(transaction);
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Sign all transactions
|
|
202
|
+
* Get wallet info
|
|
160
203
|
*/
|
|
161
|
-
|
|
162
|
-
return this.provider.
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Sign message
|
|
166
|
-
*/
|
|
167
|
-
async signMessage(message) {
|
|
168
|
-
return this.provider.signMessage(message);
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Send transaction
|
|
172
|
-
*/
|
|
173
|
-
async sendTransaction(transaction) {
|
|
174
|
-
return this.provider.sendTransaction(transaction);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Sign and send transaction
|
|
178
|
-
*/
|
|
179
|
-
async signAndSendTransaction(transaction) {
|
|
180
|
-
return this.provider.signAndSendTransaction(transaction);
|
|
204
|
+
getWalletInfo() {
|
|
205
|
+
return this.provider.getWalletInfo();
|
|
181
206
|
}
|
|
182
207
|
/**
|
|
183
208
|
* Switch network
|
|
@@ -185,15 +210,23 @@ var AbcSolanaConnector = class {
|
|
|
185
210
|
async switchNetwork(network) {
|
|
186
211
|
this.provider.setNetwork(network);
|
|
187
212
|
const authState = loadAuthState();
|
|
188
|
-
if (authState?.
|
|
213
|
+
if (authState?.bitcoinWallet) {
|
|
214
|
+
authState.bitcoinWallet.network = network === "mainnet" ? "bitcoin" /* Mainnet */ : "bitcoin_testnet" /* Testnet */;
|
|
189
215
|
saveAuthState(authState);
|
|
190
216
|
}
|
|
217
|
+
console.log("[BitcoinConnector] \u{1F504} Network switched to:", network);
|
|
191
218
|
}
|
|
192
219
|
/**
|
|
193
220
|
* Get current network
|
|
194
221
|
*/
|
|
195
222
|
getNetwork() {
|
|
196
|
-
return this.provider.getNetwork().
|
|
223
|
+
return this.provider.getNetwork().type;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Refresh UTXO cache
|
|
227
|
+
*/
|
|
228
|
+
async refreshUtxos() {
|
|
229
|
+
return this.provider.refreshUtxos();
|
|
197
230
|
}
|
|
198
231
|
on(event, listener) {
|
|
199
232
|
switch (event) {
|
|
@@ -206,6 +239,9 @@ var AbcSolanaConnector = class {
|
|
|
206
239
|
case "accountsChanged":
|
|
207
240
|
this.accountsChangedListeners.add(listener);
|
|
208
241
|
break;
|
|
242
|
+
case "networkChanged":
|
|
243
|
+
this.networkChangedListeners.add(listener);
|
|
244
|
+
break;
|
|
209
245
|
}
|
|
210
246
|
}
|
|
211
247
|
off(event, listener) {
|
|
@@ -219,6 +255,9 @@ var AbcSolanaConnector = class {
|
|
|
219
255
|
case "accountsChanged":
|
|
220
256
|
this.accountsChangedListeners.delete(listener);
|
|
221
257
|
break;
|
|
258
|
+
case "networkChanged":
|
|
259
|
+
this.networkChangedListeners.delete(listener);
|
|
260
|
+
break;
|
|
222
261
|
}
|
|
223
262
|
}
|
|
224
263
|
/**
|
|
@@ -228,13 +267,14 @@ var AbcSolanaConnector = class {
|
|
|
228
267
|
this.connectListeners.clear();
|
|
229
268
|
this.disconnectListeners.clear();
|
|
230
269
|
this.accountsChangedListeners.clear();
|
|
270
|
+
this.networkChangedListeners.clear();
|
|
231
271
|
}
|
|
232
272
|
};
|
|
233
|
-
function
|
|
234
|
-
return new
|
|
273
|
+
function createAbcBitcoinConnector(config) {
|
|
274
|
+
return new AbcBitcoinConnector(config);
|
|
235
275
|
}
|
|
236
276
|
|
|
237
277
|
export {
|
|
238
|
-
|
|
239
|
-
|
|
278
|
+
AbcBitcoinConnector,
|
|
279
|
+
createAbcBitcoinConnector
|
|
240
280
|
};
|