@talken/talkenkit 2.3.7 → 2.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/Arc-ILTINY4C.js +8 -0
  2. package/dist/Brave-4L5B7JJR.js +8 -0
  3. package/dist/Browser-XMB4J5WD.js +8 -0
  4. package/dist/Chrome-6ZDQIHC5.js +8 -0
  5. package/dist/Edge-OAWCEU7H.js +8 -0
  6. package/dist/Firefox-O66FZK3V.js +8 -0
  7. package/dist/Linux-NUJF4EPC.js +8 -0
  8. package/dist/Macos-46EJ2NPK.js +8 -0
  9. package/dist/Opera-KTUB3UWN.js +8 -0
  10. package/dist/Safari-A3Q6PIT2.js +8 -0
  11. package/dist/Windows-NL32NG52.js +8 -0
  12. package/dist/abcWallet-ES4OPRSK.js +8 -0
  13. package/dist/ar_AR-YBBYUEGS.js +8 -0
  14. package/dist/arbitrum-D2TUFPZI.js +8 -0
  15. package/dist/argentWallet-A5HM5FRP.js +8 -0
  16. package/dist/assets-4NDWRKXE.js +8 -0
  17. package/dist/avalanche-BOOSH35S.js +8 -0
  18. package/dist/base-3JMRS35B.js +8 -0
  19. package/dist/berasigWallet-6IOU73YL.js +8 -0
  20. package/dist/bestWallet-6LJUU6OL.js +8 -0
  21. package/dist/bifrostWallet-SLPPXZ2K.js +8 -0
  22. package/dist/binanceWallet-Z67J7362.js +8 -0
  23. package/dist/bitgetWallet-DLLOWMCI.js +8 -0
  24. package/dist/bitskiWallet-CPOXGABT.js +8 -0
  25. package/dist/bitverseWallet-SAK4MIS6.js +8 -0
  26. package/dist/blast-4GF24NR7.js +8 -0
  27. package/dist/bloomWallet-YIRCNQZJ.js +8 -0
  28. package/dist/braveWallet-PNBKQKJC.js +8 -0
  29. package/dist/bsc-KU6MBOYR.js +8 -0
  30. package/dist/bybitWallet-GCDBAJKO.js +8 -0
  31. package/dist/celo-5A5VXMPX.js +8 -0
  32. package/dist/chunk-M2CMB5B2.js +93 -0
  33. package/dist/chunk-TJX4M23U.js +27 -0
  34. package/dist/clvWallet-R6YRCMZO.js +8 -0
  35. package/dist/coin98Wallet-4Y3ROAGP.js +8 -0
  36. package/dist/coinbaseWallet-L4QDZB5W.js +8 -0
  37. package/dist/compassWallet-NNBX35AV.js +8 -0
  38. package/dist/components/AbcLoginModal/AbcAuthModal.d.ts +11 -1
  39. package/dist/components/ConnectButton/ConnectButtonRenderer.d.ts +1 -1
  40. package/dist/components/ConnectOptions/CompactMobileOptions.css.d.ts +26 -0
  41. package/dist/components/ConnectOptions/CompactMobileOptions.d.ts +19 -0
  42. package/dist/components/ConnectOptions/DesktopOptions.d.ts +9 -2
  43. package/dist/components/RainbowKitProvider/RainbowKitConfigProvider.d.ts +20 -0
  44. package/dist/components/RainbowKitProvider/RainbowKitProvider.d.ts +17 -2
  45. package/dist/config/networks.d.ts +125 -0
  46. package/dist/connect-Q2RLUT5B.js +8 -0
  47. package/dist/contexts/index.d.ts +2 -2
  48. package/dist/coreWallet-PN2LMNGN.js +8 -0
  49. package/dist/create-HQ4QXTKY.js +8 -0
  50. package/dist/cronos-KZAB32FC.js +8 -0
  51. package/dist/dawnWallet-AMO43DL3.js +8 -0
  52. package/dist/de_DE-RUWMVYCQ.js +8 -0
  53. package/dist/desigWallet-AD335WX5.js +8 -0
  54. package/dist/en_US-NQ25CUR4.js +8 -0
  55. package/dist/encryption-3YHRI3PA.js +14 -0
  56. package/dist/enkryptWallet-OOP27GE2.js +8 -0
  57. package/dist/es_419-HKJPYJRI.js +8 -0
  58. package/dist/ethereum-WAFT6DML.js +8 -0
  59. package/dist/flow-XANNOAPJ.js +8 -0
  60. package/dist/foxWallet-UDUWOW52.js +8 -0
  61. package/dist/fr_FR-2O5ZDLPQ.js +1356 -0
  62. package/dist/frameWallet-BEABTFIT.js +8 -0
  63. package/dist/frontierWallet-RG47M3C5.js +8 -0
  64. package/dist/gateWallet-XOP74BMB.js +8 -0
  65. package/dist/gnosis-7GFI4V27.js +8 -0
  66. package/dist/hardhat-6HKZWC4T.js +8 -0
  67. package/dist/hi_IN-XRZ4YIUW.js +8 -0
  68. package/dist/hooks/useDeviceType.d.ts +9 -0
  69. package/dist/id_ID-REEY4CSS.js +8 -0
  70. package/dist/imTokenWallet-LTPKXYUD.js +8 -0
  71. package/dist/index.d.ts +9 -1
  72. package/dist/index.js +1960 -1040
  73. package/dist/injectedWallet-YCFZTULL.js +8 -0
  74. package/dist/iopayWallet-XS37QAUO.js +8 -0
  75. package/dist/ja_JP-2OPCVN6X.js +8 -0
  76. package/dist/kaia-DQ3OSYXE.js +8 -0
  77. package/dist/kaiaWallet-2XZDQZ63.js +8 -0
  78. package/dist/kaikasWallet-V2GCFPEB.js +8 -0
  79. package/dist/ko_KR-DDXBZTYT.js +8 -0
  80. package/dist/krakenWallet-3VM7ZM2O.js +8 -0
  81. package/dist/kresusWallet-4MXFQP4P.js +8 -0
  82. package/dist/ledgerWallet-YC3HF3NJ.js +8 -0
  83. package/dist/login-DGIK764Z.js +8 -0
  84. package/dist/magicEden-BLYGUG47.js +8 -0
  85. package/dist/manta-OEF3QP66.js +8 -0
  86. package/dist/mantle-EYIH4GGM.js +8 -0
  87. package/dist/metaMaskWallet-ZZMFVM52.js +8 -0
  88. package/dist/mewWallet-D6JN37EZ.js +8 -0
  89. package/dist/ms_MY-PX7G4XTD.js +8 -0
  90. package/dist/nestWallet-X3CDHKNV.js +8 -0
  91. package/dist/oktoWallet-ZYLL2RLN.js +8 -0
  92. package/dist/okxWallet-FLICEG4S.js +8 -0
  93. package/dist/omniWallet-DAQHKHUN.js +8 -0
  94. package/dist/oneInchWallet-BRGGUXND.js +8 -0
  95. package/dist/oneKeyWallet-KDU2JIFD.js +8 -0
  96. package/dist/optimism-6GXRYJDW.js +8 -0
  97. package/dist/paraSwapWallet-7UHWT54G.js +8 -0
  98. package/dist/phantomWallet-BSCGZT6L.js +8 -0
  99. package/dist/polygon-YNJM552P.js +8 -0
  100. package/dist/pt_BR-A5R4SBSC.js +8 -0
  101. package/dist/rabbyWallet-RZIUL3YN.js +8 -0
  102. package/dist/rainbowWallet-4ALDT5ZL.js +8 -0
  103. package/dist/ramperWallet-IB3JRE2F.js +8 -0
  104. package/dist/refresh-R5NYTT3S.js +8 -0
  105. package/dist/ronin-LU7LZPWA.js +8 -0
  106. package/dist/roninWallet-BS7VDK7U.js +8 -0
  107. package/dist/ru_RU-4QDZLRSW.js +1356 -0
  108. package/dist/safeWallet-5NR62MJV.js +8 -0
  109. package/dist/safeheronWallet-7ELUSU44.js +8 -0
  110. package/dist/safepalWallet-CZJABQ5N.js +8 -0
  111. package/dist/scan-BVZ7DVJ4.js +8 -0
  112. package/dist/scroll-XRP46UTI.js +8 -0
  113. package/dist/secure-GEK7TTJY.js +8 -0
  114. package/dist/seifWallet-XLBMTX4R.js +8 -0
  115. package/dist/sign-PREOQ4RR.js +8 -0
  116. package/dist/solana/SolanaWalletProvider.d.ts +1 -1
  117. package/dist/subWallet-47USA4OE.js +8 -0
  118. package/dist/tahoWallet-N3XXJ3NW.js +8 -0
  119. package/dist/talismanWallet-SV3B42TQ.js +8 -0
  120. package/dist/th_TH-4TWPYDKX.js +1356 -0
  121. package/dist/themes/baseTheme.js +1 -0
  122. package/dist/themes/darkTheme.js +1 -0
  123. package/dist/themes/lightTheme.js +1 -0
  124. package/dist/themes/midnightTheme.js +1 -0
  125. package/dist/tokenPocketWallet-7IYW3MIL.js +8 -0
  126. package/dist/tokenaryWallet-7D2LN65X.js +8 -0
  127. package/dist/tr_TR-C37KIU7M.js +1356 -0
  128. package/dist/trustWallet-HJQBMBC6.js +8 -0
  129. package/dist/uk_UA-I77HS4GO.js +1356 -0
  130. package/dist/uniswapWallet-JZ2ULELN.js +8 -0
  131. package/dist/utils/abcWaasAdapter.d.ts +75 -0
  132. package/dist/valoraWallet-PCTL6UBB.js +8 -0
  133. package/dist/vi_VN-KVPDLW26.js +8 -0
  134. package/dist/walletConnectWallet-AJ36XVBT.js +8 -0
  135. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.d.ts +11 -8
  136. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +1 -1
  137. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +4 -11
  138. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
  139. package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.d.ts +1 -19
  140. package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +1 -1
  141. package/dist/wallets/walletConnectors/abcWallet/api/index.js +5 -5
  142. package/dist/wallets/walletConnectors/abcWallet/index.js +5 -5
  143. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +2 -0
  144. package/dist/wallets/walletConnectors/chunk-2GIBC7XF.js +39 -0
  145. package/dist/wallets/walletConnectors/chunk-2J66VMY5.js +152 -0
  146. package/dist/wallets/walletConnectors/chunk-34WMJDUY.js +481 -0
  147. package/dist/wallets/walletConnectors/chunk-3J3XZMJ7.js +39 -0
  148. package/dist/wallets/walletConnectors/chunk-3WVSOTC4.js +63 -0
  149. package/dist/wallets/walletConnectors/chunk-43LOEA55.js +63 -0
  150. package/dist/wallets/walletConnectors/chunk-4IRVZPIN.js +63 -0
  151. package/dist/wallets/walletConnectors/chunk-4NLOE5S3.js +63 -0
  152. package/dist/wallets/walletConnectors/chunk-5MSMALF7.js +63 -0
  153. package/dist/wallets/walletConnectors/chunk-5OFAP55G.js +44 -0
  154. package/dist/wallets/walletConnectors/chunk-6KOHIL7T.js +63 -0
  155. package/dist/wallets/walletConnectors/chunk-6YPK343Z.js +63 -0
  156. package/dist/wallets/walletConnectors/chunk-7FFIZE76.js +63 -0
  157. package/dist/wallets/walletConnectors/chunk-7P5HZGEV.js +627 -0
  158. package/dist/wallets/walletConnectors/chunk-A6LBRVGP.js +63 -0
  159. package/dist/wallets/walletConnectors/chunk-BKXPGZMQ.js +228 -0
  160. package/dist/wallets/walletConnectors/chunk-CNHVIXPV.js +228 -0
  161. package/dist/wallets/walletConnectors/chunk-DAZZIITX.js +1678 -0
  162. package/dist/wallets/walletConnectors/chunk-ESRU5KCF.js +151 -0
  163. package/dist/wallets/walletConnectors/chunk-F4JFONDA.js +601 -0
  164. package/dist/wallets/walletConnectors/chunk-GXHCAEWR.js +63 -0
  165. package/dist/wallets/walletConnectors/chunk-HDYBRMYW.js +194 -0
  166. package/dist/wallets/walletConnectors/chunk-HOE4UOHR.js +514 -0
  167. package/dist/wallets/walletConnectors/chunk-HS2FAOAJ.js +63 -0
  168. package/dist/wallets/walletConnectors/chunk-IA4EQFSS.js +474 -0
  169. package/dist/wallets/walletConnectors/chunk-IHM7I7D5.js +63 -0
  170. package/dist/wallets/walletConnectors/chunk-JJAJOFZI.js +63 -0
  171. package/dist/wallets/walletConnectors/chunk-KFIUFVQH.js +624 -0
  172. package/dist/wallets/walletConnectors/chunk-KFROJI25.js +535 -0
  173. package/dist/wallets/walletConnectors/chunk-KHVILXGK.js +514 -0
  174. package/dist/wallets/walletConnectors/chunk-LGT7LQAJ.js +63 -0
  175. package/dist/wallets/walletConnectors/chunk-LHBQ2Z3Q.js +63 -0
  176. package/dist/wallets/walletConnectors/chunk-M76GLEFL.js +63 -0
  177. package/dist/wallets/walletConnectors/chunk-MFIE6UCG.js +63 -0
  178. package/dist/wallets/walletConnectors/chunk-NA5G3LSC.js +63 -0
  179. package/dist/wallets/walletConnectors/chunk-NASGGIUS.js +63 -0
  180. package/dist/wallets/walletConnectors/chunk-NKJLO4QH.js +39 -0
  181. package/dist/wallets/walletConnectors/chunk-NURTFXQU.js +568 -0
  182. package/dist/wallets/walletConnectors/chunk-NVM3JZ4L.js +63 -0
  183. package/dist/wallets/walletConnectors/chunk-NWDLOM7Q.js +646 -0
  184. package/dist/wallets/walletConnectors/chunk-OHRTTVNJ.js +44 -0
  185. package/dist/wallets/walletConnectors/chunk-OMYDLPUM.js +63 -0
  186. package/dist/wallets/walletConnectors/chunk-P2MTINFI.js +280 -0
  187. package/dist/wallets/walletConnectors/chunk-PLL7P7HY.js +63 -0
  188. package/dist/wallets/walletConnectors/chunk-PUFQKZA7.js +63 -0
  189. package/dist/wallets/walletConnectors/chunk-RLBGBBIO.js +309 -0
  190. package/dist/wallets/walletConnectors/chunk-RUZBOPMI.js +63 -0
  191. package/dist/wallets/walletConnectors/chunk-S2B56ZVJ.js +481 -0
  192. package/dist/wallets/walletConnectors/chunk-SFP47DS6.js +63 -0
  193. package/dist/wallets/walletConnectors/chunk-SNZL5LJ6.js +637 -0
  194. package/dist/wallets/walletConnectors/chunk-SPR4W5TG.js +474 -0
  195. package/dist/wallets/walletConnectors/chunk-SSDCG5BG.js +63 -0
  196. package/dist/wallets/walletConnectors/chunk-SUXK3JW6.js +280 -0
  197. package/dist/wallets/walletConnectors/chunk-TUUNSVKZ.js +345 -0
  198. package/dist/wallets/walletConnectors/chunk-U2CUEL35.js +240 -0
  199. package/dist/wallets/walletConnectors/chunk-VLEVJVJR.js +63 -0
  200. package/dist/wallets/walletConnectors/chunk-W2VDZD74.js +478 -0
  201. package/dist/wallets/walletConnectors/chunk-WAO3KL5U.js +285 -0
  202. package/dist/wallets/walletConnectors/chunk-WYSKBMHW.js +280 -0
  203. package/dist/wallets/walletConnectors/chunk-XDRZSWHB.js +63 -0
  204. package/dist/wallets/walletConnectors/chunk-XKVRDEDK.js +63 -0
  205. package/dist/wallets/walletConnectors/chunk-XYAAXWWU.js +63 -0
  206. package/dist/wallets/walletConnectors/chunk-XYPR4BAF.js +436 -0
  207. package/dist/wallets/walletConnectors/index.js +68 -68
  208. package/dist/wigwamWallet-D3MVGB5Z.js +8 -0
  209. package/dist/xdc-5NQHQJE5.js +8 -0
  210. package/dist/xdefiWallet-B4O6HAIP.js +8 -0
  211. package/dist/zealWallet-6SPNICRX.js +8 -0
  212. package/dist/zerionWallet-XZ3JCAOO.js +8 -0
  213. package/dist/zetachain-U6IILKZJ.js +8 -0
  214. package/dist/zh_CN-KGLAIP3N.js +8 -0
  215. package/dist/zh_HK-AEXEN6P6.js +8 -0
  216. package/dist/zh_TW-6C7R5V3K.js +8 -0
  217. package/dist/zkSync-TMPB52ZN.js +8 -0
  218. package/dist/zora-S46CHEOU.js +8 -0
  219. package/package.json +1 -1
@@ -0,0 +1,280 @@
1
+ "use client";
2
+ import {
3
+ loadAuthState,
4
+ saveAuthState
5
+ } from "./chunk-W2VDZD74.js";
6
+
7
+ // src/wallets/walletConnectors/abcWallet/abcBitcoinConnector.ts
8
+ var AbcBitcoinConnector = class {
9
+ constructor(config) {
10
+ this.wallet = null;
11
+ this.connected = false;
12
+ // Event listeners
13
+ this.connectListeners = /* @__PURE__ */ new Set();
14
+ this.disconnectListeners = /* @__PURE__ */ new Set();
15
+ this.accountsChangedListeners = /* @__PURE__ */ new Set();
16
+ this.networkChangedListeners = /* @__PURE__ */ new Set();
17
+ this.client = config.client;
18
+ this.provider = config.provider;
19
+ this.setupProviderListeners();
20
+ }
21
+ /**
22
+ * Setup provider event listeners
23
+ */
24
+ setupProviderListeners() {
25
+ this.provider.on("connect", () => {
26
+ this.connected = true;
27
+ if (this.wallet) {
28
+ for (const listener of this.connectListeners) {
29
+ listener(this.wallet);
30
+ }
31
+ }
32
+ });
33
+ this.provider.on("disconnect", () => {
34
+ this.connected = false;
35
+ this.wallet = null;
36
+ for (const listener of this.disconnectListeners) {
37
+ listener();
38
+ }
39
+ });
40
+ this.provider.on("accountsChanged", (accounts) => {
41
+ for (const listener of this.accountsChangedListeners) {
42
+ listener(accounts);
43
+ }
44
+ });
45
+ this.provider.on("networkChanged", (network) => {
46
+ for (const listener of this.networkChangedListeners) {
47
+ listener(network);
48
+ }
49
+ });
50
+ }
51
+ /**
52
+ * Connect Bitcoin wallet
53
+ */
54
+ async connect() {
55
+ try {
56
+ const authState = loadAuthState();
57
+ console.log("[BitcoinConnector] \u{1F527} connect() called:", {
58
+ hasAuthState: !!authState,
59
+ isAuthenticated: authState?.isAuthenticated,
60
+ hasBitcoinWallet: !!authState?.bitcoinWallet,
61
+ bitcoinAddress: authState?.bitcoinWallet?.address
62
+ });
63
+ if (!authState || !authState.isAuthenticated || !authState.bitcoinWallet) {
64
+ throw new Error("BITCOIN_LOGIN_REQUIRED");
65
+ }
66
+ this.wallet = authState.bitcoinWallet;
67
+ this.provider.setWallet(authState.bitcoinWallet);
68
+ this.provider.setRequestPinCallback(async () => {
69
+ if (!authState.pin) {
70
+ console.error("[BitcoinConnector] \u274C PIN not available in authState");
71
+ throw new Error("PIN not available");
72
+ }
73
+ return authState.pin;
74
+ });
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,
80
+ hasPIN: !!authState.pin
81
+ });
82
+ this.connected = true;
83
+ return {
84
+ address: authState.bitcoinWallet.address,
85
+ publicKey: authState.bitcoinWallet.publicKey,
86
+ network: authState.bitcoinWallet.network
87
+ };
88
+ } catch (error) {
89
+ if (error.message === "BITCOIN_LOGIN_REQUIRED") {
90
+ throw error;
91
+ }
92
+ console.error("[BitcoinConnector] \u274C connect error:", error);
93
+ throw error;
94
+ }
95
+ }
96
+ /**
97
+ * Disconnect Bitcoin wallet
98
+ */
99
+ async disconnect() {
100
+ try {
101
+ this.provider.clearWallet();
102
+ this.wallet = null;
103
+ this.connected = false;
104
+ console.log("[BitcoinConnector] \u2705 Wallet disconnected");
105
+ } catch (error) {
106
+ console.error("[BitcoinConnector] \u274C disconnect error:", error);
107
+ throw error;
108
+ }
109
+ }
110
+ /**
111
+ * Get Bitcoin address
112
+ */
113
+ async getAddress() {
114
+ return this.provider.getAddress();
115
+ }
116
+ /**
117
+ * Get compressed public key (33 bytes)
118
+ */
119
+ async getPublicKey() {
120
+ return this.provider.getPublicKey();
121
+ }
122
+ /**
123
+ * Get address type (bech32, p2pkh, etc.)
124
+ */
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);
165
+ }
166
+ /**
167
+ * Check if authorized (has valid session)
168
+ */
169
+ async isAuthorized() {
170
+ try {
171
+ const authState = loadAuthState();
172
+ if (!authState || !authState.isAuthenticated) {
173
+ return false;
174
+ }
175
+ if (!authState.bitcoinWallet) {
176
+ return false;
177
+ }
178
+ return !this.client.auth.isTokenExpired();
179
+ } catch {
180
+ return false;
181
+ }
182
+ }
183
+ /**
184
+ * Check if connected
185
+ */
186
+ isConnected() {
187
+ return this.connected && this.provider.isConnected();
188
+ }
189
+ /**
190
+ * Get current wallet
191
+ */
192
+ getWallet() {
193
+ return this.wallet;
194
+ }
195
+ /**
196
+ * Get provider
197
+ */
198
+ getProvider() {
199
+ return this.provider;
200
+ }
201
+ /**
202
+ * Get wallet info
203
+ */
204
+ getWalletInfo() {
205
+ return this.provider.getWalletInfo();
206
+ }
207
+ /**
208
+ * Switch network
209
+ */
210
+ async switchNetwork(network) {
211
+ this.provider.setNetwork(network);
212
+ const authState = loadAuthState();
213
+ if (authState?.bitcoinWallet) {
214
+ authState.bitcoinWallet.network = network === "mainnet" ? "bitcoin" : "bitcoin_testnet";
215
+ saveAuthState(authState);
216
+ }
217
+ console.log("[BitcoinConnector] \u{1F504} Network switched to:", network);
218
+ }
219
+ /**
220
+ * Get current network
221
+ */
222
+ getNetwork() {
223
+ return this.provider.getNetwork().type;
224
+ }
225
+ /**
226
+ * Refresh UTXO cache
227
+ */
228
+ async refreshUtxos() {
229
+ return this.provider.refreshUtxos();
230
+ }
231
+ on(event, listener) {
232
+ switch (event) {
233
+ case "connect":
234
+ this.connectListeners.add(listener);
235
+ break;
236
+ case "disconnect":
237
+ this.disconnectListeners.add(listener);
238
+ break;
239
+ case "accountsChanged":
240
+ this.accountsChangedListeners.add(listener);
241
+ break;
242
+ case "networkChanged":
243
+ this.networkChangedListeners.add(listener);
244
+ break;
245
+ }
246
+ }
247
+ off(event, listener) {
248
+ switch (event) {
249
+ case "connect":
250
+ this.connectListeners.delete(listener);
251
+ break;
252
+ case "disconnect":
253
+ this.disconnectListeners.delete(listener);
254
+ break;
255
+ case "accountsChanged":
256
+ this.accountsChangedListeners.delete(listener);
257
+ break;
258
+ case "networkChanged":
259
+ this.networkChangedListeners.delete(listener);
260
+ break;
261
+ }
262
+ }
263
+ /**
264
+ * Remove all listeners
265
+ */
266
+ removeAllListeners() {
267
+ this.connectListeners.clear();
268
+ this.disconnectListeners.clear();
269
+ this.accountsChangedListeners.clear();
270
+ this.networkChangedListeners.clear();
271
+ }
272
+ };
273
+ function createAbcBitcoinConnector(config) {
274
+ return new AbcBitcoinConnector(config);
275
+ }
276
+
277
+ export {
278
+ AbcBitcoinConnector,
279
+ createAbcBitcoinConnector
280
+ };
@@ -0,0 +1,345 @@
1
+ "use client";
2
+ import {
3
+ BaseApiClient
4
+ } from "./chunk-WAO3KL5U.js";
5
+ import {
6
+ createAbcError,
7
+ loadFromStorage
8
+ } from "./chunk-W2VDZD74.js";
9
+ import {
10
+ ABC_ENDPOINTS
11
+ } from "./chunk-VETRBBA2.js";
12
+
13
+ // src/wallets/walletConnectors/abcWallet/api/SigningApi.ts
14
+ import { getAddress } from "viem";
15
+ var SigningApi = class extends BaseApiClient {
16
+ /**
17
+ * Sign EVM transaction (EIP-1559)
18
+ */
19
+ async signTransaction(params) {
20
+ this.loadTokens();
21
+ const wallet = loadFromStorage("wallet" /* WALLET */);
22
+ if (!wallet) {
23
+ throw createAbcError(
24
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
25
+ "Wallet information not found in storage"
26
+ );
27
+ }
28
+ const encryptedDevicePassword = await this.secure.getEncryptPlain(
29
+ wallet.encryptDevicePassword
30
+ );
31
+ const encryptedPvencstr = await this.secure.getEncryptPlain(
32
+ wallet.pvencstr
33
+ );
34
+ const encryptedWid = await this.secure.getEncryptPlain(wallet.wid);
35
+ const secureChannelId = await this.secure.getSecureChannelId();
36
+ const network = this.getNetworkName(params.chainId);
37
+ const tx = params.transaction;
38
+ const _isContractDeployment = !params.transaction.to || params.transaction.to === "0x" || params.transaction.to === "0x0";
39
+ const bodyData = {
40
+ network,
41
+ encryptDevicePassword: encryptedDevicePassword,
42
+ pvencstr: encryptedPvencstr,
43
+ uid: wallet.uid,
44
+ wid: encryptedWid,
45
+ sid: getAddress(wallet.address),
46
+ to: tx.to === "0x" ? "0x" : getAddress(tx.to),
47
+ type: "EIP1559",
48
+ ourpubkey: "",
49
+ ucpubkey: ""
50
+ };
51
+ bodyData.from = getAddress(tx.from || wallet.address);
52
+ if (tx.value) {
53
+ let hexValue = tx.value.startsWith("0x") ? tx.value.slice(2) : tx.value;
54
+ if (hexValue.length % 2 !== 0) {
55
+ hexValue = `0${hexValue}`;
56
+ }
57
+ bodyData.value = `0x${hexValue}`;
58
+ }
59
+ if (tx.gasLimit || tx.gas) {
60
+ const gasLimitValue = tx.gasLimit || tx.gas;
61
+ if (gasLimitValue.toString().startsWith("0x")) {
62
+ bodyData.gasLimit = gasLimitValue.toString();
63
+ } else {
64
+ bodyData.gasLimit = `0x${BigInt(gasLimitValue).toString(16)}`;
65
+ }
66
+ }
67
+ if (tx.maxFeePerGas) {
68
+ if (tx.maxFeePerGas.toString().startsWith("0x")) {
69
+ bodyData.maxFeePerGas = tx.maxFeePerGas.toString();
70
+ } else {
71
+ bodyData.maxFeePerGas = `0x${BigInt(tx.maxFeePerGas).toString(16)}`;
72
+ }
73
+ }
74
+ if (tx.maxPriorityFeePerGas) {
75
+ if (tx.maxPriorityFeePerGas.toString().startsWith("0x")) {
76
+ bodyData.maxPriorityFeePerGas = tx.maxPriorityFeePerGas.toString();
77
+ } else {
78
+ bodyData.maxPriorityFeePerGas = `0x${BigInt(tx.maxPriorityFeePerGas).toString(16)}`;
79
+ }
80
+ }
81
+ bodyData.data = tx.data || "0x";
82
+ const bodyString = new URLSearchParams(bodyData).toString();
83
+ const url = `${this.baseURL}${ABC_ENDPOINTS.SIGN_TRANSACTION}`;
84
+ const response = await fetch(url, {
85
+ method: "POST",
86
+ headers: {
87
+ "Content-Type": "application/x-www-form-urlencoded",
88
+ "Secure-Channel": secureChannelId,
89
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
90
+ },
91
+ body: bodyString
92
+ });
93
+ const res = await response.json();
94
+ if (response.status === 401 && this.refreshToken) {
95
+ await this.refreshAccessToken();
96
+ const retryResponse = await fetch(url, {
97
+ method: "POST",
98
+ headers: {
99
+ "Content-Type": "application/x-www-form-urlencoded",
100
+ "Secure-Channel": secureChannelId,
101
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
102
+ },
103
+ body: bodyString
104
+ });
105
+ const retryRes = await retryResponse.json();
106
+ if (retryRes.serializedTx && retryRes.rawTx) {
107
+ return {
108
+ signature: retryRes.serializedTx,
109
+ txHash: retryRes.rawTx
110
+ };
111
+ }
112
+ throw createAbcError(
113
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
114
+ "Failed to sign transaction after token refresh",
115
+ retryRes
116
+ );
117
+ }
118
+ if (res.serializedTx && res.rawTx) {
119
+ return {
120
+ signature: res.serializedTx,
121
+ txHash: res.rawTx
122
+ };
123
+ }
124
+ throw createAbcError(
125
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
126
+ "Failed to sign transaction",
127
+ res
128
+ );
129
+ }
130
+ /**
131
+ * Sign message (Personal Sign - EIP-191)
132
+ */
133
+ async signMessage(params) {
134
+ this.loadTokens();
135
+ const wallet = loadFromStorage("wallet" /* WALLET */);
136
+ if (!wallet) {
137
+ throw createAbcError(
138
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
139
+ "Wallet information not found in storage"
140
+ );
141
+ }
142
+ const ethers = await import("ethers");
143
+ const messageHash = ethers.ethers.utils.hashMessage(params.message);
144
+ const hash = messageHash.startsWith("0x") ? messageHash.slice(2) : messageHash;
145
+ const encryptedDevicePassword = await this.secure.getEncryptPlain(
146
+ wallet.encryptDevicePassword
147
+ );
148
+ const encryptedPvencstr = await this.secure.getEncryptPlain(
149
+ wallet.pvencstr
150
+ );
151
+ const encryptedWid = await this.secure.getEncryptPlain(wallet.wid);
152
+ const secureChannelId = await this.secure.getSecureChannelId();
153
+ const bodyData = {
154
+ hash,
155
+ encryptDevicePassword: encryptedDevicePassword,
156
+ pvencstr: encryptedPvencstr,
157
+ wid: encryptedWid,
158
+ uid: wallet.uid,
159
+ sid: wallet.sid
160
+ };
161
+ const bodyString = new URLSearchParams(bodyData).toString();
162
+ const url = `${this.baseURL}${ABC_ENDPOINTS.SIGN_HASH}`;
163
+ const response = await fetch(url, {
164
+ method: "POST",
165
+ headers: {
166
+ "Content-Type": "application/x-www-form-urlencoded",
167
+ "Secure-Channel": secureChannelId,
168
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
169
+ },
170
+ body: bodyString
171
+ });
172
+ const text = await response.text();
173
+ if (!text) {
174
+ throw createAbcError(
175
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
176
+ `Empty response from sign API (status: ${response.status})`,
177
+ { status: response.status }
178
+ );
179
+ }
180
+ const res = JSON.parse(text);
181
+ if (response.status === 401) {
182
+ if (!this.refreshToken) {
183
+ this.loadTokens();
184
+ }
185
+ if (this.refreshToken) {
186
+ await this.refreshAccessToken();
187
+ const retryResponse = await fetch(url, {
188
+ method: "POST",
189
+ headers: {
190
+ "Content-Type": "application/x-www-form-urlencoded",
191
+ "Secure-Channel": secureChannelId,
192
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
193
+ },
194
+ body: bodyString
195
+ });
196
+ const retryText = await retryResponse.text();
197
+ if (!retryText) {
198
+ throw createAbcError(
199
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
200
+ `Empty response from retry (status: ${retryResponse.status})`,
201
+ { status: retryResponse.status }
202
+ );
203
+ }
204
+ const retryRes = JSON.parse(retryText);
205
+ if (retryRes.status === "success" && retryRes.result?.signstr) {
206
+ return { signature: retryRes.result.signstr };
207
+ }
208
+ throw createAbcError(
209
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
210
+ "Failed to sign message after token refresh",
211
+ retryRes
212
+ );
213
+ }
214
+ }
215
+ if (res.signstr) {
216
+ const signData = JSON.parse(res.signstr);
217
+ const sigList = signData.sig_list?.[0];
218
+ if (!sigList || !sigList.r || !sigList.s) {
219
+ throw createAbcError(
220
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
221
+ "Invalid signature format",
222
+ res
223
+ );
224
+ }
225
+ const v = (sigList.vsource || 0) + 27;
226
+ const signature = sigList.r + sigList.s.slice(2) + v.toString(16).padStart(2, "0");
227
+ return { signature };
228
+ }
229
+ throw createAbcError(
230
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
231
+ "Failed to sign message",
232
+ res
233
+ );
234
+ }
235
+ /**
236
+ * Sign typed data (EIP-712)
237
+ */
238
+ async signTypedData(params) {
239
+ const wallet = loadFromStorage("wallet" /* WALLET */);
240
+ if (!wallet) {
241
+ throw createAbcError(
242
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
243
+ "Wallet information not found in storage"
244
+ );
245
+ }
246
+ const encryptedDevicePassword = await this.secure.getEncryptPlain(
247
+ wallet.encryptDevicePassword
248
+ );
249
+ const encryptedPvencstr = await this.secure.getEncryptPlain(
250
+ wallet.pvencstr
251
+ );
252
+ const encryptedWid = await this.secure.getEncryptPlain(wallet.wid);
253
+ const secureChannelId = await this.secure.getSecureChannelId();
254
+ const network = this.getNetworkName(wallet.chainId);
255
+ const bodyData = {
256
+ messageJson: params.typedData,
257
+ version: "v4",
258
+ network,
259
+ encryptDevicePassword: encryptedDevicePassword,
260
+ pvencstr: encryptedPvencstr,
261
+ wid: encryptedWid,
262
+ uid: wallet.uid,
263
+ sid: wallet.sid
264
+ };
265
+ const bodyString = new URLSearchParams(bodyData).toString();
266
+ const url = `${this.baseURL}${ABC_ENDPOINTS.SIGN_TYPED}`;
267
+ const response = await fetch(url, {
268
+ method: "POST",
269
+ headers: {
270
+ "Content-Type": "application/x-www-form-urlencoded",
271
+ "Secure-Channel": secureChannelId,
272
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
273
+ },
274
+ body: bodyString
275
+ });
276
+ const text = await response.text();
277
+ if (!text) {
278
+ throw createAbcError(
279
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
280
+ `Empty response from signTypedData API (status: ${response.status})`,
281
+ { status: response.status }
282
+ );
283
+ }
284
+ const res = JSON.parse(text);
285
+ if (response.status === 401 && this.refreshToken) {
286
+ await this.refreshAccessToken();
287
+ const retryResponse = await fetch(url, {
288
+ method: "POST",
289
+ headers: {
290
+ "Content-Type": "application/x-www-form-urlencoded",
291
+ "Secure-Channel": secureChannelId,
292
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
293
+ },
294
+ body: bodyString
295
+ });
296
+ const retryText = await retryResponse.text();
297
+ if (!retryText) {
298
+ throw createAbcError(
299
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
300
+ `Empty response after retry (status: ${retryResponse.status})`,
301
+ { status: retryResponse.status }
302
+ );
303
+ }
304
+ const retryRes = JSON.parse(retryText);
305
+ if (retryRes.serializedTx) {
306
+ return { signature: retryRes.serializedTx };
307
+ }
308
+ throw createAbcError(
309
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
310
+ "Failed to sign typed data after token refresh",
311
+ retryRes
312
+ );
313
+ }
314
+ if (res.serializedTx) {
315
+ return { signature: res.serializedTx };
316
+ }
317
+ throw createAbcError(
318
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
319
+ "Failed to sign typed data",
320
+ res
321
+ );
322
+ }
323
+ /**
324
+ * Convert chainId to network name
325
+ */
326
+ getNetworkName(chainId) {
327
+ const networkMap = {
328
+ 1: "ethereum",
329
+ 11155111: "ethereum_sepolia",
330
+ 8217: "klaytn",
331
+ 1001: "klaytn_baobab",
332
+ 137: "polygon",
333
+ 80002: "polygon_amoy",
334
+ 42161: "arbitrum",
335
+ 421614: "arbitrum_sepolia",
336
+ 5e3: "mantle",
337
+ 5003: "mantle_testnet"
338
+ };
339
+ return networkMap[chainId] || "ethereum";
340
+ }
341
+ };
342
+
343
+ export {
344
+ SigningApi
345
+ };