@talken/talkenkit 2.4.15 → 2.4.17

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 (234) hide show
  1. package/dist/abcWallet-54KUGWUZ.js +192 -0
  2. package/dist/abcWallet-KZHOADBJ.js +192 -0
  3. package/dist/abcWallet-NZAVB4PI.js +190 -0
  4. package/dist/chunk-5X3ROW3U.js +8777 -0
  5. package/dist/chunk-DKA3NVFM.js +8497 -0
  6. package/dist/chunk-QNZ5HSPM.js +8339 -0
  7. package/dist/chunk-VE53ZNZV.js +331 -0
  8. package/dist/components/ConfirmationModal/ApproveSection.css.d.ts +16 -0
  9. package/dist/components/ConfirmationModal/ApproveSection.d.ts +8 -0
  10. package/dist/components/ConfirmationModal/NFTPlaceholder.css.d.ts +7 -0
  11. package/dist/components/ConfirmationModal/NFTPlaceholder.d.ts +8 -0
  12. package/dist/components/ConfirmationModal/NftApprovalSection.css.d.ts +10 -0
  13. package/dist/components/ConfirmationModal/NftApprovalSection.d.ts +7 -0
  14. package/dist/components/ConfirmationModal/SignConfirmationModal.css.d.ts +35 -0
  15. package/dist/components/ConfirmationModal/SignConfirmationModal.d.ts +17 -0
  16. package/dist/components/ConfirmationModal/SwapSection.css.d.ts +17 -0
  17. package/dist/components/ConfirmationModal/SwapSection.d.ts +7 -0
  18. package/dist/components/ConfirmationModal/TransactionConfirmationModal.css.d.ts +49 -0
  19. package/dist/components/ConfirmationModal/TransactionConfirmationModal.d.ts +12 -0
  20. package/dist/components/ConfirmationModal/TransferSection.css.d.ts +17 -0
  21. package/dist/components/ConfirmationModal/TransferSection.d.ts +7 -0
  22. package/dist/components/ConfirmationModal/commonStyles.css.d.ts +37 -0
  23. package/dist/components/ConfirmationModal/constants.d.ts +16 -0
  24. package/dist/components/ConfirmationModal/index.d.ts +9 -0
  25. package/dist/components/ConfirmationModal/modalTheme.css.d.ts +20 -0
  26. package/dist/components/ConfirmationModal/transactionUIRegistry.d.ts +134 -0
  27. package/dist/components/ConfirmationModal/utils.d.ts +37 -0
  28. package/dist/components/ConnectOptions/AbcWaasAuth/AbcWaasAuthSections.css.d.ts +1 -0
  29. package/dist/components/ConnectOptions/AbcWaasAuth/AbcWaasAuthSections.d.ts +1 -1
  30. package/dist/components/ConnectOptions/AbcWaasAuth/hooks/useAbcWaasAuth.d.ts +2 -25
  31. package/dist/components/ConnectOptions/AbcWaasAuth/hooks/useAbcWaasSocial.d.ts +1 -47
  32. package/dist/components/ConnectOptions/PinAuth/hooks/useWalletGeneration.d.ts +4 -21
  33. package/dist/components/GasFeeModal/GasFeeEditModal.css.d.ts +32 -0
  34. package/dist/components/GasFeeModal/GasFeeEditModal.d.ts +21 -0
  35. package/dist/components/GasFeeModal/index.d.ts +3 -0
  36. package/dist/components/GasFeeModal/modalTheme.css.d.ts +19 -0
  37. package/dist/components/Icons/Close2.d.ts +7 -0
  38. package/dist/components/Icons/Copy2.d.ts +4 -0
  39. package/dist/components/Icons/Dropdown2.d.ts +4 -0
  40. package/dist/components/Icons/Edit.d.ts +4 -0
  41. package/dist/components/Icons/InfoCircle.d.ts +4 -0
  42. package/dist/components/Icons/Kakao.d.ts +2 -0
  43. package/dist/components/Icons/Minus.d.ts +4 -0
  44. package/dist/components/Icons/Plus.d.ts +4 -0
  45. package/dist/components/Icons/SettingsGear.d.ts +4 -0
  46. package/dist/components/Icons/SpeedHigh.d.ts +4 -0
  47. package/dist/components/Icons/SpeedLow.d.ts +4 -0
  48. package/dist/components/Icons/SpeedMedium.d.ts +4 -0
  49. package/dist/components/RainbowKitProvider/InternalPinProvider.d.ts +7 -9
  50. package/dist/components/RainbowKitProvider/RainbowKitConfigProvider.d.ts +1 -6
  51. package/dist/components/RainbowKitProvider/RainbowKitProvider.d.ts +7 -7
  52. package/dist/components/Toast/Toast.css.d.ts +2 -0
  53. package/dist/components/Toast/Toast.d.ts +6 -0
  54. package/dist/components/Toast/index.d.ts +4 -0
  55. package/dist/components/Toast/useToast.d.ts +10 -0
  56. package/dist/config/networks.d.ts +10 -0
  57. package/dist/css/sprinkles.css.d.ts +1 -1
  58. package/dist/hooks/useSolanaWallet.d.ts +5 -23
  59. package/dist/hooks/useTronWallet.d.ts +63 -0
  60. package/dist/index.css +1903 -236
  61. package/dist/index.d.ts +8 -3
  62. package/dist/index.js +7557 -3592
  63. package/dist/klipWallet-RD5Y4UEK.js +8 -0
  64. package/dist/providers/SignConfirmationProvider/SignConfirmationProvider.d.ts +22 -0
  65. package/dist/providers/SignConfirmationProvider/index.d.ts +6 -0
  66. package/dist/providers/SignConfirmationProvider/requestParsers.d.ts +24 -0
  67. package/dist/providers/SignConfirmationProvider/types.d.ts +91 -0
  68. package/dist/providers/SignConfirmationProvider/useApiClient.d.ts +15 -0
  69. package/dist/providers/SignConfirmationProvider/useTransactionResolver.d.ts +18 -0
  70. package/dist/secure-AEBFSVWE.js +8 -0
  71. package/dist/services/AbcAgenticWalletService.d.ts +111 -0
  72. package/dist/services/AbcAuthService.d.ts +26 -20
  73. package/dist/types/index.d.ts +3 -0
  74. package/dist/types/token.d.ts +82 -0
  75. package/dist/utils/abi/abiDecoder.d.ts +144 -0
  76. package/dist/utils/apiClientFactory.d.ts +21 -0
  77. package/dist/utils/blockies.d.ts +12 -0
  78. package/dist/utils/tokenMapper.d.ts +10 -0
  79. package/dist/wallets/walletConnectors/abcWallet/abcApi.d.ts +4 -1
  80. package/dist/wallets/walletConnectors/abcWallet/abcApi.js +7 -7
  81. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +5 -5
  82. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +6 -8
  83. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
  84. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +9 -9
  85. package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +17 -6
  86. package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +5 -4
  87. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +11 -34
  88. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
  89. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +3 -11
  90. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +17 -80
  91. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.d.ts +112 -0
  92. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.js +11 -0
  93. package/dist/wallets/walletConnectors/abcWallet/abcWallet.d.ts +2 -0
  94. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +11 -10
  95. package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.d.ts +9 -11
  96. package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +6 -6
  97. package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.d.ts +1 -1
  98. package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +5 -5
  99. package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +6 -6
  100. package/dist/wallets/walletConnectors/abcWallet/api/GasApi.d.ts +45 -0
  101. package/dist/wallets/walletConnectors/abcWallet/api/GasApi.js +12 -0
  102. package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.js +7 -7
  103. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.d.ts +9 -1
  104. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +7 -7
  105. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.d.ts +333 -0
  106. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.js +11 -0
  107. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiSingleton.d.ts +18 -0
  108. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiSingleton.js +14 -0
  109. package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.d.ts +2 -2
  110. package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +7 -7
  111. package/dist/wallets/walletConnectors/abcWallet/api/TronApi.d.ts +102 -0
  112. package/dist/wallets/walletConnectors/abcWallet/api/TronApi.js +12 -0
  113. package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.d.ts +4 -2
  114. package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +7 -7
  115. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.d.ts +60 -0
  116. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.js +12 -0
  117. package/dist/wallets/walletConnectors/abcWallet/api/index.d.ts +24 -0
  118. package/dist/wallets/walletConnectors/abcWallet/api/index.js +35 -17
  119. package/dist/wallets/walletConnectors/abcWallet/constants.d.ts +39 -1
  120. package/dist/wallets/walletConnectors/abcWallet/constants.js +5 -1
  121. package/dist/wallets/walletConnectors/abcWallet/googleAuth.d.ts +6 -0
  122. package/dist/wallets/walletConnectors/abcWallet/googleAuth.js +37 -1
  123. package/dist/wallets/walletConnectors/abcWallet/index.d.ts +5 -3
  124. package/dist/wallets/walletConnectors/abcWallet/index.js +44 -31
  125. package/dist/wallets/walletConnectors/abcWallet/kakaoAuth.d.ts +27 -0
  126. package/dist/wallets/walletConnectors/abcWallet/kakaoAuth.js +290 -0
  127. package/dist/wallets/walletConnectors/abcWallet/networkConfig.d.ts +39 -3
  128. package/dist/wallets/walletConnectors/abcWallet/networkConfig.js +11 -3
  129. package/dist/wallets/walletConnectors/abcWallet/secure.js +2 -2
  130. package/dist/wallets/walletConnectors/abcWallet/sessionUtils.js +1 -1
  131. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +369 -7
  132. package/dist/wallets/walletConnectors/abcWallet/types.js +5 -3
  133. package/dist/wallets/walletConnectors/abcWallet/utils.js +3 -3
  134. package/dist/wallets/walletConnectors/abcWallet/walletGeneration.d.ts +10 -19
  135. package/dist/wallets/walletConnectors/abcWallet/walletGeneration.js +2 -2
  136. package/dist/wallets/walletConnectors/berasigWallet/berasigWallet.js +2 -2
  137. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  138. package/dist/wallets/walletConnectors/binanceWallet/binanceWallet.js +2 -2
  139. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  140. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  141. package/dist/wallets/walletConnectors/chunk-25V3FW3O.js +282 -0
  142. package/dist/wallets/walletConnectors/chunk-27346T3J.js +134 -0
  143. package/dist/wallets/walletConnectors/chunk-5CNLMOB2.js +75 -0
  144. package/dist/wallets/walletConnectors/chunk-5K45TCAM.js +333 -0
  145. package/dist/wallets/walletConnectors/chunk-5VDSMZC4.js +286 -0
  146. package/dist/wallets/walletConnectors/chunk-5W7RBMPH.js +351 -0
  147. package/dist/wallets/walletConnectors/chunk-5XORKEWE.js +326 -0
  148. package/dist/wallets/walletConnectors/chunk-63WBO52A.js +77 -0
  149. package/dist/wallets/walletConnectors/chunk-7IRF225N.js +75 -0
  150. package/dist/wallets/walletConnectors/chunk-7QHCSJDN.js +726 -0
  151. package/dist/wallets/walletConnectors/chunk-A27H6PEU.js +739 -0
  152. package/dist/wallets/walletConnectors/chunk-A4WR3CFN.js +130 -0
  153. package/dist/wallets/walletConnectors/chunk-A6FUNQWF.js +572 -0
  154. package/dist/wallets/walletConnectors/chunk-AF4OCS7N.js +46 -0
  155. package/dist/wallets/walletConnectors/chunk-AFWBXEEC.js +66 -0
  156. package/dist/wallets/walletConnectors/chunk-AUGP2LJR.js +182 -0
  157. package/dist/wallets/walletConnectors/chunk-AWLDVQXC.js +317 -0
  158. package/dist/wallets/walletConnectors/chunk-BLEKTKBN.js +479 -0
  159. package/dist/wallets/walletConnectors/chunk-BVL6G5HI.js +1757 -0
  160. package/dist/wallets/walletConnectors/chunk-CMTGEHDI.js +485 -0
  161. package/dist/wallets/walletConnectors/chunk-D5EFTEOM.js +56 -0
  162. package/dist/wallets/walletConnectors/chunk-DM5NLSWD.js +346 -0
  163. package/dist/wallets/walletConnectors/chunk-EBGI4D2T.js +69 -0
  164. package/dist/wallets/walletConnectors/chunk-EEH2HMFG.js +47 -0
  165. package/dist/wallets/walletConnectors/chunk-F5JWDBKK.js +47 -0
  166. package/dist/wallets/walletConnectors/chunk-FN67MIIH.js +75 -0
  167. package/dist/wallets/walletConnectors/chunk-FWYVBX5F.js +75 -0
  168. package/dist/wallets/walletConnectors/chunk-GH6ZDY4K.js +58 -0
  169. package/dist/wallets/walletConnectors/chunk-GIJZMIBD.js +63 -0
  170. package/dist/wallets/walletConnectors/chunk-GO6OLTNF.js +479 -0
  171. package/dist/wallets/walletConnectors/chunk-HKXBK3NY.js +75 -0
  172. package/dist/wallets/walletConnectors/chunk-HMD2WWFQ.js +75 -0
  173. package/dist/wallets/walletConnectors/chunk-HO5Z2CTL.js +280 -0
  174. package/dist/wallets/walletConnectors/chunk-I3GFVK5O.js +151 -0
  175. package/dist/wallets/walletConnectors/chunk-IUHZ5ZCE.js +121 -0
  176. package/dist/wallets/walletConnectors/chunk-JODNZWWG.js +330 -0
  177. package/dist/wallets/walletConnectors/chunk-JTST3KMW.js +75 -0
  178. package/dist/wallets/walletConnectors/chunk-KH2L3ONV.js +1599 -0
  179. package/dist/wallets/walletConnectors/chunk-LHV22375.js +182 -0
  180. package/dist/wallets/walletConnectors/chunk-LZZE462U.js +315 -0
  181. package/dist/wallets/walletConnectors/chunk-MGCRUAHX.js +276 -0
  182. package/dist/wallets/walletConnectors/chunk-MURSKRMJ.js +63 -0
  183. package/dist/wallets/walletConnectors/chunk-NG7PSAPX.js +115 -0
  184. package/dist/wallets/walletConnectors/chunk-NHP6D6AH.js +204 -0
  185. package/dist/wallets/walletConnectors/chunk-O4AU63LK.js +181 -0
  186. package/dist/wallets/walletConnectors/chunk-OBS74J5N.js +221 -0
  187. package/dist/wallets/walletConnectors/chunk-ON4U54WO.js +115 -0
  188. package/dist/wallets/walletConnectors/chunk-PPYBE5TV.js +276 -0
  189. package/dist/wallets/walletConnectors/chunk-PWWSAM4G.js +309 -0
  190. package/dist/wallets/walletConnectors/chunk-QB5GDLRU.js +330 -0
  191. package/dist/wallets/walletConnectors/chunk-QMLG7MAP.js +107 -0
  192. package/dist/wallets/walletConnectors/chunk-RGIB7FFH.js +47 -0
  193. package/dist/wallets/walletConnectors/chunk-SHJBMDP4.js +278 -0
  194. package/dist/wallets/walletConnectors/chunk-SOBJYYIX.js +484 -0
  195. package/dist/wallets/walletConnectors/chunk-T66U3ADD.js +58 -0
  196. package/dist/wallets/walletConnectors/chunk-THCKLFSJ.js +75 -0
  197. package/dist/wallets/walletConnectors/chunk-TS466TDR.js +286 -0
  198. package/dist/wallets/walletConnectors/chunk-UJGFYQEV.js +459 -0
  199. package/dist/wallets/walletConnectors/chunk-UXNEBBUV.js +224 -0
  200. package/dist/wallets/walletConnectors/chunk-VRCNFVPM.js +276 -0
  201. package/dist/wallets/walletConnectors/chunk-WODNUC65.js +333 -0
  202. package/dist/wallets/walletConnectors/chunk-X6A2FSHK.js +484 -0
  203. package/dist/wallets/walletConnectors/chunk-XVRNEES5.js +1541 -0
  204. package/dist/wallets/walletConnectors/chunk-XWVM2Y5A.js +306 -0
  205. package/dist/wallets/walletConnectors/chunk-XXG7ABSJ.js +328 -0
  206. package/dist/wallets/walletConnectors/chunk-YJH4BHSB.js +254 -0
  207. package/dist/wallets/walletConnectors/chunk-YRDNIP2H.js +90 -0
  208. package/dist/wallets/walletConnectors/chunk-YTPAWPCA.js +156 -0
  209. package/dist/wallets/walletConnectors/chunk-ZCSHD7UG.js +562 -0
  210. package/dist/wallets/walletConnectors/chunk-ZZCZ3RJU.js +272 -0
  211. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  212. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  213. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  214. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  215. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  216. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  217. package/dist/wallets/walletConnectors/index.js +62 -61
  218. package/dist/wallets/walletConnectors/iopayWallet/iopayWallet.js +2 -2
  219. package/dist/wallets/walletConnectors/kaiaWallet/kaiaWallet.js +2 -2
  220. package/dist/wallets/walletConnectors/kaikasWallet/kaikasWallet.js +2 -2
  221. package/dist/wallets/walletConnectors/klipWallet/klipWallet.d.ts +3 -0
  222. package/dist/wallets/walletConnectors/klipWallet/klipWallet.js +8 -0
  223. package/dist/wallets/walletConnectors/klipWallet-PPTYYB5G.js +7 -0
  224. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  225. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  226. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  227. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  228. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  229. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  230. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  231. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  232. package/dist/wallets/walletConnectors/zealWallet/zealWallet.js +2 -2
  233. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  234. package/package.json +2 -1
@@ -0,0 +1,485 @@
1
+ "use client";
2
+
3
+ // src/wallets/walletConnectors/abcWallet/abcBitcoinProvider.ts
4
+ var EventEmitter = class {
5
+ constructor() {
6
+ this.events = /* @__PURE__ */ new Map();
7
+ }
8
+ on(event, listener) {
9
+ if (!this.events.has(event)) {
10
+ this.events.set(event, []);
11
+ }
12
+ this.events.get(event).push(listener);
13
+ return this;
14
+ }
15
+ off(event, listener) {
16
+ const listeners = this.events.get(event);
17
+ if (listeners) {
18
+ const index = listeners.indexOf(listener);
19
+ if (index !== -1) {
20
+ listeners.splice(index, 1);
21
+ }
22
+ }
23
+ return this;
24
+ }
25
+ removeListener(event, listener) {
26
+ return this.off(event, listener);
27
+ }
28
+ emit(event, ...args) {
29
+ const listeners = this.events.get(event);
30
+ if (listeners) {
31
+ for (const listener of listeners) {
32
+ listener(...args);
33
+ }
34
+ return true;
35
+ }
36
+ return false;
37
+ }
38
+ removeAllListeners(event) {
39
+ if (event) {
40
+ this.events.delete(event);
41
+ } else {
42
+ this.events.clear();
43
+ }
44
+ return this;
45
+ }
46
+ };
47
+ var BitcoinErrorCode = {
48
+ USER_REJECTED: 4001,
49
+ UNAUTHORIZED: 4100,
50
+ UNSUPPORTED_METHOD: 4200,
51
+ DISCONNECTED: 4900,
52
+ INVALID_PARAMS: -32602,
53
+ INTERNAL_ERROR: -32603,
54
+ INSUFFICIENT_FUNDS: 5001,
55
+ UTXO_NOT_FOUND: 5002
56
+ };
57
+ var BitcoinProviderError = class extends Error {
58
+ constructor(code, message, data) {
59
+ super(message);
60
+ this.code = code;
61
+ this.data = data;
62
+ this.name = "BitcoinProviderError";
63
+ }
64
+ };
65
+ var BITCOIN_NETWORKS = {
66
+ mainnet: {
67
+ name: "Bitcoin Mainnet",
68
+ type: "bitcoin",
69
+ explorer: "https://blockstream.info"
70
+ },
71
+ testnet: {
72
+ name: "Bitcoin Testnet",
73
+ type: "bitcoin_testnet",
74
+ explorer: "https://blockstream.info/testnet"
75
+ }
76
+ };
77
+ var AbcBitcoinProvider = class extends EventEmitter {
78
+ // 1 minute
79
+ constructor(client) {
80
+ super();
81
+ this.wallet = null;
82
+ this.network = BITCOIN_NETWORKS.testnet;
83
+ this.connected = false;
84
+ this.utxoCache = /* @__PURE__ */ new Map();
85
+ this.cacheExpiry = /* @__PURE__ */ new Map();
86
+ this.CACHE_TTL = 6e4;
87
+ this.client = client;
88
+ }
89
+ /**
90
+ * Set wallet information
91
+ */
92
+ setWallet(wallet) {
93
+ const previousAddress = this.wallet?.address;
94
+ this.wallet = wallet;
95
+ this.connected = true;
96
+ if (wallet.network === "bitcoin") {
97
+ this.network = BITCOIN_NETWORKS.mainnet;
98
+ } else {
99
+ this.network = BITCOIN_NETWORKS.testnet;
100
+ }
101
+ if (previousAddress !== wallet.address) {
102
+ this.emit("accountsChanged", [wallet.address]);
103
+ this.clearUtxoCache();
104
+ }
105
+ this.emit("connect", {
106
+ address: wallet.address,
107
+ network: this.network.type
108
+ });
109
+ console.log(
110
+ "[BitcoinProvider] \u2705 Wallet connected:",
111
+ `${wallet.address.substring(0, 6)}...${wallet.address.substring(wallet.address.length - 6)}`
112
+ );
113
+ }
114
+ /**
115
+ * Clear wallet (disconnect)
116
+ */
117
+ clearWallet() {
118
+ this.wallet = null;
119
+ this.connected = false;
120
+ this.clearUtxoCache();
121
+ this.emit("disconnect");
122
+ this.emit("accountsChanged", []);
123
+ console.log("[BitcoinProvider] \u{1F50C} Wallet disconnected");
124
+ }
125
+ /**
126
+ * Set PIN request callback for transaction signing
127
+ */
128
+ setRequestPinCallback(callback) {
129
+ this.requestPinCallback = callback;
130
+ }
131
+ /**
132
+ * Request PIN from user
133
+ * First tries global callback, then falls back to manual callback
134
+ */
135
+ async requestPin() {
136
+ const globalRequestPin = window.__TALKENKIT_REQUEST_PIN__;
137
+ if (globalRequestPin && typeof globalRequestPin === "function") {
138
+ return globalRequestPin("transaction");
139
+ }
140
+ if (!this.requestPinCallback) {
141
+ throw new BitcoinProviderError(
142
+ BitcoinErrorCode.INTERNAL_ERROR,
143
+ "PIN request callback not configured. Make sure RainbowKitProvider is rendered."
144
+ );
145
+ }
146
+ return this.requestPinCallback();
147
+ }
148
+ /**
149
+ * Set network
150
+ */
151
+ setNetwork(networkKey) {
152
+ const newNetwork = BITCOIN_NETWORKS[networkKey];
153
+ if (!newNetwork) {
154
+ throw new BitcoinProviderError(
155
+ BitcoinErrorCode.INVALID_PARAMS,
156
+ `Unknown network: ${networkKey}`
157
+ );
158
+ }
159
+ const previousType = this.network.type;
160
+ this.network = newNetwork;
161
+ if (previousType !== newNetwork.type) {
162
+ this.emit("networkChanged", newNetwork.type);
163
+ this.clearUtxoCache();
164
+ }
165
+ }
166
+ /**
167
+ * Get current network
168
+ */
169
+ getNetwork() {
170
+ return this.network;
171
+ }
172
+ /**
173
+ * Check if connected
174
+ */
175
+ isConnected() {
176
+ return this.connected && this.wallet !== null;
177
+ }
178
+ /**
179
+ * Get Bitcoin address
180
+ */
181
+ async getAddress() {
182
+ if (!this.wallet) {
183
+ throw new BitcoinProviderError(
184
+ BitcoinErrorCode.DISCONNECTED,
185
+ "Wallet not connected"
186
+ );
187
+ }
188
+ return this.wallet.address;
189
+ }
190
+ /**
191
+ * Get compressed public key (33 bytes)
192
+ */
193
+ async getPublicKey() {
194
+ if (!this.wallet) {
195
+ throw new BitcoinProviderError(
196
+ BitcoinErrorCode.DISCONNECTED,
197
+ "Wallet not connected"
198
+ );
199
+ }
200
+ return this.wallet.publicKey;
201
+ }
202
+ /**
203
+ * Get address type (bech32, p2pkh, etc.)
204
+ */
205
+ getAddressType() {
206
+ if (!this.wallet) {
207
+ throw new BitcoinProviderError(
208
+ BitcoinErrorCode.DISCONNECTED,
209
+ "Wallet not connected"
210
+ );
211
+ }
212
+ return this.wallet.addressType;
213
+ }
214
+ /**
215
+ * Clear UTXO cache
216
+ */
217
+ clearUtxoCache() {
218
+ this.utxoCache.clear();
219
+ this.cacheExpiry.clear();
220
+ }
221
+ /**
222
+ * Check if cache is valid
223
+ */
224
+ isCacheValid(address) {
225
+ const expiry = this.cacheExpiry.get(address);
226
+ if (!expiry)
227
+ return false;
228
+ return Date.now() < expiry;
229
+ }
230
+ /**
231
+ * Get UTXOs for address (with caching)
232
+ */
233
+ async getUtxos(forceRefresh = false) {
234
+ if (!this.wallet) {
235
+ throw new BitcoinProviderError(
236
+ BitcoinErrorCode.DISCONNECTED,
237
+ "Wallet not connected"
238
+ );
239
+ }
240
+ const address = this.wallet.address;
241
+ if (!forceRefresh && this.isCacheValid(address)) {
242
+ const cached = this.utxoCache.get(address);
243
+ if (cached) {
244
+ console.log(
245
+ `[BitcoinProvider] \u{1F4E6} Using cached UTXOs (${cached.length} items)`
246
+ );
247
+ return cached;
248
+ }
249
+ }
250
+ try {
251
+ console.log("[BitcoinProvider] \u{1F50D} Fetching UTXOs from network...");
252
+ const utxos = await this.client.bitcoin.getUtxos(
253
+ address,
254
+ this.network.type
255
+ );
256
+ this.utxoCache.set(address, utxos);
257
+ this.cacheExpiry.set(address, Date.now() + this.CACHE_TTL);
258
+ console.log(`[BitcoinProvider] \u2705 Fetched ${utxos.length} UTXOs`);
259
+ return utxos;
260
+ } catch (error) {
261
+ console.error(
262
+ "[BitcoinProvider] \u274C Failed to fetch UTXOs:",
263
+ error.message
264
+ );
265
+ throw new BitcoinProviderError(
266
+ BitcoinErrorCode.INTERNAL_ERROR,
267
+ "Failed to fetch UTXOs",
268
+ error
269
+ );
270
+ }
271
+ }
272
+ /**
273
+ * Get total balance (sum of all UTXOs)
274
+ * Returns balance in satoshis
275
+ */
276
+ async getBalance(forceRefresh = false) {
277
+ const utxos = await this.getUtxos(forceRefresh);
278
+ const balance = utxos.reduce((sum, utxo) => sum + utxo.value, 0);
279
+ console.log(
280
+ `[BitcoinProvider] \u{1F4B0} Balance: ${balance} satoshis (${balance / 1e8} BTC)`
281
+ );
282
+ return balance;
283
+ }
284
+ /**
285
+ * Estimate transaction fee
286
+ * Returns fee rate in satoshis per byte
287
+ */
288
+ async estimateFee(targetBlocks = 6) {
289
+ try {
290
+ const feeRate = await this.client.bitcoin.estimateFee(
291
+ this.network.type,
292
+ targetBlocks
293
+ );
294
+ console.log(`[BitcoinProvider] \u26FD Fee rate: ${feeRate} sat/byte`);
295
+ return feeRate;
296
+ } catch (_error) {
297
+ console.error("[BitcoinProvider] \u26A0\uFE0F Fee estimation failed, using default");
298
+ return 1;
299
+ }
300
+ }
301
+ /**
302
+ * Sign Bitcoin message (BIP-322)
303
+ * NOTE: Currently not supported - Bitcoin uses v2 API which doesn't have message signing endpoint
304
+ * Only transaction signing is supported via PSBT
305
+ *
306
+ * @param _message - Message to sign (string) - unused, always throws error
307
+ * @returns Signature in base64 format
308
+ */
309
+ async signMessage(_message) {
310
+ console.log("[BitcoinProvider] \u26A0\uFE0F Bitcoin message signing requested");
311
+ throw new BitcoinProviderError(
312
+ BitcoinErrorCode.UNSUPPORTED_METHOD,
313
+ "Bitcoin message signing is not supported. Bitcoin uses v2 API which only supports transaction signing (PSBT). Use signTransaction() instead."
314
+ );
315
+ }
316
+ /**
317
+ * High-level transaction sending (like Solana pattern)
318
+ * Creates, signs, and broadcasts transaction
319
+ *
320
+ * @param params - Transaction parameters
321
+ * @param params.toAddress - Recipient Bitcoin address
322
+ * @param params.amount - Amount in BTC (will be converted to satoshis)
323
+ * @returns Transaction hash
324
+ */
325
+ async sendTransaction(params) {
326
+ if (!this.wallet) {
327
+ throw new BitcoinProviderError(
328
+ BitcoinErrorCode.DISCONNECTED,
329
+ "Wallet not connected"
330
+ );
331
+ }
332
+ try {
333
+ console.log("[BitcoinProvider] \u{1F4B8} Starting high-level transaction...");
334
+ const authStateKey = "talkenkit_abc_auth_state";
335
+ const authState = typeof window !== "undefined" ? localStorage.getItem(authStateKey) : null;
336
+ if (!authState) {
337
+ throw new BitcoinProviderError(
338
+ BitcoinErrorCode.UNAUTHORIZED,
339
+ "Not authenticated - auth state not found"
340
+ );
341
+ }
342
+ const parsed = JSON.parse(authState);
343
+ const evmWallet = parsed.wallet;
344
+ if (!evmWallet?.uid || !evmWallet?.sid || !evmWallet?.pvencstr || !evmWallet?.wid) {
345
+ throw new BitcoinProviderError(
346
+ BitcoinErrorCode.UNAUTHORIZED,
347
+ "EVM wallet data not found (required for Bitcoin signing)"
348
+ );
349
+ }
350
+ console.log(
351
+ "[BitcoinProvider] \u{1F510} Requesting PIN for Bitcoin transaction..."
352
+ );
353
+ const pin = await this.requestPin();
354
+ const encoder = new TextEncoder();
355
+ const data = encoder.encode(pin);
356
+ const hashBuffer = await crypto.subtle.digest("SHA-256", data);
357
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
358
+ const pinHash = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
359
+ const satoshis = Math.floor(params.amount * 1e8);
360
+ const SecureService = (await import("./abcWallet/secure.js")).default;
361
+ const secureService = new SecureService(this.client.bitcoin.getBaseURL());
362
+ const walletData = {
363
+ address: evmWallet.address,
364
+ keyId: evmWallet.keyId,
365
+ encryptedShare: evmWallet.encryptedShare,
366
+ uid: evmWallet.uid,
367
+ sid: evmWallet.sid,
368
+ wid: evmWallet.wid,
369
+ pvencstr: evmWallet.pvencstr,
370
+ encryptDevicePassword: evmWallet.encryptDevicePassword,
371
+ pubkey: evmWallet.pubkey
372
+ };
373
+ const txHash = await this.client.bitcoin.sendTransaction(
374
+ {
375
+ amount: satoshis.toString(),
376
+ to: params.toAddress,
377
+ pubkey: this.wallet.publicKey,
378
+ network: this.network.type
379
+ },
380
+ walletData,
381
+ pinHash,
382
+ secureService
383
+ );
384
+ console.log("[BitcoinProvider] \u2705 Transaction complete:", txHash);
385
+ this.emit("transactionBroadcasted", {
386
+ txHash,
387
+ explorerUrl: `${this.network.explorer}/tx/${txHash}`
388
+ });
389
+ this.clearUtxoCache();
390
+ return txHash;
391
+ } catch (error) {
392
+ if (error.message?.includes("cancelled") || error.message?.includes("rejected")) {
393
+ console.log("[BitcoinProvider] \u2139\uFE0F User cancelled transaction");
394
+ throw new BitcoinProviderError(
395
+ BitcoinErrorCode.USER_REJECTED,
396
+ "User rejected transaction",
397
+ error
398
+ );
399
+ }
400
+ console.error("[BitcoinProvider] \u274C Transaction failed:", error.message);
401
+ if (error.message?.includes("insufficient")) {
402
+ throw new BitcoinProviderError(
403
+ BitcoinErrorCode.INSUFFICIENT_FUNDS,
404
+ "Insufficient BTC balance",
405
+ error
406
+ );
407
+ }
408
+ this.emit("error", error);
409
+ throw new BitcoinProviderError(
410
+ BitcoinErrorCode.INTERNAL_ERROR,
411
+ "Failed to send transaction",
412
+ error
413
+ );
414
+ }
415
+ }
416
+ /**
417
+ * Broadcast signed transaction to network
418
+ *
419
+ * @param rawTransaction - Raw transaction in hex format
420
+ * @param psbt - Optional finalized PSBT
421
+ * @returns Transaction hash
422
+ */
423
+ async broadcastTransaction(rawTransaction, psbt) {
424
+ if (!this.wallet) {
425
+ throw new BitcoinProviderError(
426
+ BitcoinErrorCode.DISCONNECTED,
427
+ "Wallet not connected"
428
+ );
429
+ }
430
+ try {
431
+ console.log("[BitcoinProvider] \u{1F4E1} Broadcasting transaction...");
432
+ const result = await this.client.bitcoin.sendBitcoinTransaction({
433
+ network: this.network.type,
434
+ rawTransaction,
435
+ ...psbt && { psbt }
436
+ });
437
+ console.log(
438
+ "[BitcoinProvider] \u2705 Transaction broadcasted:",
439
+ result.txHash
440
+ );
441
+ this.emit("transactionBroadcasted", {
442
+ txHash: result.txHash,
443
+ explorerUrl: `${this.network.explorer}/tx/${result.txHash}`
444
+ });
445
+ this.clearUtxoCache();
446
+ return result.txHash;
447
+ } catch (error) {
448
+ console.error(
449
+ "[BitcoinProvider] \u274C Transaction broadcast failed:",
450
+ error.message
451
+ );
452
+ this.emit("error", error);
453
+ throw new BitcoinProviderError(
454
+ BitcoinErrorCode.INTERNAL_ERROR,
455
+ "Failed to broadcast transaction",
456
+ error
457
+ );
458
+ }
459
+ }
460
+ /**
461
+ * Get wallet info
462
+ */
463
+ getWalletInfo() {
464
+ if (!this.wallet)
465
+ return null;
466
+ return {
467
+ address: this.wallet.address,
468
+ publicKey: this.wallet.publicKey,
469
+ addressType: this.wallet.addressType,
470
+ network: this.network.type
471
+ };
472
+ }
473
+ /**
474
+ * Refresh UTXO cache
475
+ */
476
+ async refreshUtxos() {
477
+ return this.getUtxos(true);
478
+ }
479
+ };
480
+
481
+ export {
482
+ BitcoinProviderError,
483
+ BITCOIN_NETWORKS,
484
+ AbcBitcoinProvider
485
+ };
@@ -0,0 +1,56 @@
1
+ "use client";
2
+
3
+ // src/wallets/walletConnectors/abcWallet/types.ts
4
+ var AbcStorageKey = /* @__PURE__ */ ((AbcStorageKey2) => {
5
+ AbcStorageKey2["USER"] = "user";
6
+ AbcStorageKey2["WALLET"] = "wallet";
7
+ AbcStorageKey2["SOLANA_WALLET"] = "solana_wallet";
8
+ AbcStorageKey2["BITCOIN_WALLET"] = "bitcoin_wallet";
9
+ AbcStorageKey2["TRON_WALLET"] = "tron_wallet";
10
+ AbcStorageKey2["ACCESS_TOKEN"] = "access_token";
11
+ AbcStorageKey2["REFRESH_TOKEN"] = "refresh_token";
12
+ AbcStorageKey2["EXPIRES_AT"] = "expires_at";
13
+ AbcStorageKey2["PIN"] = "pin";
14
+ AbcStorageKey2["AUTH_STATE"] = "auth_state";
15
+ AbcStorageKey2["ENCRYPTED_TOKENS"] = "encrypted_tokens";
16
+ AbcStorageKey2["TOKEN_SALT"] = "token_salt";
17
+ return AbcStorageKey2;
18
+ })(AbcStorageKey || {});
19
+ var AbcErrorCode = /* @__PURE__ */ ((AbcErrorCode2) => {
20
+ AbcErrorCode2["INVALID_CREDENTIALS"] = "INVALID_CREDENTIALS";
21
+ AbcErrorCode2["TOKEN_EXPIRED"] = "TOKEN_EXPIRED";
22
+ AbcErrorCode2["WALLET_NOT_FOUND"] = "WALLET_NOT_FOUND";
23
+ AbcErrorCode2["INVALID_PIN"] = "INVALID_PIN";
24
+ AbcErrorCode2["NETWORK_ERROR"] = "NETWORK_ERROR";
25
+ AbcErrorCode2["SIGNATURE_FAILED"] = "SIGNATURE_FAILED";
26
+ AbcErrorCode2["USER_CANCELLED"] = "USER_CANCELLED";
27
+ AbcErrorCode2["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
28
+ AbcErrorCode2["ENCRYPTION_FAILED"] = "ENCRYPTION_FAILED";
29
+ AbcErrorCode2["DECRYPTION_FAILED"] = "DECRYPTION_FAILED";
30
+ return AbcErrorCode2;
31
+ })(AbcErrorCode || {});
32
+ var AbcError = class extends Error {
33
+ constructor(code, message, details, statusCode) {
34
+ super(message);
35
+ this.name = "AbcError";
36
+ this.code = code;
37
+ this.details = details;
38
+ this.statusCode = statusCode;
39
+ }
40
+ };
41
+ var TalkenApiError = class extends Error {
42
+ constructor(code, message, statusCode, details) {
43
+ super(message);
44
+ this.name = "TalkenApiError";
45
+ this.code = code;
46
+ this.statusCode = statusCode;
47
+ this.details = details;
48
+ }
49
+ };
50
+
51
+ export {
52
+ AbcStorageKey,
53
+ AbcErrorCode,
54
+ AbcError,
55
+ TalkenApiError
56
+ };