@reown/appkit-cdn 1.8.15-ea982070c1d274f5971447c430b6d77717082e78.0 → 1.8.15-viem-upgrade.0

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 (429) hide show
  1. package/package.json +10 -10
  2. package/dist/ConstantsUtil-BTJjr2qs.js +0 -24
  3. package/dist/ConstantsUtil-BTJjr2qs.js.map +0 -1
  4. package/dist/ExchangeController-CncqkHeT.js +0 -265
  5. package/dist/ExchangeController-CncqkHeT.js.map +0 -1
  6. package/dist/HelpersUtil-CwxnHyjS.js +0 -141
  7. package/dist/HelpersUtil-CwxnHyjS.js.map +0 -1
  8. package/dist/NavigationUtil-Ci15WS4K.js +0 -9
  9. package/dist/NavigationUtil-Ci15WS4K.js.map +0 -1
  10. package/dist/PhArrowCircleDown-B41iUlWV.js +0 -74
  11. package/dist/PhArrowCircleDown-B41iUlWV.js.map +0 -1
  12. package/dist/PhArrowClockwise-BY8u5n41.js +0 -74
  13. package/dist/PhArrowClockwise-BY8u5n41.js.map +0 -1
  14. package/dist/PhArrowDown-ClD8GZ65.js +0 -74
  15. package/dist/PhArrowDown-ClD8GZ65.js.map +0 -1
  16. package/dist/PhArrowLeft-B8MXUz60.js +0 -74
  17. package/dist/PhArrowLeft-B8MXUz60.js.map +0 -1
  18. package/dist/PhArrowRight-Cewa_Slb.js +0 -74
  19. package/dist/PhArrowRight-Cewa_Slb.js.map +0 -1
  20. package/dist/PhArrowSquareOut-whgWh-lD.js +0 -74
  21. package/dist/PhArrowSquareOut-whgWh-lD.js.map +0 -1
  22. package/dist/PhArrowUp-B1HXBxie.js +0 -74
  23. package/dist/PhArrowUp-B1HXBxie.js.map +0 -1
  24. package/dist/PhArrowUpRight-CfFYe4FP.js +0 -74
  25. package/dist/PhArrowUpRight-CfFYe4FP.js.map +0 -1
  26. package/dist/PhArrowsClockwise-gL1Gkrtx.js +0 -74
  27. package/dist/PhArrowsClockwise-gL1Gkrtx.js.map +0 -1
  28. package/dist/PhArrowsDownUp-BqUEdUQr.js +0 -74
  29. package/dist/PhArrowsDownUp-BqUEdUQr.js.map +0 -1
  30. package/dist/PhArrowsLeftRight-BlZU63eY.js +0 -74
  31. package/dist/PhArrowsLeftRight-BlZU63eY.js.map +0 -1
  32. package/dist/PhBank-gbg_jlI7.js +0 -74
  33. package/dist/PhBank-gbg_jlI7.js.map +0 -1
  34. package/dist/PhBrowser-CMlD-YJw.js +0 -74
  35. package/dist/PhBrowser-CMlD-YJw.js.map +0 -1
  36. package/dist/PhCaretDown-3agTO8Jp.js +0 -74
  37. package/dist/PhCaretDown-3agTO8Jp.js.map +0 -1
  38. package/dist/PhCaretLeft-_MTni7Z5.js +0 -74
  39. package/dist/PhCaretLeft-_MTni7Z5.js.map +0 -1
  40. package/dist/PhCaretRight-Ci9fAHPG.js +0 -74
  41. package/dist/PhCaretRight-Ci9fAHPG.js.map +0 -1
  42. package/dist/PhCaretUp-vFG4Fame.js +0 -74
  43. package/dist/PhCaretUp-vFG4Fame.js.map +0 -1
  44. package/dist/PhCheck-mChGK6K_.js +0 -74
  45. package/dist/PhCheck-mChGK6K_.js.map +0 -1
  46. package/dist/PhCircleHalf-DZ7-vfxf.js +0 -74
  47. package/dist/PhCircleHalf-DZ7-vfxf.js.map +0 -1
  48. package/dist/PhClock-Bc5XWXb6.js +0 -74
  49. package/dist/PhClock-Bc5XWXb6.js.map +0 -1
  50. package/dist/PhCompass-Cu2MB-55.js +0 -74
  51. package/dist/PhCompass-Cu2MB-55.js.map +0 -1
  52. package/dist/PhCopy-BGUjyTts.js +0 -74
  53. package/dist/PhCopy-BGUjyTts.js.map +0 -1
  54. package/dist/PhCreditCard-vxFWID4B.js +0 -74
  55. package/dist/PhCreditCard-vxFWID4B.js.map +0 -1
  56. package/dist/PhCurrencyDollar-BfOoDhJr.js +0 -74
  57. package/dist/PhCurrencyDollar-BfOoDhJr.js.map +0 -1
  58. package/dist/PhDesktop-Cq6jwzbS.js +0 -74
  59. package/dist/PhDesktop-Cq6jwzbS.js.map +0 -1
  60. package/dist/PhDeviceMobile-BCtTp6jj.js +0 -74
  61. package/dist/PhDeviceMobile-BCtTp6jj.js.map +0 -1
  62. package/dist/PhDotsThree-BGgD-WIO.js +0 -74
  63. package/dist/PhDotsThree-BGgD-WIO.js.map +0 -1
  64. package/dist/PhEnvelope-CQiV0-zG.js +0 -74
  65. package/dist/PhEnvelope-CQiV0-zG.js.map +0 -1
  66. package/dist/PhFunnelSimple-BHGtxTNf.js +0 -74
  67. package/dist/PhFunnelSimple-BHGtxTNf.js.map +0 -1
  68. package/dist/PhGlobe-Q8oVkf6X.js +0 -74
  69. package/dist/PhGlobe-Q8oVkf6X.js.map +0 -1
  70. package/dist/PhIdentificationCard-Cz9LzvVR.js +0 -74
  71. package/dist/PhIdentificationCard-Cz9LzvVR.js.map +0 -1
  72. package/dist/PhImage-CP5_qKk-.js +0 -74
  73. package/dist/PhImage-CP5_qKk-.js.map +0 -1
  74. package/dist/PhInfo-CTlE1X9Z.js +0 -74
  75. package/dist/PhInfo-CTlE1X9Z.js.map +0 -1
  76. package/dist/PhLightbulb-CcLpnAAb.js +0 -74
  77. package/dist/PhLightbulb-CcLpnAAb.js.map +0 -1
  78. package/dist/PhMagnifyingGlass-n58GUAck.js +0 -74
  79. package/dist/PhMagnifyingGlass-n58GUAck.js.map +0 -1
  80. package/dist/PhPaperPlaneRight-C0sf2XV8.js +0 -74
  81. package/dist/PhPaperPlaneRight-C0sf2XV8.js.map +0 -1
  82. package/dist/PhPlus-BJxvt7Uc.js +0 -74
  83. package/dist/PhPlus-BJxvt7Uc.js.map +0 -1
  84. package/dist/PhPower-BvktxO2-.js +0 -74
  85. package/dist/PhPower-BvktxO2-.js.map +0 -1
  86. package/dist/PhPuzzlePiece-CDDyUPYo.js +0 -74
  87. package/dist/PhPuzzlePiece-CDDyUPYo.js.map +0 -1
  88. package/dist/PhQrCode-BlGI8529.js +0 -74
  89. package/dist/PhQrCode-BlGI8529.js.map +0 -1
  90. package/dist/PhQuestion-DGZj6iDZ.js +0 -74
  91. package/dist/PhQuestion-DGZj6iDZ.js.map +0 -1
  92. package/dist/PhQuestionMark-CTmeI7MQ.js +0 -74
  93. package/dist/PhQuestionMark-CTmeI7MQ.js.map +0 -1
  94. package/dist/PhSealCheck-BSlqkxnH.js +0 -74
  95. package/dist/PhSealCheck-BSlqkxnH.js.map +0 -1
  96. package/dist/PhSignOut-CEXxlRk3.js +0 -74
  97. package/dist/PhSignOut-CEXxlRk3.js.map +0 -1
  98. package/dist/PhSpinner-Do1pY8fG.js +0 -74
  99. package/dist/PhSpinner-Do1pY8fG.js.map +0 -1
  100. package/dist/PhTrash-JNKavmpg.js +0 -74
  101. package/dist/PhTrash-JNKavmpg.js.map +0 -1
  102. package/dist/PhUser-BW7E-xYg.js +0 -74
  103. package/dist/PhUser-BW7E-xYg.js.map +0 -1
  104. package/dist/PhVault-mzxUgBYN.js +0 -74
  105. package/dist/PhVault-mzxUgBYN.js.map +0 -1
  106. package/dist/PhWallet-BR9JThKU.js +0 -74
  107. package/dist/PhWallet-BR9JThKU.js.map +0 -1
  108. package/dist/PhWarning-DxuQ70WM.js +0 -74
  109. package/dist/PhWarning-DxuQ70WM.js.map +0 -1
  110. package/dist/PhWarningCircle-DCI0JC1F.js +0 -74
  111. package/dist/PhWarningCircle-DCI0JC1F.js.map +0 -1
  112. package/dist/PhX-CWNXqpGn.js +0 -74
  113. package/dist/PhX-CWNXqpGn.js.map +0 -1
  114. package/dist/SwapController-DsYbP4IS.js +0 -684
  115. package/dist/SwapController-DsYbP4IS.js.map +0 -1
  116. package/dist/WebCryptoP256-Czt7ZkJ7.js +0 -3299
  117. package/dist/WebCryptoP256-Czt7ZkJ7.js.map +0 -1
  118. package/dist/add-UkulHTXi.js +0 -20
  119. package/dist/add-UkulHTXi.js.map +0 -1
  120. package/dist/all-wallets-DhJCVmL_.js +0 -11
  121. package/dist/all-wallets-DhJCVmL_.js.map +0 -1
  122. package/dist/app-store-Ern3I2La.js +0 -22
  123. package/dist/app-store-Ern3I2La.js.map +0 -1
  124. package/dist/appkit-ppmICUF1.js +0 -118106
  125. package/dist/appkit-ppmICUF1.js.map +0 -1
  126. package/dist/appkit.js +0 -11
  127. package/dist/appkit.js.map +0 -1
  128. package/dist/apple-_SZ-XSIx.js +0 -23
  129. package/dist/apple-_SZ-XSIx.js.map +0 -1
  130. package/dist/arrow-bottom-D7Qlu6xE.js +0 -13
  131. package/dist/arrow-bottom-D7Qlu6xE.js.map +0 -1
  132. package/dist/arrow-bottom-circle-Cel-TDaT.js +0 -16
  133. package/dist/arrow-bottom-circle-Cel-TDaT.js.map +0 -1
  134. package/dist/arrow-left-ByNxCvA_.js +0 -13
  135. package/dist/arrow-left-ByNxCvA_.js.map +0 -1
  136. package/dist/arrow-right-yep9R_ud.js +0 -13
  137. package/dist/arrow-right-yep9R_ud.js.map +0 -1
  138. package/dist/arrow-top-C1WlBAfk.js +0 -13
  139. package/dist/arrow-top-C1WlBAfk.js.map +0 -1
  140. package/dist/async-directive-C9EnweIr.js +0 -73
  141. package/dist/async-directive-C9EnweIr.js.map +0 -1
  142. package/dist/bank-Dm8zmIr0.js +0 -19
  143. package/dist/bank-Dm8zmIr0.js.map +0 -1
  144. package/dist/basic-UB459qAF.js +0 -4914
  145. package/dist/basic-UB459qAF.js.map +0 -1
  146. package/dist/browser-5XoTmr4n.js +0 -1991
  147. package/dist/browser-5XoTmr4n.js.map +0 -1
  148. package/dist/browser-LYv8PF5c.js +0 -19
  149. package/dist/browser-LYv8PF5c.js.map +0 -1
  150. package/dist/card-CEQLkIir.js +0 -19
  151. package/dist/card-CEQLkIir.js.map +0 -1
  152. package/dist/ccip-Dj8tRQd7.js +0 -164
  153. package/dist/ccip-Dj8tRQd7.js.map +0 -1
  154. package/dist/checkmark-DPFC_0yn.js +0 -16
  155. package/dist/checkmark-DPFC_0yn.js.map +0 -1
  156. package/dist/checkmark-bold-Hwfezlkn.js +0 -13
  157. package/dist/checkmark-bold-Hwfezlkn.js.map +0 -1
  158. package/dist/chevron-bottom-qsPvhQDo.js +0 -13
  159. package/dist/chevron-bottom-qsPvhQDo.js.map +0 -1
  160. package/dist/chevron-left-CA4SOr_F.js +0 -13
  161. package/dist/chevron-left-CA4SOr_F.js.map +0 -1
  162. package/dist/chevron-right-TeVZyORZ.js +0 -13
  163. package/dist/chevron-right-TeVZyORZ.js.map +0 -1
  164. package/dist/chevron-top-B7LCiM2n.js +0 -13
  165. package/dist/chevron-top-B7LCiM2n.js.map +0 -1
  166. package/dist/chrome-store-CU7w_5QC.js +0 -66
  167. package/dist/chrome-store-CU7w_5QC.js.map +0 -1
  168. package/dist/class-map-B814K2ej.js +0 -101
  169. package/dist/class-map-B814K2ej.js.map +0 -1
  170. package/dist/clock-DcbItfiJ.js +0 -13
  171. package/dist/clock-DcbItfiJ.js.map +0 -1
  172. package/dist/close-B22QsrS0.js +0 -13
  173. package/dist/close-B22QsrS0.js.map +0 -1
  174. package/dist/clsx.m-D57qXwfE.js +0 -21
  175. package/dist/clsx.m-D57qXwfE.js.map +0 -1
  176. package/dist/coinPlaceholder-BNrjpg6-.js +0 -13
  177. package/dist/coinPlaceholder-BNrjpg6-.js.map +0 -1
  178. package/dist/compass-C7GRFU39.js +0 -13
  179. package/dist/compass-C7GRFU39.js.map +0 -1
  180. package/dist/copy-BcrOhyLL.js +0 -20
  181. package/dist/copy-BcrOhyLL.js.map +0 -1
  182. package/dist/core-BI_Ap4BF.js +0 -16288
  183. package/dist/core-BI_Ap4BF.js.map +0 -1
  184. package/dist/cursor-AJkpyAWk.js +0 -8
  185. package/dist/cursor-AJkpyAWk.js.map +0 -1
  186. package/dist/cursor-transparent-C1dF4GFm.js +0 -17
  187. package/dist/cursor-transparent-C1dF4GFm.js.map +0 -1
  188. package/dist/data-capture-CqwQ1053.js +0 -549
  189. package/dist/data-capture-CqwQ1053.js.map +0 -1
  190. package/dist/desktop-C60oOo59.js +0 -14
  191. package/dist/desktop-C60oOo59.js.map +0 -1
  192. package/dist/disconnect-DqS517fE.js +0 -13
  193. package/dist/disconnect-DqS517fE.js.map +0 -1
  194. package/dist/discord-D1qNpgLJ.js +0 -22
  195. package/dist/discord-D1qNpgLJ.js.map +0 -1
  196. package/dist/email-UK97sxf8.js +0 -421
  197. package/dist/email-UK97sxf8.js.map +0 -1
  198. package/dist/embedded-wallet-f8ft4R2q.js +0 -952
  199. package/dist/embedded-wallet-f8ft4R2q.js.map +0 -1
  200. package/dist/etherscan-BWSY3GuJ.js +0 -11
  201. package/dist/etherscan-BWSY3GuJ.js.map +0 -1
  202. package/dist/exclamation-triangle-nypPoZ5T.js +0 -9
  203. package/dist/exclamation-triangle-nypPoZ5T.js.map +0 -1
  204. package/dist/extension-BuFHuaRl.js +0 -13
  205. package/dist/extension-BuFHuaRl.js.map +0 -1
  206. package/dist/external-link-L3QQJwck.js +0 -13
  207. package/dist/external-link-L3QQJwck.js.map +0 -1
  208. package/dist/facebook-BbbjiGyt.js +0 -31
  209. package/dist/facebook-BbbjiGyt.js.map +0 -1
  210. package/dist/farcaster-CDar3vjq.js +0 -17
  211. package/dist/farcaster-CDar3vjq.js.map +0 -1
  212. package/dist/features-Dne1ZyJy.js +0 -319
  213. package/dist/features-Dne1ZyJy.js.map +0 -1
  214. package/dist/filters-BprVfwTM.js +0 -13
  215. package/dist/filters-BprVfwTM.js.map +0 -1
  216. package/dist/github-BFRFSS65.js +0 -23
  217. package/dist/github-BFRFSS65.js.map +0 -1
  218. package/dist/google-DX3b-tuu.js +0 -23
  219. package/dist/google-DX3b-tuu.js.map +0 -1
  220. package/dist/hashTypedData-MEx8_Z-J.js +0 -262
  221. package/dist/hashTypedData-MEx8_Z-J.js.map +0 -1
  222. package/dist/help-circle-PtWG4XV9.js +0 -17
  223. package/dist/help-circle-PtWG4XV9.js.map +0 -1
  224. package/dist/id-BKzsrqpW.js +0 -17
  225. package/dist/id-BKzsrqpW.js.map +0 -1
  226. package/dist/if-defined-CyuCf775.js +0 -11
  227. package/dist/if-defined-CyuCf775.js.map +0 -1
  228. package/dist/image-2qjHFSqv.js +0 -9
  229. package/dist/image-2qjHFSqv.js.map +0 -1
  230. package/dist/index-57er67ch.js +0 -131
  231. package/dist/index-57er67ch.js.map +0 -1
  232. package/dist/index-B-MpJOWW.js +0 -3987
  233. package/dist/index-B-MpJOWW.js.map +0 -1
  234. package/dist/index-B2f4UbAK.js +0 -257
  235. package/dist/index-B2f4UbAK.js.map +0 -1
  236. package/dist/index-B4xD2s69.js +0 -62
  237. package/dist/index-B4xD2s69.js.map +0 -1
  238. package/dist/index-BF4uePO9.js +0 -126
  239. package/dist/index-BF4uePO9.js.map +0 -1
  240. package/dist/index-BG3007yu.js +0 -542
  241. package/dist/index-BG3007yu.js.map +0 -1
  242. package/dist/index-BPqsyCu1.js +0 -249
  243. package/dist/index-BPqsyCu1.js.map +0 -1
  244. package/dist/index-BTFeMb7h.js +0 -2277
  245. package/dist/index-BTFeMb7h.js.map +0 -1
  246. package/dist/index-B_z_MPZ-.js +0 -180
  247. package/dist/index-B_z_MPZ-.js.map +0 -1
  248. package/dist/index-Biw_bFmP.js +0 -70
  249. package/dist/index-Biw_bFmP.js.map +0 -1
  250. package/dist/index-BnY1urGu.js +0 -441
  251. package/dist/index-BnY1urGu.js.map +0 -1
  252. package/dist/index-C1OrBJOZ.js +0 -218
  253. package/dist/index-C1OrBJOZ.js.map +0 -1
  254. package/dist/index-CHvzOG0E.js +0 -1372
  255. package/dist/index-CHvzOG0E.js.map +0 -1
  256. package/dist/index-CKaIBA_q.js +0 -153
  257. package/dist/index-CKaIBA_q.js.map +0 -1
  258. package/dist/index-CLefivQ6.js +0 -124
  259. package/dist/index-CLefivQ6.js.map +0 -1
  260. package/dist/index-COvWUE72.js +0 -716
  261. package/dist/index-COvWUE72.js.map +0 -1
  262. package/dist/index-CRhk6ovx.js +0 -198
  263. package/dist/index-CRhk6ovx.js.map +0 -1
  264. package/dist/index-CfTNvhZC.js +0 -967
  265. package/dist/index-CfTNvhZC.js.map +0 -1
  266. package/dist/index-CjCwufpz.js +0 -120
  267. package/dist/index-CjCwufpz.js.map +0 -1
  268. package/dist/index-Ck3zz_LE.js +0 -984
  269. package/dist/index-Ck3zz_LE.js.map +0 -1
  270. package/dist/index-CqVDx2Ua.js +0 -9350
  271. package/dist/index-CqVDx2Ua.js.map +0 -1
  272. package/dist/index-CrF2nCtM.js +0 -211
  273. package/dist/index-CrF2nCtM.js.map +0 -1
  274. package/dist/index-Crnbnlbl.js +0 -8825
  275. package/dist/index-Crnbnlbl.js.map +0 -1
  276. package/dist/index-D7bwcPcO.js +0 -147
  277. package/dist/index-D7bwcPcO.js.map +0 -1
  278. package/dist/index-DAmhDlFG.js +0 -985
  279. package/dist/index-DAmhDlFG.js.map +0 -1
  280. package/dist/index-DF9XlWjQ.js +0 -456
  281. package/dist/index-DF9XlWjQ.js.map +0 -1
  282. package/dist/index-DGtLnlsD.js +0 -521
  283. package/dist/index-DGtLnlsD.js.map +0 -1
  284. package/dist/index-DIDlQZ9c.js +0 -1582
  285. package/dist/index-DIDlQZ9c.js.map +0 -1
  286. package/dist/index-DJe9wj3q.js +0 -136
  287. package/dist/index-DJe9wj3q.js.map +0 -1
  288. package/dist/index-DPlE9Qgr.js +0 -73
  289. package/dist/index-DPlE9Qgr.js.map +0 -1
  290. package/dist/index-DVXtgl7V.js +0 -7481
  291. package/dist/index-DVXtgl7V.js.map +0 -1
  292. package/dist/index-DWLAu0nH.js +0 -110
  293. package/dist/index-DWLAu0nH.js.map +0 -1
  294. package/dist/index-DXCwyaz_.js +0 -147
  295. package/dist/index-DXCwyaz_.js.map +0 -1
  296. package/dist/index-D_NteNrS.js +0 -198
  297. package/dist/index-D_NteNrS.js.map +0 -1
  298. package/dist/index-Dg65-p7m.js +0 -7258
  299. package/dist/index-Dg65-p7m.js.map +0 -1
  300. package/dist/index-Du7PdWv1.js +0 -181
  301. package/dist/index-Du7PdWv1.js.map +0 -1
  302. package/dist/index-HOjNYM_k.js +0 -92
  303. package/dist/index-HOjNYM_k.js.map +0 -1
  304. package/dist/index-MwW0rp8T.js +0 -286
  305. package/dist/index-MwW0rp8T.js.map +0 -1
  306. package/dist/index-OCzLDbWt.js +0 -18322
  307. package/dist/index-OCzLDbWt.js.map +0 -1
  308. package/dist/index-Sf3UCmHB.js +0 -611
  309. package/dist/index-Sf3UCmHB.js.map +0 -1
  310. package/dist/index-Zt_Jj4gf.js +0 -520
  311. package/dist/index-Zt_Jj4gf.js.map +0 -1
  312. package/dist/index-kb6zqfNt.js +0 -1178
  313. package/dist/index-kb6zqfNt.js.map +0 -1
  314. package/dist/index-rYPftA0P.js +0 -52
  315. package/dist/index-rYPftA0P.js.map +0 -1
  316. package/dist/index-tdPUUHj0.js +0 -281
  317. package/dist/index-tdPUUHj0.js.map +0 -1
  318. package/dist/index-wVp4UjVg.js +0 -182
  319. package/dist/index-wVp4UjVg.js.map +0 -1
  320. package/dist/index-ywRnp0Bi.js +0 -109
  321. package/dist/index-ywRnp0Bi.js.map +0 -1
  322. package/dist/index.es-BrfaQK0n.js +0 -8391
  323. package/dist/index.es-BrfaQK0n.js.map +0 -1
  324. package/dist/info-BhM-vMtG.js +0 -8
  325. package/dist/info-BhM-vMtG.js.map +0 -1
  326. package/dist/info-circle-DwGnsKMj.js +0 -17
  327. package/dist/info-circle-DwGnsKMj.js.map +0 -1
  328. package/dist/jsxRuntime.module-BW0yCO8A.js +0 -14
  329. package/dist/jsxRuntime.module-BW0yCO8A.js.map +0 -1
  330. package/dist/lightbulb-BvGmXMuo.js +0 -8
  331. package/dist/lightbulb-BvGmXMuo.js.map +0 -1
  332. package/dist/localBatchGatewayRequest-CLL1gABv.js +0 -103
  333. package/dist/localBatchGatewayRequest-CLL1gABv.js.map +0 -1
  334. package/dist/mail-Cl70v1Dx.js +0 -13
  335. package/dist/mail-Cl70v1Dx.js.map +0 -1
  336. package/dist/metamask-sdk-BzQ933Ju.js +0 -16699
  337. package/dist/metamask-sdk-BzQ933Ju.js.map +0 -1
  338. package/dist/mobile-BCINjy0Y.js +0 -14
  339. package/dist/mobile-BCINjy0Y.js.map +0 -1
  340. package/dist/more-Cozw6-SQ.js +0 -16
  341. package/dist/more-Cozw6-SQ.js.map +0 -1
  342. package/dist/native-Dc_5StoC.js +0 -17
  343. package/dist/native-Dc_5StoC.js.map +0 -1
  344. package/dist/network-placeholder-o2Dz_YnK.js +0 -19
  345. package/dist/network-placeholder-o2Dz_YnK.js.map +0 -1
  346. package/dist/nftPlaceholder-Bjf9SAC-.js +0 -13
  347. package/dist/nftPlaceholder-Bjf9SAC-.js.map +0 -1
  348. package/dist/off-BsVJ8v6H.js +0 -13
  349. package/dist/off-BsVJ8v6H.js.map +0 -1
  350. package/dist/onramp-C4DqYEmw.js +0 -979
  351. package/dist/onramp-C4DqYEmw.js.map +0 -1
  352. package/dist/parseAbiParameters-DfJcIE_w.js +0 -757
  353. package/dist/parseAbiParameters-DfJcIE_w.js.map +0 -1
  354. package/dist/parseSignature-MJforcG6.js +0 -4690
  355. package/dist/parseSignature-MJforcG6.js.map +0 -1
  356. package/dist/pay-with-exchange-DC29BzBo.js +0 -603
  357. package/dist/pay-with-exchange-DC29BzBo.js.map +0 -1
  358. package/dist/play-store-DIOK4cBW.js +0 -37
  359. package/dist/play-store-DIOK4cBW.js.map +0 -1
  360. package/dist/plus-Cxls3O6G.js +0 -18
  361. package/dist/plus-Cxls3O6G.js.map +0 -1
  362. package/dist/property-8UcTqffH.js +0 -623
  363. package/dist/property-8UcTqffH.js.map +0 -1
  364. package/dist/qr-code-Cp6lpAcY.js +0 -11
  365. package/dist/qr-code-Cp6lpAcY.js.map +0 -1
  366. package/dist/receive-BLI57snb.js +0 -262
  367. package/dist/receive-BLI57snb.js.map +0 -1
  368. package/dist/recycle-horizontal-AEJ_nbSP.js +0 -14
  369. package/dist/recycle-horizontal-AEJ_nbSP.js.map +0 -1
  370. package/dist/ref-BobNUvS_.js +0 -43
  371. package/dist/ref-BobNUvS_.js.map +0 -1
  372. package/dist/refresh-7roUeD2M.js +0 -13
  373. package/dist/refresh-7roUeD2M.js.map +0 -1
  374. package/dist/reown-logo-xggoIKX2.js +0 -17
  375. package/dist/reown-logo-xggoIKX2.js.map +0 -1
  376. package/dist/search-DgzcpMUb.js +0 -13
  377. package/dist/search-DgzcpMUb.js.map +0 -1
  378. package/dist/secp256k1-D_j0Z4BY.js +0 -2031
  379. package/dist/secp256k1-D_j0Z4BY.js.map +0 -1
  380. package/dist/send-D7M2-Upc.js +0 -20
  381. package/dist/send-D7M2-Upc.js.map +0 -1
  382. package/dist/send-TAzhXOOa.js +0 -1365
  383. package/dist/send-TAzhXOOa.js.map +0 -1
  384. package/dist/socials-BXTq602s.js +0 -796
  385. package/dist/socials-BXTq602s.js.map +0 -1
  386. package/dist/swapHorizontal-2gzDDUNF.js +0 -13
  387. package/dist/swapHorizontal-2gzDDUNF.js.map +0 -1
  388. package/dist/swapHorizontalBold-C1cHwAjU.js +0 -13
  389. package/dist/swapHorizontalBold-C1cHwAjU.js.map +0 -1
  390. package/dist/swapHorizontalMedium-BQno5vep.js +0 -21
  391. package/dist/swapHorizontalMedium-BQno5vep.js.map +0 -1
  392. package/dist/swapHorizontalRoundedBold-CYmZDeQ5.js +0 -13
  393. package/dist/swapHorizontalRoundedBold-CYmZDeQ5.js.map +0 -1
  394. package/dist/swapVertical-BhRPysBs.js +0 -13
  395. package/dist/swapVertical-BhRPysBs.js.map +0 -1
  396. package/dist/swaps-DQ-uUZvX.js +0 -2121
  397. package/dist/swaps-DQ-uUZvX.js.map +0 -1
  398. package/dist/telegram-B-YOyhte.js +0 -21
  399. package/dist/telegram-B-YOyhte.js.map +0 -1
  400. package/dist/three-dots-8mr70UzU.js +0 -10
  401. package/dist/three-dots-8mr70UzU.js.map +0 -1
  402. package/dist/transactions-C4p83vMQ.js +0 -38
  403. package/dist/transactions-C4p83vMQ.js.map +0 -1
  404. package/dist/twitch-C2ccExfT.js +0 -23
  405. package/dist/twitch-C2ccExfT.js.map +0 -1
  406. package/dist/twitterIcon-IkT5wPxq.js +0 -11
  407. package/dist/twitterIcon-IkT5wPxq.js.map +0 -1
  408. package/dist/vanilla-CgG5xMJO.js +0 -448
  409. package/dist/vanilla-CgG5xMJO.js.map +0 -1
  410. package/dist/verify-BfilAaob.js +0 -13
  411. package/dist/verify-BfilAaob.js.map +0 -1
  412. package/dist/verify-filled-COkWKgPo.js +0 -13
  413. package/dist/verify-filled-COkWKgPo.js.map +0 -1
  414. package/dist/w3m-modal-9MzgEqm3.js +0 -1725
  415. package/dist/w3m-modal-9MzgEqm3.js.map +0 -1
  416. package/dist/w3m-modal-DBQU256b.js +0 -2008
  417. package/dist/w3m-modal-DBQU256b.js.map +0 -1
  418. package/dist/wallet-9D5svrZj.js +0 -13
  419. package/dist/wallet-9D5svrZj.js.map +0 -1
  420. package/dist/wallet-placeholder-CfLGKG93.js +0 -19
  421. package/dist/wallet-placeholder-CfLGKG93.js.map +0 -1
  422. package/dist/wallet-standard-CkMoUaGA.js +0 -523
  423. package/dist/wallet-standard-CkMoUaGA.js.map +0 -1
  424. package/dist/walletconnect-MtAz2u7z.js +0 -39
  425. package/dist/walletconnect-MtAz2u7z.js.map +0 -1
  426. package/dist/warning-circle-Cf2AJecu.js +0 -17
  427. package/dist/warning-circle-Cf2AJecu.js.map +0 -1
  428. package/dist/x-B0KhGb39.js +0 -17
  429. package/dist/x-B0KhGb39.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-B-MpJOWW.js","sources":["../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/constants.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/store/store.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/telemetry-content.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/initCCA.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/utils/constants.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/error/constants.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/error/utils.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/error/errors.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/assertPresence.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/checkCrossOriginOpenerPolicy.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/validatePreferences.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/logEvent.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/events/communicator.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/events/dialog.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/ui/assets/fontFaceCSS.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/ui/assets/injectFontStyle.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/username/getDisplayableUsername.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/ui/assets/colors.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/ui/assets/BaseLogo.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/ui/Dialog/Dialog-css.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/ui/Dialog/Dialog.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/ui/Dialog/index.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/web.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/communicator/Communicator.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/error/serialize.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/provider/interface.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/events/provider.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/type/index.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/type/util.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/events/scw-signer.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/events/scw-sub-account.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/core/telemetry/utils.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/store/chain-clients/store.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/store/chain-clients/utils.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/store/correlation-ids/store.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/assertSubAccount.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/cipher.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/provider.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/kms/crypto-key/storage.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/kms/crypto-key/index.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/SCWKeyManager.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/get.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/utils.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/util/encoding.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/utils/createSmartAccount.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/utils/createSubAccountSigner.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/utils/findOwnerIndex.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/utils/presentAddOwnerDialog.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/utils/handleAddSubAccountOwner.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/utils/handleInsufficientBalance.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/sign/base-account/Signer.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/interface/builder/core/BaseAccountProvider.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/interface/builder/core/getInjectedProvider.js","../../../node_modules/.pnpm/@base-org+account@1.1.1_@types+react@19.2.2_bufferutil@4.0.9_react@19.2.1_typescript@5.9.2_us_lbi5hms3n6bhkktyflhidnbkx4/node_modules/@base-org/account/dist/interface/builder/core/createBaseAccountSDK.js"],"sourcesContent":["import pkg from '../../package.json' with { type: 'json' };\nexport const CB_KEYS_URL = 'https://keys.coinbase.com/connect';\nexport const CB_WALLET_RPC_URL = 'https://rpc.wallet.coinbase.com';\nexport const PACKAGE_NAME = pkg.name;\nexport const PACKAGE_VERSION = pkg.version;\n//# sourceMappingURL=constants.js.map","import { PACKAGE_VERSION } from '../core/constants.js';\nimport { createJSONStorage, persist } from 'zustand/middleware';\nimport { createStore } from 'zustand/vanilla';\nconst createChainSlice = () => {\n return {\n chains: [],\n };\n};\nconst createKeysSlice = () => {\n return {\n keys: {},\n };\n};\nconst createAccountSlice = () => {\n return {\n account: {},\n };\n};\nconst createSubAccountSlice = () => {\n return {\n subAccount: undefined,\n };\n};\nconst createSubAccountConfigSlice = () => {\n return {\n subAccountConfig: {},\n };\n};\nconst createSpendPermissionsSlice = () => {\n return {\n spendPermissions: [],\n };\n};\nconst createConfigSlice = () => {\n return {\n config: {\n version: PACKAGE_VERSION,\n },\n };\n};\nexport const sdkstore = createStore(persist((...args) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, createChainSlice(...args)), createKeysSlice(...args)), createAccountSlice(...args)), createSubAccountSlice(...args)), createSpendPermissionsSlice(...args)), createConfigSlice(...args)), createSubAccountConfigSlice(...args))), {\n name: 'base-acc-sdk.store',\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => {\n // Explicitly select only the data properties we want to persist\n // (not the methods)\n return {\n chains: state.chains,\n keys: state.keys,\n account: state.account,\n subAccount: state.subAccount,\n spendPermissions: state.spendPermissions,\n config: state.config,\n };\n },\n}));\n// Non-persisted subaccount configuration\nexport const subAccountsConfig = {\n get: () => sdkstore.getState().subAccountConfig,\n set: (subAccountConfig) => {\n sdkstore.setState((state) => ({\n subAccountConfig: Object.assign(Object.assign({}, state.subAccountConfig), subAccountConfig),\n }));\n },\n clear: () => {\n sdkstore.setState({\n subAccountConfig: {},\n });\n },\n};\nexport const subAccounts = {\n get: () => sdkstore.getState().subAccount,\n set: (subAccount) => {\n sdkstore.setState((state) => ({\n subAccount: state.subAccount\n ? Object.assign(Object.assign({}, state.subAccount), subAccount) : Object.assign({ address: subAccount.address }, subAccount),\n }));\n },\n clear: () => {\n sdkstore.setState({\n subAccount: undefined,\n });\n },\n};\nexport const spendPermissions = {\n get: () => sdkstore.getState().spendPermissions,\n set: (spendPermissions) => {\n sdkstore.setState({ spendPermissions });\n },\n clear: () => {\n sdkstore.setState({\n spendPermissions: [],\n });\n },\n};\nexport const account = {\n get: () => sdkstore.getState().account,\n set: (account) => {\n sdkstore.setState((state) => ({\n account: Object.assign(Object.assign({}, state.account), account),\n }));\n },\n clear: () => {\n sdkstore.setState({\n account: {},\n });\n },\n};\nexport const chains = {\n get: () => sdkstore.getState().chains,\n set: (chains) => {\n sdkstore.setState({ chains });\n },\n clear: () => {\n sdkstore.setState({\n chains: [],\n });\n },\n};\nexport const keys = {\n get: (key) => sdkstore.getState().keys[key],\n set: (key, value) => {\n sdkstore.setState((state) => ({ keys: Object.assign(Object.assign({}, state.keys), { [key]: value }) }));\n },\n clear: () => {\n sdkstore.setState({\n keys: {},\n });\n },\n};\nexport const config = {\n get: () => sdkstore.getState().config,\n set: (config) => {\n sdkstore.setState((state) => ({ config: Object.assign(Object.assign({}, state.config), config) }));\n },\n};\nconst actions = {\n subAccounts,\n subAccountsConfig,\n spendPermissions,\n account,\n chains,\n keys,\n config,\n};\nexport const store = Object.assign(Object.assign({}, sdkstore), actions);\n//# sourceMappingURL=store.js.map","// This file is auto-generated by compile-assets.cjs\n// Do not edit manually - changes will be overwritten\nexport const TELEMETRY_SCRIPT_CONTENT = `!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.ClientAnalytics=t():e.ClientAnalytics=t()}(this,(function(){return(()=>{var e={792:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join(\"\")}}};e.exports=t},562:e=>{var t,n;t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",n={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=n.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join(\"\")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var n=[],r=0;r<e.length;r+=3)for(var i=e[r]<<16|e[r+1]<<8|e[r+2],a=0;a<4;a++)8*r+6*a<=8*e.length?n.push(t.charAt(i>>>6*(3-a)&63)):n.push(\"=\");return n.join(\"\")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\\\\/]/gi,\"\");for(var n=[],r=0,i=0;r<e.length;i=++r%4)0!=i&&n.push((t.indexOf(e.charAt(r-1))&Math.pow(2,-2*i+8)-1)<<2*i|t.indexOf(e.charAt(r))>>>6-2*i);return n}},e.exports=n},335:e=>{function t(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},762:(e,t,n)=>{var r,i,a,o,s;r=n(562),i=n(792).utf8,a=n(335),o=n(792).bin,(s=function(e,t){e.constructor==String?e=t&&\"binary\"===t.encoding?o.stringToBytes(e):i.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=r.bytesToWords(e),c=8*e.length,u=1732584193,l=-271733879,d=-1732584194,p=271733878,m=0;m<n.length;m++)n[m]=16711935&(n[m]<<8|n[m]>>>24)|4278255360&(n[m]<<24|n[m]>>>8);n[c>>>5]|=128<<c%32,n[14+(c+64>>>9<<4)]=c;var f=s._ff,v=s._gg,g=s._hh,b=s._ii;for(m=0;m<n.length;m+=16){var h=u,w=l,y=d,T=p;u=f(u,l,d,p,n[m+0],7,-680876936),p=f(p,u,l,d,n[m+1],12,-389564586),d=f(d,p,u,l,n[m+2],17,606105819),l=f(l,d,p,u,n[m+3],22,-1044525330),u=f(u,l,d,p,n[m+4],7,-176418897),p=f(p,u,l,d,n[m+5],12,1200080426),d=f(d,p,u,l,n[m+6],17,-1473231341),l=f(l,d,p,u,n[m+7],22,-45705983),u=f(u,l,d,p,n[m+8],7,1770035416),p=f(p,u,l,d,n[m+9],12,-1958414417),d=f(d,p,u,l,n[m+10],17,-42063),l=f(l,d,p,u,n[m+11],22,-1990404162),u=f(u,l,d,p,n[m+12],7,1804603682),p=f(p,u,l,d,n[m+13],12,-40341101),d=f(d,p,u,l,n[m+14],17,-1502002290),u=v(u,l=f(l,d,p,u,n[m+15],22,1236535329),d,p,n[m+1],5,-165796510),p=v(p,u,l,d,n[m+6],9,-1069501632),d=v(d,p,u,l,n[m+11],14,643717713),l=v(l,d,p,u,n[m+0],20,-373897302),u=v(u,l,d,p,n[m+5],5,-701558691),p=v(p,u,l,d,n[m+10],9,38016083),d=v(d,p,u,l,n[m+15],14,-660478335),l=v(l,d,p,u,n[m+4],20,-405537848),u=v(u,l,d,p,n[m+9],5,568446438),p=v(p,u,l,d,n[m+14],9,-1019803690),d=v(d,p,u,l,n[m+3],14,-187363961),l=v(l,d,p,u,n[m+8],20,1163531501),u=v(u,l,d,p,n[m+13],5,-1444681467),p=v(p,u,l,d,n[m+2],9,-51403784),d=v(d,p,u,l,n[m+7],14,1735328473),u=g(u,l=v(l,d,p,u,n[m+12],20,-1926607734),d,p,n[m+5],4,-378558),p=g(p,u,l,d,n[m+8],11,-2022574463),d=g(d,p,u,l,n[m+11],16,1839030562),l=g(l,d,p,u,n[m+14],23,-35309556),u=g(u,l,d,p,n[m+1],4,-1530992060),p=g(p,u,l,d,n[m+4],11,1272893353),d=g(d,p,u,l,n[m+7],16,-155497632),l=g(l,d,p,u,n[m+10],23,-1094730640),u=g(u,l,d,p,n[m+13],4,681279174),p=g(p,u,l,d,n[m+0],11,-358537222),d=g(d,p,u,l,n[m+3],16,-722521979),l=g(l,d,p,u,n[m+6],23,76029189),u=g(u,l,d,p,n[m+9],4,-640364487),p=g(p,u,l,d,n[m+12],11,-421815835),d=g(d,p,u,l,n[m+15],16,530742520),u=b(u,l=g(l,d,p,u,n[m+2],23,-995338651),d,p,n[m+0],6,-198630844),p=b(p,u,l,d,n[m+7],10,1126891415),d=b(d,p,u,l,n[m+14],15,-1416354905),l=b(l,d,p,u,n[m+5],21,-57434055),u=b(u,l,d,p,n[m+12],6,1700485571),p=b(p,u,l,d,n[m+3],10,-1894986606),d=b(d,p,u,l,n[m+10],15,-1051523),l=b(l,d,p,u,n[m+1],21,-2054922799),u=b(u,l,d,p,n[m+8],6,1873313359),p=b(p,u,l,d,n[m+15],10,-30611744),d=b(d,p,u,l,n[m+6],15,-1560198380),l=b(l,d,p,u,n[m+13],21,1309151649),u=b(u,l,d,p,n[m+4],6,-145523070),p=b(p,u,l,d,n[m+11],10,-1120210379),d=b(d,p,u,l,n[m+2],15,718787259),l=b(l,d,p,u,n[m+9],21,-343485551),u=u+h>>>0,l=l+w>>>0,d=d+y>>>0,p=p+T>>>0}return r.endian([u,l,d,p])})._ff=function(e,t,n,r,i,a,o){var s=e+(t&n|~t&r)+(i>>>0)+o;return(s<<a|s>>>32-a)+t},s._gg=function(e,t,n,r,i,a,o){var s=e+(t&r|n&~r)+(i>>>0)+o;return(s<<a|s>>>32-a)+t},s._hh=function(e,t,n,r,i,a,o){var s=e+(t^n^r)+(i>>>0)+o;return(s<<a|s>>>32-a)+t},s._ii=function(e,t,n,r,i,a,o){var s=e+(n^(t|~r))+(i>>>0)+o;return(s<<a|s>>>32-a)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error(\"Illegal argument \"+e);var n=r.wordsToBytes(s(e,t));return t&&t.asBytes?n:t&&t.asString?o.bytesToString(n):r.bytesToHex(n)}},2:(e,t,n)=>{\"use strict\";n.r(t),n.d(t,{Perfume:()=>ze,incrementUjNavigation:()=>Le,markStep:()=>Re,markStepOnce:()=>qe});var r,i,a={isResourceTiming:!1,isElementTiming:!1,maxTime:3e4,reportOptions:{},enableNavigationTracking:!0},o=window,s=o.console,c=o.navigator,u=o.performance,l=function(){return c.deviceMemory},d=function(){return c.hardwareConcurrency},p=\"mark.\",m=function(){return u&&!!u.getEntriesByType&&!!u.now&&!!u.mark},f=\"4g\",v=!1,g={},b={value:0},h={value:{beacon:0,css:0,fetch:0,img:0,other:0,script:0,total:0,xmlhttprequest:0}},w={value:0},y={value:0},T={},k={isHidden:!1,didChange:!1},_=function(){k.isHidden=!1,document.hidden&&(k.isHidden=document.hidden,k.didChange=!0)},S=function(e,t){try{var n=new PerformanceObserver((function(e){t(e.getEntries())}));return n.observe({type:e,buffered:!0}),n}catch(e){s.warn(\"Perfume.js:\",e)}return null},E=function(){return!!(d()&&d()<=4)||!!(l()&&l()<=4)},x=function(e,t){switch(e){case\"slow-2g\":case\"2g\":case\"3g\":return!0;default:return E()||t}},O=function(e){return parseFloat(e.toFixed(4))},j=function(e){return\"number\"!=typeof e?null:O(e/Math.pow(1024,2))},N=function(e,t,n,r,i){var s,u=function(){a.analyticsTracker&&(k.isHidden&&![\"CLS\",\"INP\"].includes(e)||a.analyticsTracker({attribution:r,metricName:e,data:t,navigatorInformation:c?{deviceMemory:l()||0,hardwareConcurrency:d()||0,serviceWorkerStatus:\"serviceWorker\"in c?c.serviceWorker.controller?\"controlled\":\"supported\":\"unsupported\",isLowEndDevice:E(),isLowEndExperience:x(f,v)}:{},rating:n,navigationType:i}))};[\"CLS\",\"INP\"].includes(e)?u():(s=u,\"requestIdleCallback\"in o?o.requestIdleCallback(s,{timeout:3e3}):s())},I=function(e){e.forEach((function(e){if(!(\"self\"!==e.name||e.startTime<b.value)){var t=e.duration-50;t>0&&(w.value+=t,y.value+=t)}}))};!function(e){e.instant=\"instant\",e.quick=\"quick\",e.moderate=\"moderate\",e.slow=\"slow\",e.unavoidable=\"unavoidable\"}(r||(r={}));var P,M,B,C,D,A=((i={})[r.instant]={vitalsThresholds:[100,200],maxOutlierThreshold:1e4},i[r.quick]={vitalsThresholds:[200,500],maxOutlierThreshold:1e4},i[r.moderate]={vitalsThresholds:[500,1e3],maxOutlierThreshold:1e4},i[r.slow]={vitalsThresholds:[1e3,2e3],maxOutlierThreshold:1e4},i[r.unavoidable]={vitalsThresholds:[2e3,5e3],maxOutlierThreshold:2e4},i),L={RT:[100,200],TBT:[200,600],NTBT:[200,600]},U=function(e,t){return L[e]?t<=L[e][0]?\"good\":t<=L[e][1]?\"needsImprovement\":\"poor\":null},R=function(e,t,n){Object.keys(t).forEach((function(e){\"number\"==typeof t[e]&&(t[e]=O(t[e]))})),N(e,t,null,n||{})},q=function(e){var t=e.attribution,n=e.name,r=e.rating,i=e.value,o=e.navigationType;\"FCP\"===n&&(b.value=i),[\"FCP\",\"LCP\"].includes(n)&&!T[0]&&(T[0]=S(\"longtask\",I)),\"FID\"===n&&setTimeout((function(){k.didChange||(q({attribution:t,name:\"TBT\",rating:U(\"TBT\",w.value),value:w.value,navigationType:o}),R(\"dataConsumption\",h.value))}),1e4);var s=O(i);s<=a.maxTime&&s>=0&&N(n,s,r,t,o)},F=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0]},z=function(e){if(\"loading\"===document.readyState)return\"loading\";var t=F();if(t){if(e<t.domInteractive)return\"loading\";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return\"dom-interactive\";if(0===t.domComplete||e<t.domComplete)return\"dom-content-loaded\"}return\"complete\"},K=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,\"\")},$=function(e,t){var n=\"\";try{for(;e&&9!==e.nodeType;){var r=e,i=r.id?\"#\"+r.id:K(r)+(r.className&&r.className.length?\".\"+r.className.replace(/\\\\s+/g,\".\"):\"\");if(n.length+i.length>(t||100)-1)return n||i;if(n=n?i+\">\"+n:i,r.id)break;e=r.parentNode}}catch(e){}return n},Q=-1,W=function(){return Q},H=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&(Q=t.timeStamp,e(t))}),!0)},V=function(){var e=F();return e&&e.activationStart||0},J=function(e,t){var n=F(),r=\"navigate\";return W()>=0?r=\"back-forward-cache\":n&&(r=document.prerendering||V()>0?\"prerender\":document.wasDiscarded?\"restore\":n.type.replace(/_/g,\"-\")),{name:e,value:void 0===t?-1:t,rating:\"good\",delta:0,entries:[],id:\"v3-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},X=function(e,t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},n||{})),r}}catch(e){}},G=function(e,t){var n=function n(r){\"pagehide\"!==r.type&&\"hidden\"!==document.visibilityState||(e(r),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},Z=function(e,t,n,r){var i,a;return function(o){t.value>=0&&(o||r)&&((a=t.value-(i||0))||void 0===i)&&(i=t.value,t.delta=a,t.rating=function(e,t){return e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\"}(t.value,n),e(t))}},Y=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},ee=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},te=-1,ne=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},re=function(e){\"hidden\"===document.visibilityState&&te>-1&&(te=\"visibilitychange\"===e.type?e.timeStamp:0,ae())},ie=function(){addEventListener(\"visibilitychange\",re,!0),addEventListener(\"prerenderingchange\",re,!0)},ae=function(){removeEventListener(\"visibilitychange\",re,!0),removeEventListener(\"prerenderingchange\",re,!0)},oe=function(){return te<0&&(te=ne(),ie(),H((function(){setTimeout((function(){te=ne(),ie()}),0)}))),{get firstHiddenTime(){return te}}},se=function(e,t){t=t||{},ee((function(){var n,r=[1800,3e3],i=oe(),a=J(\"FCP\"),o=X(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTime<i.firstHiddenTime&&(a.value=Math.max(e.startTime-V(),0),a.entries.push(e),n(!0)))}))}));o&&(n=Z(e,a,r,t.reportAllChanges),H((function(i){a=J(\"FCP\"),n=Z(e,a,r,t.reportAllChanges),Y((function(){a.value=performance.now()-i.timeStamp,n(!0)}))})))}))},ce={passive:!0,capture:!0},ue=new Date,le=function(e,t){P||(P=t,M=e,B=new Date,me(removeEventListener),de())},de=function(){if(M>=0&&M<B-ue){var e={entryType:\"first-input\",name:P.type,target:P.target,cancelable:P.cancelable,startTime:P.timeStamp,processingStart:P.timeStamp+M};C.forEach((function(t){t(e)})),C=[]}},pe=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){le(e,t),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",n,ce),removeEventListener(\"pointercancel\",r,ce)};addEventListener(\"pointerup\",n,ce),addEventListener(\"pointercancel\",r,ce)}(t,e):le(t,e)}},me=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,pe,ce)}))},fe=0,ve=1/0,ge=0,be=function(e){e.forEach((function(e){e.interactionId&&(ve=Math.min(ve,e.interactionId),ge=Math.max(ge,e.interactionId),fe=ge?(ge-ve)/7+1:0)}))},he=function(){return D?fe:performance.interactionCount||0},we=0,ye=function(){return he()-we},Te=[],ke={},_e=function(e){var t=Te[Te.length-1],n=ke[e.interactionId];if(n||Te.length<10||e.duration>t.latency){if(n)n.entries.push(e),n.latency=Math.max(n.latency,e.duration);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};ke[r.id]=r,Te.push(r)}Te.sort((function(e,t){return t.latency-e.latency})),Te.splice(10).forEach((function(e){delete ke[e.id]}))}},Se={},Ee=function e(t){document.prerendering?ee((function(){return e(t)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return e(t)}),!0):setTimeout(t,0)},xe=function(e,t){t=t||{};var n=[800,1800],r=J(\"TTFB\"),i=Z(e,r,n,t.reportAllChanges);Ee((function(){var a=F();if(a){var o=a.responseStart;if(o<=0||o>performance.now())return;r.value=Math.max(o-V(),0),r.entries=[a],i(!0),H((function(){r=J(\"TTFB\",0),(i=Z(e,r,n,t.reportAllChanges))(!0)}))}}))},Oe=function(e){e.forEach((function(e){e.identifier&&q({attribution:{identifier:e.identifier},name:\"ET\",rating:null,value:e.startTime})}))},je=function(e){e.forEach((function(e){if(a.isResourceTiming&&R(\"resourceTiming\",e),e.decodedBodySize&&e.initiatorType){var t=e.decodedBodySize/1e3;h.value[e.initiatorType]+=t,h.value.total+=t}}))},Ne=function(){!function(e,t){xe((function(e){!function(e){if(e.entries.length){var t=e.entries[0],n=t.activationStart||0,r=Math.max(t.domainLookupStart-n,0),i=Math.max(t.connectStart-n,0),a=Math.max(t.requestStart-n,0);e.attribution={waitingTime:r,dnsTime:i-r,connectionTime:a-i,requestTime:e.value-a,navigationEntry:t}}else e.attribution={waitingTime:0,dnsTime:0,connectionTime:0,requestTime:0}}(e),function(e){e.value>0&&q(e)}(e)}),t)}(0,a.reportOptions.ttfb),function(e,t){!function(e,t){t=t||{},ee((function(){var e,n=[.1,.25],r=J(\"CLS\"),i=-1,a=0,o=[],s=function(e){i>-1&&function(e){!function(e){if(e.entries.length){var t=e.entries.reduce((function(e,t){return e&&e.value>t.value?e:t}));if(t&&t.sources&&t.sources.length){var n=(r=t.sources).find((function(e){return e.node&&1===e.node.nodeType}))||r[0];if(n)return void(e.attribution={largestShiftTarget:$(n.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:n,largestShiftEntry:t,loadState:z(t.startTime)})}}var r;e.attribution={}}(e),function(e){q(e)}(e)}(e)},c=function(t){t.forEach((function(t){if(!t.hadRecentInput){var n=o[0],i=o[o.length-1];a&&t.startTime-i.startTime<1e3&&t.startTime-n.startTime<5e3?(a+=t.value,o.push(t)):(a=t.value,o=[t]),a>r.value&&(r.value=a,r.entries=o,e())}}))},u=X(\"layout-shift\",c);u&&(e=Z(s,r,n,t.reportAllChanges),se((function(t){i=t.value,r.value<0&&(r.value=0,e())})),G((function(){c(u.takeRecords()),e(!0)})),H((function(){a=0,i=-1,r=J(\"CLS\",0),e=Z(s,r,n,t.reportAllChanges),Y((function(){return e()}))})))}))}(0,t)}(0,a.reportOptions.cls),function(e,t){se((function(e){!function(e){if(e.entries.length){var t=F(),n=e.entries[e.entries.length-1];if(t){var r=t.activationStart||0,i=Math.max(0,t.responseStart-r);return void(e.attribution={timeToFirstByte:i,firstByteToFCP:e.value-i,loadState:z(e.entries[0].startTime),navigationEntry:t,fcpEntry:n})}}e.attribution={timeToFirstByte:0,firstByteToFCP:e.value,loadState:z(W())}}(e),function(e){q(e)}(e)}),t)}(0,a.reportOptions.fcp),function(e,t){!function(e,t){t=t||{},ee((function(){var n,r=[100,300],i=oe(),a=J(\"FID\"),o=function(e){e.startTime<i.firstHiddenTime&&(a.value=e.processingStart-e.startTime,a.entries.push(e),n(!0))},s=function(e){e.forEach(o)},c=X(\"first-input\",s);n=Z(e,a,r,t.reportAllChanges),c&&G((function(){s(c.takeRecords()),c.disconnect()}),!0),c&&H((function(){var i;a=J(\"FID\"),n=Z(e,a,r,t.reportAllChanges),C=[],M=-1,P=null,me(addEventListener),i=o,C.push(i),de()}))}))}((function(e){!function(e){var t=e.entries[0];e.attribution={eventTarget:$(t.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:z(t.startTime)}}(e),function(e){q(e)}(e)}),t)}(0,a.reportOptions.fid),function(e,t){!function(e,t){t=t||{},ee((function(){var n,r=[2500,4e3],i=oe(),a=J(\"LCP\"),o=function(e){var t=e[e.length-1];if(t){var r=Math.max(t.startTime-V(),0);r<i.firstHiddenTime&&(a.value=r,a.entries=[t],n())}},s=X(\"largest-contentful-paint\",o);if(s){n=Z(e,a,r,t.reportAllChanges);var c=function(){Se[a.id]||(o(s.takeRecords()),s.disconnect(),Se[a.id]=!0,n(!0))};[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,c,{once:!0,capture:!0})})),G(c,!0),H((function(i){a=J(\"LCP\"),n=Z(e,a,r,t.reportAllChanges),Y((function(){a.value=performance.now()-i.timeStamp,Se[a.id]=!0,n(!0)}))}))}}))}((function(e){!function(e){if(e.entries.length){var t=F();if(t){var n=t.activationStart||0,r=e.entries[e.entries.length-1],i=r.url&&performance.getEntriesByType(\"resource\").filter((function(e){return e.name===r.url}))[0],a=Math.max(0,t.responseStart-n),o=Math.max(a,i?(i.requestStart||i.startTime)-n:0),s=Math.max(o,i?i.responseEnd-n:0),c=Math.max(s,r?r.startTime-n:0),u={element:$(r.element),timeToFirstByte:a,resourceLoadDelay:o-a,resourceLoadTime:s-o,elementRenderDelay:c-s,navigationEntry:t,lcpEntry:r};return r.url&&(u.url=r.url),i&&(u.lcpResourceEntry=i),void(e.attribution=u)}}e.attribution={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadTime:0,elementRenderDelay:e.value}}(e),function(e){q(e)}(e)}),t)}(0,a.reportOptions.lcp),function(e,t){!function(e,t){t=t||{},ee((function(){var n=[200,500];\"interactionCount\"in performance||D||(D=X(\"event\",be,{type:\"event\",buffered:!0,durationThreshold:0}));var r,i=J(\"INP\"),a=function(e){e.forEach((function(e){e.interactionId&&_e(e),\"first-input\"===e.entryType&&!Te.some((function(t){return t.entries.some((function(t){return e.duration===t.duration&&e.startTime===t.startTime}))}))&&_e(e)}));var t,n=(t=Math.min(Te.length-1,Math.floor(ye()/50)),Te[t]);n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())},o=X(\"event\",a,{durationThreshold:t.durationThreshold||40});r=Z(e,i,n,t.reportAllChanges),o&&(o.observe({type:\"first-input\",buffered:!0}),G((function(){a(o.takeRecords()),i.value<0&&ye()>0&&(i.value=0,i.entries=[]),r(!0)})),H((function(){Te=[],we=he(),i=J(\"INP\"),r=Z(e,i,n,t.reportAllChanges)})))}))}((function(t){!function(e){if(e.entries.length){var t=e.entries.sort((function(e,t){return t.duration-e.duration||t.processingEnd-t.processingStart-(e.processingEnd-e.processingStart)}))[0];e.attribution={eventTarget:$(t.target),eventType:t.name,eventTime:t.startTime,eventEntry:t,loadState:z(t.startTime)}}else e.attribution={}}(t),e(t)}),t)}((function(e){return q(e)}),a.reportOptions.inp),a.isResourceTiming&&S(\"resource\",je),a.isElementTiming&&S(\"element\",Oe)},Ie=function(e){var t=\"usageDetails\"in e?e.usageDetails:{};R(\"storageEstimate\",{quota:j(e.quota),usage:j(e.usage),caches:j(t.caches),indexedDB:j(t.indexedDB),serviceWorker:j(t.serviceWorkerRegistrations)})},Pe={finalMarkToStepsMap:{},startMarkToStepsMap:{},active:{},navigationSteps:{}},Me=function(e){delete Pe.active[e]},Be=function(){return Pe.navigationSteps},Ce=function(e){var t;return null!==(t=Be()[e])&&void 0!==t?t:{}},De=function(e,t,n){var r=\"step.\"+e,i=u.getEntriesByName(p+t).length>0;if(u.getEntriesByName(p+n).length>0&&a.steps){var o=A[a.steps[e].threshold],s=o.maxOutlierThreshold,c=o.vitalsThresholds;if(i){var l=u.measure(r,p+t,p+n),d=l.duration;if(d<=s){var m=function(e,t){return e<=t[0]?\"good\":e<=t[1]?\"needsImprovement\":\"poor\"}(d,c);d>=0&&(N(\"userJourneyStep\",d,m,{stepName:e},void 0),u.measure(\"step.\".concat(e,\"_vitals_\").concat(m),{start:l.startTime+l.duration,end:l.startTime+l.duration,detail:{type:\"stepVital\",duration:d}}))}}}},Ae=function(){var e=Be(),t=Pe.startMarkToStepsMap,n=Object.keys(e).length;if(0===n)return{};var r={},i=n-1,a=Ce(i);if(Object.keys(a).forEach((function(e){var n,i=null!==(n=t[e])&&void 0!==n?n:[];Object.keys(i).forEach((function(e){r[e]=!0}))})),n>1){var o=Ce(i-1);Object.keys(o).forEach((function(e){var n,i=null!==(n=t[e])&&void 0!==n?n:[];Object.keys(i).forEach((function(e){r[e]=!0}))}))}return r},Le=function(){var e,t=Object.keys(Pe.navigationSteps).length;Pe.navigationSteps[t]={};var n=Ae();null===(e=a.onMarkStep)||void 0===e||e.call(a,\"\",Object.keys(n))},Ue=function(e){var t,n,r,i,o,s,c;if(Pe.finalMarkToStepsMap[e]){!function(e){var t=Pe.navigationSteps,n=Pe.finalMarkToStepsMap,r=Object.keys(t).length;if(0!==r){var i=r-1,a=Ce(i);if(a&&n[e]){var o=n[e];o&&Object.keys(o).forEach((function(e){if(a[e]){var n=Ce(i)||{};n[e]=!1,t[i]=n}if(r>1){var o=i-1,s=Ce(o);s[e]&&(s[e]=!1,t[o]=s)}}))}}}(e);var u=Pe.finalMarkToStepsMap[e];Object.keys(u).forEach((function(t){var n=u[t];n.forEach(Me),Promise.all(n.map((function(n){return function(e,t,n,r){return new(n||(n=Promise))((function(e,t){function i(e){try{o(r.next(e))}catch(e){t(e)}}function a(e){try{o(r.throw(e))}catch(e){t(e)}}function o(t){var r;t.done?e(t.value):(r=t.value,r instanceof n?r:new n((function(e){e(r)}))).then(i,a)}o((r=r.apply(undefined,[])).next())}))}(0,0,void 0,(function(){return function(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError(\"Generator is already executing.\");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!((i=(i=o.trys).length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}(this,(function(r){switch(r.label){case 0:return[4,De(n,t,e)];case 1:return r.sent(),[2]}}))}))}))).catch((function(){}))}))}else r=e,i=Pe.navigationSteps,o=Object.keys(i).length,(c=Ce(s=(o>0?o:1)-1)||[])[r]=!0,i[s]=c,function(e){var t,n=null!==(t=Pe.startMarkToStepsMap[e])&&void 0!==t?t:[];Object.keys(n).forEach((function(e){Pe.active[e]||(Pe.active[e]=!0)}))}(e);if(a.enableNavigationTracking){var l=Ae();null===(t=a.onMarkStep)||void 0===t||t.call(a,e,Object.keys(l))}else null===(n=a.onMarkStep)||void 0===n||n.call(a,e,Object.keys(Pe.active))},Re=function(e){u.mark(p+e),Ue(e)},qe=function(e){0===u.getEntriesByName(p+e).length&&(u.mark(p+e),Ue(e))},Fe=0,ze=function(){function e(e){if(void 0===e&&(e={}),this.v=\"9.0.0-rc.3\",a.analyticsTracker=e.analyticsTracker,a.isResourceTiming=!!e.resourceTiming,a.isElementTiming=!!e.elementTiming,a.maxTime=e.maxMeasureTime||a.maxTime,a.reportOptions=e.reportOptions||a.reportOptions,a.steps=e.steps,a.onMarkStep=e.onMarkStep,a.enableNavigationTracking=e.enableNavigationTracking,m()){\"PerformanceObserver\"in o&&Ne(),void 0!==document.hidden&&document.addEventListener(\"visibilitychange\",_);var t=function(){if(!m())return{};var e=u.getEntriesByType(\"navigation\")[0];if(!e)return{};var t=e.responseStart,n=e.responseEnd;return{fetchTime:n-e.fetchStart,workerTime:e.workerStart>0?n-e.workerStart:0,totalTime:n-e.requestStart,downloadTime:n-t,timeToFirstByte:t-e.requestStart,headerSize:e.transferSize-e.encodedBodySize||0,dnsLookupTime:e.domainLookupEnd-e.domainLookupStart,redirectTime:e.redirectEnd-e.redirectStart}}();R(\"navigationTiming\",t),t.redirectTime&&q({attribution:{},name:\"RT\",rating:U(\"RT\",t.redirectTime),value:t.redirectTime}),R(\"networkInformation\",function(){if(\"connection\"in c){var e=c.connection;return\"object\"!=typeof e?{}:(f=e.effectiveType,v=!!e.saveData,{downlink:e.downlink,effectiveType:e.effectiveType,rtt:e.rtt,saveData:!!e.saveData})}return{}}()),c&&c.storage&&\"function\"==typeof c.storage.estimate&&c.storage.estimate().then(Ie),a.steps&&a.steps&&(Pe.startMarkToStepsMap={},Pe.finalMarkToStepsMap={},Pe.active={},Pe.navigationSteps={},Object.entries(a.steps).forEach((function(e){var t,n,r=e[0],i=e[1].marks,a=i[0],o=i[1],s=null!==(n=Pe.startMarkToStepsMap[a])&&void 0!==n?n:{};if(s[r]=!0,Pe.startMarkToStepsMap[a]=s,Pe.finalMarkToStepsMap[o]){var c=Pe.finalMarkToStepsMap[o][a]||[];c.push(r),Pe.finalMarkToStepsMap[o][a]=c}else Pe.finalMarkToStepsMap[o]=((t={})[a]=[r],t)})))}}return e.prototype.start=function(e){m()&&!g[e]&&(g[e]=!0,u.mark(\"mark_\".concat(e,\"_start\")))},e.prototype.end=function(e,t,n){if(void 0===t&&(t={}),void 0===n&&(n=!0),m()&&g[e]){u.mark(\"mark_\".concat(e,\"_end\")),delete g[e];var r=function(e){u.measure(e,\"mark_\".concat(e,\"_start\"),\"mark_\".concat(e,\"_end\"));var t=u.getEntriesByName(e).pop();return t&&\"measure\"===t.entryType?t.duration:-1}(e);n&&R(e,O(r),t)}},e.prototype.endPaint=function(e,t){var n=this;setTimeout((function(){n.end(e,t)}))},e.prototype.clear=function(e){delete g[e],u.clearMarks&&(u.clearMarks(\"mark_\".concat(e,\"_start\")),u.clearMarks(\"mark_\".concat(e,\"_end\")))},e.prototype.markNTBT=function(){var e=this;this.start(\"ntbt\"),y.value=0,clearTimeout(Fe),Fe=setTimeout((function(){e.end(\"ntbt\",{},!1),q({attribution:{},name:\"NTBT\",rating:U(\"NTBT\",y.value),value:y.value}),y.value=0}),2e3)},e}()},426:(e,t)=>{\"use strict\";Symbol.for(\"react.element\"),Symbol.for(\"react.portal\"),Symbol.for(\"react.fragment\"),Symbol.for(\"react.strict_mode\"),Symbol.for(\"react.profiler\"),Symbol.for(\"react.provider\"),Symbol.for(\"react.context\"),Symbol.for(\"react.forward_ref\"),Symbol.for(\"react.suspense\"),Symbol.for(\"react.memo\"),Symbol.for(\"react.lazy\"),Symbol.iterator;var n={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},r=Object.assign,i={};function a(e,t,r){this.props=e,this.context=t,this.refs=i,this.updater=r||n}function o(){}function s(e,t,r){this.props=e,this.context=t,this.refs=i,this.updater=r||n}a.prototype.isReactComponent={},a.prototype.setState=function(e,t){if(\"object\"!=typeof e&&\"function\"!=typeof e&&null!=e)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")},a.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")},o.prototype=a.prototype;var c=s.prototype=new o;c.constructor=s,r(c,a.prototype),c.isPureReactComponent=!0;Array.isArray,Object.prototype.hasOwnProperty;var u={current:null};t.useCallback=function(e,t){return u.current.useCallback(e,t)},t.useEffect=function(e,t){return u.current.useEffect(e,t)},t.useRef=function(e){return u.current.useRef(e)}},784:(e,t,n)=>{\"use strict\";e.exports=n(426)},353:function(e,t,n){var r;!function(i,a){\"use strict\";var o=\"function\",s=\"undefined\",c=\"object\",u=\"string\",l=\"major\",d=\"model\",p=\"name\",m=\"type\",f=\"vendor\",v=\"version\",g=\"architecture\",b=\"console\",h=\"mobile\",w=\"tablet\",y=\"smarttv\",T=\"wearable\",k=\"embedded\",_=\"Amazon\",S=\"Apple\",E=\"ASUS\",x=\"BlackBerry\",O=\"Browser\",j=\"Chrome\",N=\"Firefox\",I=\"Google\",P=\"Huawei\",M=\"LG\",B=\"Microsoft\",C=\"Motorola\",D=\"Opera\",A=\"Samsung\",L=\"Sharp\",U=\"Sony\",R=\"Xiaomi\",q=\"Zebra\",F=\"Facebook\",z=\"Chromium OS\",K=\"Mac OS\",$=function(e){for(var t={},n=0;n<e.length;n++)t[e[n].toUpperCase()]=e[n];return t},Q=function(e,t){return typeof e===u&&-1!==W(t).indexOf(W(e))},W=function(e){return e.toLowerCase()},H=function(e,t){if(typeof e===u)return e=e.replace(/^\\\\s\\\\s*/,\"\"),typeof t===s?e:e.substring(0,350)},V=function(e,t){for(var n,r,i,s,u,l,d=0;d<t.length&&!u;){var p=t[d],m=t[d+1];for(n=r=0;n<p.length&&!u&&p[n];)if(u=p[n++].exec(e))for(i=0;i<m.length;i++)l=u[++r],typeof(s=m[i])===c&&s.length>0?2===s.length?typeof s[1]==o?this[s[0]]=s[1].call(this,l):this[s[0]]=s[1]:3===s.length?typeof s[1]!==o||s[1].exec&&s[1].test?this[s[0]]=l?l.replace(s[1],s[2]):a:this[s[0]]=l?s[1].call(this,l,s[2]):a:4===s.length&&(this[s[0]]=l?s[3].call(this,l.replace(s[1],s[2])):a):this[s]=l||a;d+=2}},J=function(e,t){for(var n in t)if(typeof t[n]===c&&t[n].length>0){for(var r=0;r<t[n].length;r++)if(Q(t[n][r],e))return\"?\"===n?a:n}else if(Q(t[n],e))return\"?\"===n?a:n;return e},X={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"},G={browser:[[/\\\\b(?:crmo|crios)\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"Chrome\"]],[/edg(?:e|ios|a)?\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"Edge\"]],[/(opera mini)\\\\/([-\\\\w\\\\.]+)/i,/(opera [mobiletab]{3,6})\\\\b.+version\\\\/([-\\\\w\\\\.]+)/i,/(opera)(?:.+version\\\\/|[\\\\/ ]+)([\\\\w\\\\.]+)/i],[p,v],[/opios[\\\\/ ]+([\\\\w\\\\.]+)/i],[v,[p,D+\" Mini\"]],[/\\\\bopr\\\\/([\\\\w\\\\.]+)/i],[v,[p,D]],[/(kindle)\\\\/([\\\\w\\\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\\\/ ]?([\\\\w\\\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\\\/ ]?([\\\\w\\\\.]*)/i,/(ba?idubrowser)[\\\\/ ]?([\\\\w\\\\.]+)/i,/(?:ms|\\\\()(ie) ([\\\\w\\\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\\\/([-\\\\w\\\\.]+)/i,/(heytap|ovi)browser\\\\/([\\\\d\\\\.]+)/i,/(weibo)__([\\\\d\\\\.]+)/i],[p,v],[/(?:\\\\buc? ?browser|(?:juc.+)ucweb)[\\\\/ ]?([\\\\w\\\\.]+)/i],[v,[p,\"UC\"+O]],[/microm.+\\\\bqbcore\\\\/([\\\\w\\\\.]+)/i,/\\\\bqbcore\\\\/([\\\\w\\\\.]+).+microm/i],[v,[p,\"WeChat(Win) Desktop\"]],[/micromessenger\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"WeChat\"]],[/konqueror\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"Konqueror\"]],[/trident.+rv[: ]([\\\\w\\\\.]{1,9})\\\\b.+like gecko/i],[v,[p,\"IE\"]],[/ya(?:search)?browser\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"Yandex\"]],[/(avast|avg)\\\\/([\\\\w\\\\.]+)/i],[[p,/(.+)/,\"$1 Secure \"+O],v],[/\\\\bfocus\\\\/([\\\\w\\\\.]+)/i],[v,[p,N+\" Focus\"]],[/\\\\bopt\\\\/([\\\\w\\\\.]+)/i],[v,[p,D+\" Touch\"]],[/coc_coc\\\\w+\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"Coc Coc\"]],[/dolfin\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"Dolphin\"]],[/coast\\\\/([\\\\w\\\\.]+)/i],[v,[p,D+\" Coast\"]],[/miuibrowser\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"MIUI \"+O]],[/fxios\\\\/([-\\\\w\\\\.]+)/i],[v,[p,N]],[/\\\\bqihu|(qi?ho?o?|360)browser/i],[[p,\"360 \"+O]],[/(oculus|samsung|sailfish|huawei)browser\\\\/([\\\\w\\\\.]+)/i],[[p,/(.+)/,\"$1 \"+O],v],[/(comodo_dragon)\\\\/([\\\\w\\\\.]+)/i],[[p,/_/g,\" \"],v],[/(electron)\\\\/([\\\\w\\\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\\\/(20\\\\d\\\\d\\\\.[-\\\\w\\\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\\\/ ]?([\\\\w\\\\.]+)/i],[p,v],[/(metasr)[\\\\/ ]?([\\\\w\\\\.]+)/i,/(lbbrowser)/i,/\\\\[(linkedin)app\\\\]/i],[p],[/((?:fban\\\\/fbios|fb_iab\\\\/fb4a)(?!.+fbav)|;fbav\\\\/([\\\\w\\\\.]+);)/i],[[p,F],v],[/(kakao(?:talk|story))[\\\\/ ]([\\\\w\\\\.]+)/i,/(naver)\\\\(.*?(\\\\d+\\\\.[\\\\w\\\\.]+).*\\\\)/i,/safari (line)\\\\/([\\\\w\\\\.]+)/i,/\\\\b(line)\\\\/([\\\\w\\\\.]+)\\\\/iab/i,/(chromium|instagram)[\\\\/ ]([-\\\\w\\\\.]+)/i],[p,v],[/\\\\bgsa\\\\/([\\\\w\\\\.]+) .*safari\\\\//i],[v,[p,\"GSA\"]],[/musical_ly(?:.+app_?version\\\\/|_)([\\\\w\\\\.]+)/i],[v,[p,\"TikTok\"]],[/headlesschrome(?:\\\\/([\\\\w\\\\.]+)| )/i],[v,[p,j+\" Headless\"]],[/ wv\\\\).+(chrome)\\\\/([\\\\w\\\\.]+)/i],[[p,j+\" WebView\"],v],[/droid.+ version\\\\/([\\\\w\\\\.]+)\\\\b.+(?:mobile safari|safari)/i],[v,[p,\"Android \"+O]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\\\/v?([\\\\w\\\\.]+)/i],[p,v],[/version\\\\/([\\\\w\\\\.\\\\,]+) .*mobile\\\\/\\\\w+ (safari)/i],[v,[p,\"Mobile Safari\"]],[/version\\\\/([\\\\w(\\\\.|\\\\,)]+) .*(mobile ?safari|safari)/i],[v,p],[/webkit.+?(mobile ?safari|safari)(\\\\/[\\\\w\\\\.]+)/i],[p,[v,J,{\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"}]],[/(webkit|khtml)\\\\/([\\\\w\\\\.]+)/i],[p,v],[/(navigator|netscape\\\\d?)\\\\/([-\\\\w\\\\.]+)/i],[[p,\"Netscape\"],v],[/mobile vr; rv:([\\\\w\\\\.]+)\\\\).+firefox/i],[v,[p,N+\" Reality\"]],[/ekiohf.+(flow)\\\\/([\\\\w\\\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\\\/ ]?([\\\\w\\\\.\\\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\\\/([-\\\\w\\\\.]+)$/i,/(firefox)\\\\/([\\\\w\\\\.]+)/i,/(mozilla)\\\\/([\\\\w\\\\.]+) .+rv\\\\:.+gecko\\\\/\\\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\\\. ]?browser)[-\\\\/ ]?v?([\\\\w\\\\.]+)/i,/(links) \\\\(([\\\\w\\\\.]+)/i,/panasonic;(viera)/i],[p,v],[/(cobalt)\\\\/([\\\\w\\\\.]+)/i],[p,[v,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\\\)]/i],[[g,\"amd64\"]],[/(ia32(?=;))/i],[[g,W]],[/((?:i[346]|x)86)[;\\\\)]/i],[[g,\"ia32\"]],[/\\\\b(aarch64|arm(v?8e?l?|_?64))\\\\b/i],[[g,\"arm64\"]],[/\\\\b(arm(?:v[67])?ht?n?[fl]p?)\\\\b/i],[[g,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[g,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\\\))/i],[[g,/ower/,\"\",W]],[/(sun4\\\\w)[;\\\\)]/i],[[g,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\\\))|\\\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\\\b|pa-risc)/i],[[g,W]]],device:[[/\\\\b(sch-i[89]0\\\\d|shw-m380s|sm-[ptx]\\\\w{2,4}|gt-[pn]\\\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[d,[f,A],[m,w]],[/\\\\b((?:s[cgp]h|gt|sm)-\\\\w+|sc[g-]?[\\\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\\\w]+)/i,/sec-(sgh\\\\w+)/i],[d,[f,A],[m,h]],[/(?:\\\\/|\\\\()(ip(?:hone|od)[\\\\w, ]*)(?:\\\\/|;)/i],[d,[f,S],[m,h]],[/\\\\((ipad);[-\\\\w\\\\),; ]+apple/i,/applecoremedia\\\\/[\\\\w\\\\.]+ \\\\((ipad)/i,/\\\\b(ipad)\\\\d\\\\d?,\\\\d\\\\d?[;\\\\]].+ios/i],[d,[f,S],[m,w]],[/(macintosh);/i],[d,[f,S]],[/\\\\b(sh-?[altvz]?\\\\d\\\\d[a-ekm]?)/i],[d,[f,L],[m,h]],[/\\\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\\\d{2})\\\\b(?!.+d\\\\/s)/i],[d,[f,P],[m,w]],[/(?:huawei|honor)([-\\\\w ]+)[;\\\\)]/i,/\\\\b(nexus 6p|\\\\w{2,4}e?-[atu]?[ln][\\\\dx][012359c][adn]?)\\\\b(?!.+d\\\\/s)/i],[d,[f,P],[m,h]],[/\\\\b(poco[\\\\w ]+)(?: bui|\\\\))/i,/\\\\b; (\\\\w+) build\\\\/hm\\\\1/i,/\\\\b(hm[-_ ]?note?[_ ]?(?:\\\\d\\\\w)?) bui/i,/\\\\b(redmi[\\\\-_ ]?(?:note|k)?[\\\\w_ ]+)(?: bui|\\\\))/i,/\\\\b(mi[-_ ]?(?:a\\\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\\\d?\\\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\\\))/i],[[d,/_/g,\" \"],[f,R],[m,h]],[/\\\\b(mi[-_ ]?(?:pad)(?:[\\\\w_ ]+))(?: bui|\\\\))/i],[[d,/_/g,\" \"],[f,R],[m,w]],[/; (\\\\w+) bui.+ oppo/i,/\\\\b(cph[12]\\\\d{3}|p(?:af|c[al]|d\\\\w|e[ar])[mt]\\\\d0|x9007|a101op)\\\\b/i],[d,[f,\"OPPO\"],[m,h]],[/vivo (\\\\w+)(?: bui|\\\\))/i,/\\\\b(v[12]\\\\d{3}\\\\w?[at])(?: bui|;)/i],[d,[f,\"Vivo\"],[m,h]],[/\\\\b(rmx[12]\\\\d{3})(?: bui|;|\\\\))/i],[d,[f,\"Realme\"],[m,h]],[/\\\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\\\b[\\\\w ]+build\\\\//i,/\\\\bmot(?:orola)?[- ](\\\\w*)/i,/((?:moto[\\\\w\\\\(\\\\) ]+|xt\\\\d{3,4}|nexus 6)(?= bui|\\\\)))/i],[d,[f,C],[m,h]],[/\\\\b(mz60\\\\d|xoom[2 ]{0,2}) build\\\\//i],[d,[f,C],[m,w]],[/((?=lg)?[vl]k\\\\-?\\\\d{3}) bui| 3\\\\.[-\\\\w; ]{10}lg?-([06cv9]{3,4})/i],[d,[f,M],[m,w]],[/(lm(?:-?f100[nv]?|-[\\\\w\\\\.]+)(?= bui|\\\\))|nexus [45])/i,/\\\\blg[-e;\\\\/ ]+((?!browser|netcast|android tv)\\\\w+)/i,/\\\\blg-?([\\\\d\\\\w]+) bui/i],[d,[f,M],[m,h]],[/(ideatab[-\\\\w ]+)/i,/lenovo ?(s[56]000[-\\\\w]+|tab(?:[\\\\w ]+)|yt[-\\\\d\\\\w]{6}|tb[-\\\\d\\\\w]{6})/i],[d,[f,\"Lenovo\"],[m,w]],[/(?:maemo|nokia).*(n900|lumia \\\\d+)/i,/nokia[-_ ]?([-\\\\w\\\\.]*)/i],[[d,/_/g,\" \"],[f,\"Nokia\"],[m,h]],[/(pixel c)\\\\b/i],[d,[f,I],[m,w]],[/droid.+; (pixel[\\\\daxl ]{0,6})(?: bui|\\\\))/i],[d,[f,I],[m,h]],[/droid.+ (a?\\\\d[0-2]{2}so|[c-g]\\\\d{4}|so[-gl]\\\\w+|xq-a\\\\w[4-7][12])(?= bui|\\\\).+chrome\\\\/(?![1-6]{0,1}\\\\d\\\\.))/i],[d,[f,U],[m,h]],[/sony tablet [ps]/i,/\\\\b(?:sony)?sgp\\\\w+(?: bui|\\\\))/i],[[d,\"Xperia Tablet\"],[f,U],[m,w]],[/ (kb2005|in20[12]5|be20[12][59])\\\\b/i,/(?:one)?(?:plus)? (a\\\\d0\\\\d\\\\d)(?: b|\\\\))/i],[d,[f,\"OnePlus\"],[m,h]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\\\))/i,/(kf[a-z]+)( bui|\\\\)).+silk\\\\//i],[d,[f,_],[m,w]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\\\)).+silk\\\\//i],[[d,/(.+)/g,\"Fire Phone $1\"],[f,_],[m,h]],[/(playbook);[-\\\\w\\\\),; ]+(rim)/i],[d,f,[m,w]],[/\\\\b((?:bb[a-f]|st[hv])100-\\\\d)/i,/\\\\(bb10; (\\\\w+)/i],[d,[f,x],[m,h]],[/(?:\\\\b|asus_)(transfo[prime ]{4,10} \\\\w+|eeepc|slider \\\\w+|nexus 7|padfone|p00[cj])/i],[d,[f,E],[m,w]],[/ (z[bes]6[027][012][km][ls]|zenfone \\\\d\\\\w?)\\\\b/i],[d,[f,E],[m,h]],[/(nexus 9)/i],[d,[f,\"HTC\"],[m,w]],[/(htc)[-;_ ]{1,2}([\\\\w ]+(?=\\\\)| bui)|\\\\w+)/i,/(zte)[- ]([\\\\w ]+?)(?: bui|\\\\/|\\\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\\\.))|sony(?!-bra))[-_ ]?([-\\\\w]*)/i],[f,[d,/_/g,\" \"],[m,h]],[/droid.+; ([ab][1-7]-?[0178a]\\\\d\\\\d?)/i],[d,[f,\"Acer\"],[m,w]],[/droid.+; (m[1-5] note) bui/i,/\\\\bmz-([-\\\\w]{2,})/i],[d,[f,\"Meizu\"],[m,h]],[/(blackberry|benq|palm(?=\\\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\\\w]*)/i,/(hp) ([\\\\w ]+\\\\w)/i,/(asus)-?(\\\\w+)/i,/(microsoft); (lumia[\\\\w ]+)/i,/(lenovo)[-_ ]?([-\\\\w]+)/i,/(jolla)/i,/(oppo) ?([\\\\w ]+) bui/i],[f,d,[m,h]],[/(kobo)\\\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\\\/([\\\\w\\\\.]+)/i,/(nook)[\\\\w ]+build\\\\/(\\\\w+)/i,/(dell) (strea[kpr\\\\d ]*[\\\\dko])/i,/(le[- ]+pan)[- ]+(\\\\w{1,9}) bui/i,/(trinity)[- ]*(t\\\\d{3}) bui/i,/(gigaset)[- ]+(q\\\\w{1,9}) bui/i,/(vodafone) ([\\\\w ]+)(?:\\\\)| bui)/i],[f,d,[m,w]],[/(surface duo)/i],[d,[f,B],[m,w]],[/droid [\\\\d\\\\.]+; (fp\\\\du?)(?: b|\\\\))/i],[d,[f,\"Fairphone\"],[m,h]],[/(u304aa)/i],[d,[f,\"AT&T\"],[m,h]],[/\\\\bsie-(\\\\w*)/i],[d,[f,\"Siemens\"],[m,h]],[/\\\\b(rct\\\\w+) b/i],[d,[f,\"RCA\"],[m,w]],[/\\\\b(venue[\\\\d ]{2,7}) b/i],[d,[f,\"Dell\"],[m,w]],[/\\\\b(q(?:mv|ta)\\\\w+) b/i],[d,[f,\"Verizon\"],[m,w]],[/\\\\b(?:barnes[& ]+noble |bn[rt])([\\\\w\\\\+ ]*) b/i],[d,[f,\"Barnes & Noble\"],[m,w]],[/\\\\b(tm\\\\d{3}\\\\w+) b/i],[d,[f,\"NuVision\"],[m,w]],[/\\\\b(k88) b/i],[d,[f,\"ZTE\"],[m,w]],[/\\\\b(nx\\\\d{3}j) b/i],[d,[f,\"ZTE\"],[m,h]],[/\\\\b(gen\\\\d{3}) b.+49h/i],[d,[f,\"Swiss\"],[m,h]],[/\\\\b(zur\\\\d{3}) b/i],[d,[f,\"Swiss\"],[m,w]],[/\\\\b((zeki)?tb.*\\\\b) b/i],[d,[f,\"Zeki\"],[m,w]],[/\\\\b([yr]\\\\d{2}) b/i,/\\\\b(dragon[- ]+touch |dt)(\\\\w{5}) b/i],[[f,\"Dragon Touch\"],d,[m,w]],[/\\\\b(ns-?\\\\w{0,9}) b/i],[d,[f,\"Insignia\"],[m,w]],[/\\\\b((nxa|next)-?\\\\w{0,9}) b/i],[d,[f,\"NextBook\"],[m,w]],[/\\\\b(xtreme\\\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[f,\"Voice\"],d,[m,h]],[/\\\\b(lvtel\\\\-)?(v1[12]) b/i],[[f,\"LvTel\"],d,[m,h]],[/\\\\b(ph-1) /i],[d,[f,\"Essential\"],[m,h]],[/\\\\b(v(100md|700na|7011|917g).*\\\\b) b/i],[d,[f,\"Envizen\"],[m,w]],[/\\\\b(trio[-\\\\w\\\\. ]+) b/i],[d,[f,\"MachSpeed\"],[m,w]],[/\\\\btu_(1491) b/i],[d,[f,\"Rotor\"],[m,w]],[/(shield[\\\\w ]+) b/i],[d,[f,\"Nvidia\"],[m,w]],[/(sprint) (\\\\w+)/i],[f,d,[m,h]],[/(kin\\\\.[onetw]{3})/i],[[d,/\\\\./g,\" \"],[f,B],[m,h]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\\\)/i],[d,[f,q],[m,w]],[/droid.+; (ec30|ps20|tc[2-8]\\\\d[kx])\\\\)/i],[d,[f,q],[m,h]],[/smart-tv.+(samsung)/i],[f,[m,y]],[/hbbtv.+maple;(\\\\d+)/i],[[d,/^/,\"SmartTV\"],[f,A],[m,y]],[/(nux; netcast.+smarttv|lg (netcast\\\\.tv-201\\\\d|android tv))/i],[[f,M],[m,y]],[/(apple) ?tv/i],[f,[d,S+\" TV\"],[m,y]],[/crkey/i],[[d,j+\"cast\"],[f,I],[m,y]],[/droid.+aft(\\\\w)( bui|\\\\))/i],[d,[f,_],[m,y]],[/\\\\(dtv[\\\\);].+(aquos)/i,/(aquos-tv[\\\\w ]+)\\\\)/i],[d,[f,L],[m,y]],[/(bravia[\\\\w ]+)( bui|\\\\))/i],[d,[f,U],[m,y]],[/(mitv-\\\\w{5}) bui/i],[d,[f,R],[m,y]],[/Hbbtv.*(technisat) (.*);/i],[f,d,[m,y]],[/\\\\b(roku)[\\\\dx]*[\\\\)\\\\/]((?:dvp-)?[\\\\d\\\\.]*)/i,/hbbtv\\\\/\\\\d+\\\\.\\\\d+\\\\.\\\\d+ +\\\\([\\\\w\\\\+ ]*; *([\\\\w\\\\d][^;]*);([^;]*)/i],[[f,H],[d,H],[m,y]],[/\\\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\\\b/i],[[m,y]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[f,d,[m,b]],[/droid.+; (shield) bui/i],[d,[f,\"Nvidia\"],[m,b]],[/(playstation [345portablevi]+)/i],[d,[f,U],[m,b]],[/\\\\b(xbox(?: one)?(?!; xbox))[\\\\); ]/i],[d,[f,B],[m,b]],[/((pebble))app/i],[f,d,[m,T]],[/(watch)(?: ?os[,\\\\/]|\\\\d,\\\\d\\\\/)[\\\\d\\\\.]+/i],[d,[f,S],[m,T]],[/droid.+; (glass) \\\\d/i],[d,[f,I],[m,T]],[/droid.+; (wt63?0{2,3})\\\\)/i],[d,[f,q],[m,T]],[/(quest( 2| pro)?)/i],[d,[f,F],[m,T]],[/(tesla)(?: qtcarbrowser|\\\\/[-\\\\w\\\\.]+)/i],[f,[m,k]],[/(aeobc)\\\\b/i],[d,[f,_],[m,k]],[/droid .+?; ([^;]+?)(?: bui|\\\\) applew).+? mobile safari/i],[d,[m,h]],[/droid .+?; ([^;]+?)(?: bui|\\\\) applew).+?(?! mobile) safari/i],[d,[m,w]],[/\\\\b((tablet|tab)[;\\\\/]|focus\\\\/\\\\d(?!.+mobile))/i],[[m,w]],[/(phone|mobile(?:[;\\\\/]| [ \\\\w\\\\/\\\\.]*safari)|pda(?=.+windows ce))/i],[[m,h]],[/(android[-\\\\w\\\\. ]{0,9});.+buil/i],[d,[f,\"Generic\"]]],engine:[[/windows.+ edge\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"EdgeHTML\"]],[/webkit\\\\/537\\\\.36.+chrome\\\\/(?!27)([\\\\w\\\\.]+)/i],[v,[p,\"Blink\"]],[/(presto)\\\\/([\\\\w\\\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\\\/([\\\\w\\\\.]+)/i,/ekioh(flow)\\\\/([\\\\w\\\\.]+)/i,/(khtml|tasman|links)[\\\\/ ]\\\\(?([\\\\w\\\\.]+)/i,/(icab)[\\\\/ ]([23]\\\\.[\\\\d\\\\.]+)/i,/\\\\b(libweb)/i],[p,v],[/rv\\\\:([\\\\w\\\\.]{1,9})\\\\b.+(gecko)/i],[v,p]],os:[[/microsoft (windows) (vista|xp)/i],[p,v],[/(windows) nt 6\\\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\\\/ ]?([\\\\d\\\\.\\\\w ]*)/i,/(windows)[\\\\/ ]?([ntce\\\\d\\\\. ]+\\\\w)(?!.+xbox)/i],[p,[v,J,X]],[/(win(?=3|9|n)|win 9x )([nt\\\\d\\\\.]+)/i],[[p,\"Windows\"],[v,J,X]],[/ip[honead]{2,4}\\\\b(?:.*os ([\\\\w]+) like mac|; opera)/i,/ios;fbsv\\\\/([\\\\d\\\\.]+)/i,/cfnetwork\\\\/.+darwin/i],[[v,/_/g,\".\"],[p,\"iOS\"]],[/(mac os x) ?([\\\\w\\\\. ]*)/i,/(macintosh|mac_powerpc\\\\b)(?!.+haiku)/i],[[p,K],[v,/_/g,\".\"]],[/droid ([\\\\w\\\\.]+)\\\\b.+(android[- ]x86|harmonyos)/i],[v,p],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\\\/ ]?([\\\\w\\\\.]*)/i,/(blackberry)\\\\w*\\\\/([\\\\w\\\\.]*)/i,/(tizen|kaios)[\\\\/ ]([\\\\w\\\\.]+)/i,/\\\\((series40);/i],[p,v],[/\\\\(bb(10);/i],[v,[p,x]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\\\/ ]?([\\\\w\\\\.]*)/i],[v,[p,\"Symbian\"]],[/mozilla\\\\/[\\\\d\\\\.]+ \\\\((?:mobile|tablet|tv|mobile; [\\\\w ]+); rv:.+ gecko\\\\/([\\\\w\\\\.]+)/i],[v,[p,N+\" OS\"]],[/web0s;.+rt(tv)/i,/\\\\b(?:hp)?wos(?:browser)?\\\\/([\\\\w\\\\.]+)/i],[v,[p,\"webOS\"]],[/watch(?: ?os[,\\\\/]|\\\\d,\\\\d\\\\/)([\\\\d\\\\.]+)/i],[v,[p,\"watchOS\"]],[/crkey\\\\/([\\\\d\\\\.]+)/i],[v,[p,j+\"cast\"]],[/(cros) [\\\\w]+(?:\\\\)| ([\\\\w\\\\.]+)\\\\b)/i],[[p,z],v],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\\\/(\\\\d+\\\\.[\\\\w\\\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\\\);]+)/i,/\\\\b(joli|palm)\\\\b ?(?:os)?\\\\/?([\\\\w\\\\.]*)/i,/(mint)[\\\\/\\\\(\\\\) ]?(\\\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\\\/ ]?(?!chrom|package)([-\\\\w\\\\.]*)/i,/(hurd|linux) ?([\\\\w\\\\.]*)/i,/(gnu) ?([\\\\w\\\\.]*)/i,/\\\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\\\/ ]?(?!amd|[ix346]{1,2}86)([\\\\w\\\\.]*)/i,/(haiku) (\\\\w+)/i],[p,v],[/(sunos) ?([\\\\w\\\\.\\\\d]*)/i],[[p,\"Solaris\"],v],[/((?:open)?solaris)[-\\\\/ ]?([\\\\w\\\\.]*)/i,/(aix) ((\\\\d)(?=\\\\.|\\\\)| )[\\\\w\\\\.])*/i,/\\\\b(beos|os\\\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\\\w\\\\.]*)/i],[p,v]]},Z=function(e,t){if(typeof e===c&&(t=e,e=a),!(this instanceof Z))return new Z(e,t).getResult();var n=typeof i!==s&&i.navigator?i.navigator:a,r=e||(n&&n.userAgent?n.userAgent:\"\"),b=n&&n.userAgentData?n.userAgentData:a,y=t?function(e,t){var n={};for(var r in e)t[r]&&t[r].length%2==0?n[r]=t[r].concat(e[r]):n[r]=e[r];return n}(G,t):G,T=n&&n.userAgent==r;return this.getBrowser=function(){var e,t={};return t[p]=a,t[v]=a,V.call(t,r,y.browser),t[l]=typeof(e=t[v])===u?e.replace(/[^\\\\d\\\\.]/g,\"\").split(\".\")[0]:a,T&&n&&n.brave&&typeof n.brave.isBrave==o&&(t[p]=\"Brave\"),t},this.getCPU=function(){var e={};return e[g]=a,V.call(e,r,y.cpu),e},this.getDevice=function(){var e={};return e[f]=a,e[d]=a,e[m]=a,V.call(e,r,y.device),T&&!e[m]&&b&&b.mobile&&(e[m]=h),T&&\"Macintosh\"==e[d]&&n&&typeof n.standalone!==s&&n.maxTouchPoints&&n.maxTouchPoints>2&&(e[d]=\"iPad\",e[m]=w),e},this.getEngine=function(){var e={};return e[p]=a,e[v]=a,V.call(e,r,y.engine),e},this.getOS=function(){var e={};return e[p]=a,e[v]=a,V.call(e,r,y.os),T&&!e[p]&&b&&\"Unknown\"!=b.platform&&(e[p]=b.platform.replace(/chrome os/i,z).replace(/macos/i,K)),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return r},this.setUA=function(e){return r=typeof e===u&&e.length>350?H(e,350):e,this},this.setUA(r),this};Z.VERSION=\"1.0.35\",Z.BROWSER=$([p,v,l]),Z.CPU=$([g]),Z.DEVICE=$([d,f,m,b,h,y,w,T,k]),Z.ENGINE=Z.OS=$([p,v]),typeof t!==s?(e.exports&&(t=e.exports=Z),t.UAParser=Z):n.amdO?(r=function(){return Z}.call(t,n,t,e))===a||(e.exports=r):typeof i!==s&&(i.UAParser=Z);var Y=typeof i!==s&&(i.jQuery||i.Zepto);if(Y&&!Y.ua){var ee=new Z;Y.ua=ee.getResult(),Y.ua.get=function(){return ee.getUA()},Y.ua.set=function(e){ee.setUA(e);var t=ee.getResult();for(var n in t)Y.ua[n]=t[n]}}}(\"object\"==typeof window?window:this)}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var a=t[r]={exports:{}};return e[r].call(a.exports,a,a.exports,n),a.exports}n.amdO={},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var r={};return(()=>{\"use strict\";n.r(r),n.d(r,{ActionType:()=>f,AmplitudePlatformName:()=>g,AnalyticsEventImportance:()=>l,AnalyticsQueries:()=>e,AuthStatus:()=>b,ComponentType:()=>m,IThresholdTier:()=>Jt,MetricType:()=>d,PlatformName:()=>v,SessionActions:()=>h,SessionAutomatedEvents:()=>w,SessionRank:()=>y,SubjectType:()=>p,UserTypeCommerce:()=>c,UserTypeInsto:()=>i,UserTypeRetail:()=>t,UserTypeRetailBusinessBanking:()=>s,UserTypeRetailEmployeeInternal:()=>a,UserTypeRetailEmployeePersonal:()=>o,UserTypeWallet:()=>u,automatedEvents:()=>xn,automatedMappingConfig:()=>In,clearMarkEntry:()=>Vn,clearPerformanceMarkEntries:()=>Xn,config:()=>A,createEventConfig:()=>On,createNewSpan:()=>Ln,createNewTrace:()=>Un,device:()=>W,endPerfMark:()=>Jn,exposeExperiment:()=>wn,flushQueue:()=>or,generateUUID:()=>V,getAnalyticsHeaders:()=>sr,getReferrerData:()=>le,getTracingHeaders:()=>An,getTracingId:()=>Dn,getUrlHostname:()=>pe,getUrlParams:()=>me,getUrlPathname:()=>fe,getUserContext:()=>ar,identify:()=>Tn,identifyFlow:()=>xe,identity:()=>H,identityFlow:()=>Se,incrementUjNavigation:()=>an,init:()=>yn,initNextJsTrackPageview:()=>_n,initTrackPageview:()=>kn,isEventKeyFormatValid:()=>we,isSessionEnded:()=>pt,location:()=>re,logEvent:()=>$t,logMetric:()=>Ht,logPageView:()=>on,logTrace:()=>Rn,markNTBT:()=>tn,markStep:()=>nn,markStepOnce:()=>rn,onVisibilityChange:()=>ln,optIn:()=>En,optOut:()=>Sn,perfMark:()=>Wn,persistentData:()=>oe,postMessage:()=>K,recordSessionDuration:()=>pn,removeFromIdentifyFlow:()=>Ee,savePersistentData:()=>st,sendScheduledEvents:()=>Bt,setBreadcrumbs:()=>ie,setConfig:()=>U,setLocation:()=>ae,setPagePath:()=>ve,setPageview:()=>Kt,setPersistentData:()=>se,setSessionStart:()=>dt,setTime:()=>Ue,startPerfMark:()=>Hn,timeStone:()=>Le,useEventLogger:()=>Yn,useLogEventOnMount:()=>tr,usePerformanceMarks:()=>rr});let e=function(e){return e.fbclid=\"fbclid\",e.gclid=\"gclid\",e.msclkid=\"msclkid\",e.ptclid=\"ptclid\",e.ttclid=\"ttclid\",e.utm_source=\"utm_source\",e.utm_medium=\"utm_medium\",e.utm_campaign=\"utm_campaign\",e.utm_term=\"utm_term\",e.utm_content=\"utm_content\",e}({});const t=0,i=1,a=2,o=3,s=4,c=5,u=6;let l=function(e){return e.low=\"low\",e.high=\"high\",e}({}),d=function(e){return e.count=\"count\",e.rate=\"rate\",e.gauge=\"gauge\",e.distribution=\"distribution\",e.histogram=\"histogram\",e}({}),p=function(e){return e.commerce_merchant=\"commerce_merchant\",e.device=\"device\",e.edp_fingerprint_id=\"edp_fingerprint_id\",e.nft_user=\"nft_user\",e.user=\"user\",e.wallet_user=\"wallet_user\",e.uuid=\"user_uuid\",e}({}),m=function(e){return e.unknown=\"unknown\",e.banner=\"banner\",e.button=\"button\",e.card=\"card\",e.chart=\"chart\",e.content_script=\"content_script\",e.dropdown=\"dropdown\",e.link=\"link\",e.page=\"page\",e.modal=\"modal\",e.table=\"table\",e.search_bar=\"search_bar\",e.service_worker=\"service_worker\",e.text=\"text\",e.text_input=\"text_input\",e.tray=\"tray\",e.checkbox=\"checkbox\",e.icon=\"icon\",e}({}),f=function(e){return e.unknown=\"unknown\",e.blur=\"blur\",e.click=\"click\",e.change=\"change\",e.dismiss=\"dismiss\",e.focus=\"focus\",e.hover=\"hover\",e.select=\"select\",e.measurement=\"measurement\",e.move=\"move\",e.process=\"process\",e.render=\"render\",e.scroll=\"scroll\",e.view=\"view\",e.search=\"search\",e.keyPress=\"keyPress\",e}({}),v=function(e){return e.unknown=\"unknown\",e.web=\"web\",e.android=\"android\",e.ios=\"ios\",e.mobile_web=\"mobile_web\",e.tablet_web=\"tablet_web\",e.server=\"server\",e.windows=\"windows\",e.macos=\"macos\",e.extension=\"extension\",e}({}),g=function(e){return e.web=\"Web\",e.ios=\"iOS\",e.android=\"Android\",e}({}),b=function(e){return e[e.notLoggedIn=0]=\"notLoggedIn\",e[e.loggedIn=1]=\"loggedIn\",e}({}),h=function(e){return e.ac=\"ac\",e.af=\"af\",e.ah=\"ah\",e.al=\"al\",e.am=\"am\",e.ar=\"ar\",e.as=\"as\",e}({}),w=function(e){return e.pv=\"pv\",e}({}),y=function(e){return e.xs=\"xs\",e.s=\"s\",e.m=\"m\",e.l=\"l\",e.xl=\"xl\",e.xxl=\"xxl\",e}({});const T=\"https://analytics-service-dev.cbhq.net\",k=3e5,_=5e3,S=\"analytics-db\",E=\"experiment-exposure-db\",x=\"Analytics SDK:\",O=Object.values(e),j=\"pageview\",N=\"session_duration\",I={navigationTiming:{eventName:\"perf_navigation_timing\"},redirectTime:{eventName:\"perf_redirect_time\"},RT:{eventName:\"perf_redirect_time\"},TTFB:{eventName:\"perf_time_to_first_byte\"},networkInformation:{eventName:\"perf_network_information\"},storageEstimate:{eventName:\"perf_storage_estimate\"},FCP:{eventName:\"perf_first_contentful_paint\"},FID:{eventName:\"perf_first_input_delay\"},LCP:{eventName:\"perf_largest_contentful_paint\"},CLS:{eventName:\"perf_cumulative_layout_shift\"},TBT:{eventName:\"perf_total_blocking_time\"},NTBT:{eventName:\"perf_navigation_total_blocking_time\"},INP:{eventName:\"perf_interact_to_next_paint\"},ET:{eventName:\"perf_element_timing\"},userJourneyStep:{eventName:\"perf_user_journey_step\"}},P=\"1\",M=\"web\";function B(){return B=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},B.apply(this,arguments)}const C=/^(https?:\\\\/\\\\/)/;function D(e){return{eventsEndpoint:e+\"/amp\",metricsEndPoint:e+\"/metrics\",exposureEndpoint:e+\"/track-exposures\",tracesEndpoint:e+\"/traces\"}}const A=B({authCookie:\"logged_in\",amplitudeApiKey:\"\",batchEventsPeriod:_,batchEventsThreshold:30,batchMetricsPeriod:_,batchMetricsThreshold:30,batchTracesPeriod:_,batchTracesThreshold:30,headers:{},interactionManager:null,isAlwaysAuthed:!1,isProd:!1,isInternalApplication:!1,onError:(e,t)=>{console.error(x,e,t)},platform:v.unknown,projectName:\"\",ricTimeoutScheduleEvent:1e3,ricTimeoutSetDevice:500,showDebugLogging:!1,trackUserId:!1,version:null,apiEndpoint:T},D(T),{steps:{}}),L=[].reduce(((e,t)=>n=>e(t(n))),(e=>{if(!e.isProd)return e.isInternalApplication?(e.apiEndpoint=\"https://analytics-service-internal-dev.cbhq.net\",B({},e,D(e.apiEndpoint))):e;const t=(e=>e.apiEndpoint?C.test(e.apiEndpoint)?e.apiEndpoint:\\`https://\\${e.apiEndpoint}\\`:e.isInternalApplication?\"https://analytics-service-internal.cbhq.net\":\"https://as.coinbase.com\")(e);return B({},e,{apiEndpoint:t},D(t))})),U=e=>{const{batchEventsThreshold:t,batchMetricsThreshold:n,batchTracesThreshold:r}=e,i=[t,n,r];for(const e of i)if((e||0)>30){console.warn(\"You are setting the threshhold for the batch limit to be greater than 30. This may cause request overload.\");break}Object.assign(A,L(e))},R=[v.web,v.mobile_web,v.tablet_web];function q(){return\"android\"===A.platform}function F(){return\"ios\"===A.platform}function z(){return R.includes(A.platform)}function K(e){if(z()&&navigator&&\"serviceWorker\"in navigator&&navigator.serviceWorker.controller)try{navigator.serviceWorker.controller.postMessage(e)}catch(e){e instanceof Error&&A.onError(e)}}var $=n(353),Q=n.n($);const W={amplitudeOSName:null,amplitudeOSVersion:null,amplitudeDeviceModel:null,amplitudePlatform:null,browserName:null,browserMajor:null,osName:null,userAgent:null,width:null,height:null},H={countryCode:null,deviceId:null,device_os:null,isOptOut:!1,languageCode:null,locale:null,jwt:null,session_lcc_id:null,userAgent:null,userId:null},V=e=>e?(e^16*Math.random()>>e/4).toString(16):\"10000000-1000-4000-8000-100000000000\".replace(/[018]/g,V),J=()=>A.isAlwaysAuthed||!!H.userId,X=()=>{const e={};return H.countryCode&&(e.country_code=H.countryCode),e},G=()=>{const{platform:e}=A;if(e===v.web)switch(!0){case window.matchMedia(\"(max-width: 560px)\").matches:return v.mobile_web;case window.matchMedia(\"(max-width: 1024px, min-width: 561px)\").matches:return v.tablet_web}return e},Z=()=>{var e,t,n,r,i;z()?(\"requestIdleCallback\"in window?window.requestIdleCallback(ne,{timeout:A.ricTimeoutSetDevice}):ne(),W.amplitudePlatform=g.web,W.userAgent=(null==(e=window)||null==(e=e.navigator)?void 0:e.userAgent)||null,ee({height:null!=(t=null==(n=window)?void 0:n.innerHeight)?t:null,width:null!=(r=null==(i=window)?void 0:i.innerWidth)?r:null})):F()?(W.amplitudePlatform=g.ios,W.userAgent=H.userAgent,W.userAgent&&ne()):q()&&(W.userAgent=H.userAgent,W.amplitudePlatform=g.android,W.userAgent&&ne())},Y=e=>{Object.assign(H,e),z()&&K({identity:{isAuthed:!!H.userId,locale:H.locale||null}})},ee=e=>{W.height=e.height,W.width=e.width},te=()=>{U({platform:G()}),z()&&K({config:{platform:A.platform}})},ne=()=>{var e;performance.mark&&performance.mark(\"ua_parser_start\");const t=new(Q())(null!=(e=W.userAgent)?e:\"\").getResult();W.browserName=t.browser.name||null,W.browserMajor=t.browser.major||null,W.osName=t.os.name||null,W.amplitudeOSName=W.browserName,W.amplitudeOSVersion=W.browserMajor,W.amplitudeDeviceModel=W.osName,K({device:{browserName:W.browserName,osName:W.osName}}),performance.mark&&(performance.mark(\"ua_parser_end\"),performance.measure(\"ua_parser\",\"ua_parser_start\",\"ua_parser_end\"))},re={breadcrumbs:[],initialUAAData:{},pageKey:\"\",pageKeyRegex:{},pagePath:\"\",prevPageKey:\"\",prevPagePath:\"\"};function ie(e){Object.assign(re,{breadcrumbs:e})}function ae(e){Object.assign(re,e)}const oe={eventId:0,sequenceNumber:0,sessionId:0,lastEventTime:0,sessionStart:0,sessionUUID:null,userId:null,ac:0,af:0,ah:0,al:0,am:0,ar:0,as:0,pv:0};function se(e){Object.assign(oe,e)}function ce(){var e,t;return null!=(e=null==(t=document)?void 0:t.referrer)?e:\"\"}function ue(){return ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ue.apply(this,arguments)}const le=()=>{const e=ce();if(!e)return{};const t=new URL(e);return t.hostname===pe()?{}:{referrer:e,referring_domain:t.hostname}},de=()=>{const e=new URLSearchParams(me()),t={};return O.forEach((n=>{e.has(n)&&(t[n]=(e.get(n)||\"\").toLowerCase())})),t},pe=()=>{var e;return(null==(e=window)||null==(e=e.location)?void 0:e.hostname)||\"\"},me=()=>{var e;return(null==(e=window)||null==(e=e.location)?void 0:e.search)||\"\"},fe=()=>{var e;return(null==(e=window)||null==(e=e.location)?void 0:e.pathname)||\"\"},ve=()=>{const e=A.overrideWindowLocation?re.pagePath:fe()+me();e&&e!==re.pagePath&&(e!==re.pagePath&&ge(),re.pagePath=e,re.pageKeyRegex&&Object.keys(re.pageKeyRegex).some((e=>{if(re.pageKeyRegex[e].test(re.pagePath))return re.pageKey=e,!0})))},ge=()=>{if(z()){const e=ce();if(!re.prevPagePath&&e){const t=new URL(e);if(t.hostname===pe())return void(re.prevPagePath=t.pathname)}}re.prevPagePath=re.pagePath,re.prevPageKey=re.pageKey},be=e=>{z()&&Object.assign(e,z()?(Object.keys(re.initialUAAData).length>0||(new URLSearchParams(me()),re.initialUAAData=ue({},(()=>{const e={};return O.forEach((t=>{oe[t]&&(e[t]=oe[t])})),e})(),de(),le())),re.initialUAAData):re.initialUAAData)},he=/^[a-zd]+(_[a-zd]+)*$/;function we(e){return he.test(e)}function ye(){return ye=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}const Te=[\"action\",\"component_type\",\"component_name\",\"context\",\"logging_id\"],ke=[\"num_non_hardware_accounts\",\"ujs\"],_e=\"ujs_\",Se={};function Ee(e){e.forEach((e=>{ke.includes(e)&&delete Se[e]}))}function xe(e){var t;const n=Object.entries(e).reduce(((e,t)=>{const[n,r]=t;return!Te.includes(n)&&ke.includes(n)?we(n)?ye({},e,{[n]:r}):(A.onError(new Error(\"IdentityFlow property names must have snake case format\"),{[n]:r}),e):e}),{});null!=(t=n.ujs)&&t.length&&(n.ujs=n.ujs.map((e=>\\`\\${_e}\\${e}\\`))),Object.assign(Se,n)}function Oe(){return A.platform!==v.unknown||(A.onError(new Error(\"SDK platform not initialized\")),!1)}const je={eventsQueue:[],eventsScheduled:!1,metricsQueue:[],metricsScheduled:!1,tracesQueue:[],tracesScheduled:!1};function Ne(e){Object.assign(je,e)}const Ie={ac:0,af:0,ah:0,al:0,am:0,ar:0,as:0,pv:0,sqs:0},Pe={ac:20,af:5,ah:1,al:1,am:0,ar:10,as:20},Me={pv:25},Be={xs:0,s:1,m:1,l:2,xl:2,xxl:2},Ce=e=>e<15?y.xs:e<60?y.s:e<240?y.m:e<960?y.l:e<3840?y.xl:y.xxl,De=e=>{Object.assign(Ie,e)};function Ae(){return(new Date).getTime()}const Le={timeStart:Ae(),timeOnPagePath:0,timeOnPageKey:0,prevTimeOnPagePath:0,prevTimeOnPageKey:0,sessionDuration:0,sessionEnd:0,sessionStart:0,prevSessionDuration:0};function Ue(e){Object.assign(Le,e)}const Re=(e,t)=>t.some((t=>e instanceof t));let qe,Fe;const ze=new WeakMap,Ke=new WeakMap,$e=new WeakMap,Qe=new WeakMap,We=new WeakMap;let He={get(e,t,n){if(e instanceof IDBTransaction){if(\"done\"===t)return Ke.get(e);if(\"objectStoreNames\"===t)return e.objectStoreNames||$e.get(e);if(\"store\"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Je(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&(\"done\"===t||\"store\"===t)||t in e};function Ve(e){return\"function\"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||\"objectStoreNames\"in IDBTransaction.prototype?(Fe||(Fe=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(Xe(this),e),Je(ze.get(this))}:function(...e){return Je(t.apply(Xe(this),e))}:function(e,...n){const r=t.call(Xe(this),e,...n);return $e.set(r,e.sort?e.sort():[e]),Je(r)}:(e instanceof IDBTransaction&&function(e){if(Ke.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener(\"complete\",i),e.removeEventListener(\"error\",a),e.removeEventListener(\"abort\",a)},i=()=>{t(),r()},a=()=>{n(e.error||new DOMException(\"AbortError\",\"AbortError\")),r()};e.addEventListener(\"complete\",i),e.addEventListener(\"error\",a),e.addEventListener(\"abort\",a)}));Ke.set(e,t)}(e),Re(e,qe||(qe=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,He):e);var t}function Je(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener(\"success\",i),e.removeEventListener(\"error\",a)},i=()=>{t(Je(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener(\"success\",i),e.addEventListener(\"error\",a)}));return t.then((t=>{t instanceof IDBCursor&&ze.set(t,e)})).catch((()=>{})),We.set(t,e),t}(e);if(Qe.has(e))return Qe.get(e);const t=Ve(e);return t!==e&&(Qe.set(e,t),We.set(t,e)),t}const Xe=e=>We.get(e),Ge=[\"get\",\"getKey\",\"getAll\",\"getAllKeys\",\"count\"],Ze=[\"put\",\"add\",\"delete\",\"clear\"],Ye=new Map;function et(e,t){if(!(e instanceof IDBDatabase)||t in e||\"string\"!=typeof t)return;if(Ye.get(t))return Ye.get(t);const n=t.replace(/FromIndex$/,\"\"),r=t!==n,i=Ze.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!i&&!Ge.includes(n))return;const a=async function(e,...t){const a=this.transaction(e,i?\"readwrite\":\"readonly\");let o=a.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),i&&a.done]))[0]};return Ye.set(t,a),a}var tt;tt=He,He={...tt,get:(e,t,n)=>et(e,t)||tt.get(e,t,n),has:(e,t)=>!!et(e,t)||tt.has(e,t)};const nt={isReady:!1,idbKeyval:null};function rt(e){Object.assign(nt,e)}const it={},at=async e=>{if(!nt.idbKeyval)return Promise.resolve(null);try{return await nt.idbKeyval.get(e)}catch(e){return A.onError(new Error(\"IndexedDB:Get:InternalError\")),Promise.resolve(null)}},ot=async(e,t)=>{if(nt.idbKeyval)try{await nt.idbKeyval.set(e,t)}catch(e){A.onError(new Error(\"IndexedDB:Set:InternalError\"))}},st=()=>{\"server\"!==A.platform&&(se({sessionStart:Le.sessionStart,ac:Ie.ac,af:Ie.af,ah:Ie.ah,al:Ie.al,am:Ie.am,ar:Ie.ar,as:Ie.as,pv:Ie.pv}),H.userId&&se({userId:H.userId}),ot(S,oe))},ct=\"rgb(5,177,105)\",ut=e=>{const{metricName:t,data:n}=e,r=e.importance||l.low;if(!A.showDebugLogging||!console)return;const i=\\`%c \\${x}\\`,a=\\`color:\\${ct};font-size:11px;\\`,o=\\`Importance: \\${r}\\`;console.group(i,a,t,o),n.forEach((e=>{e.event_type?console.log(e.event_type,e):console.log(e)})),console.groupEnd()},lt=e=>{const{metricName:t,data:n}=e,r=e.importance||l.low;if(!A.showDebugLogging||!console)return;const i=\\`color:\\${ct};font-size:11px;\\`,a=\\`%c \\${x}\\`,o=\\`Importance: \\${r}\\`;console.log(a,i,t,n,o)},dt=()=>{const e=Ae();oe.sessionId&&oe.lastEventTime&&oe.sessionUUID&&!pt(e)||(oe.sessionId=e,oe.sessionUUID=V(),Ue({sessionStart:e}),lt({metricName:\"Started new session:\",data:{persistentData:oe,timeStone:Le}})),oe.lastEventTime=e},pt=e=>e-oe.lastEventTime>18e5;function mt(){return mt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mt.apply(this,arguments)}const ft=e=>{var t;(e=>{switch(e.action){case f.click:Ie.ac+=1;break;case f.focus:Ie.af+=1;break;case f.hover:Ie.ah+=1;break;case f.move:Ie.am+=1;break;case f.scroll:Ie.al+=1;break;case f.search:Ie.ar+=1;break;case f.select:Ie.as+=1}})(t=e),t.event_type!==j?t.event_type===N&&((e=>{if(!e.session_rank)return;const t=e.session_rank;Object.values(h).forEach((e=>{Ie.sqs+=Ie[e]*Pe[e]})),Object.values(w).forEach((e=>{Ie.sqs+=Ie[e]*Me[e]})),Ie.sqs*=Be[t]})(t),Object.assign(t,Ie),De({ac:0,af:0,ah:0,al:0,am:0,ar:0,as:0,pv:0,sqs:0})):Ie.pv+=1;const n=e.event_type;delete e.event_type;const r=e.deviceId?e.deviceId:null,i=e.timestamp;return delete e.timestamp,se({eventId:oe.eventId+1}),se({sequenceNumber:oe.sequenceNumber+1}),dt(),st(),{device_id:H.deviceId||r||null,user_id:H.userId,timestamp:i,event_id:oe.eventId,session_id:oe.sessionId||-1,event_type:n,version_name:A.version||null,platform:W.amplitudePlatform,os_name:W.amplitudeOSName,os_version:W.amplitudeOSVersion,device_model:W.amplitudeDeviceModel,language:H.languageCode,event_properties:mt({},e,{session_uuid:oe.sessionUUID,height:W.height,width:W.width}),user_properties:X(),uuid:V(),library:{name:\"@cbhq/client-analytics\",version:\"10.6.0\"},sequence_number:oe.sequenceNumber,user_agent:W.userAgent||H.userAgent}},vt=e=>e.map((e=>ft(e)));function gt(){return gt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gt.apply(this,arguments)}const bt=e=>e.map((e=>(e=>{const t=e.tags||{},n=gt({authed:J()?\"true\":\"false\",platform:A.platform},t,{project_name:A.projectName,version_name:A.version||null});return{metric_name:e.metricName,page_path:e.pagePath||null,value:e.value,tags:n,type:e.metricType}})(e))),ht=e=>0!==je.metricsQueue.length&&(je.metricsQueue.length>=A.batchMetricsThreshold||(je.metricsScheduled||(je.metricsScheduled=!0,setTimeout((()=>{je.metricsScheduled=!1,e(bt(je.metricsQueue)),je.metricsQueue=[]}),A.batchMetricsPeriod)),!1)),wt=e=>0!==je.tracesQueue.length&&(je.tracesQueue.length>=A.batchTracesThreshold||(je.tracesScheduled||(je.tracesScheduled=!0,setTimeout((()=>{je.tracesScheduled=!1,e(je.tracesQueue),je.tracesQueue=[]}),A.batchTracesPeriod)),!1)),yt=e=>{var t;z()&&null!=(t=window)&&t.requestIdleCallback?window.requestIdleCallback(e,{timeout:A.ricTimeoutScheduleEvent}):(q()||F())&&A.interactionManager?A.interactionManager.runAfterInteractions(e):e()};function Tt(){return Tt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Tt.apply(this,arguments)}const kt=\"application/x-www-form-urlencoded; charset=UTF-8\",_t=e=>{const{data:t,importance:n,isJSON:r,onError:i,url:a}=e,o=r?\"application/json\":kt,s=n||l.low,c=r?JSON.stringify(t):new URLSearchParams(t).toString();function u(){const e=new XMLHttpRequest;e.open(\"POST\",a,!0),Object.keys(A.headers||{}).forEach((t=>{e.setRequestHeader(t,A.headers[t])})),e.setRequestHeader(\"Content-Type\",kt),H.jwt&&e.setRequestHeader(\"authorization\",\\`Bearer \\${H.jwt}\\`),e.send(c)}if(!z()||r||!(\"sendBeacon\"in navigator)||s!==l.low||A.headers&&0!==Object.keys(A.headers).length)if(z()&&!r)u();else{const e=Tt({},A.headers,{\"Content-Type\":o});H.jwt&&(e.Authorization=\\`Bearer \\${H.jwt}\\`),fetch(a,{method:\"POST\",mode:\"no-cors\",headers:e,body:c}).catch((e=>{i(e,{context:\"AnalyticsSDKApiError\"})}))}else{const e=new Blob([c],{type:kt});try{navigator.sendBeacon.bind(navigator)(a,e)||u()}catch(e){console.error(e),u()}}};var St=n(762),Et=n.n(St);const xt=(e,t,n)=>{const r=e||\"\";return Et()(\"2\"+r+t+n)};function Ot(){return Ot=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ot.apply(this,arguments)}class jt extends Error{constructor(e){super(e),this.name=\"CircularJsonReference\",this.message=e,\"function\"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}}class Nt extends jt{constructor(...e){super(...e),this.name=\"DomReferenceInAnalyticsEvent\"}}function It(){return It=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},It.apply(this,arguments)}const Pt=(e,t=l.low)=>{var n;e&&je.eventsQueue.push(e),nt.isReady&&(!A.trackUserId||H.userId?(t===l.high||(n=Mt,0!==je.eventsQueue.length&&(je.eventsQueue.length>=A.batchEventsThreshold||(je.eventsScheduled||(je.eventsScheduled=!0,setTimeout((()=>{je.eventsScheduled=!1,n(vt(je.eventsQueue)),je.eventsQueue=[]}),A.batchEventsPeriod)),0))))&&Bt():je.eventsQueue.length>10&&(A.trackUserId=!1,A.onError(new Error(\"userId not set in Logged-in\"))))},Mt=(e,t=l.low)=>{if(H.isOptOut||0===e.length)return;let n;try{n=JSON.stringify(e)}catch(t){const r=e.map((e=>e.event_type)).join(\", \"),[i,a]=(e=>{try{const n=[];for(const r of e){const e=Ot({},r);r.event_properties&&(e.event_properties=Ot({},e.event_properties,{currentTarget:null,target:null,relatedTarget:null,_dispatchInstances:null,_targetInst:null,view:(t=r.event_properties.view,[\"string\",\"number\",\"boolean\"].includes(typeof t)?r.event_properties.view:null)})),n.push(e)}return[!0,JSON.stringify(n)]}catch(e){return[!1,\"\"]}var t})(e);if(!i)return void A.onError(new jt(t instanceof Error?t.message:\"unknown\"),{listEventType:r});n=a,A.onError(new Nt(\"Found DOM element reference\"),{listEventType:r,stringifiedEventData:n})}const r=Ae().toString(),i=It({},{e:n,v:\"2\",upload_time:r},{client:A.amplitudeApiKey,checksum:xt(A.amplitudeApiKey,n,r)});_t({url:A.eventsEndpoint,data:i,importance:t,onError:A.onError}),ut({metricName:\"Batch Events\",data:e,importance:t})},Bt=()=>{Mt(vt(je.eventsQueue)),Ne({eventsQueue:[]})};function Ct(){return Ct=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ct.apply(this,arguments)}const Dt=Object.values(f),At=Object.values(m),Lt=e=>Dt.includes(e)?e:f.unknown,Ut=e=>At.includes(e)?e:m.unknown,Rt=(e,t,n)=>{const r={auth:J()?b.loggedIn:b.notLoggedIn,action:Lt(e),component_type:Ut(t),logging_id:n,platform:A.platform,project_name:A.projectName};return\"number\"==typeof H.userTypeEnum&&(r.user_type_enum=H.userTypeEnum),r},qt=e=>{const t=Ae();if(!e)return A.onError(new Error(\"missing logData\")),Ct({},Rt(f.unknown,m.unknown),{locale:H.locale,session_lcc_id:H.session_lcc_id,timestamp:t,time_start:Le.timeStart});const n=Ct({},e,Rt(e.action,e.componentType,e.loggingId),{locale:H.locale,session_lcc_id:H.session_lcc_id,timestamp:t,time_start:Le.timeStart});return delete n.componentType,delete n.loggingId,n},Ft={blacklistRegex:[],isEnabled:!1};function zt(){return{page_key:re.pageKey,page_path:re.pagePath,prev_page_key:re.prevPageKey,prev_page_path:re.prevPagePath}}function Kt(e){Object.assign(Ft,e)}function $t(e,t,n=l.low){if(H.isOptOut)return;if(!Oe())return;const r=qt(t);!function(e){Ft.isEnabled&&(ve(),Object.assign(e,zt()))}(r),be(r),function(e){Object.keys(Se).length>0&&Object.assign(e,Se)}(r),r.has_double_fired=!1,r.event_type=e,n===l.high?Pt(r,n):yt((()=>{Pt(r)}))}function Qt(e,t=!1){t?_t({url:A.metricsEndPoint,data:{metrics:e},isJSON:!0,onError:A.onError}):yt((()=>{_t({url:A.metricsEndPoint,data:{metrics:e},isJSON:!0,onError:A.onError})})),ut({metricName:\"Batch Metrics\",data:e})}function Wt(){return Wt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wt.apply(this,arguments)}function Ht(e){if(!Oe())return;v.server!==A.platform&&!e.pagePath&&re.pagePath&&(e.pagePath=re.pagePath);const t=Object.keys(Se).length?Wt({},e.tags,Se):e.tags;t&&Object.assign(e,{tags:t}),je.metricsQueue.push(e),ht(Qt)&&(Qt(bt(je.metricsQueue)),je.metricsQueue=[])}function Vt(){return Vt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Vt.apply(this,arguments)}let Jt=function(e){return e.instant=\"instant\",e.quick=\"quick\",e.moderate=\"moderate\",e.slow=\"slow\",e.unavoidable=\"unavoidable\",e}({});function Xt(e){return e.toLowerCase()}let Gt={};const Zt=(e,t)=>{null!=A&&A.onMarkStep&&A.onMarkStep(e,t),xe({ujs:t})};let Yt;const en={Perfume:()=>{},markStep:e=>{},markStepOnce:e=>{},incrementUjNavigation:()=>{}},tn=()=>{z()&&Yt&&Yt.markNTBT&&Yt.markNTBT()},nn=e=>{z()&&Yt&&en.markStep&&en.markStep(e)},rn=e=>{z()&&Yt&&en.markStepOnce&&en.markStepOnce(e)},an=()=>{z()&&Yt&&en.incrementUjNavigation&&en.incrementUjNavigation()};function on(e={callMarkNTBT:!0}){\"unknown\"!==A.platform&&(Ft.blacklistRegex.some((e=>e.test(fe())))||($t(j,{action:f.render,componentType:m.page}),e.callMarkNTBT&&tn()))}let sn=!1,cn=!1;const un=e=>{sn=!e.persisted},ln=(e,t=\"hidden\",n=!1)=>{cn||(addEventListener(\"pagehide\",un),addEventListener(\"beforeunload\",(()=>{})),cn=!0),addEventListener(\"visibilitychange\",(({timeStamp:n})=>{document.visibilityState===t&&e({timeStamp:n,isUnloading:sn})}),{capture:!0,once:n})},dn=36e3;function pn(){const e=pt(Ae());if(e&&(O.forEach((e=>{oe[e]&&delete oe[e]})),st()),!oe.lastEventTime||!Le.sessionStart||!e)return;const t=Math.round((oe.lastEventTime-Le.sessionStart)/1e3);if(t<1||t>dn)return;const n=Ce(t);$t(N,{action:f.measurement,componentType:m.page,session_duration:t,session_end:oe.lastEventTime,session_start:Le.sessionStart,session_rank:n})}function mn(){return mn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},mn.apply(this,arguments)}const fn=[],vn=[],gn=()=>{const e=fn.shift();e&&e()},bn=()=>{const e=vn.shift();e&&e()};let hn={};function wn(e){const t=function(e){return{test_name:e.testName,group_name:e.group,subject_id:e.subjectId,exposed_at:Ae(),subject_type:e.subjectType,platform:A.platform}}(e);hn[e.testName]=hn[e.testName]||0,hn[e.testName]+k>Ae()?lt({metricName:\\`Event: exposeExperiment \\${e.testName} not sent\\`,data:t}):(hn[e.testName]=Ae(),ot(E,hn),lt({metricName:\\`Event: exposeExperiment \\${e.testName} sent\\`,data:t}),_t({url:A.exposureEndpoint,data:[t],onError:(t,n)=>{hn[e.testName]=0,ot(E,hn),A.onError(t,n)},isJSON:!0,importance:l.high}))}const yn=e=>{var t,r,i;U(e),z()&&(H.languageCode=(null==(t=navigator)?void 0:t.languages[0])||(null==(r=navigator)?void 0:r.language)||\"\"),te(),(()=>{var e;if(z()&&null!=(e=window)&&e.indexedDB){const e=function(e,t,{blocked:n,upgrade:r,blocking:i,terminated:a}={}){const o=indexedDB.open(e,t),s=Je(o);return r&&o.addEventListener(\"upgradeneeded\",(e=>{r(Je(o.result),e.oldVersion,e.newVersion,Je(o.transaction),e)})),n&&o.addEventListener(\"blocked\",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{a&&e.addEventListener(\"close\",(()=>a())),i&&e.addEventListener(\"versionchange\",(e=>i(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}(\"keyval-store\",1,{upgrade(e){e.createObjectStore(\"keyval\")}});rt({idbKeyval:{get:async t=>(await e).get(\"keyval\",t),set:async(t,n)=>(await e).put(\"keyval\",n,t),delete:async t=>(await e).delete(\"keyval\",t),keys:async()=>(await e).getAllKeys(\"keyval\")}})}else rt({idbKeyval:{get:async e=>new Promise((t=>{t(it[e])})),set:async(e,t)=>new Promise((n=>{it[e]=t,n(e)})),delete:async e=>new Promise((()=>{delete it[e]})),keys:async()=>new Promise((e=>{e(Object.keys(it))}))}})})(),lt({metricName:\"Initialized Analytics:\",data:{deviceId:H.deviceId}}),fn.push((()=>{Pt()})),(async()=>{const e=await at(S);rt({isReady:!0}),gn(),e&&(bn(),se({eventId:e.eventId||oe.eventId,sequenceNumber:e.sequenceNumber||oe.sequenceNumber,sessionId:e.sessionId||oe.sessionId,lastEventTime:e.lastEventTime||oe.lastEventTime,sessionUUID:e.sessionUUID||oe.sessionUUID}),function(e){se(mn({},function(e){const t={};return O.forEach((n=>{e[n]&&(t[n]=e[n])})),t}(e),de()))}(e),Ue({sessionStart:e.sessionStart||oe.sessionStart}),De({ac:e.ac||Ie.ac,af:e.af||Ie.af,ah:e.ah||Ie.ah,al:e.al||Ie.al,am:e.am||Ie.am,ar:e.ar||Ie.ar,as:e.as||Ie.as,pv:e.pv||Ie.pv}),A.trackUserId&&Y({userId:e.userId||H.userId}),pn(),lt({metricName:\"Initialized Analytics IndexedDB:\",data:e}))})(),async function(){at(E).then((e=>{hn=null!=e?e:{}})).catch((e=>{e instanceof Error&&A.onError(e)}))}(),Z(),z()&&(ln((()=>{se({lastEventTime:Ae()}),st(),Bt()}),\"hidden\"),ln((()=>{pn()}),\"visible\")),z()&&(i=()=>{var e,t,n,r;te(),ee({width:null!=(e=null==(t=window)?void 0:t.innerWidth)?e:null,height:null!=(n=null==(r=window)?void 0:r.innerHeight)?n:null})},addEventListener(\"resize\",(()=>{requestAnimationFrame((()=>{i()}))}))),(()=>{if(z())try{const e=n(2);en.markStep=e.markStep,en.markStepOnce=e.markStepOnce,en.incrementUjNavigation=e.incrementUjNavigation,Yt=new e.Perfume({analyticsTracker:e=>{const{data:t,attribution:n,metricName:r,navigatorInformation:i,rating:a}=e,o=I[r],s=(null==n?void 0:n.category)||null;if(!o&&!s)return;const c=(null==i?void 0:i.deviceMemory)||0,u=(null==i?void 0:i.hardwareConcurrency)||0,l=(null==i?void 0:i.isLowEndDevice)||!1,p=(null==i?void 0:i.isLowEndExperience)||!1,v=(null==i?void 0:i.serviceWorkerStatus)||\"unsupported\",g=Vt({deviceMemory:c,hardwareConcurrency:u,isLowEndDevice:l,isLowEndExperience:p,serviceWorkerStatus:v},Gt),b={is_low_end_device:l,is_low_end_experience:p,page_key:re.pageKey||\"\",save_data:t.saveData||!1,service_worker:v,is_perf_metric:!0};if(\"navigationTiming\"===r)t&&\"number\"==typeof t.redirectTime&&Ht({metricName:I.redirectTime.eventName,metricType:d.histogram,tags:b,value:t.redirectTime||0});else if(\"TTFB\"===r)$t(o.eventName,Vt({action:f.measurement,componentType:m.page,duration:t||null,vitalsScore:a||null},g)),Ht({metricName:I.TTFB.eventName,metricType:d.histogram,tags:Vt({},b),value:t}),a&&Ht({metricName:\\`perf_web_vitals_ttfb_\\${a}\\`,metricType:d.count,tags:b,value:1});else if(\"networkInformation\"===r)null!=t&&t.effectiveType&&(Gt=t,$t(o.eventName,{action:f.measurement,componentType:m.page,networkInformationDownlink:t.downlink,networkInformationEffectiveType:t.effectiveType,networkInformationRtt:t.rtt,networkInformationSaveData:t.saveData,navigatorDeviceMemory:c,navigatorHardwareConcurrency:u}));else if(\"storageEstimate\"===r)$t(o.eventName,Vt({action:f.measurement,componentType:m.page},t,g)),Ht({metricName:\"perf_storage_estimate_caches\",metricType:d.histogram,tags:b,value:t.caches}),Ht({metricName:\"perf_storage_estimate_indexed_db\",metricType:d.histogram,tags:b,value:t.indexedDB});else if(\"CLS\"===r)$t(o.eventName,Vt({action:f.measurement,componentType:m.page,score:100*t||null,vitalsScore:a||null},g)),a&&Ht({metricName:\\`perf_web_vitals_cls_\\${a}\\`,metricType:d.count,tags:b,value:1});else if(\"FID\"===r){const e=(null==n?void 0:n.performanceEntry)||null,r=parseInt((null==e?void 0:e.processingStart)||\"\");$t(o.eventName,Vt({action:f.measurement,componentType:m.page,duration:t||null,processingStart:null!=e&&e.processingStart?r:null,startTime:null!=e&&e.startTime?parseInt(e.startTime):null,vitalsScore:a||null},g)),a&&Ht({metricName:\\`perf_web_vitals_fidVitals_\\${a}\\`,metricType:d.count,tags:b,value:1})}else\"userJourneyStep\"===r?($t(\"perf_user_journey_step\",Vt({action:f.measurement,componentType:m.page,duration:t||null,rating:null!=a?a:null,step_name:(null==n?void 0:n.stepName)||\"\"},g)),Ht({metricName:\\`user_journey_step.\\${A.projectName}.\\${A.platform}.\\${(null==n?void 0:n.stepName)||\"\"}_vitals_\\${a}\\`,metricType:d.count,tags:b,value:1}),Ht({metricName:\\`user_journey_step.\\${A.projectName}.\\${A.platform}.\\${(null==n?void 0:n.stepName)||\"\"}\\`,metricType:d.distribution,tags:b,value:t||null})):I[r]&&t&&($t(o.eventName,Vt({action:f.measurement,componentType:m.page,duration:t||null,vitalsScore:a||null},g)),a&&(Ht({metricName:\\`perf_web_vitals_\\${Xt(r)}_\\${a}\\`,metricType:d.count,tags:b,value:1}),\"LCP\"===r&&Ht({metricName:\\`perf_web_vitals_\\${Xt(r)}\\`,metricType:d.distribution,tags:b,value:t})))},maxMeasureTime:3e4,steps:A.steps,onMarkStep:Zt})}catch(e){e instanceof Error&&A.onError(e)}})()},Tn=e=>{Y(e),e.userAgent&&Z(),lt({metricName:\"Identify:\",data:{countryCode:H.countryCode,deviceId:H.deviceId,userId:H.userId}})},kn=({blacklistRegex:e,pageKeyRegex:t,browserHistory:n})=>{Kt({blacklistRegex:e||[],isEnabled:!0}),ae({pageKeyRegex:t}),on({callMarkNTBT:!1}),n.listen((()=>{on()}))},_n=({blacklistRegex:e,pageKeyRegex:t,nextJsRouter:n})=>{Kt({blacklistRegex:e||[],isEnabled:!0}),ae({pageKeyRegex:t}),on({callMarkNTBT:!1}),n.events.on(\"routeChangeComplete\",(()=>{on()}))},Sn=()=>{Y({isOptOut:!0}),ot(S,{})},En=()=>{Y({isOptOut:!1})},xn={Button:{label:\"cb_button\",uuid:\"e921a074-40e6-4371-8700-134d5cd633e6\",componentType:m.button}};function On(e,t,n){return{componentName:e,actions:t,data:n}}function jn(){return jn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jn.apply(this,arguments)}function Nn(e,t,n){const{componentName:r,data:i}=n;$t(e.label,jn({componentType:e.componentType,action:t,loggingId:e.uuid,component_name:r},i))}const In={actionMapping:{onPress:f.click,onHover:f.hover},handlers:{Button:{[f.click]:e=>Nn(xn.Button,f.click,e),[f.hover]:e=>Nn(xn.Button,f.hover,e)}}};function Pn(e,t=!1){t?_t({url:A.tracesEndpoint,data:{traces:e},isJSON:!0,onError:A.onError}):yt((()=>{_t({url:A.tracesEndpoint,data:{traces:e},isJSON:!0,onError:A.onError})})),ut({metricName:\"Batch Traces\",data:e})}function Mn(){return Mn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mn.apply(this,arguments)}const Bn=1e6;function Cn(e){return e*Bn}function Dn(e=function(){var e;return null==(e=window)?void 0:e.crypto}()){const t=new Uint32Array(2);return null==e||e.getRandomValues(t),((BigInt(t[0])<<BigInt(32))+BigInt(t[1])).toString()}function An(e,t){return{\"x-datadog-origin\":\"rum\",\"x-datadog-parent-id\":t,\"x-datadog-sampling-priority\":\"1\",\"x-datadog-trace-id\":e}}function Ln(e){var t;const{name:n,traceId:r,spanId:i,start:a,duration:o,resource:s,meta:c}=e;return{duration:o?Cn(o):0,name:n,resource:s,service:A.projectName,span_id:null!=i?i:Dn(),start:a?Cn(a):0,trace_id:null!=r?r:Dn(),parent_id:P,type:M,meta:Mn({platform:A.platform},re.pageKey?{page_key:re.pageKey}:{},null!=(t=Se.ujs)&&t.length?{last_ujs:Se.ujs[Se.ujs.length-1]}:{},null!=c?c:{})}}function Un(e){return[Ln(e)]}function Rn(e,t){Oe()&&function(e){return e.length>0}(e)&&(t&&function(e,t){e.forEach((e=>function(e,t){const n=Mn({},e.meta,t.meta),r={start:t.start?Cn(t.start):e.start,duration:t.duration?Cn(t.duration):e.duration};Object.assign(e,t,Mn({meta:n},r))}(e,t)))}(e,t),je.tracesQueue.push(e),wt(Pn)&&(Pn(je.tracesQueue),je.tracesQueue=[]))}function qn(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,\"string\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"==typeof t?t:String(t)}function Fn(){return Fn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Fn.apply(this,arguments)}function zn(){return void 0!==typeof window&&\"performance\"in window&&\"mark\"in performance&&\"getEntriesByName\"in performance}function Kn(e,t){return\\`perf_\\${e}\\${null!=t&&t.label?\\`_\\${t.label}\\`:\"\"}\\`}function $n(e,t,n){return\\`\\${Kn(e,n)}__\\${t}\\`}let Qn={};function Wn(e,t,n){if(!zn())return;const r=$n(e,t,n);if(performance.mark(r),\"end\"===t){const t=Kn(e,n);!function(e,t,n){try{performance.measure(e,t,n)}catch(e){A.onError(e)}}(t,$n(e,\"start\",n),r);const i=performance.getEntriesByName(t).pop();i&&Ht(Fn({metricName:e,metricType:d.distribution,value:i.duration},null!=n&&n.tags?{tags:n.tags}:{}))}}function Hn(e,t){if(!zn())return;const n=$n(e,\"start\",t);Qn[n]||(Wn(e,\"start\",t),Qn[n]=!0)}function Vn(e,t){const n=$n(e,\"start\",t),r=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(Qn,[n].map(qn));Qn=r}function Jn(e,t){if(!zn())return;const n=$n(e,\"start\",t);Qn[n]&&(Wn(e,\"end\",t),Vn(e,t))}function Xn(){zn()&&(performance.clearMarks(),Qn={})}var Gn=n(784);function Zn(){return Zn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zn.apply(this,arguments)}function Yn(e,t,n=l.low){const r=(0,Gn.useRef)(t);return(0,Gn.useEffect)((()=>{r.current=t}),[t]),(0,Gn.useCallback)((t=>{$t(e,Zn({},r.current,t),n)}),[e,n])}function er(){return er=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},er.apply(this,arguments)}function tr(e,t,n=l.low){(0,Gn.useEffect)((()=>{const r=er({},t,{action:f.render});$t(e,r,n)}),[])}function nr(){return nr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},nr.apply(this,arguments)}const rr=function(e,t){return{markStartPerf:(0,Gn.useCallback)((()=>Hn(e,t)),[e,t]),markEndPerf:(0,Gn.useCallback)((n=>Jn(e,nr({},t,n))),[e,t])}};function ir(){return ir=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ir.apply(this,arguments)}function ar(){return Object.entries(ir({},Se,zt(),{sessionUUID:oe.sessionUUID,userId:oe.userId})).reduce(((e,t)=>{return null!=(n=t[1])&&\"\"!==n?ir({},e,{[t[0]]:t[1]}):e;var n}),{})}async function or(){return new Promise((e=>{Mt(vt(je.eventsQueue)),Qt(bt(je.metricsQueue),!0),Pn(je.tracesQueue,!0),Ne({eventsQueue:[],metricsQueue:[],tracesQueue:[]}),e()}))}function sr(){return{\"X-CB-Device-ID\":H.deviceId||\"unknown\",\"X-CB-Is-Logged-In\":H.userId?\"true\":\"false\",\"X-CB-Pagekey\":re.pageKey||\"unknown\",\"X-CB-UJS\":(e=Se.ujs,void 0===e||0===e.length?\"\":e.join(\",\")),\"X-CB-Platform\":A.platform||\"unknown\",\"X-CB-Project-Name\":A.projectName||\"unknown\",\"X-CB-Session-UUID\":oe.sessionUUID||\"unknown\",\"X-CB-Version-Name\":A.version?String(A.version):\"unknown\"};var e}})(),r})()}));`;\n//# sourceMappingURL=telemetry-content.js.map","import { store } from '../../store/store.js';\nimport { TELEMETRY_SCRIPT_CONTENT } from './telemetry-content.js';\nexport const loadTelemetryScript = () => {\n return new Promise((resolve, reject) => {\n if (window.ClientAnalytics) {\n return resolve();\n }\n try {\n const script = document.createElement('script');\n script.textContent = TELEMETRY_SCRIPT_CONTENT;\n script.type = 'text/javascript';\n document.head.appendChild(script);\n initCCA();\n document.head.removeChild(script);\n resolve();\n }\n catch (_a) {\n console.error('Failed to execute inlined telemetry script');\n reject();\n }\n });\n};\nconst initCCA = () => {\n var _a, _b, _c;\n if (typeof window !== 'undefined') {\n const deviceId = (_c = (_a = store.config.get().deviceId) !== null && _a !== void 0 ? _a : (_b = window.crypto) === null || _b === void 0 ? void 0 : _b.randomUUID()) !== null && _c !== void 0 ? _c : '';\n if (window.ClientAnalytics) {\n const { init, identify, PlatformName } = window.ClientAnalytics;\n init({\n isProd: true,\n amplitudeApiKey: 'c66737ad47ec354ced777935b0af822e',\n platform: PlatformName.web,\n projectName: 'base_account_sdk',\n showDebugLogging: false,\n version: '1.0.0',\n apiEndpoint: 'https://cca-lite.coinbase.com',\n });\n identify({ deviceId });\n store.config.set({ deviceId });\n }\n }\n};\n//# sourceMappingURL=initCCA.js.map","/**********************************************************************\n * Constants\n **********************************************************************/\nexport const factoryAddress = '0xba5ed110efdba3d005bfc882d75358acbbb85842';\nexport const spendPermissionManagerAddress = '0xf85210B21cC50302F477BA56686d2019dC9b67Ad';\nexport const abi = [\n { inputs: [], stateMutability: 'nonpayable', type: 'constructor' },\n {\n inputs: [{ name: 'owner', type: 'bytes' }],\n name: 'AlreadyOwner',\n type: 'error',\n },\n { inputs: [], name: 'Initialized', type: 'error' },\n {\n inputs: [{ name: 'owner', type: 'bytes' }],\n name: 'InvalidEthereumAddressOwner',\n type: 'error',\n },\n {\n inputs: [{ name: 'key', type: 'uint256' }],\n name: 'InvalidNonceKey',\n type: 'error',\n },\n {\n inputs: [{ name: 'owner', type: 'bytes' }],\n name: 'InvalidOwnerBytesLength',\n type: 'error',\n },\n { inputs: [], name: 'LastOwner', type: 'error' },\n {\n inputs: [{ name: 'index', type: 'uint256' }],\n name: 'NoOwnerAtIndex',\n type: 'error',\n },\n {\n inputs: [{ name: 'ownersRemaining', type: 'uint256' }],\n name: 'NotLastOwner',\n type: 'error',\n },\n {\n inputs: [{ name: 'selector', type: 'bytes4' }],\n name: 'SelectorNotAllowed',\n type: 'error',\n },\n { inputs: [], name: 'Unauthorized', type: 'error' },\n { inputs: [], name: 'UnauthorizedCallContext', type: 'error' },\n { inputs: [], name: 'UpgradeFailed', type: 'error' },\n {\n inputs: [\n { name: 'index', type: 'uint256' },\n { name: 'expectedOwner', type: 'bytes' },\n { name: 'actualOwner', type: 'bytes' },\n ],\n name: 'WrongOwnerAtIndex',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'index',\n type: 'uint256',\n },\n { indexed: false, name: 'owner', type: 'bytes' },\n ],\n name: 'AddOwner',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'index',\n type: 'uint256',\n },\n { indexed: false, name: 'owner', type: 'bytes' },\n ],\n name: 'RemoveOwner',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n { stateMutability: 'payable', type: 'fallback' },\n {\n inputs: [],\n name: 'REPLAYABLE_NONCE_KEY',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'owner', type: 'address' }],\n name: 'addOwnerAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'x', type: 'bytes32' },\n { name: 'y', type: 'bytes32' },\n ],\n name: 'addOwnerPublicKey',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [{ name: 'functionSelector', type: 'bytes4' }],\n name: 'canSkipChainIdValidation',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'domainSeparator',\n outputs: [{ name: '', type: 'bytes32' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'eip712Domain',\n outputs: [\n { name: 'fields', type: 'bytes1' },\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n { name: 'salt', type: 'bytes32' },\n { name: 'extensions', type: 'uint256[]' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'entryPoint',\n outputs: [{ name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'target', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'data', type: 'bytes' },\n ],\n name: 'execute',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { name: 'target', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'data', type: 'bytes' },\n ],\n name: 'calls',\n type: 'tuple[]',\n },\n ],\n name: 'executeBatch',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [{ name: 'calls', type: 'bytes[]' }],\n name: 'executeWithoutChainIdValidation',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { name: 'sender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'initCode', type: 'bytes' },\n { name: 'callData', type: 'bytes' },\n { name: 'callGasLimit', type: 'uint256' },\n {\n name: 'verificationGasLimit',\n type: 'uint256',\n },\n {\n name: 'preVerificationGas',\n type: 'uint256',\n },\n { name: 'maxFeePerGas', type: 'uint256' },\n {\n name: 'maxPriorityFeePerGas',\n type: 'uint256',\n },\n { name: 'paymasterAndData', type: 'bytes' },\n { name: 'signature', type: 'bytes' },\n ],\n name: 'userOp',\n type: 'tuple',\n },\n ],\n name: 'getUserOpHashWithoutChainId',\n outputs: [{ name: '', type: 'bytes32' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'implementation',\n outputs: [{ name: '$', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'owners', type: 'bytes[]' }],\n name: 'initialize',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [{ name: 'account', type: 'address' }],\n name: 'isOwnerAddress',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'account', type: 'bytes' }],\n name: 'isOwnerBytes',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'x', type: 'bytes32' },\n { name: 'y', type: 'bytes32' },\n ],\n name: 'isOwnerPublicKey',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'hash', type: 'bytes32' },\n { name: 'signature', type: 'bytes' },\n ],\n name: 'isValidSignature',\n outputs: [{ name: 'result', type: 'bytes4' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'nextOwnerIndex',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'index', type: 'uint256' }],\n name: 'ownerAtIndex',\n outputs: [{ name: '', type: 'bytes' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'ownerCount',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'proxiableUUID',\n outputs: [{ name: '', type: 'bytes32' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'index', type: 'uint256' },\n { name: 'owner', type: 'bytes' },\n ],\n name: 'removeLastOwner',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'index', type: 'uint256' },\n { name: 'owner', type: 'bytes' },\n ],\n name: 'removeOwnerAtIndex',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'removedOwnersCount',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'hash', type: 'bytes32' }],\n name: 'replaySafeHash',\n outputs: [{ name: '', type: 'bytes32' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'newImplementation', type: 'address' },\n { name: 'data', type: 'bytes' },\n ],\n name: 'upgradeToAndCall',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n { name: 'sender', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'initCode', type: 'bytes' },\n { name: 'callData', type: 'bytes' },\n { name: 'callGasLimit', type: 'uint256' },\n {\n name: 'verificationGasLimit',\n type: 'uint256',\n },\n {\n name: 'preVerificationGas',\n type: 'uint256',\n },\n { name: 'maxFeePerGas', type: 'uint256' },\n {\n name: 'maxPriorityFeePerGas',\n type: 'uint256',\n },\n { name: 'paymasterAndData', type: 'bytes' },\n { name: 'signature', type: 'bytes' },\n ],\n name: 'userOp',\n type: 'tuple',\n },\n { name: 'userOpHash', type: 'bytes32' },\n { name: 'missingAccountFunds', type: 'uint256' },\n ],\n name: 'validateUserOp',\n outputs: [{ name: 'validationData', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n { stateMutability: 'payable', type: 'receive' },\n];\nexport const factoryAbi = [\n {\n inputs: [{ name: 'implementation_', type: 'address' }],\n stateMutability: 'payable',\n type: 'constructor',\n },\n { inputs: [], name: 'OwnerRequired', type: 'error' },\n {\n inputs: [\n { name: 'owners', type: 'bytes[]' },\n { name: 'nonce', type: 'uint256' },\n ],\n name: 'createAccount',\n outputs: [\n {\n name: 'account',\n type: 'address',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'owners', type: 'bytes[]' },\n { name: 'nonce', type: 'uint256' },\n ],\n name: 'getAddress',\n outputs: [{ name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'implementation',\n outputs: [{ name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'initCodeHash',\n outputs: [{ name: '', type: 'bytes32' }],\n stateMutability: 'view',\n type: 'function',\n },\n];\nexport const spendPermissionManagerAbi = [\n {\n type: 'constructor',\n inputs: [\n {\n name: 'publicERC6492Validator',\n type: 'address',\n internalType: 'contract PublicERC6492Validator',\n },\n { name: 'magicSpend', type: 'address', internalType: 'address' },\n ],\n stateMutability: 'nonpayable',\n },\n { type: 'receive', stateMutability: 'payable' },\n {\n type: 'function',\n name: 'MAGIC_SPEND',\n inputs: [],\n outputs: [{ name: '', type: 'address', internalType: 'address' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'NATIVE_TOKEN',\n inputs: [],\n outputs: [{ name: '', type: 'address', internalType: 'address' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'PERMISSION_DETAILS_TYPEHASH',\n inputs: [],\n outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'PUBLIC_ERC6492_VALIDATOR',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract PublicERC6492Validator',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'SPEND_PERMISSION_BATCH_TYPEHASH',\n inputs: [],\n outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'SPEND_PERMISSION_TYPEHASH',\n inputs: [],\n outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'approve',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'approveBatchWithSignature',\n inputs: [\n {\n name: 'spendPermissionBatch',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermissionBatch',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n {\n name: 'permissions',\n type: 'tuple[]',\n internalType: 'struct SpendPermissionManager.PermissionDetails[]',\n components: [\n {\n name: 'spender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'salt',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'extraData',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n },\n { name: 'signature', type: 'bytes', internalType: 'bytes' },\n ],\n outputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'approveWithRevoke',\n inputs: [\n {\n name: 'permissionToApprove',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n {\n name: 'permissionToRevoke',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n {\n name: 'expectedLastUpdatedPeriod',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.PeriodSpend',\n components: [\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'spend', type: 'uint160', internalType: 'uint160' },\n ],\n },\n ],\n outputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'approveWithSignature',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n { name: 'signature', type: 'bytes', internalType: 'bytes' },\n ],\n outputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'eip712Domain',\n inputs: [],\n outputs: [\n { name: 'fields', type: 'bytes1', internalType: 'bytes1' },\n { name: 'name', type: 'string', internalType: 'string' },\n { name: 'version', type: 'string', internalType: 'string' },\n { name: 'chainId', type: 'uint256', internalType: 'uint256' },\n {\n name: 'verifyingContract',\n type: 'address',\n internalType: 'address',\n },\n { name: 'salt', type: 'bytes32', internalType: 'bytes32' },\n {\n name: 'extensions',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getBatchHash',\n inputs: [\n {\n name: 'spendPermissionBatch',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermissionBatch',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n {\n name: 'permissions',\n type: 'tuple[]',\n internalType: 'struct SpendPermissionManager.PermissionDetails[]',\n components: [\n {\n name: 'spender',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n {\n name: 'salt',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'extraData',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n },\n ],\n outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getCurrentPeriod',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.PeriodSpend',\n components: [\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'spend', type: 'uint160', internalType: 'uint160' },\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getHash',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [{ name: '', type: 'bytes32', internalType: 'bytes32' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getLastUpdatedPeriod',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.PeriodSpend',\n components: [\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'spend', type: 'uint160', internalType: 'uint160' },\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isApproved',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isRevoked',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isValid',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [{ name: '', type: 'bool', internalType: 'bool' }],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'revoke',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'revokeAsSpender',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'spend',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n { name: 'value', type: 'uint160', internalType: 'uint160' },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'spendWithWithdraw',\n inputs: [\n {\n name: 'spendPermission',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n { name: 'value', type: 'uint160', internalType: 'uint160' },\n {\n name: 'withdrawRequest',\n type: 'tuple',\n internalType: 'struct MagicSpend.WithdrawRequest',\n components: [\n { name: 'signature', type: 'bytes', internalType: 'bytes' },\n { name: 'asset', type: 'address', internalType: 'address' },\n { name: 'amount', type: 'uint256', internalType: 'uint256' },\n { name: 'nonce', type: 'uint256', internalType: 'uint256' },\n { name: 'expiry', type: 'uint48', internalType: 'uint48' },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'event',\n name: 'SpendPermissionApproved',\n inputs: [\n {\n name: 'hash',\n type: 'bytes32',\n indexed: true,\n internalType: 'bytes32',\n },\n {\n name: 'spendPermission',\n type: 'tuple',\n indexed: false,\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'SpendPermissionRevoked',\n inputs: [\n {\n name: 'hash',\n type: 'bytes32',\n indexed: true,\n internalType: 'bytes32',\n },\n {\n name: 'spendPermission',\n type: 'tuple',\n indexed: false,\n internalType: 'struct SpendPermissionManager.SpendPermission',\n components: [\n { name: 'account', type: 'address', internalType: 'address' },\n { name: 'spender', type: 'address', internalType: 'address' },\n { name: 'token', type: 'address', internalType: 'address' },\n {\n name: 'allowance',\n type: 'uint160',\n internalType: 'uint160',\n },\n { name: 'period', type: 'uint48', internalType: 'uint48' },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'salt', type: 'uint256', internalType: 'uint256' },\n { name: 'extraData', type: 'bytes', internalType: 'bytes' },\n ],\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'SpendPermissionUsed',\n inputs: [\n {\n name: 'hash',\n type: 'bytes32',\n indexed: true,\n internalType: 'bytes32',\n },\n {\n name: 'account',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'spender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'token',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'periodSpend',\n type: 'tuple',\n indexed: false,\n internalType: 'struct SpendPermissionManager.PeriodSpend',\n components: [\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'spend', type: 'uint160', internalType: 'uint160' },\n ],\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'AfterSpendPermissionEnd',\n inputs: [\n {\n name: 'currentTimestamp',\n type: 'uint48',\n internalType: 'uint48',\n },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n ],\n },\n {\n type: 'error',\n name: 'BeforeSpendPermissionStart',\n inputs: [\n {\n name: 'currentTimestamp',\n type: 'uint48',\n internalType: 'uint48',\n },\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n ],\n },\n {\n type: 'error',\n name: 'ERC721TokenNotSupported',\n inputs: [{ name: 'token', type: 'address', internalType: 'address' }],\n },\n { type: 'error', name: 'EmptySpendPermissionBatch', inputs: [] },\n {\n type: 'error',\n name: 'ExceededSpendPermission',\n inputs: [\n { name: 'value', type: 'uint256', internalType: 'uint256' },\n { name: 'allowance', type: 'uint256', internalType: 'uint256' },\n ],\n },\n {\n type: 'error',\n name: 'InvalidLastUpdatedPeriod',\n inputs: [\n {\n name: 'actualLastUpdatedPeriod',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.PeriodSpend',\n components: [\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'spend', type: 'uint160', internalType: 'uint160' },\n ],\n },\n {\n name: 'expectedLastUpdatedPeriod',\n type: 'tuple',\n internalType: 'struct SpendPermissionManager.PeriodSpend',\n components: [\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n { name: 'spend', type: 'uint160', internalType: 'uint160' },\n ],\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidSender',\n inputs: [\n { name: 'sender', type: 'address', internalType: 'address' },\n { name: 'expected', type: 'address', internalType: 'address' },\n ],\n },\n { type: 'error', name: 'InvalidSignature', inputs: [] },\n {\n type: 'error',\n name: 'InvalidStartEnd',\n inputs: [\n { name: 'start', type: 'uint48', internalType: 'uint48' },\n { name: 'end', type: 'uint48', internalType: 'uint48' },\n ],\n },\n {\n type: 'error',\n name: 'InvalidWithdrawRequestNonce',\n inputs: [\n {\n name: 'noncePostfix',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'permissionHashPostfix',\n type: 'uint128',\n internalType: 'uint128',\n },\n ],\n },\n {\n type: 'error',\n name: 'MismatchedAccounts',\n inputs: [\n {\n name: 'firstAccount',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'secondAccount',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'SafeERC20FailedOperation',\n inputs: [{ name: 'token', type: 'address', internalType: 'address' }],\n },\n {\n type: 'error',\n name: 'SpendTokenWithdrawAssetMismatch',\n inputs: [\n { name: 'spendToken', type: 'address', internalType: 'address' },\n {\n name: 'withdrawAsset',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'SpendValueOverflow',\n inputs: [{ name: 'value', type: 'uint256', internalType: 'uint256' }],\n },\n {\n type: 'error',\n name: 'SpendValueWithdrawAmountMismatch',\n inputs: [\n { name: 'spendValue', type: 'uint256', internalType: 'uint256' },\n {\n name: 'withdrawAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n { type: 'error', name: 'UnauthorizedSpendPermission', inputs: [] },\n {\n type: 'error',\n name: 'UnexpectedReceiveAmount',\n inputs: [\n { name: 'received', type: 'uint256', internalType: 'uint256' },\n { name: 'expected', type: 'uint256', internalType: 'uint256' },\n ],\n },\n { type: 'error', name: 'ZeroAllowance', inputs: [] },\n { type: 'error', name: 'ZeroPeriod', inputs: [] },\n { type: 'error', name: 'ZeroSpender', inputs: [] },\n { type: 'error', name: 'ZeroToken', inputs: [] },\n { type: 'error', name: 'ZeroValue', inputs: [] },\n];\n//# sourceMappingURL=constants.js.map","export const standardErrorCodes = {\n rpc: {\n invalidInput: -32000,\n resourceNotFound: -32001,\n resourceUnavailable: -32002,\n transactionRejected: -32003,\n methodNotSupported: -32004,\n limitExceeded: -32005,\n parse: -32700,\n invalidRequest: -32600,\n methodNotFound: -32601,\n invalidParams: -32602,\n internal: -32603,\n },\n provider: {\n userRejectedRequest: 4001,\n unauthorized: 4100,\n unsupportedMethod: 4200,\n disconnected: 4900,\n chainDisconnected: 4901,\n unsupportedChain: 4902,\n },\n};\nexport const errorValues = {\n '-32700': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n },\n '-32600': {\n standard: 'JSON RPC 2.0',\n message: 'The JSON sent is not a valid Request object.',\n },\n '-32601': {\n standard: 'JSON RPC 2.0',\n message: 'The method does not exist / is not available.',\n },\n '-32602': {\n standard: 'JSON RPC 2.0',\n message: 'Invalid method parameter(s).',\n },\n '-32603': {\n standard: 'JSON RPC 2.0',\n message: 'Internal JSON-RPC error.',\n },\n '-32000': {\n standard: 'EIP-1474',\n message: 'Invalid input.',\n },\n '-32001': {\n standard: 'EIP-1474',\n message: 'Resource not found.',\n },\n '-32002': {\n standard: 'EIP-1474',\n message: 'Resource unavailable.',\n },\n '-32003': {\n standard: 'EIP-1474',\n message: 'Transaction rejected.',\n },\n '-32004': {\n standard: 'EIP-1474',\n message: 'Method not supported.',\n },\n '-32005': {\n standard: 'EIP-1474',\n message: 'Request limit exceeded.',\n },\n '4001': {\n standard: 'EIP-1193',\n message: 'User rejected the request.',\n },\n '4100': {\n standard: 'EIP-1193',\n message: 'The requested account and/or method has not been authorized by the user.',\n },\n '4200': {\n standard: 'EIP-1193',\n message: 'The requested method is not supported by this Ethereum provider.',\n },\n '4900': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from all chains.',\n },\n '4901': {\n standard: 'EIP-1193',\n message: 'The provider is disconnected from the specified chain.',\n },\n '4902': {\n standard: 'EIP-3085',\n message: 'Unrecognized chain ID.',\n },\n};\n//# sourceMappingURL=constants.js.map","import { errorValues, standardErrorCodes } from './constants.js';\nconst FALLBACK_MESSAGE = 'Unspecified error message.';\nexport const JSON_RPC_SERVER_ERROR_MESSAGE = 'Unspecified server error.';\n/**\n * Gets the message for a given code, or a fallback message if the code has\n * no corresponding message.\n */\nexport function getMessageFromCode(code, fallbackMessage = FALLBACK_MESSAGE) {\n if (code && Number.isInteger(code)) {\n const codeString = code.toString();\n if (hasKey(errorValues, codeString)) {\n return errorValues[codeString].message;\n }\n if (isJsonRpcServerError(code)) {\n return JSON_RPC_SERVER_ERROR_MESSAGE;\n }\n }\n return fallbackMessage;\n}\n/**\n * Returns whether the given code is valid.\n * A code is only valid if it has a message.\n */\nexport function isValidCode(code) {\n if (!Number.isInteger(code)) {\n return false;\n }\n const codeString = code.toString();\n if (errorValues[codeString]) {\n return true;\n }\n if (isJsonRpcServerError(code)) {\n return true;\n }\n return false;\n}\n/**\n * Returns the error code from an error object.\n */\nexport function getErrorCode(error) {\n var _a;\n if (typeof error === 'number') {\n return error;\n }\n if (isErrorWithCode(error)) {\n return (_a = error.code) !== null && _a !== void 0 ? _a : error.errorCode;\n }\n return undefined;\n}\nfunction isErrorWithCode(error) {\n return (typeof error === 'object' &&\n error !== null &&\n (typeof error.code === 'number' ||\n typeof error.errorCode === 'number'));\n}\nexport function serialize(error, { shouldIncludeStack = false } = {}) {\n const serialized = {};\n if (error &&\n typeof error === 'object' &&\n !Array.isArray(error) &&\n hasKey(error, 'code') &&\n isValidCode(error.code)) {\n const _error = error;\n serialized.code = _error.code;\n if (_error.message && typeof _error.message === 'string') {\n serialized.message = _error.message;\n if (hasKey(_error, 'data')) {\n serialized.data = _error.data;\n }\n }\n else {\n serialized.message = getMessageFromCode(serialized.code);\n serialized.data = { originalError: assignOriginalError(error) };\n }\n }\n else {\n serialized.code = standardErrorCodes.rpc.internal;\n serialized.message = hasStringProperty(error, 'message') ? error.message : FALLBACK_MESSAGE;\n serialized.data = { originalError: assignOriginalError(error) };\n }\n if (shouldIncludeStack) {\n serialized.stack = hasStringProperty(error, 'stack') ? error.stack : undefined;\n }\n return serialized;\n}\n// Internal\nfunction isJsonRpcServerError(code) {\n return code >= -32099 && code <= -32000;\n}\nfunction assignOriginalError(error) {\n if (error && typeof error === 'object' && !Array.isArray(error)) {\n return Object.assign({}, error);\n }\n return error;\n}\nfunction hasKey(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nfunction hasStringProperty(obj, prop) {\n return (typeof obj === 'object' && obj !== null && prop in obj && typeof obj[prop] === 'string');\n}\n//# sourceMappingURL=utils.js.map","import { standardErrorCodes } from './constants.js';\nimport { getMessageFromCode } from './utils.js';\nexport const standardErrors = {\n rpc: {\n parse: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.parse, arg),\n invalidRequest: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.invalidRequest, arg),\n invalidParams: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.invalidParams, arg),\n methodNotFound: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.methodNotFound, arg),\n internal: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.internal, arg),\n server: (opts) => {\n if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {\n throw new Error('Ethereum RPC Server errors must provide single object argument.');\n }\n const { code } = opts;\n if (!Number.isInteger(code) || code > -32005 || code < -32099) {\n throw new Error('\"code\" must be an integer such that: -32099 <= code <= -32005');\n }\n return getEthJsonRpcError(code, opts);\n },\n invalidInput: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.invalidInput, arg),\n resourceNotFound: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.resourceNotFound, arg),\n resourceUnavailable: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.resourceUnavailable, arg),\n transactionRejected: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.transactionRejected, arg),\n methodNotSupported: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.methodNotSupported, arg),\n limitExceeded: (arg) => getEthJsonRpcError(standardErrorCodes.rpc.limitExceeded, arg),\n },\n provider: {\n userRejectedRequest: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.userRejectedRequest, arg);\n },\n unauthorized: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.unauthorized, arg);\n },\n unsupportedMethod: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.unsupportedMethod, arg);\n },\n disconnected: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.disconnected, arg);\n },\n chainDisconnected: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.chainDisconnected, arg);\n },\n unsupportedChain: (arg) => {\n return getEthProviderError(standardErrorCodes.provider.unsupportedChain, arg);\n },\n custom: (opts) => {\n if (!opts || typeof opts !== 'object' || Array.isArray(opts)) {\n throw new Error('Ethereum Provider custom errors must provide single object argument.');\n }\n const { code, message, data } = opts;\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a nonempty string');\n }\n return new EthereumProviderError(code, message, data);\n },\n },\n};\n// Internal\nfunction getEthJsonRpcError(code, arg) {\n const [message, data] = parseOpts(arg);\n return new EthereumRpcError(code, message || getMessageFromCode(code), data);\n}\nfunction getEthProviderError(code, arg) {\n const [message, data] = parseOpts(arg);\n return new EthereumProviderError(code, message || getMessageFromCode(code), data);\n}\nfunction parseOpts(arg) {\n if (arg) {\n if (typeof arg === 'string') {\n return [arg];\n }\n if (typeof arg === 'object' && !Array.isArray(arg)) {\n const { message, data } = arg;\n if (message && typeof message !== 'string') {\n throw new Error('Must specify string message.');\n }\n return [message || undefined, data];\n }\n }\n return [];\n}\nclass EthereumRpcError extends Error {\n constructor(code, message, data) {\n if (!Number.isInteger(code)) {\n throw new Error('\"code\" must be an integer.');\n }\n if (!message || typeof message !== 'string') {\n throw new Error('\"message\" must be a nonempty string.');\n }\n super(message);\n this.code = code;\n if (data !== undefined) {\n this.data = data;\n }\n }\n}\nclass EthereumProviderError extends EthereumRpcError {\n /**\n * Create an Ethereum Provider JSON-RPC error.\n * `code` must be an integer in the 1000 <= 4999 range.\n */\n constructor(code, message, data) {\n if (!isValidEthProviderCode(code)) {\n throw new Error('\"code\" must be an integer such that: 1000 <= code <= 4999');\n }\n super(code, message, data);\n }\n}\nclass ActionableInsufficientBalanceError extends EthereumRpcError {\n}\nfunction isValidEthProviderCode(code) {\n return Number.isInteger(code) && code >= 1000 && code <= 4999;\n}\nexport function isActionableHttpRequestError(errorObject) {\n return (typeof errorObject === 'object' &&\n errorObject !== null &&\n 'code' in errorObject &&\n 'data' in errorObject &&\n errorObject.code === -32090 &&\n typeof errorObject.data === 'object' &&\n errorObject.data !== null &&\n 'type' in errorObject.data &&\n errorObject.data.type === 'INSUFFICIENT_FUNDS');\n}\nexport function isViemError(error) {\n // Check if object and has code, message, and details\n return typeof error === 'object' && error !== null && 'details' in error;\n}\nexport function viemHttpErrorToProviderError(error) {\n try {\n const details = JSON.parse(error.details);\n return new EthereumRpcError(details.code, details.message, details.data);\n }\n catch (_) {\n return null;\n }\n}\n//# sourceMappingURL=errors.js.map","import { standardErrors } from '../core/error/errors.js';\nexport function assertPresence(value, error, message) {\n if (value === null || value === undefined) {\n throw (error !== null && error !== void 0 ? error : standardErrors.rpc.invalidParams({\n message: message !== null && message !== void 0 ? message : 'value must be present',\n data: value,\n }));\n }\n}\nexport function assertArrayPresence(value, message) {\n if (!Array.isArray(value)) {\n throw standardErrors.rpc.invalidParams({\n message: message !== null && message !== void 0 ? message : 'value must be an array',\n data: value,\n });\n }\n}\n//# sourceMappingURL=assertPresence.js.map","const COOP_ERROR_MESSAGE = `Base Account SDK requires the Cross-Origin-Opener-Policy header to not be set to 'same-origin'. This is to ensure that the SDK can communicate with the Base Account app.\n\nPlease see https://docs.base.org/smart-wallet/quickstart#cross-origin-opener-policy for more information.`;\n/**\n * Creates a checker for the Cross-Origin-Opener-Policy (COOP).\n *\n * @returns An object with methods to get and check the Cross-Origin-Opener-Policy.\n *\n * @method getCrossOriginOpenerPolicy\n * Retrieves current Cross-Origin-Opener-Policy.\n * @throws Will throw an error if the policy has not been checked yet.\n *\n * @method checkCrossOriginOpenerPolicy\n * Checks the Cross-Origin-Opener-Policy of the current environment.\n * If in a non-browser environment, sets the policy to 'non-browser-env'.\n * If in a browser environment, fetches the policy from the current origin.\n * Logs an error if the policy is 'same-origin'.\n */\nconst createCoopChecker = () => {\n let crossOriginOpenerPolicy;\n return {\n getCrossOriginOpenerPolicy: () => {\n if (crossOriginOpenerPolicy === undefined) {\n return 'undefined';\n }\n return crossOriginOpenerPolicy;\n },\n checkCrossOriginOpenerPolicy: async () => {\n if (typeof window === 'undefined') {\n // Non-browser environment\n crossOriginOpenerPolicy = 'non-browser-env';\n return;\n }\n try {\n const url = `${window.location.origin}${window.location.pathname}`;\n const response = await fetch(url, {\n method: 'HEAD',\n });\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const result = response.headers.get('Cross-Origin-Opener-Policy');\n crossOriginOpenerPolicy = result !== null && result !== void 0 ? result : 'null';\n if (crossOriginOpenerPolicy === 'same-origin') {\n console.error(COOP_ERROR_MESSAGE);\n }\n }\n catch (error) {\n console.error('Error checking Cross-Origin-Opener-Policy:', error.message);\n crossOriginOpenerPolicy = 'error';\n }\n },\n };\n};\nexport const { checkCrossOriginOpenerPolicy, getCrossOriginOpenerPolicy } = createCoopChecker();\n//# sourceMappingURL=checkCrossOriginOpenerPolicy.js.map","/**\n * Validates user supplied preferences. Throws if keys are not valid.\n * @param preference\n */\nexport function validatePreferences(preference) {\n if (!preference) {\n return;\n }\n if (preference.attribution) {\n if (preference.attribution.auto !== undefined &&\n preference.attribution.dataSuffix !== undefined) {\n throw new Error(`Attribution cannot contain both auto and dataSuffix properties`);\n }\n }\n if (preference.telemetry) {\n if (typeof preference.telemetry !== 'boolean') {\n throw new Error(`Telemetry must be a boolean`);\n }\n }\n}\n/**\n * Validates user supplied toSubAccountSigner function. Throws if keys are not valid.\n * @param toAccount\n */\nexport function validateSubAccount(toAccount) {\n if (typeof toAccount !== 'function') {\n throw new Error(`toAccount is not a function`);\n }\n}\n//# sourceMappingURL=validatePreferences.js.map","import { PACKAGE_NAME, PACKAGE_VERSION } from '../constants.js';\nimport { store } from '../../store/store.js';\nvar ComponentType;\n(function (ComponentType) {\n ComponentType[\"unknown\"] = \"unknown\";\n ComponentType[\"banner\"] = \"banner\";\n ComponentType[\"button\"] = \"button\";\n ComponentType[\"card\"] = \"card\";\n ComponentType[\"chart\"] = \"chart\";\n ComponentType[\"content_script\"] = \"content_script\";\n ComponentType[\"dropdown\"] = \"dropdown\";\n ComponentType[\"link\"] = \"link\";\n ComponentType[\"page\"] = \"page\";\n ComponentType[\"modal\"] = \"modal\";\n ComponentType[\"table\"] = \"table\";\n ComponentType[\"search_bar\"] = \"search_bar\";\n ComponentType[\"service_worker\"] = \"service_worker\";\n ComponentType[\"text\"] = \"text\";\n ComponentType[\"text_input\"] = \"text_input\";\n ComponentType[\"tray\"] = \"tray\";\n ComponentType[\"checkbox\"] = \"checkbox\";\n ComponentType[\"icon\"] = \"icon\";\n})(ComponentType || (ComponentType = {}));\nvar ActionType;\n(function (ActionType) {\n ActionType[\"unknown\"] = \"unknown\";\n ActionType[\"blur\"] = \"blur\";\n ActionType[\"click\"] = \"click\";\n ActionType[\"change\"] = \"change\";\n ActionType[\"dismiss\"] = \"dismiss\";\n ActionType[\"focus\"] = \"focus\";\n ActionType[\"hover\"] = \"hover\";\n ActionType[\"select\"] = \"select\";\n ActionType[\"measurement\"] = \"measurement\";\n ActionType[\"move\"] = \"move\";\n ActionType[\"process\"] = \"process\";\n ActionType[\"render\"] = \"render\";\n ActionType[\"scroll\"] = \"scroll\";\n ActionType[\"view\"] = \"view\";\n ActionType[\"search\"] = \"search\";\n ActionType[\"keyPress\"] = \"keyPress\";\n ActionType[\"error\"] = \"error\";\n})(ActionType || (ActionType = {}));\nvar AnalyticsEventImportance;\n(function (AnalyticsEventImportance) {\n AnalyticsEventImportance[\"low\"] = \"low\";\n AnalyticsEventImportance[\"high\"] = \"high\";\n})(AnalyticsEventImportance || (AnalyticsEventImportance = {}));\nexport function logEvent(name, event, importance) {\n var _a, _b, _c;\n if (window.ClientAnalytics) {\n (_a = window.ClientAnalytics) === null || _a === void 0 ? void 0 : _a.logEvent(name, Object.assign(Object.assign({}, event), { sdkVersion: PACKAGE_VERSION, sdkName: PACKAGE_NAME, appName: (_c = (_b = store.config.get().metadata) === null || _b === void 0 ? void 0 : _b.appName) !== null && _c !== void 0 ? _c : '', appOrigin: window.location.origin }), importance);\n }\n}\nexport function identify(event) {\n var _a;\n if (window.ClientAnalytics) {\n (_a = window.ClientAnalytics) === null || _a === void 0 ? void 0 : _a.identify(event);\n }\n}\nexport { ActionType, AnalyticsEventImportance, ComponentType };\n//# sourceMappingURL=logEvent.js.map","import { ActionType, AnalyticsEventImportance, ComponentType, logEvent } from '../logEvent.js';\nexport const logPopupSetupStarted = () => {\n logEvent('communicator.popup_setup.started', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n }, AnalyticsEventImportance.high);\n};\nexport const logPopupSetupCompleted = () => {\n logEvent('communicator.popup_setup.completed', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n }, AnalyticsEventImportance.high);\n};\nexport const logPopupUnloadReceived = () => {\n logEvent('communicator.popup_unload.received', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n }, AnalyticsEventImportance.high);\n};\n//# sourceMappingURL=communicator.js.map","import { ActionType, AnalyticsEventImportance, ComponentType, logEvent } from '../logEvent.js';\nexport const logDialogShown = ({ dialogContext }) => {\n logEvent(`dialog.${dialogContext}.shown`, {\n action: ActionType.render,\n componentType: ComponentType.modal,\n dialogContext,\n }, AnalyticsEventImportance.high);\n};\nexport const logDialogDismissed = ({ dialogContext }) => {\n logEvent(`dialog.${dialogContext}.dismissed`, {\n action: ActionType.dismiss,\n componentType: ComponentType.modal,\n dialogContext,\n }, AnalyticsEventImportance.high);\n};\nexport const logDialogActionClicked = ({ dialogContext, dialogAction, }) => {\n logEvent(`dialog.${dialogContext}.action_clicked`, {\n action: ActionType.click,\n componentType: ComponentType.button,\n dialogContext,\n dialogAction,\n }, AnalyticsEventImportance.high);\n};\n//# sourceMappingURL=dialog.js.map","export const FONT_FACE_CSS = `\n@font-face {\n font-family: \"BaseSans-Regular\";\n src: url(\"data:font/woff2;charset=utf-8;base64,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\")\n format(\"woff2\");\n font-weight: normal;\n font-style: normal;\n font-display: swap;\n}\n`;\n//# sourceMappingURL=fontFaceCSS.js.map","import { FONT_FACE_CSS } from './fontFaceCSS.js';\nconst FONT_NAME = 'BaseSans-Regular';\nexport function injectFontStyle() {\n const existing = document.head.querySelector(`style[base-sdk-font=\"${FONT_NAME}\"]`);\n if (existing)\n return;\n const style = document.createElement('style');\n style.setAttribute('base-sdk-font', FONT_NAME);\n style.textContent = FONT_FACE_CSS;\n document.head.appendChild(style);\n}\n//# sourceMappingURL=injectFontStyle.js.map","export async function getDisplayableUsername(address) {\n return truncateAddress(address);\n}\nfunction truncateAddress(address, length = 4) {\n return `${address.slice(0, 2 + length)}...${address.slice(-length)}`;\n}\n//# sourceMappingURL=getDisplayableUsername.js.map","export const WHITE = '#FFF';\nexport const BLACK = '#000';\nexport const BRAND_BLUE = '#0000FF';\nexport const LIGHT_MODE_BOARDER = '#1E2025';\nexport const DARK_MODE_BOARDER = '#282B31';\n// Button hover and active colors\nexport const BUTTON_HOVER_LIGHT_SOLID = '#2A2A2A';\nexport const BUTTON_HOVER_DARK_SOLID = '#F5F5F5';\nexport const BUTTON_HOVER_LIGHT_TRANSPARENT = 'rgba(0, 0, 0, 0.02)';\nexport const BUTTON_HOVER_DARK_TRANSPARENT = 'rgba(255, 255, 255, 0.05)';\nexport const BUTTON_ACTIVE_LIGHT_SOLID = '#3A3A3A';\nexport const BUTTON_ACTIVE_DARK_SOLID = '#EEEEEE';\nexport const BUTTON_ACTIVE_LIGHT_TRANSPARENT = 'rgba(0, 0, 0, 0.04)';\nexport const BUTTON_ACTIVE_DARK_TRANSPARENT = 'rgba(255, 255, 255, 0.08)';\nexport const BUTTON_HOVER_BORDER_LIGHT = '#1A1A1A';\nexport const BUTTON_HOVER_BORDER_DARK = '#FFFFFF';\nexport const BUTTON_ACTIVE_BORDER_LIGHT = '#2A2A2A';\nexport const BUTTON_ACTIVE_BORDER_DARK = '#FFFFFF';\n//# sourceMappingURL=colors.js.map","import { jsx as _jsx } from \"preact/jsx-runtime\";\nimport { BRAND_BLUE, WHITE } from './colors.js';\nexport const BaseLogo = ({ fill }) => {\n const fillColor = fill === 'blue' ? BRAND_BLUE : WHITE;\n return (_jsx(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", children: _jsx(\"path\", { d: \"M0 2.014C0 1.58105 0 1.36457 0.0815779 1.19805C0.159686 1.03861 0.288611 0.909686 0.448049 0.831578C0.61457 0.75 0.831047 0.75 1.264 0.75H14.736C15.169 0.75 15.3854 0.75 15.552 0.831578C15.7114 0.909686 15.8403 1.03861 15.9184 1.19805C16 1.36457 16 1.58105 16 2.014V15.486C16 15.919 16 16.1354 15.9184 16.302C15.8403 16.4614 15.7114 16.5903 15.552 16.6684C15.3854 16.75 15.169 16.75 14.736 16.75H1.264C0.831047 16.75 0.61457 16.75 0.448049 16.6684C0.288611 16.5903 0.159686 16.4614 0.0815779 16.302C0 16.1354 0 15.919 0 15.486V2.014Z\", fill: fillColor }) }));\n};\n//# sourceMappingURL=BaseLogo.js.map","export default (() => `.-base-acc-sdk-css-reset{-webkit-font-smoothing:antialiased;pointer-events:auto !important}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2147483647}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-container *{user-select:none;box-sizing:border-box}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:20px}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-backdrop{align-items:flex-end;justify-content:stretch;padding:0}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog{position:relative;z-index:2147483648}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog{width:100%}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);width:380px;max-height:90vh;overflow:hidden;transform:scale(0.95);opacity:0;transition:all .2s ease-in-out}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance{touch-action:pan-y;user-select:none}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-hidden{transform:scale(0.9);opacity:0}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-hidden{transform:translateY(100%)}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance:not(.-base-acc-sdk-dialog-instance-hidden){transform:scale(1);opacity:1}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance:not(.-base-acc-sdk-dialog-instance-hidden){transform:translateY(0)}}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance{width:100%;max-width:100%;border-radius:20px 20px 0 0;box-shadow:0 -10px 25px rgba(0,0,0,.15);max-height:80vh;transform:translateY(0)}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-hidden{transform:translateY(100%);opacity:1}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance:not(.-base-acc-sdk-dialog-instance-hidden){transform:translateY(0);opacity:1}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0 20px}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header{padding:16px 20px 12px 20px}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header-icon-and-title{display:flex;align-items:center;gap:8px}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header-icon-and-title-title{font-family:\"BaseSans-Regular\",sans-serif;font-size:14px;font-weight:400;color:#5b616e}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header-cblogo{width:32px;height:32px}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer;border-radius:6px;transition:background-color .2s}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header-close:hover{background-color:#f5f7f8}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header-close-icon{width:14px;height:14px}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-header-close-icon{display:none}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-content{padding:20px 20px 16px 20px;font-family:\"BaseSans-Regular\",sans-serif}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-content{padding:8px 20px 12px 20px}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-content-title{font-size:20px;font-weight:600;line-height:28px;color:#0a0b0d;margin-bottom:10px}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-content-message{font-size:16px;font-weight:400;line-height:24px;color:#5b616e;margin-bottom:0}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-actions{display:flex;padding:16px 20px 20px 20px;flex-direction:column}@media(max-width: 600px)and (orientation: portrait){.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-actions{padding:16px 20px calc(20px + env(safe-area-inset-bottom)) 20px;gap:6px}}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-button{font-family:\"BaseSans-Regular\",sans-serif;font-size:16px;font-weight:500;line-height:24px;border:none;border-radius:12px;padding:16px 24px;cursor:pointer;transition:all .2s ease-in-out;width:100%;margin:4px 0}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-button:disabled{opacity:.5;cursor:not-allowed}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-button-primary{background-color:#0a0b0d;color:#fff}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-button-primary:hover:not(:disabled){background-color:#1c1e20}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-button-primary:active:not(:disabled){background-color:#2a2d31}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-button-secondary{background-color:#eef0f3;color:#0a0b0d}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-button-secondary:hover:not(:disabled){background-color:#e1e4e8}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-instance-button-secondary:active:not(:disabled){background-color:#d4d8dd}.-base-acc-sdk-css-reset .-base-acc-sdk-dialog-handle-bar{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:64px;height:4px;background-color:#d1d5db;border-radius:2px;opacity:0;animation:handleBarFadeIn .2s ease-in-out .2s forwards}@keyframes handleBarFadeIn{from{opacity:0}to{opacity:1}}`)();\n//# sourceMappingURL=Dialog-css.js.map","import { createElement as _createElement } from \"preact\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"preact/jsx-runtime\";\n// Copyright (c) 2018-2025 Coinbase, Inc. <https://www.coinbase.com/>\nimport { clsx } from 'clsx';\nimport { render } from 'preact';\nimport { getDisplayableUsername } from '../../core/username/getDisplayableUsername.js';\nimport { store } from '../../store/store.js';\nimport { BaseLogo } from '../assets/BaseLogo.js';\nimport { useEffect, useMemo, useState } from 'preact/hooks';\nimport css from './Dialog-css.js';\nconst closeIcon = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEzIDFMMSAxM20wLTEyTDEzIDEzIiBzdHJva2U9IiM5Q0EzQUYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+`;\n// Helper function to detect phone portrait mode\nfunction isPhonePortrait() {\n return window.innerWidth <= 600 && window.innerHeight > window.innerWidth;\n}\n// Handle bar component for mobile bottom sheet\nconst DialogHandleBar = () => {\n const [showHandleBar, setShowHandleBar] = useState(false);\n useEffect(() => {\n // Only show handle bar on phone portrait mode\n const checkOrientation = () => {\n setShowHandleBar(isPhonePortrait());\n };\n // Initial check\n checkOrientation();\n // Listen for orientation/resize changes\n window.addEventListener('resize', checkOrientation);\n window.addEventListener('orientationchange', checkOrientation);\n return () => {\n window.removeEventListener('resize', checkOrientation);\n window.removeEventListener('orientationchange', checkOrientation);\n };\n }, []);\n if (!showHandleBar) {\n return null;\n }\n return _jsx(\"div\", { class: \"-base-acc-sdk-dialog-handle-bar\" });\n};\nexport class Dialog {\n constructor() {\n this.items = new Map();\n this.nextItemKey = 0;\n this.root = null;\n }\n attach(el) {\n this.root = document.createElement('div');\n this.root.className = '-base-acc-sdk-dialog-root';\n el.appendChild(this.root);\n this.render();\n }\n presentItem(itemProps) {\n const key = this.nextItemKey++;\n this.items.set(key, itemProps);\n this.render();\n }\n clear() {\n this.items.clear();\n if (this.root) {\n render(null, this.root);\n }\n }\n render() {\n if (this.root) {\n render(_jsx(\"div\", { children: _jsx(DialogContainer, { children: Array.from(this.items.entries()).map(([key, itemProps]) => (_createElement(DialogInstance, Object.assign({}, itemProps, { key: key, handleClose: () => {\n var _a;\n this.clear();\n (_a = itemProps.onClose) === null || _a === void 0 ? void 0 : _a.call(itemProps);\n } })))) }) }), this.root);\n }\n }\n}\nexport const DialogContainer = (props) => {\n const [dragY, setDragY] = useState(0);\n const [isDragging, setIsDragging] = useState(false);\n const [startY, setStartY] = useState(0);\n // Touch event handlers for drag-to-dismiss (entire dialog area)\n const handleTouchStart = (e) => {\n // Only enable drag on mobile portrait mode\n if (!isPhonePortrait())\n return;\n const touch = e.touches[0];\n setStartY(touch.clientY);\n setIsDragging(true);\n };\n const handleTouchMove = (e) => {\n if (!isDragging)\n return;\n const touch = e.touches[0];\n const deltaY = touch.clientY - startY;\n // Only allow dragging down (positive deltaY)\n if (deltaY > 0) {\n setDragY(deltaY);\n e.preventDefault(); // Prevent scrolling\n }\n };\n const handleTouchEnd = () => {\n if (!isDragging)\n return;\n setIsDragging(false);\n // Dismiss if dragged down more than 100px\n if (dragY > 100) {\n // Find the dialog instance and trigger its close handler\n const closeButton = document.querySelector('.-base-acc-sdk-dialog-instance-header-close');\n if (closeButton) {\n closeButton.click();\n }\n }\n else {\n // Animate back to original position\n setDragY(0);\n }\n };\n return (_jsxs(\"div\", { class: clsx('-base-acc-sdk-dialog-container'), children: [_jsx(\"style\", { children: css }), _jsx(\"div\", { class: \"-base-acc-sdk-dialog-backdrop\", onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, onTouchEnd: handleTouchEnd, children: _jsxs(\"div\", { class: \"-base-acc-sdk-dialog\", style: {\n transform: `translateY(${dragY}px)`,\n transition: isDragging ? 'none' : 'transform 0.2s ease-out',\n }, children: [_jsx(DialogHandleBar, {}), props.children] }) })] }));\n};\nexport const DialogInstance = ({ title, message, actionItems, handleClose, }) => {\n const [hidden, setHidden] = useState(true);\n const [isLoadingUsername, setIsLoadingUsername] = useState(true);\n const [username, setUsername] = useState(null);\n useEffect(() => {\n const timer = window.setTimeout(() => {\n setHidden(false);\n }, 1);\n return () => {\n window.clearTimeout(timer);\n };\n }, []);\n useEffect(() => {\n const fetchEnsName = async () => {\n var _a;\n const address = (_a = store.account.get().accounts) === null || _a === void 0 ? void 0 : _a[0];\n if (address) {\n const username = await getDisplayableUsername(address);\n setUsername(username);\n }\n setIsLoadingUsername(false);\n };\n fetchEnsName();\n }, []);\n const headerTitle = useMemo(() => {\n return username ? `Signed in as ${username}` : 'Base Account';\n }, [username]);\n const shouldShowHeaderTitle = !isLoadingUsername;\n return (_jsxs(\"div\", { class: clsx('-base-acc-sdk-dialog-instance', hidden && '-base-acc-sdk-dialog-instance-hidden'), children: [_jsxs(\"div\", { class: \"-base-acc-sdk-dialog-instance-header\", children: [_jsxs(\"div\", { class: \"-base-acc-sdk-dialog-instance-header-icon-and-title\", children: [_jsx(BaseLogo, { fill: \"blue\" }), shouldShowHeaderTitle && (_jsx(\"div\", { class: \"-base-acc-sdk-dialog-instance-header-icon-and-title-title\", children: headerTitle }))] }), _jsx(\"div\", { class: \"-base-acc-sdk-dialog-instance-header-close\", onClick: handleClose, children: _jsx(\"img\", { src: closeIcon, class: \"-base-acc-sdk-dialog-instance-header-close-icon\" }) })] }), _jsxs(\"div\", { class: \"-base-acc-sdk-dialog-instance-content\", children: [_jsx(\"div\", { class: \"-base-acc-sdk-dialog-instance-content-title\", children: title }), _jsx(\"div\", { class: \"-base-acc-sdk-dialog-instance-content-message\", children: message })] }), actionItems && actionItems.length > 0 && (_jsx(\"div\", { class: \"-base-acc-sdk-dialog-instance-actions\", children: actionItems.map((action, i) => (_jsx(\"button\", { class: clsx('-base-acc-sdk-dialog-instance-button', action.variant === 'primary' && '-base-acc-sdk-dialog-instance-button-primary', action.variant === 'secondary' && '-base-acc-sdk-dialog-instance-button-secondary'), onClick: action.onClick, children: action.text }, i))) }))] }));\n};\n//# sourceMappingURL=Dialog.js.map","import { injectFontStyle } from '../assets/injectFontStyle.js';\nimport { Dialog } from './Dialog.js';\nlet dialog = null;\nexport function initDialog() {\n if (!dialog) {\n const root = document.createElement('div');\n root.className = '-base-acc-sdk-css-reset';\n document.body.appendChild(root);\n dialog = new Dialog();\n dialog.attach(root);\n }\n injectFontStyle();\n return dialog;\n}\n//# sourceMappingURL=index.js.map","import { PACKAGE_NAME, PACKAGE_VERSION } from '../core/constants.js';\nimport { standardErrors } from '../core/error/errors.js';\nimport { logDialogActionClicked, logDialogShown } from '../core/telemetry/events/dialog.js';\nimport { store } from '../store/store.js';\nimport { initDialog } from '../ui/Dialog/index.js';\nimport { getCrossOriginOpenerPolicy } from './checkCrossOriginOpenerPolicy.js';\nconst POPUP_WIDTH = 420;\nconst POPUP_HEIGHT = 700;\nconst POPUP_BLOCKED_TITLE = '{app} wants to continue in Base Account';\nconst POPUP_BLOCKED_MESSAGE = 'This action requires your permission to open a new window.';\nexport function openPopup(url) {\n const left = (window.innerWidth - POPUP_WIDTH) / 2 + window.screenX;\n const top = (window.innerHeight - POPUP_HEIGHT) / 2 + window.screenY;\n appendAppInfoQueryParams(url);\n function tryOpenPopup() {\n const popupId = `wallet_${crypto.randomUUID()}`;\n const popup = window.open(url, popupId, `width=${POPUP_WIDTH}, height=${POPUP_HEIGHT}, left=${left}, top=${top}`);\n popup === null || popup === void 0 ? void 0 : popup.focus();\n if (!popup) {\n return null;\n }\n return popup;\n }\n const popup = tryOpenPopup();\n // If the popup was blocked, show a snackbar with a retry button\n if (!popup) {\n return openPopupWithDialog(tryOpenPopup);\n }\n return Promise.resolve(popup);\n}\nexport function closePopup(popup) {\n if (popup && !popup.closed) {\n popup.close();\n }\n}\nfunction appendAppInfoQueryParams(url) {\n const params = {\n sdkName: PACKAGE_NAME,\n sdkVersion: PACKAGE_VERSION,\n origin: window.location.origin,\n coop: getCrossOriginOpenerPolicy(),\n };\n for (const [key, value] of Object.entries(params)) {\n if (!url.searchParams.has(key)) {\n url.searchParams.append(key, value.toString());\n }\n }\n}\nfunction openPopupWithDialog(tryOpenPopup) {\n var _a, _b;\n const dappName = (_b = (_a = store.config.get().metadata) === null || _a === void 0 ? void 0 : _a.appName) !== null && _b !== void 0 ? _b : 'App';\n const dialog = initDialog();\n return new Promise((resolve, reject) => {\n logDialogShown({ dialogContext: 'popup_blocked' });\n dialog.presentItem({\n title: POPUP_BLOCKED_TITLE.replace('{app}', dappName),\n message: POPUP_BLOCKED_MESSAGE,\n onClose: () => {\n logDialogActionClicked({\n dialogContext: 'popup_blocked',\n dialogAction: 'cancel',\n });\n reject(standardErrors.rpc.internal('Popup window was blocked'));\n },\n actionItems: [\n {\n text: 'Try again',\n variant: 'primary',\n onClick: () => {\n logDialogActionClicked({\n dialogContext: 'popup_blocked',\n dialogAction: 'confirm',\n });\n const popup = tryOpenPopup();\n if (popup) {\n resolve(popup);\n }\n else {\n reject(standardErrors.rpc.internal('Popup window was blocked'));\n }\n dialog.clear();\n },\n },\n {\n text: 'Cancel',\n variant: 'secondary',\n onClick: () => {\n logDialogActionClicked({\n dialogContext: 'popup_blocked',\n dialogAction: 'cancel',\n });\n reject(standardErrors.rpc.internal('Popup window was blocked'));\n dialog.clear();\n },\n },\n ],\n });\n });\n}\n//# sourceMappingURL=web.js.map","import { CB_KEYS_URL, PACKAGE_NAME, PACKAGE_VERSION } from '../constants.js';\nimport { standardErrors } from '../error/errors.js';\nimport { logPopupSetupCompleted, logPopupSetupStarted, logPopupUnloadReceived, } from '../telemetry/events/communicator.js';\nimport { closePopup, openPopup } from '../../util/web.js';\n/**\n * Communicates with a popup window for specific Base Account environment\n * to send and receive messages.\n *\n * This class is responsible for opening a popup window, posting messages to it,\n * and listening for responses.\n *\n * It also handles cleanup of event listeners and the popup window itself when necessary.\n */\nexport class Communicator {\n constructor({ url = CB_KEYS_URL, metadata, preference }) {\n this.popup = null;\n this.listeners = new Map();\n /**\n * Posts a message to the popup window\n */\n this.postMessage = async (message) => {\n const popup = await this.waitForPopupLoaded();\n popup.postMessage(message, this.url.origin);\n };\n /**\n * Posts a request to the popup window and waits for a response\n */\n this.postRequestAndWaitForResponse = async (request) => {\n const responsePromise = this.onMessage(({ requestId }) => requestId === request.id);\n this.postMessage(request);\n return await responsePromise;\n };\n /**\n * Listens for messages from the popup window that match a given predicate.\n */\n this.onMessage = async (predicate) => {\n return new Promise((resolve, reject) => {\n const listener = (event) => {\n if (event.origin !== this.url.origin)\n return; // origin validation\n const message = event.data;\n if (predicate(message)) {\n resolve(message);\n window.removeEventListener('message', listener);\n this.listeners.delete(listener);\n }\n };\n window.addEventListener('message', listener);\n this.listeners.set(listener, { reject });\n });\n };\n /**\n * Closes the popup, rejects all requests and clears the listeners\n */\n this.disconnect = () => {\n // Note: keys popup handles closing itself. this is a fallback.\n closePopup(this.popup);\n this.popup = null;\n this.listeners.forEach(({ reject }, listener) => {\n reject(standardErrors.provider.userRejectedRequest('Request rejected'));\n window.removeEventListener('message', listener);\n });\n this.listeners.clear();\n };\n /**\n * Waits for the popup window to fully load and then sends a version message.\n */\n this.waitForPopupLoaded = async () => {\n if (this.popup && !this.popup.closed) {\n // In case the user un-focused the popup between requests, focus it again\n this.popup.focus();\n return this.popup;\n }\n logPopupSetupStarted();\n this.popup = await openPopup(this.url);\n this.onMessage(({ event }) => event === 'PopupUnload')\n .then(() => {\n this.disconnect();\n logPopupUnloadReceived();\n })\n .catch(() => { });\n return this.onMessage(({ event }) => event === 'PopupLoaded')\n .then((message) => {\n this.postMessage({\n requestId: message.id,\n data: {\n version: PACKAGE_VERSION,\n sdkName: PACKAGE_NAME,\n metadata: this.metadata,\n preference: this.preference,\n location: window.location.toString(),\n },\n });\n })\n .then(() => {\n if (!this.popup)\n throw standardErrors.rpc.internal();\n logPopupSetupCompleted();\n return this.popup;\n });\n };\n this.url = new URL(url);\n this.metadata = metadata;\n this.preference = preference;\n }\n}\n//# sourceMappingURL=Communicator.js.map","import { PACKAGE_VERSION } from '../constants.js';\nimport { standardErrorCodes } from './constants.js';\nimport { serialize } from './utils.js';\n/**\n * Serializes an error to a format that is compatible with the Ethereum JSON RPC error format.\n * See https://docs.cloud.coinbase.com/wallet-sdk/docs/errors\n * for more information.\n */\nexport function serializeError(error) {\n const serialized = serialize(getErrorObject(error), {\n shouldIncludeStack: true,\n });\n const docUrl = new URL('https://docs.cloud.coinbase.com/wallet-sdk/docs/errors');\n docUrl.searchParams.set('version', PACKAGE_VERSION);\n docUrl.searchParams.set('code', serialized.code.toString());\n docUrl.searchParams.set('message', serialized.message);\n return Object.assign(Object.assign({}, serialized), { docUrl: docUrl.href });\n}\nfunction isErrorResponse(response) {\n return response.errorMessage !== undefined;\n}\n/**\n * Converts an error to a serializable object.\n */\nfunction getErrorObject(error) {\n var _a;\n if (typeof error === 'string') {\n return {\n message: error,\n code: standardErrorCodes.rpc.internal,\n };\n }\n if (isErrorResponse(error)) {\n const message = error.errorMessage;\n const code = (_a = error.errorCode) !== null && _a !== void 0 ? _a : (message.match(/(denied|rejected)/i)\n ? standardErrorCodes.provider.userRejectedRequest\n : undefined);\n return Object.assign(Object.assign({}, error), { message,\n code, data: { method: error.method } });\n }\n return error;\n}\n//# sourceMappingURL=serialize.js.map","import { EventEmitter } from 'eventemitter3';\nexport class ProviderEventEmitter extends EventEmitter {\n}\n//# sourceMappingURL=interface.js.map","import { ActionType, AnalyticsEventImportance, ComponentType, logEvent } from '../logEvent.js';\nexport const logRequestStarted = ({ method, correlationId, }) => {\n logEvent('provider.request.started', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n signerType: 'base-account',\n correlationId,\n }, AnalyticsEventImportance.high);\n};\nexport const logRequestError = ({ method, correlationId, errorMessage, }) => {\n logEvent('provider.request.error', {\n action: ActionType.error,\n componentType: ComponentType.unknown,\n method,\n signerType: 'base-account',\n correlationId,\n errorMessage,\n }, AnalyticsEventImportance.high);\n};\nexport const logRequestResponded = ({ method, correlationId, }) => {\n logEvent('provider.request.responded', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n signerType: 'base-account',\n correlationId,\n }, AnalyticsEventImportance.high);\n};\n//# sourceMappingURL=provider.js.map","export function OpaqueType() {\n return (value) => value;\n}\nexport const HexString = OpaqueType();\nexport const BigIntString = OpaqueType();\nexport function IntNumber(num) {\n return Math.floor(num);\n}\nexport const RegExpString = OpaqueType();\n//# sourceMappingURL=index.js.map","// Copyright (c) 2018-2023 Coinbase, Inc. <https://www.coinbase.com/>\nimport { standardErrors } from '../error/errors.js';\nimport { BigIntString, HexString, IntNumber, RegExpString } from './index.js';\nconst INT_STRING_REGEX = /^[0-9]*$/;\nconst HEXADECIMAL_STRING_REGEX = /^[a-f0-9]*$/;\n/**\n * @param length number of bytes\n */\nexport function randomBytesHex(length) {\n return uint8ArrayToHex(crypto.getRandomValues(new Uint8Array(length)));\n}\nexport function uint8ArrayToHex(value) {\n return [...value].map((b) => b.toString(16).padStart(2, '0')).join('');\n}\nexport function hexStringToUint8Array(hexString) {\n return new Uint8Array(hexString.match(/.{1,2}/g).map((byte) => Number.parseInt(byte, 16)));\n}\nexport function hexStringFromBuffer(buf, includePrefix = false) {\n const hex = buf.toString('hex');\n return HexString(includePrefix ? `0x${hex}` : hex);\n}\nexport function encodeToHexString(str) {\n return hexStringFromBuffer(ensureBuffer(str), true);\n}\nexport function bigIntStringFromBigInt(bi) {\n return BigIntString(bi.toString(10));\n}\nexport function intNumberFromHexString(hex) {\n return IntNumber(Number(BigInt(ensureEvenLengthHexString(hex, true))));\n}\nexport function hexStringFromNumber(num) {\n return HexString(`0x${BigInt(num).toString(16)}`);\n}\nexport function has0xPrefix(str) {\n return str.startsWith('0x') || str.startsWith('0X');\n}\nexport function strip0x(hex) {\n if (has0xPrefix(hex)) {\n return hex.slice(2);\n }\n return hex;\n}\nexport function prepend0x(hex) {\n if (has0xPrefix(hex)) {\n return `0x${hex.slice(2)}`;\n }\n return `0x${hex}`;\n}\nexport function isHexString(hex) {\n if (typeof hex !== 'string') {\n return false;\n }\n const s = strip0x(hex).toLowerCase();\n return HEXADECIMAL_STRING_REGEX.test(s);\n}\nexport function ensureHexString(hex, includePrefix = false) {\n if (typeof hex === 'string') {\n const s = strip0x(hex).toLowerCase();\n if (HEXADECIMAL_STRING_REGEX.test(s)) {\n return HexString(includePrefix ? `0x${s}` : s);\n }\n }\n throw standardErrors.rpc.invalidParams(`\"${String(hex)}\" is not a hexadecimal string`);\n}\nexport function ensureEvenLengthHexString(hex, includePrefix = false) {\n let h = ensureHexString(hex, false);\n if (h.length % 2 === 1) {\n h = HexString(`0${h}`);\n }\n return includePrefix ? HexString(`0x${h}`) : h;\n}\nexport function ensureAddressString(str) {\n if (typeof str === 'string') {\n const s = strip0x(str).toLowerCase();\n if (isHexString(s) && s.length === 40) {\n return prepend0x(s);\n }\n }\n throw standardErrors.rpc.invalidParams(`Invalid Ethereum address: ${String(str)}`);\n}\nexport function ensureBuffer(str) {\n if (Buffer.isBuffer(str)) {\n return str;\n }\n if (typeof str === 'string') {\n if (isHexString(str)) {\n const s = ensureEvenLengthHexString(str, false);\n return Buffer.from(s, 'hex');\n }\n return Buffer.from(str, 'utf8');\n }\n throw standardErrors.rpc.invalidParams(`Not binary data: ${String(str)}`);\n}\nexport function ensureIntNumber(num) {\n if (typeof num === 'number' && Number.isInteger(num)) {\n return IntNumber(num);\n }\n if (typeof num === 'string') {\n if (INT_STRING_REGEX.test(num)) {\n return IntNumber(Number(num));\n }\n if (isHexString(num)) {\n return IntNumber(Number(BigInt(ensureEvenLengthHexString(num, true))));\n }\n }\n throw standardErrors.rpc.invalidParams(`Not an integer: ${String(num)}`);\n}\nexport function ensureRegExpString(regExp) {\n if (regExp instanceof RegExp) {\n return RegExpString(regExp.toString());\n }\n throw standardErrors.rpc.invalidParams(`Not a RegExp: ${String(regExp)}`);\n}\nexport function ensureBigInt(val) {\n if (val !== null && (typeof val === 'bigint' || isBigNumber(val))) {\n // biome-ignore lint/suspicious/noExplicitAny: force cast to any to avoid type error\n return BigInt(val.toString(10));\n }\n if (typeof val === 'number') {\n return BigInt(ensureIntNumber(val));\n }\n if (typeof val === 'string') {\n if (INT_STRING_REGEX.test(val)) {\n return BigInt(val);\n }\n if (isHexString(val)) {\n return BigInt(ensureEvenLengthHexString(val, true));\n }\n }\n throw standardErrors.rpc.invalidParams(`Not an integer: ${String(val)}`);\n}\nexport function ensureParsedJSONObject(val) {\n if (typeof val === 'string') {\n return JSON.parse(val);\n }\n if (typeof val === 'object') {\n return val;\n }\n throw standardErrors.rpc.invalidParams(`Not a JSON string or an object: ${String(val)}`);\n}\nexport function isBigNumber(val) {\n // biome-ignore lint/suspicious/noExplicitAny: force cast to any to avoid type error\n if (val == null || typeof val.constructor !== 'function') {\n return false;\n }\n // biome-ignore lint/suspicious/noExplicitAny: force cast to any to avoid type error\n const { constructor: constructor_ } = val;\n return typeof constructor_.config === 'function' && typeof constructor_.EUCLID === 'number';\n}\nexport function range(start, stop) {\n return Array.from({ length: stop - start }, (_, i) => start + i);\n}\nexport function areAddressArraysEqual(arr1, arr2) {\n return arr1.length === arr2.length && arr1.every((value, index) => value === arr2[index]);\n}\n//# sourceMappingURL=util.js.map","import { store } from '../../../store/store.js';\nimport { ActionType, AnalyticsEventImportance, ComponentType, logEvent } from '../logEvent.js';\nexport const logHandshakeStarted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_signer.handshake.started', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logHandshakeError = ({ method, correlationId, errorMessage, }) => {\n var _a;\n logEvent('scw_signer.handshake.error', {\n action: ActionType.error,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n errorMessage,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logHandshakeCompleted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_signer.handshake.completed', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logRequestStarted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_signer.request.started', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logRequestError = ({ method, correlationId, errorMessage, }) => {\n var _a;\n logEvent('scw_signer.request.error', {\n action: ActionType.error,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n errorMessage,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logRequestCompleted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_signer.request.completed', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\n//# sourceMappingURL=scw-signer.js.map","import { store } from '../../../store/store.js';\nimport { ActionType, AnalyticsEventImportance, ComponentType, logEvent } from '../logEvent.js';\nexport const logSubAccountRequestStarted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_sub_account.request.started', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logSubAccountRequestCompleted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_sub_account.request.completed', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logSubAccountRequestError = ({ method, correlationId, errorMessage, }) => {\n var _a;\n logEvent('scw_sub_account.request.error', {\n action: ActionType.error,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n errorMessage,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logAddOwnerStarted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_sub_account.add_owner.started', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logAddOwnerCompleted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_sub_account.add_owner.completed', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logAddOwnerError = ({ method, correlationId, errorMessage, }) => {\n var _a;\n logEvent('scw_sub_account.add_owner.error', {\n action: ActionType.error,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n errorMessage,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logInsufficientBalanceErrorHandlingStarted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_sub_account.insufficient_balance.error_handling.started', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logInsufficientBalanceErrorHandlingCompleted = ({ method, correlationId, }) => {\n var _a;\n logEvent('scw_sub_account.insufficient_balance.error_handling.completed', {\n action: ActionType.unknown,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\nexport const logInsufficientBalanceErrorHandlingError = ({ method, correlationId, errorMessage, }) => {\n var _a;\n logEvent('scw_sub_account.insufficient_balance.error_handling.error', {\n action: ActionType.error,\n componentType: ComponentType.unknown,\n method,\n correlationId,\n errorMessage,\n enableAutoSubAccounts: (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.enableAutoSubAccounts,\n }, AnalyticsEventImportance.high);\n};\n//# sourceMappingURL=scw-sub-account.js.map","// biome-ignore lint/suspicious/noExplicitAny: this is used in a catch block\nexport const parseErrorMessageFromAny = (errorOrAny) => {\n return 'message' in errorOrAny && typeof errorOrAny.message === 'string'\n ? errorOrAny.message\n : '';\n};\n//# sourceMappingURL=utils.js.map","import { createStore } from 'zustand/vanilla';\nexport const ChainClients = createStore(() => ({}));\n//# sourceMappingURL=store.js.map","import { createPublicClient, defineChain, http } from 'viem';\nimport { createBundlerClient } from 'viem/account-abstraction';\nimport { ChainClients } from './store.js';\nexport function createClients(chains) {\n chains.forEach((c) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (!c.rpcUrl) {\n return;\n }\n const viemchain = defineChain({\n id: c.id,\n rpcUrls: {\n default: {\n http: [c.rpcUrl],\n },\n },\n name: (_b = (_a = c.nativeCurrency) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '',\n nativeCurrency: {\n name: (_d = (_c = c.nativeCurrency) === null || _c === void 0 ? void 0 : _c.name) !== null && _d !== void 0 ? _d : '',\n symbol: (_f = (_e = c.nativeCurrency) === null || _e === void 0 ? void 0 : _e.symbol) !== null && _f !== void 0 ? _f : '',\n decimals: (_h = (_g = c.nativeCurrency) === null || _g === void 0 ? void 0 : _g.decimal) !== null && _h !== void 0 ? _h : 18,\n },\n });\n const client = createPublicClient({\n chain: viemchain,\n transport: http(c.rpcUrl),\n });\n const bundlerClient = createBundlerClient({\n client,\n transport: http(c.rpcUrl),\n });\n ChainClients.setState({\n [c.id]: {\n client,\n bundlerClient,\n },\n });\n });\n}\nexport function getClient(chainId) {\n var _a;\n return (_a = ChainClients.getState()[chainId]) === null || _a === void 0 ? void 0 : _a.client;\n}\nexport function getBundlerClient(chainId) {\n var _a;\n return (_a = ChainClients.getState()[chainId]) === null || _a === void 0 ? void 0 : _a.bundlerClient;\n}\n//# sourceMappingURL=utils.js.map","import { createStore } from 'zustand/vanilla';\nconst correlationIdsStore = createStore(() => ({\n correlationIds: new Map(),\n}));\nexport const correlationIds = {\n get: (key) => {\n const correlationId = correlationIdsStore.getState().correlationIds.get(key);\n return correlationId;\n },\n set: (key, correlationId) => {\n correlationIdsStore.setState((state) => {\n const newMap = new Map(state.correlationIds);\n newMap.set(key, correlationId);\n return { correlationIds: newMap };\n });\n },\n delete: (key) => {\n correlationIdsStore.setState((state) => {\n const newMap = new Map(state.correlationIds);\n newMap.delete(key);\n return { correlationIds: newMap };\n });\n },\n clear: () => {\n correlationIdsStore.setState({\n correlationIds: new Map(),\n });\n },\n};\n//# sourceMappingURL=store.js.map","import { isAddress, isHex } from 'viem';\nimport { standardErrors } from '../core/error/errors.js';\nexport function assertSubAccount(info) {\n if (typeof info !== 'object' || info === null) {\n throw standardErrors.rpc.internal('sub account info is not an object');\n }\n if (!('address' in info)) {\n throw standardErrors.rpc.internal('sub account is invalid');\n }\n if ('address' in info && typeof info.address === 'string' && !isAddress(info.address)) {\n throw standardErrors.rpc.internal('sub account address is invalid');\n }\n if ('factory' in info && typeof info.factory === 'string' && !isAddress(info.factory)) {\n throw standardErrors.rpc.internal('sub account factory address is invalid');\n }\n if ('factoryData' in info && typeof info.factoryData === 'string' && !isHex(info.factoryData)) {\n throw standardErrors.rpc.internal('sub account factory data is invalid');\n }\n}\n//# sourceMappingURL=assertSubAccount.js.map","import { hexStringToUint8Array, uint8ArrayToHex } from '../core/type/util.js';\nexport async function generateKeyPair() {\n return crypto.subtle.generateKey({\n name: 'ECDH',\n namedCurve: 'P-256',\n }, true, ['deriveKey']);\n}\nexport async function deriveSharedSecret(ownPrivateKey, peerPublicKey) {\n return crypto.subtle.deriveKey({\n name: 'ECDH',\n public: peerPublicKey,\n }, ownPrivateKey, {\n name: 'AES-GCM',\n length: 256,\n }, false, ['encrypt', 'decrypt']);\n}\nexport async function encrypt(sharedSecret, plainText) {\n const iv = crypto.getRandomValues(new Uint8Array(12));\n const cipherText = await crypto.subtle.encrypt({\n name: 'AES-GCM',\n iv,\n }, sharedSecret, new TextEncoder().encode(plainText));\n return { iv, cipherText };\n}\nexport async function decrypt(sharedSecret, { iv, cipherText }) {\n const plainText = await crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv,\n }, sharedSecret, cipherText);\n return new TextDecoder().decode(plainText);\n}\nfunction getFormat(keyType) {\n switch (keyType) {\n case 'public':\n return 'spki';\n case 'private':\n return 'pkcs8';\n }\n}\nexport async function exportKeyToHexString(type, key) {\n const format = getFormat(type);\n const exported = await crypto.subtle.exportKey(format, key);\n return uint8ArrayToHex(new Uint8Array(exported));\n}\nexport async function importKeyFromHexString(type, hexString) {\n const format = getFormat(type);\n const arrayBuffer = hexStringToUint8Array(hexString).buffer;\n return await crypto.subtle.importKey(format, new Uint8Array(arrayBuffer), {\n name: 'ECDH',\n namedCurve: 'P-256',\n }, true, type === 'private' ? ['deriveKey'] : []);\n}\nexport async function encryptContent(content, sharedSecret) {\n const serialized = JSON.stringify(content, (_, value) => {\n if (!(value instanceof Error))\n return value;\n const error = value;\n return Object.assign(Object.assign({}, (error.code ? { code: error.code } : {})), { message: error.message });\n });\n return encrypt(sharedSecret, serialized);\n}\nexport async function decryptContent(encryptedData, sharedSecret) {\n return JSON.parse(await decrypt(sharedSecret, encryptedData));\n}\n//# sourceMappingURL=cipher.js.map","import { PACKAGE_NAME, PACKAGE_VERSION } from '../core/constants.js';\nimport { standardErrors } from '../core/error/errors.js';\nexport async function fetchRPCRequest(request, rpcUrl) {\n const requestBody = Object.assign(Object.assign({}, request), { jsonrpc: '2.0', id: crypto.randomUUID() });\n const res = await window.fetch(rpcUrl, {\n method: 'POST',\n body: JSON.stringify(requestBody),\n mode: 'cors',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Cbw-Sdk-Version': PACKAGE_VERSION,\n 'X-Cbw-Sdk-Platform': PACKAGE_NAME,\n },\n });\n const { result, error } = await res.json();\n if (error)\n throw error;\n return result;\n}\n/**\n * Validates the arguments for an invalid request and returns an error if any validation fails.\n * Valid request args are defined here: https://eips.ethereum.org/EIPS/eip-1193#request\n * @param args The request arguments to validate.\n * @returns An error object if the arguments are invalid, otherwise undefined.\n */\nexport function checkErrorForInvalidRequestArgs(args) {\n if (!args || typeof args !== 'object' || Array.isArray(args)) {\n throw standardErrors.rpc.invalidParams({\n message: 'Expected a single, non-array, object argument.',\n data: args,\n });\n }\n const { method, params } = args;\n if (typeof method !== 'string' || method.length === 0) {\n throw standardErrors.rpc.invalidParams({\n message: \"'args.method' must be a non-empty string.\",\n data: args,\n });\n }\n if (params !== undefined &&\n !Array.isArray(params) &&\n (typeof params !== 'object' || params === null)) {\n throw standardErrors.rpc.invalidParams({\n message: \"'args.params' must be an object or array if provided.\",\n data: args,\n });\n }\n switch (method) {\n case 'eth_sign':\n case 'eth_signTypedData_v2':\n case 'eth_subscribe':\n case 'eth_unsubscribe':\n throw standardErrors.provider.unsupportedMethod();\n }\n}\n//# sourceMappingURL=provider.js.map","import { createStore, del, get, set } from 'idb-keyval';\nexport function createStorage(scope, name) {\n const store = typeof indexedDB !== 'undefined' ? createStore(scope, name) : undefined;\n return {\n getItem: async (key) => {\n const value = await get(key, store);\n if (!value) {\n return null;\n }\n return value;\n },\n removeItem: async (key) => {\n return del(key, store);\n },\n setItem: async (key, value) => {\n return set(key, value, store);\n },\n };\n}\n//# sourceMappingURL=storage.js.map","import { Hex, PublicKey, Signature, WebAuthnP256, WebCryptoP256 } from 'ox';\nimport { hashMessage, hashTypedData } from 'viem';\nimport { createStorage } from './storage.js';\n// *****************************************************************\n// Constants\n// *****************************************************************\nexport const STORAGE_SCOPE = 'base-acc-sdk';\nexport const STORAGE_NAME = 'keys';\nexport const ACTIVE_ID_KEY = 'activeId';\n// *****************************************************************\n// Storage\n// *****************************************************************\nexport const storage = createStorage(STORAGE_SCOPE, STORAGE_NAME);\n// *****************************************************************\n// Functions\n// *****************************************************************\nexport async function generateKeyPair() {\n const keypair = await WebCryptoP256.createKeyPair({ extractable: false });\n const publicKey = Hex.slice(PublicKey.toHex(keypair.publicKey), 1);\n await storage.setItem(publicKey, keypair);\n await storage.setItem(ACTIVE_ID_KEY, publicKey);\n return keypair;\n}\nexport async function getKeypair() {\n const id = await storage.getItem(ACTIVE_ID_KEY);\n if (!id) {\n return null;\n }\n const keypair = await storage.getItem(id);\n if (!keypair) {\n return null;\n }\n return keypair;\n}\nasync function getOrCreateKeypair() {\n const keypair = await getKeypair();\n if (!keypair) {\n const kp = await generateKeyPair();\n const pubKey = Hex.slice(PublicKey.toHex(kp.publicKey), 1);\n await storage.setItem(pubKey, kp);\n await storage.setItem(ACTIVE_ID_KEY, pubKey);\n return kp;\n }\n return keypair;\n}\nasync function getAccount() {\n const keypair = await getOrCreateKeypair();\n /**\n * public key / address\n */\n const publicKey = Hex.slice(PublicKey.toHex(keypair.publicKey), 1);\n const sign = async (payload) => {\n const { payload: message, metadata } = WebAuthnP256.getSignPayload({\n challenge: payload,\n origin: 'https://keys.coinbase.com',\n userVerification: 'preferred',\n });\n const signature = await WebCryptoP256.sign({\n payload: message,\n privateKey: keypair.privateKey,\n });\n return {\n signature: Signature.toHex(signature),\n raw: {}, // type changed in viem\n webauthn: metadata,\n };\n };\n return {\n id: publicKey,\n publicKey,\n async sign({ hash }) {\n return sign(hash);\n },\n async signMessage({ message }) {\n return sign(hashMessage(message));\n },\n async signTypedData(parameters) {\n return sign(hashTypedData(parameters));\n },\n type: 'webAuthn',\n };\n}\nexport async function getCryptoKeyAccount() {\n const account = await getAccount();\n return {\n account,\n };\n}\nexport async function removeCryptoKey() {\n const keypair = await getKeypair();\n if (!keypair) {\n return;\n }\n await storage.removeItem(Hex.slice(PublicKey.toHex(keypair.publicKey), 1));\n await storage.removeItem(ACTIVE_ID_KEY);\n}\n//# sourceMappingURL=index.js.map","import { store } from '../../store/store.js';\nimport { deriveSharedSecret, exportKeyToHexString, generateKeyPair, importKeyFromHexString, } from '../../util/cipher.js';\nconst OWN_PRIVATE_KEY = {\n storageKey: 'ownPrivateKey',\n keyType: 'private',\n};\nconst OWN_PUBLIC_KEY = {\n storageKey: 'ownPublicKey',\n keyType: 'public',\n};\nconst PEER_PUBLIC_KEY = {\n storageKey: 'peerPublicKey',\n keyType: 'public',\n};\nexport class SCWKeyManager {\n constructor() {\n this.ownPrivateKey = null;\n this.ownPublicKey = null;\n this.peerPublicKey = null;\n this.sharedSecret = null;\n }\n async getOwnPublicKey() {\n await this.loadKeysIfNeeded();\n return this.ownPublicKey;\n }\n // returns null if the shared secret is not yet derived\n async getSharedSecret() {\n await this.loadKeysIfNeeded();\n return this.sharedSecret;\n }\n async setPeerPublicKey(key) {\n this.sharedSecret = null;\n this.peerPublicKey = key;\n await this.storeKey(PEER_PUBLIC_KEY, key);\n await this.loadKeysIfNeeded();\n }\n async clear() {\n this.ownPrivateKey = null;\n this.ownPublicKey = null;\n this.peerPublicKey = null;\n this.sharedSecret = null;\n store.keys.clear();\n }\n async generateKeyPair() {\n const newKeyPair = await generateKeyPair();\n this.ownPrivateKey = newKeyPair.privateKey;\n this.ownPublicKey = newKeyPair.publicKey;\n await this.storeKey(OWN_PRIVATE_KEY, newKeyPair.privateKey);\n await this.storeKey(OWN_PUBLIC_KEY, newKeyPair.publicKey);\n }\n async loadKeysIfNeeded() {\n if (this.ownPrivateKey === null) {\n this.ownPrivateKey = await this.loadKey(OWN_PRIVATE_KEY);\n }\n if (this.ownPublicKey === null) {\n this.ownPublicKey = await this.loadKey(OWN_PUBLIC_KEY);\n }\n if (this.ownPrivateKey === null || this.ownPublicKey === null) {\n await this.generateKeyPair();\n }\n if (this.peerPublicKey === null) {\n this.peerPublicKey = await this.loadKey(PEER_PUBLIC_KEY);\n }\n if (this.sharedSecret === null) {\n if (this.ownPrivateKey === null || this.peerPublicKey === null)\n return;\n this.sharedSecret = await deriveSharedSecret(this.ownPrivateKey, this.peerPublicKey);\n }\n }\n // storage methods\n async loadKey(item) {\n const key = store.keys.get(item.storageKey);\n if (!key)\n return null;\n return importKeyFromHexString(item.keyType, key);\n }\n async storeKey(item, key) {\n const hexString = await exportKeyToHexString(item.keyType, key);\n store.keys.set(item.storageKey, hexString);\n }\n}\n//# sourceMappingURL=SCWKeyManager.js.map","export function get(obj, path) {\n if (typeof obj !== 'object' || obj === null)\n return undefined;\n return path\n .split(/[.[\\]]+/)\n .filter(Boolean)\n .reduce((value, key) => {\n if (typeof value === 'object' && value !== null) {\n return value[key];\n }\n return undefined;\n }, obj);\n}\n//# sourceMappingURL=get.js.map","import { hexToBigInt, isAddress } from 'viem';\nimport { keccak256, numberToHex, slice, toHex } from 'viem';\nimport { standardErrors } from '../../core/error/errors.js';\nimport { logDialogActionClicked, logDialogDismissed, logDialogShown, } from '../../core/telemetry/events/dialog.js';\nimport { config, store } from '../../store/store.js';\nimport { initDialog } from '../../ui/Dialog/index.js';\nimport { get } from '../../util/get.js';\nimport { waitForCallsStatus } from 'viem/actions';\nimport { getCryptoKeyAccount } from '../../kms/crypto-key/index.js';\nimport { spendPermissionManagerAddress } from './utils/constants.js';\n// ***************************************************************\n// Utility\n// ***************************************************************\nexport function getSenderFromRequest(request) {\n var _a;\n if (!Array.isArray(request.params)) {\n return null;\n }\n switch (request.method) {\n case 'personal_sign':\n return request.params[1];\n case 'eth_signTypedData_v4':\n return request.params[0];\n case 'eth_signTransaction':\n case 'eth_sendTransaction':\n case 'wallet_sendCalls':\n return (_a = request.params[0]) === null || _a === void 0 ? void 0 : _a.from;\n default:\n return null;\n }\n}\nexport function addSenderToRequest(request, sender) {\n if (!Array.isArray(request.params)) {\n throw standardErrors.rpc.invalidParams();\n }\n const params = [...request.params];\n switch (request.method) {\n case 'eth_signTransaction':\n case 'eth_sendTransaction':\n case 'wallet_sendCalls':\n params[0].from = sender;\n break;\n case 'eth_signTypedData_v4':\n params[0] = sender;\n break;\n case 'personal_sign':\n params[1] = sender;\n break;\n default:\n break;\n }\n return Object.assign(Object.assign({}, request), { params });\n}\nexport function assertParamsChainId(params) {\n var _a;\n if (!params || !Array.isArray(params) || !((_a = params[0]) === null || _a === void 0 ? void 0 : _a.chainId)) {\n throw standardErrors.rpc.invalidParams();\n }\n if (typeof params[0].chainId !== 'string' && typeof params[0].chainId !== 'number') {\n throw standardErrors.rpc.invalidParams();\n }\n}\nexport function assertGetCapabilitiesParams(params) {\n if (!params || !Array.isArray(params) || (params.length !== 1 && params.length !== 2)) {\n throw standardErrors.rpc.invalidParams();\n }\n if (typeof params[0] !== 'string' || !isAddress(params[0])) {\n throw standardErrors.rpc.invalidParams();\n }\n if (params.length === 2) {\n if (!Array.isArray(params[1])) {\n throw standardErrors.rpc.invalidParams();\n }\n for (const param of params[1]) {\n if (typeof param !== 'string' || !param.startsWith('0x')) {\n throw standardErrors.rpc.invalidParams();\n }\n }\n }\n}\nexport function injectRequestCapabilities(request, capabilities) {\n // Modify request to include auto sub account capabilities\n const modifiedRequest = Object.assign({}, request);\n if (capabilities && request.method.startsWith('wallet_')) {\n let requestCapabilities = get(modifiedRequest, 'params.0.capabilities');\n if (typeof requestCapabilities === 'undefined') {\n requestCapabilities = {};\n }\n if (typeof requestCapabilities !== 'object') {\n throw standardErrors.rpc.invalidParams();\n }\n requestCapabilities = Object.assign(Object.assign({}, capabilities), requestCapabilities);\n if (modifiedRequest.params && Array.isArray(modifiedRequest.params)) {\n modifiedRequest.params[0] = Object.assign(Object.assign({}, modifiedRequest.params[0]), { capabilities: requestCapabilities });\n }\n }\n return modifiedRequest;\n}\n/**\n * Initializes the `subAccountConfig` store with the owner account function and capabilities\n * @returns void\n */\nexport async function initSubAccountConfig() {\n var _a;\n const config = (_a = store.subAccountsConfig.get()) !== null && _a !== void 0 ? _a : {};\n const capabilities = {};\n if (config.enableAutoSubAccounts) {\n // Get the owner account\n const { account: owner } = config.toOwnerAccount\n ? await config.toOwnerAccount()\n : await getCryptoKeyAccount();\n if (!owner) {\n throw standardErrors.provider.unauthorized('No owner account found');\n }\n capabilities.addSubAccount = {\n account: {\n type: 'create',\n keys: [\n {\n type: owner.address ? 'address' : 'webauthn-p256',\n publicKey: owner.address || owner.publicKey,\n },\n ],\n },\n };\n }\n // Store the owner account and capabilities in the non-persisted config\n store.subAccountsConfig.set({\n capabilities,\n });\n}\nexport function assertFetchPermissionsRequest(request) {\n if (request.method === 'coinbase_fetchPermissions' && request.params === undefined) {\n return;\n }\n if (request.method === 'coinbase_fetchPermissions' &&\n Array.isArray(request.params) &&\n request.params.length === 1 &&\n typeof request.params[0] === 'object') {\n if (typeof request.params[0].account !== 'string' ||\n !request.params[0].chainId.startsWith('0x')) {\n throw standardErrors.rpc.invalidParams('FetchPermissions - Invalid params: params[0].account must be a hex string');\n }\n if (typeof request.params[0].chainId !== 'string' ||\n !request.params[0].chainId.startsWith('0x')) {\n throw standardErrors.rpc.invalidParams('FetchPermissions - Invalid params: params[0].chainId must be a hex string');\n }\n if (typeof request.params[0].spender !== 'string' ||\n !request.params[0].spender.startsWith('0x')) {\n throw standardErrors.rpc.invalidParams('FetchPermissions - Invalid params: params[0].spender must be a hex string');\n }\n return;\n }\n throw standardErrors.rpc.invalidParams();\n}\nexport function fillMissingParamsForFetchPermissions(request) {\n var _a, _b, _c;\n if (request.params !== undefined) {\n return request;\n }\n // this is based on the assumption that the first account is the active account\n // it could change in the context of multi-(universal)-account\n const accountFromStore = (_a = store.getState().account.accounts) === null || _a === void 0 ? void 0 : _a[0];\n const chainId = (_b = store.getState().account.chain) === null || _b === void 0 ? void 0 : _b.id;\n const subAccountFromStore = (_c = store.getState().subAccount) === null || _c === void 0 ? void 0 : _c.address;\n if (!accountFromStore || !subAccountFromStore || !chainId) {\n throw standardErrors.rpc.invalidParams('FetchPermissions - one or more of account, sub account, or chain id is missing, connect to sub account via wallet_connect first');\n }\n return {\n method: 'coinbase_fetchPermissions',\n params: [\n {\n account: accountFromStore,\n chainId: numberToHex(chainId),\n spender: subAccountFromStore,\n },\n ],\n };\n}\nexport function createSpendPermissionMessage({ spendPermission, chainId, }) {\n return {\n domain: {\n name: 'Spend Permission Manager',\n version: '1',\n chainId: chainId,\n verifyingContract: spendPermissionManagerAddress,\n },\n types: {\n SpendPermission: [\n { name: 'account', type: 'address' },\n { name: 'spender', type: 'address' },\n { name: 'token', type: 'address' },\n { name: 'allowance', type: 'uint160' },\n { name: 'period', type: 'uint48' },\n { name: 'start', type: 'uint48' },\n { name: 'end', type: 'uint48' },\n { name: 'salt', type: 'uint256' },\n { name: 'extraData', type: 'bytes' },\n ],\n },\n primaryType: 'SpendPermission',\n message: {\n account: spendPermission.account,\n spender: spendPermission.spender,\n token: spendPermission.token,\n allowance: spendPermission.allowance,\n period: spendPermission.period,\n start: spendPermission.start,\n end: spendPermission.end,\n salt: spendPermission.salt,\n extraData: spendPermission.extraData,\n },\n };\n}\nexport function createSpendPermissionBatchMessage({ spendPermissionBatch, chainId, }) {\n return {\n domain: {\n name: 'Spend Permission Manager',\n version: '1',\n chainId,\n verifyingContract: spendPermissionManagerAddress,\n },\n types: {\n SpendPermissionBatch: [\n { name: 'account', type: 'address' },\n { name: 'period', type: 'uint48' },\n { name: 'start', type: 'uint48' },\n { name: 'end', type: 'uint48' },\n { name: 'permissions', type: 'PermissionDetails[]' },\n ],\n PermissionDetails: [\n { name: 'spender', type: 'address' },\n { name: 'token', type: 'address' },\n { name: 'allowance', type: 'uint160' },\n { name: 'salt', type: 'uint256' },\n { name: 'extraData', type: 'bytes' },\n ],\n },\n primaryType: 'SpendPermissionBatch',\n message: {\n account: spendPermissionBatch.account,\n period: spendPermissionBatch.period,\n start: spendPermissionBatch.start,\n end: spendPermissionBatch.end,\n permissions: spendPermissionBatch.permissions.map((p) => ({\n spender: p.spender,\n token: p.token,\n allowance: p.allowance,\n salt: p.salt,\n extraData: p.extraData,\n })),\n },\n };\n}\nexport async function waitForCallsTransactionHash({ client, id, }) {\n var _a;\n const result = await waitForCallsStatus(client, {\n id,\n });\n if (result.status === 'success') {\n return (_a = result.receipts) === null || _a === void 0 ? void 0 : _a[0].transactionHash;\n }\n throw standardErrors.rpc.internal('failed to send transaction');\n}\nexport function createWalletSendCallsRequest({ calls, from, chainId, capabilities, }) {\n const paymasterUrls = config.get().paymasterUrls;\n let request = {\n method: 'wallet_sendCalls',\n params: [\n {\n version: '1.0',\n calls,\n chainId: numberToHex(chainId),\n from,\n atomicRequired: true,\n capabilities,\n },\n ],\n };\n if (paymasterUrls === null || paymasterUrls === void 0 ? void 0 : paymasterUrls[chainId]) {\n request = injectRequestCapabilities(request, {\n paymasterService: { url: paymasterUrls === null || paymasterUrls === void 0 ? void 0 : paymasterUrls[chainId] },\n });\n }\n return request;\n}\nexport async function presentSubAccountFundingDialog() {\n const dialog = initDialog();\n const userChoice = await new Promise((resolve) => {\n logDialogShown({ dialogContext: 'sub_account_insufficient_balance' });\n dialog.presentItem({\n title: 'Insufficient spend permission',\n message: \"Your spend permission's remaining balance cannot cover this transaction. Please choose how to proceed:\",\n onClose: () => {\n logDialogDismissed({ dialogContext: 'sub_account_insufficient_balance' });\n dialog.clear();\n },\n actionItems: [\n {\n text: 'Edit spend permission',\n variant: 'primary',\n onClick: () => {\n logDialogActionClicked({\n dialogContext: 'sub_account_insufficient_balance',\n dialogAction: 'create_permission',\n });\n dialog.clear();\n resolve('update_permission');\n },\n },\n {\n text: 'Use primary account',\n variant: 'secondary',\n onClick: () => {\n logDialogActionClicked({\n dialogContext: 'sub_account_insufficient_balance',\n dialogAction: 'continue_in_popup',\n });\n dialog.clear();\n resolve('continue_popup');\n },\n },\n ],\n });\n });\n return userChoice;\n}\nexport function parseFundingOptions({ errorData, sourceAddress, }) {\n var _a;\n const spendPermissionRequests = [];\n for (const [token, { amount, sources }] of Object.entries((_a = errorData === null || errorData === void 0 ? void 0 : errorData.required) !== null && _a !== void 0 ? _a : {})) {\n const sourcesWithSufficientBalance = sources.filter((source) => {\n return (hexToBigInt(source.balance) >= hexToBigInt(amount) &&\n source.address.toLowerCase() === (sourceAddress === null || sourceAddress === void 0 ? void 0 : sourceAddress.toLowerCase()));\n });\n if (sourcesWithSufficientBalance.length === 0) {\n throw new Error('Source address has insufficient balance for a token');\n }\n spendPermissionRequests.push({\n token: token,\n requiredAmount: hexToBigInt(amount),\n });\n }\n return spendPermissionRequests;\n}\nexport function isSendCallsParams(params) {\n return typeof params === 'object' && params !== null && 'calls' in params;\n}\nexport function isEthSendTransactionParams(params) {\n return (Array.isArray(params) &&\n params.length === 1 &&\n typeof params[0] === 'object' &&\n params[0] !== null &&\n 'to' in params[0]);\n}\nexport function compute16ByteHash(input) {\n return slice(keccak256(toHex(input)), 0, 16);\n}\nexport function makeDataSuffix({ attribution, dappOrigin, }) {\n if (!attribution) {\n return;\n }\n if ('auto' in attribution && attribution.auto && dappOrigin) {\n return compute16ByteHash(dappOrigin);\n }\n if ('dataSuffix' in attribution) {\n return attribution.dataSuffix;\n }\n return;\n}\n/**\n * Checks if a specific capability is present in a request's params\n * @param request The request object to check\n * @param capabilityName The name of the capability to check for\n * @returns boolean indicating if the capability is present\n */\nexport function requestHasCapability(request, capabilityName) {\n var _a;\n if (!Array.isArray(request === null || request === void 0 ? void 0 : request.params))\n return false;\n const capabilities = (_a = request.params[0]) === null || _a === void 0 ? void 0 : _a.capabilities;\n if (!capabilities || typeof capabilities !== 'object')\n return false;\n return capabilityName in capabilities;\n}\n/**\n * Prepends an item to an array without duplicates\n * @param array The array to prepend to\n * @param item The item to prepend\n * @returns The array with the item prepended\n */\nexport function prependWithoutDuplicates(array, item) {\n const filtered = array.filter((i) => i !== item);\n return [item, ...filtered];\n}\n/**\n * Appends an item to an array without duplicates\n * @param array The array to append to\n * @param item The item to append\n * @returns The array with the item appended\n */\nexport function appendWithoutDuplicates(array, item) {\n const filtered = array.filter((i) => i !== item);\n return [...filtered, item];\n}\nexport async function getCachedWalletConnectResponse() {\n const spendPermissions = store.spendPermissions.get();\n const subAccount = store.subAccounts.get();\n const accounts = store.account.get().accounts;\n if (!accounts) {\n return null;\n }\n const walletConnectAccounts = accounts === null || accounts === void 0 ? void 0 : accounts.map((account) => ({\n address: account,\n capabilities: {\n subAccounts: subAccount ? [subAccount] : undefined,\n spendPermissions: spendPermissions.length > 0 ? { permissions: spendPermissions } : undefined,\n },\n }));\n return {\n accounts: walletConnectAccounts,\n };\n}\n//# sourceMappingURL=utils.js.map","import { Signature } from 'ox';\nimport { hexToBytes, numberToHex, stringToBytes, trim } from 'viem';\nexport function base64ToBase64Url(base64) {\n return base64.replaceAll('+', '-').replaceAll('/', '_').replace(/=+$/, '');\n}\nexport function arrayBufferToBase64Url(buffer) {\n // First convert to regular base64\n const base64String = btoa(String.fromCharCode(...new Uint8Array(buffer)));\n // Then convert to base64url\n return base64ToBase64Url(base64String);\n}\nexport function convertCredentialToJSON({ webauthn, signature, id, }) {\n const signatureRaw = Signature.fromHex(signature);\n return {\n id,\n rawId: arrayBufferToBase64Url(stringToBytes(id)),\n response: {\n authenticatorData: arrayBufferToBase64Url(hexToBytes(webauthn.authenticatorData)),\n clientDataJSON: arrayBufferToBase64Url(stringToBytes(webauthn.clientDataJSON)),\n signature: arrayBufferToBase64Url(asn1EncodeSignature(signatureRaw.r, signatureRaw.s)),\n },\n type: JSON.parse(webauthn.clientDataJSON).type,\n };\n}\nexport function asn1EncodeSignature(r, s) {\n // Convert r and s to byte arrays and remove any leading zeros\n const rBytes = hexToBytes(trim(numberToHex(r)));\n const sBytes = hexToBytes(trim(numberToHex(s)));\n // Calculate lengths\n const rLength = rBytes.length;\n const sLength = sBytes.length;\n const totalLength = rLength + sLength + 4; // 4 additional bytes for type and length fields\n // Create the signature buffer\n const signature = new Uint8Array(totalLength + 2); // +2 for sequence header\n // Sequence header\n signature[0] = 0x30; // ASN.1 sequence tag\n signature[1] = totalLength;\n // Encode r value\n signature[2] = 0x02; // ASN.1 integer tag\n signature[3] = rLength;\n signature.set(rBytes, 4);\n // Encode s value\n signature[rLength + 4] = 0x02; // ASN.1 integer tag\n signature[rLength + 5] = sLength;\n signature.set(sBytes, rLength + 6);\n return signature;\n}\n//# sourceMappingURL=encoding.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as Signature from 'ox/Signature';\nimport { BaseError, decodeFunctionData, encodeAbiParameters, encodeFunctionData, encodePacked, hashMessage, hashTypedData, parseSignature, size, stringToHex, } from 'viem';\nimport { entryPoint06Abi, entryPoint06Address, getUserOperationHash, toSmartAccount, } from 'viem/account-abstraction';\nimport { abi, factoryAbi, factoryAddress } from './constants.js';\n/**\n * @description Create a Coinbase Smart Account.\n *\n * @param parameters - {@link CreateSmartAccountParameters}\n * @returns Coinbase Smart Account. {@link CreateSmartAccountReturnType}\n *\n * @example\n *\n * const account = createSmartAccount({\n * client,\n * owner: privateKeyToAccount('0x...'),\n * ownerIndex: 0,\n * address: '0x...',\n * factoryData: '0x...',\n * })\n */\nexport async function createSmartAccount(parameters) {\n const { owner, ownerIndex, address, client, factoryData } = parameters;\n const entryPoint = {\n abi: entryPoint06Abi,\n address: entryPoint06Address,\n version: '0.6',\n };\n const factory = {\n abi: factoryAbi,\n address: factoryAddress,\n };\n return toSmartAccount({\n client,\n entryPoint,\n extend: { abi, factory },\n async decodeCalls(data) {\n const result = decodeFunctionData({\n abi,\n data,\n });\n if (result.functionName === 'execute')\n return [{ to: result.args[0], value: result.args[1], data: result.args[2] }];\n if (result.functionName === 'executeBatch')\n return result.args[0].map((arg) => ({\n to: arg.target,\n value: arg.value,\n data: arg.data,\n }));\n throw new BaseError(`unable to decode calls for \"${result.functionName}\"`);\n },\n async encodeCalls(calls) {\n var _a, _b;\n if (calls.length === 1) {\n return encodeFunctionData({\n abi,\n functionName: 'execute',\n args: [calls[0].to, (_a = calls[0].value) !== null && _a !== void 0 ? _a : BigInt(0), (_b = calls[0].data) !== null && _b !== void 0 ? _b : '0x'],\n });\n }\n return encodeFunctionData({\n abi,\n functionName: 'executeBatch',\n args: [\n calls.map((call) => {\n var _a, _b;\n return ({\n data: (_a = call.data) !== null && _a !== void 0 ? _a : '0x',\n target: call.to,\n value: (_b = call.value) !== null && _b !== void 0 ? _b : BigInt(0),\n });\n }),\n ],\n });\n },\n async getAddress() {\n return address;\n },\n async getFactoryArgs() {\n if (factoryData)\n return { factory: factory.address, factoryData };\n // TODO: support creating factory data\n return { factory: factory.address, factoryData };\n },\n async getStubSignature() {\n if (owner.type === 'webAuthn')\n return '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000001949fc7c88032b9fcb5f6efc7a7b8c63668eae9871b765e23123bb473ff57aa831a7c0d9276168ebcc29f2875a0239cffdf2a9cd1c2007c5c77c071db9264df1d000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97630500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a7b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a2273496a396e6164474850596759334b7156384f7a4a666c726275504b474f716d59576f4d57516869467773222c226f726967696e223a2268747470733a2f2f7369676e2e636f696e626173652e636f6d222c2263726f73734f726967696e223a66616c73657d00000000000000000000000000000000000000000000';\n return wrapSignature({\n ownerIndex,\n signature: '0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c',\n });\n },\n async sign(parameters) {\n const address = await this.getAddress();\n const hash = toReplaySafeHash({\n address,\n chainId: client.chain.id,\n hash: parameters.hash,\n });\n const signature = await sign({ hash, owner });\n return wrapSignature({\n ownerIndex,\n signature,\n });\n },\n async signMessage(parameters) {\n const { message } = parameters;\n const address = await this.getAddress();\n const hash = toReplaySafeHash({\n address,\n chainId: client.chain.id,\n hash: hashMessage(message),\n });\n const signature = await sign({ hash, owner });\n return wrapSignature({\n ownerIndex,\n signature,\n });\n },\n async signTypedData(parameters) {\n const { domain, types, primaryType, message } = parameters;\n const address = await this.getAddress();\n const hash = toReplaySafeHash({\n address,\n chainId: client.chain.id,\n hash: hashTypedData({\n domain,\n message,\n primaryType,\n types,\n }),\n });\n const signature = await sign({ hash, owner });\n return wrapSignature({\n ownerIndex,\n signature,\n });\n },\n async signUserOperation(parameters) {\n const { chainId = client.chain.id } = parameters, userOperation = __rest(parameters, [\"chainId\"]);\n const address = await this.getAddress();\n const hash = getUserOperationHash({\n chainId,\n entryPointAddress: entryPoint.address,\n entryPointVersion: entryPoint.version,\n userOperation: Object.assign(Object.assign({}, userOperation), { sender: address }),\n });\n const signature = await sign({ hash, owner });\n return wrapSignature({\n ownerIndex,\n signature,\n });\n },\n userOperation: {\n async estimateGas(userOperation) {\n var _a;\n if (owner.type !== 'webAuthn')\n return;\n // Accounts with WebAuthn owner require a minimum verification gas limit of 800,000.\n return {\n verificationGasLimit: BigInt(Math.max(Number((_a = userOperation.verificationGasLimit) !== null && _a !== void 0 ? _a : BigInt(0)), 800000)),\n };\n },\n },\n });\n}\n/////////////////////////////////////////////////////////////////////////////////////////////\n// Utilities\n/////////////////////////////////////////////////////////////////////////////////////////////\n/** @internal */\nexport async function sign({ hash, owner, }) {\n // WebAuthn Account (Passkey)\n if (owner.type === 'webAuthn') {\n const { signature, webauthn } = await owner.sign({\n hash,\n });\n return toWebAuthnSignature({ signature, webauthn });\n }\n if (owner.sign)\n return owner.sign({ hash });\n throw new BaseError('`owner` does not support raw sign.');\n}\n/** @internal */\nexport function toReplaySafeHash({ address, chainId, hash, }) {\n return hashTypedData({\n domain: {\n chainId,\n name: 'Coinbase Smart Wallet',\n verifyingContract: address,\n version: '1',\n },\n types: {\n CoinbaseSmartWalletMessage: [\n {\n name: 'hash',\n type: 'bytes32',\n },\n ],\n },\n primaryType: 'CoinbaseSmartWalletMessage',\n message: {\n hash,\n },\n });\n}\n/** @internal */\nexport function toWebAuthnSignature({ webauthn, signature, }) {\n const { r, s } = Signature.fromHex(signature);\n return encodeAbiParameters([\n {\n components: [\n {\n name: 'authenticatorData',\n type: 'bytes',\n },\n { name: 'clientDataJSON', type: 'bytes' },\n { name: 'challengeIndex', type: 'uint256' },\n { name: 'typeIndex', type: 'uint256' },\n {\n name: 'r',\n type: 'uint256',\n },\n {\n name: 's',\n type: 'uint256',\n },\n ],\n type: 'tuple',\n },\n ], [\n {\n authenticatorData: webauthn.authenticatorData,\n clientDataJSON: stringToHex(webauthn.clientDataJSON),\n challengeIndex: BigInt(webauthn.challengeIndex),\n typeIndex: BigInt(webauthn.typeIndex),\n r,\n s,\n },\n ]);\n}\n/** @internal */\nexport function wrapSignature(parameters) {\n const { ownerIndex = 0 } = parameters;\n const signatureData = (() => {\n if (size(parameters.signature) !== 65)\n return parameters.signature;\n const signature = parseSignature(parameters.signature);\n return encodePacked(['bytes32', 'bytes32', 'uint8'], [signature.r, signature.s, signature.yParity === 0 ? 27 : 28]);\n })();\n return encodeAbiParameters([\n {\n components: [\n {\n name: 'ownerIndex',\n type: 'uint8',\n },\n {\n name: 'signatureData',\n type: 'bytes',\n },\n ],\n type: 'tuple',\n },\n ], [\n {\n ownerIndex,\n signatureData,\n },\n ]);\n}\n//# sourceMappingURL=createSmartAccount.js.map","import { isViemError, standardErrors, viemHttpErrorToProviderError } from '../../../core/error/errors.js';\nimport { ensureHexString } from '../../../core/type/util.js';\nimport { assertArrayPresence, assertPresence } from '../../../util/assertPresence.js';\nimport { convertCredentialToJSON } from '../../../util/encoding.js';\nimport { get } from '../../../util/get.js';\nimport { hexToString, isHex, numberToHex, } from 'viem';\nimport { createWalletSendCallsRequest, injectRequestCapabilities, waitForCallsTransactionHash, } from '../utils.js';\nimport { createSmartAccount } from './createSmartAccount.js';\nexport async function createSubAccountSigner({ address, client, factory, factoryData, owner, ownerIndex, parentAddress, attribution, }) {\n var _a;\n const subAccount = {\n address,\n factory,\n factoryData,\n };\n const chainId = (_a = client.chain) === null || _a === void 0 ? void 0 : _a.id;\n if (!chainId) {\n throw standardErrors.rpc.internal('chainId not found');\n }\n const account = await createSmartAccount({\n owner,\n ownerIndex: ownerIndex !== null && ownerIndex !== void 0 ? ownerIndex : 1,\n address,\n client,\n factoryData,\n });\n const request = async (args) => {\n var _a, _b, _c, _d, _e, _f;\n try {\n switch (args.method) {\n case 'wallet_addSubAccount':\n return subAccount;\n case 'eth_accounts':\n return [subAccount.address];\n case 'eth_coinbase':\n return subAccount.address;\n case 'net_version':\n return chainId.toString();\n case 'eth_chainId':\n return numberToHex(chainId);\n case 'eth_sendTransaction': {\n assertArrayPresence(args.params);\n const rawParams = args.params[0];\n assertPresence(rawParams.to, standardErrors.rpc.invalidParams('to is required'));\n const params = {\n to: rawParams.to,\n data: ensureHexString((_a = rawParams.data) !== null && _a !== void 0 ? _a : '0x', true),\n value: ensureHexString((_b = rawParams.value) !== null && _b !== void 0 ? _b : '0x', true),\n from: (_c = rawParams.from) !== null && _c !== void 0 ? _c : subAccount.address,\n };\n // Transform into wallet_sendCalls request\n const sendCallsRequest = createWalletSendCallsRequest({\n calls: [params],\n chainId,\n from: params.from,\n });\n const response = (await request(sendCallsRequest));\n return waitForCallsTransactionHash({\n client,\n id: response,\n });\n }\n case 'wallet_sendCalls': {\n assertArrayPresence(args.params);\n // Get the client for the chain\n const chainId = get(args.params[0], 'chainId');\n if (!chainId) {\n throw standardErrors.rpc.invalidParams('chainId is required');\n }\n if (!isHex(chainId)) {\n throw standardErrors.rpc.invalidParams('chainId must be a hex encoded integer');\n }\n if (!args.params[0]) {\n throw standardErrors.rpc.invalidParams('params are required');\n }\n if (!('calls' in args.params[0])) {\n throw standardErrors.rpc.invalidParams('calls are required');\n }\n let prepareCallsRequest = {\n method: 'wallet_prepareCalls',\n params: [\n {\n version: '1.0',\n calls: args.params[0].calls,\n chainId: chainId,\n from: subAccount.address,\n capabilities: 'capabilities' in args.params[0]\n ? args.params[0].capabilities\n : {},\n },\n ],\n };\n if (parentAddress) {\n prepareCallsRequest = injectRequestCapabilities(prepareCallsRequest, {\n funding: [\n {\n type: 'spendPermission',\n data: {\n autoApply: true,\n sources: [parentAddress],\n preference: 'PREFER_DIRECT_BALANCE',\n },\n },\n ],\n });\n }\n let prepareCallsResponse = (await request(prepareCallsRequest));\n const signResponse = await ((_e = (_d = owner).sign) === null || _e === void 0 ? void 0 : _e.call(_d, {\n // Hash returned from wallet_prepareCalls is double hex encoded\n hash: hexToString(prepareCallsResponse.signatureRequest.hash),\n }));\n let signatureData;\n if (!signResponse) {\n throw standardErrors.rpc.internal('signature not found');\n }\n if (isHex(signResponse)) {\n signatureData = {\n type: 'secp256k1',\n data: {\n address: owner.address,\n signature: signResponse,\n },\n };\n }\n else {\n signatureData = {\n type: 'webauthn',\n data: {\n signature: JSON.stringify(convertCredentialToJSON(Object.assign({ id: (_f = owner.id) !== null && _f !== void 0 ? _f : '1' }, signResponse))),\n publicKey: owner.publicKey,\n },\n };\n }\n const sendPreparedCallsResponse = (await request({\n method: 'wallet_sendPreparedCalls',\n params: [\n {\n version: '1.0',\n type: prepareCallsResponse.type,\n data: prepareCallsResponse.userOp,\n chainId: prepareCallsResponse.chainId,\n signature: signatureData,\n },\n ],\n }));\n return sendPreparedCallsResponse[0];\n }\n case 'wallet_sendPreparedCalls': {\n assertArrayPresence(args.params);\n // Get the client for the chain\n const chainId = get(args.params[0], 'chainId');\n if (!chainId) {\n throw standardErrors.rpc.invalidParams('chainId is required');\n }\n if (!isHex(chainId)) {\n throw standardErrors.rpc.invalidParams('chainId must be a hex encoded integer');\n }\n const sendPreparedCallsResponse = await client.request({\n method: 'wallet_sendPreparedCalls',\n params: args.params,\n });\n return sendPreparedCallsResponse;\n }\n case 'wallet_prepareCalls': {\n assertArrayPresence(args.params);\n // Get the client for the chain\n const chainId = get(args.params[0], 'chainId');\n if (!chainId) {\n throw standardErrors.rpc.invalidParams('chainId is required');\n }\n if (!isHex(chainId)) {\n throw standardErrors.rpc.invalidParams('chainId must be a hex encoded integer');\n }\n if (!args.params[0]) {\n throw standardErrors.rpc.invalidParams('params are required');\n }\n if (!get(args.params[0], 'calls')) {\n throw standardErrors.rpc.invalidParams('calls are required');\n }\n const prepareCallsParams = args.params[0];\n if (attribution &&\n prepareCallsParams.capabilities &&\n !('attribution' in prepareCallsParams.capabilities)) {\n prepareCallsParams.capabilities.attribution = attribution;\n }\n const prepareCallsResponse = await client.request({\n method: 'wallet_prepareCalls',\n params: [Object.assign(Object.assign({}, args.params[0]), { chainId: chainId })],\n });\n return prepareCallsResponse;\n }\n case 'personal_sign': {\n assertArrayPresence(args.params);\n // Param is expected to be a hex encoded string\n if (!isHex(args.params[0])) {\n throw standardErrors.rpc.invalidParams('message must be a hex encoded string');\n }\n // signMessage expects the unencoded message\n const message = hexToString(args.params[0]);\n return account.signMessage({ message });\n }\n case 'eth_signTypedData_v4': {\n assertArrayPresence(args.params);\n const typedData = typeof args.params[1] === 'string' ? JSON.parse(args.params[1]) : args.params[1];\n return account.signTypedData(typedData);\n }\n case 'eth_signTypedData_v1':\n case 'eth_signTypedData_v3':\n case 'wallet_addEthereumChain':\n case 'wallet_switchEthereumChain':\n default:\n throw standardErrors.rpc.methodNotSupported();\n }\n }\n catch (error) {\n // Convert error to RPC error if possible\n if (isViemError(error)) {\n const newError = viemHttpErrorToProviderError(error);\n if (newError) {\n throw newError;\n }\n }\n throw error;\n }\n };\n return { request };\n}\n//# sourceMappingURL=createSubAccountSigner.js.map","import { standardErrors } from '../../../core/error/errors.js';\nimport { decodeFunctionData, isAddress, pad } from 'viem';\nimport { getCode, readContract } from 'viem/actions';\nimport { abi, factoryAbi } from './constants.js';\nexport async function findOwnerIndex({ address, client, publicKey, factory, factoryData, }) {\n const code = await getCode(client, {\n address,\n });\n // Check index of owner in the factoryData\n // Note: importing an undeployed contract might need to be handled differently\n // The implemention will likely require the signer to tell us the index\n if (!code && factory && factoryData) {\n const initData = decodeFunctionData({\n abi: factoryAbi,\n data: factoryData,\n });\n if (initData.functionName !== 'createAccount') {\n throw standardErrors.rpc.internal('unknown factory function');\n }\n const [owners] = initData.args;\n return owners.findIndex((owner) => {\n return owner.toLowerCase() === formatPublicKey(publicKey).toLowerCase();\n });\n }\n const ownerCount = await readContract(client, {\n address,\n abi,\n functionName: 'ownerCount',\n });\n // Iterate from highest index down and return early when found\n for (let i = Number(ownerCount) - 1; i >= 0; i--) {\n const owner = await readContract(client, {\n address,\n abi,\n functionName: 'ownerAtIndex',\n args: [BigInt(i)],\n });\n const formatted = formatPublicKey(publicKey);\n if (owner.toLowerCase() === formatted.toLowerCase()) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Formats 20 byte addresses to 32 byte public keys. Contract uses 32 byte keys for owners.\n * @param publicKey - The public key to format\n * @returns The formatted public key\n */\nexport function formatPublicKey(publicKey) {\n if (isAddress(publicKey)) {\n return pad(publicKey);\n }\n return publicKey;\n}\n//# sourceMappingURL=findOwnerIndex.js.map","import { logDialogActionClicked, logDialogDismissed, logDialogShown, } from '../../../core/telemetry/events/dialog.js';\nimport { store } from '../../../store/store.js';\nimport { initDialog } from '../../../ui/Dialog/index.js';\nexport async function presentAddOwnerDialog() {\n var _a, _b;\n const appName = (_b = (_a = store.config.get().metadata) === null || _a === void 0 ? void 0 : _a.appName) !== null && _b !== void 0 ? _b : 'App';\n const dialog = initDialog();\n return new Promise((resolve) => {\n logDialogShown({ dialogContext: 'sub_account_add_owner' });\n dialog.presentItem({\n title: `Re-authorize ${appName}`,\n message: `${appName} has lost access to your account. Please sign at the next step to re-authorize ${appName}`,\n onClose: () => {\n logDialogDismissed({ dialogContext: 'sub_account_add_owner' });\n resolve('cancel');\n },\n actionItems: [\n {\n text: 'Continue',\n variant: 'primary',\n onClick: () => {\n logDialogActionClicked({\n dialogContext: 'sub_account_add_owner',\n dialogAction: 'confirm',\n });\n dialog.clear();\n resolve('authenticate');\n },\n },\n {\n text: 'Not now',\n variant: 'secondary',\n onClick: () => {\n logDialogActionClicked({\n dialogContext: 'sub_account_add_owner',\n dialogAction: 'cancel',\n });\n dialog.clear();\n resolve('cancel');\n },\n },\n ],\n });\n });\n}\n//# sourceMappingURL=presentAddOwnerDialog.js.map","import { standardErrors } from '../../../core/error/errors.js';\nimport { getClient } from '../../../store/chain-clients/utils.js';\nimport { store } from '../../../store/store.js';\nimport { assertPresence } from '../../../util/assertPresence.js';\nimport { decodeAbiParameters, encodeFunctionData, numberToHex, toHex } from 'viem';\nimport { waitForCallsStatus } from 'viem/experimental';\nimport { abi } from './constants.js';\nimport { findOwnerIndex } from './findOwnerIndex.js';\nimport { presentAddOwnerDialog } from './presentAddOwnerDialog.js';\nexport async function handleAddSubAccountOwner({ ownerAccount, globalAccountRequest, }) {\n var _a, _b;\n const account = store.account.get();\n const subAccount = store.subAccounts.get();\n const globalAccount = (_a = account.accounts) === null || _a === void 0 ? void 0 : _a.find((account) => account.toLowerCase() !== (subAccount === null || subAccount === void 0 ? void 0 : subAccount.address.toLowerCase()));\n assertPresence(globalAccount, standardErrors.provider.unauthorized('no global account'));\n assertPresence((_b = account.chain) === null || _b === void 0 ? void 0 : _b.id, standardErrors.provider.unauthorized('no chain id'));\n assertPresence(subAccount === null || subAccount === void 0 ? void 0 : subAccount.address, standardErrors.provider.unauthorized('no sub account'));\n const calls = [];\n if (ownerAccount.type === 'local' && ownerAccount.address) {\n calls.push({\n to: subAccount.address,\n data: encodeFunctionData({\n abi,\n functionName: 'addOwnerAddress',\n args: [ownerAccount.address],\n }),\n value: toHex(0),\n });\n }\n if (ownerAccount.publicKey) {\n const [x, y] = decodeAbiParameters([{ type: 'bytes32' }, { type: 'bytes32' }], ownerAccount.publicKey);\n calls.push({\n to: subAccount.address,\n data: encodeFunctionData({\n abi,\n functionName: 'addOwnerPublicKey',\n args: [x, y],\n }),\n value: toHex(0),\n });\n }\n const request = {\n method: 'wallet_sendCalls',\n params: [\n {\n version: '1',\n calls,\n chainId: numberToHex(84532),\n from: globalAccount,\n },\n ],\n };\n const selection = await presentAddOwnerDialog();\n if (selection === 'cancel') {\n throw standardErrors.provider.unauthorized('user cancelled');\n }\n const callsId = (await globalAccountRequest(request));\n const client = getClient(account.chain.id);\n assertPresence(client, standardErrors.rpc.internal(`client not found for chainId ${account.chain.id}`));\n const callsResult = await waitForCallsStatus(client, {\n id: callsId,\n });\n if (callsResult.status !== 'success') {\n throw standardErrors.rpc.internal('add owner call failed');\n }\n const ownerIndex = await findOwnerIndex({\n address: subAccount.address,\n publicKey: ownerAccount.type === 'local' && ownerAccount.address\n ? ownerAccount.address\n : ownerAccount.publicKey,\n client,\n });\n if (ownerIndex === -1) {\n throw standardErrors.rpc.internal('failed to find owner index');\n }\n return ownerIndex;\n}\n//# sourceMappingURL=handleAddSubAccountOwner.js.map","import { standardErrors } from '../../../core/error/errors.js';\nimport { assertPresence } from '../../../util/assertPresence.js';\nimport { encodeFunctionData, erc20Abi, hexToBigInt, numberToHex, } from 'viem';\nimport { createSpendPermissionBatchMessage, createSpendPermissionMessage, createWalletSendCallsRequest, isEthSendTransactionParams, isSendCallsParams, parseFundingOptions, presentSubAccountFundingDialog, waitForCallsTransactionHash, } from '../utils.js';\nimport { abi } from './constants.js';\nexport async function handleInsufficientBalanceError({ errorData, globalAccountAddress, subAccountAddress, client, request, subAccountRequest, globalAccountRequest, }) {\n var _a;\n const chainId = (_a = client.chain) === null || _a === void 0 ? void 0 : _a.id;\n assertPresence(chainId, standardErrors.rpc.internal(`invalid chainId`));\n // Build spend permission requests for each token and check\n // that each token has global account as sufficient source\n // If not, will throw error\n const spendPermissionRequests = parseFundingOptions({\n errorData,\n sourceAddress: globalAccountAddress,\n });\n // Present options to user via snackbar\n const userChoice = await presentSubAccountFundingDialog();\n if (userChoice === 'cancel') {\n throw new Error('User cancelled funding');\n }\n let signatureRequest;\n // Request 3x the amount per day -- maybe we can do something smarter here\n const defaultPeriod = 60 * 60 * 24;\n const defaultMultiplier = 3;\n if (userChoice === 'update_permission') {\n if (spendPermissionRequests.length === 1) {\n const spendPermission = spendPermissionRequests[0];\n const message = createSpendPermissionMessage({\n spendPermission: {\n token: spendPermission.token,\n allowance: numberToHex(spendPermission.requiredAmount * BigInt(defaultMultiplier)),\n period: defaultPeriod,\n account: globalAccountAddress,\n spender: subAccountAddress,\n start: 0,\n end: 281474976710655,\n salt: numberToHex(BigInt(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))),\n extraData: '0x',\n },\n chainId,\n });\n signatureRequest = {\n method: 'eth_signTypedData_v4',\n params: [globalAccountAddress, message],\n };\n }\n else {\n // Batch spend permission request\n const message = createSpendPermissionBatchMessage({\n spendPermissionBatch: {\n account: globalAccountAddress,\n period: defaultPeriod,\n start: 0,\n end: 281474976710655,\n permissions: spendPermissionRequests.map((spendPermission) => ({\n token: spendPermission.token,\n allowance: numberToHex(spendPermission.requiredAmount * BigInt(defaultMultiplier)),\n period: defaultPeriod,\n account: globalAccountAddress,\n spender: subAccountAddress,\n salt: '0x0',\n extraData: '0x',\n })),\n },\n chainId,\n });\n signatureRequest = {\n method: 'eth_signTypedData_v4',\n params: [globalAccountAddress, message],\n };\n }\n try {\n // Request the signature - will be stored in backend\n await globalAccountRequest(signatureRequest);\n }\n catch (error) {\n console.error(error);\n // If the signature request is denied, we throw the original error\n throw new Error('User denied spend permission request');\n }\n // Retry the original request after updating permissions\n return subAccountRequest(request);\n }\n /* Handle continue_popup path */\n // Construct calls to transfer required tokens to sub account\n const transferCalls = spendPermissionRequests.map((spendPermission) => {\n const isNative = spendPermission.token.toLowerCase() ===\n '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE'.toLowerCase();\n if (isNative) {\n return {\n to: subAccountAddress,\n value: numberToHex(spendPermission.requiredAmount),\n data: '0x',\n };\n }\n return {\n to: spendPermission.token,\n value: '0x0',\n data: encodeFunctionData({\n abi: erc20Abi,\n functionName: 'transfer',\n args: [subAccountAddress, spendPermission.requiredAmount],\n }),\n };\n });\n // Construct call to execute the original calls using executeBatch\n let originalSendCallsParams;\n if (request.method === 'wallet_sendCalls' && isSendCallsParams(request.params)) {\n originalSendCallsParams = request.params[0];\n }\n else if (request.method === 'eth_sendTransaction' &&\n isEthSendTransactionParams(request.params)) {\n const sendCallsRequest = createWalletSendCallsRequest({\n calls: [request.params[0]],\n chainId,\n from: request.params[0].from,\n });\n originalSendCallsParams = sendCallsRequest.params[0];\n }\n else {\n throw new Error('Could not get original call');\n }\n const subAccountCallData = encodeFunctionData({\n abi,\n functionName: 'executeBatch',\n args: [\n originalSendCallsParams.calls.map((call) => {\n var _a, _b;\n return ({\n target: call.to,\n value: hexToBigInt((_a = call.value) !== null && _a !== void 0 ? _a : '0x0'),\n data: (_b = call.data) !== null && _b !== void 0 ? _b : '0x',\n });\n }),\n ],\n });\n // Send using wallet_sendCalls\n const calls = [\n ...transferCalls,\n { data: subAccountCallData, to: subAccountAddress, value: '0x0' },\n ];\n const result = await globalAccountRequest({\n method: 'wallet_sendCalls',\n params: [Object.assign(Object.assign({}, originalSendCallsParams), { calls, from: globalAccountAddress })],\n });\n if (request.method === 'eth_sendTransaction') {\n return waitForCallsTransactionHash({\n client,\n id: result,\n });\n }\n return result;\n}\n//# sourceMappingURL=handleInsufficientBalance.js.map","import { CB_WALLET_RPC_URL } from '../../core/constants.js';\nimport { hexToNumber, isAddressEqual, numberToHex } from 'viem';\nimport { isActionableHttpRequestError, isViemError, standardErrors } from '../../core/error/errors.js';\nimport { logHandshakeCompleted, logHandshakeError, logHandshakeStarted, logRequestCompleted, logRequestError, logRequestStarted, } from '../../core/telemetry/events/scw-signer.js';\nimport { logAddOwnerCompleted, logAddOwnerError, logAddOwnerStarted, logInsufficientBalanceErrorHandlingCompleted, logInsufficientBalanceErrorHandlingError, logInsufficientBalanceErrorHandlingStarted, logSubAccountRequestCompleted, logSubAccountRequestError, logSubAccountRequestStarted, } from '../../core/telemetry/events/scw-sub-account.js';\nimport { parseErrorMessageFromAny } from '../../core/telemetry/utils.js';\nimport { ensureIntNumber, hexStringFromNumber } from '../../core/type/util.js';\nimport { createClients, getClient } from '../../store/chain-clients/utils.js';\nimport { correlationIds } from '../../store/correlation-ids/store.js';\nimport { store } from '../../store/store.js';\nimport { assertArrayPresence, assertPresence } from '../../util/assertPresence.js';\nimport { assertSubAccount } from '../../util/assertSubAccount.js';\nimport { decryptContent, encryptContent, exportKeyToHexString, importKeyFromHexString, } from '../../util/cipher.js';\nimport { fetchRPCRequest } from '../../util/provider.js';\nimport { getCryptoKeyAccount } from '../../kms/crypto-key/index.js';\nimport { SCWKeyManager } from './SCWKeyManager.js';\nimport { addSenderToRequest, appendWithoutDuplicates, assertFetchPermissionsRequest, assertGetCapabilitiesParams, assertParamsChainId, fillMissingParamsForFetchPermissions, getCachedWalletConnectResponse, getSenderFromRequest, initSubAccountConfig, injectRequestCapabilities, makeDataSuffix, prependWithoutDuplicates, requestHasCapability, } from './utils.js';\nimport { createSubAccountSigner } from './utils/createSubAccountSigner.js';\nimport { findOwnerIndex } from './utils/findOwnerIndex.js';\nimport { handleAddSubAccountOwner } from './utils/handleAddSubAccountOwner.js';\nimport { handleInsufficientBalanceError } from './utils/handleInsufficientBalance.js';\nexport class Signer {\n constructor(params) {\n var _a, _b, _c, _d;\n this.communicator = params.communicator;\n this.callback = params.callback;\n this.keyManager = new SCWKeyManager();\n const { account, chains } = store.getState();\n this.accounts = (_a = account.accounts) !== null && _a !== void 0 ? _a : [];\n this.chain = (_b = account.chain) !== null && _b !== void 0 ? _b : {\n id: (_d = (_c = params.metadata.appChainIds) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : 1,\n };\n if (chains) {\n createClients(chains);\n }\n }\n get isConnected() {\n return this.accounts.length > 0;\n }\n async handshake(args) {\n var _a, _b, _c;\n const correlationId = correlationIds.get(args);\n logHandshakeStarted({ method: args.method, correlationId });\n try {\n // Open the popup before constructing the request message.\n // This is to ensure that the popup is not blocked by some browsers (i.e. Safari)\n await ((_b = (_a = this.communicator).waitForPopupLoaded) === null || _b === void 0 ? void 0 : _b.call(_a));\n const handshakeMessage = await this.createRequestMessage({\n handshake: {\n method: args.method,\n params: (_c = args.params) !== null && _c !== void 0 ? _c : [],\n },\n }, correlationId);\n const response = await this.communicator.postRequestAndWaitForResponse(handshakeMessage);\n // store peer's public key\n if ('failure' in response.content) {\n throw response.content.failure;\n }\n const peerPublicKey = await importKeyFromHexString('public', response.sender);\n await this.keyManager.setPeerPublicKey(peerPublicKey);\n const decrypted = await this.decryptResponseMessage(response);\n this.handleResponse(args, decrypted);\n logHandshakeCompleted({ method: args.method, correlationId });\n }\n catch (error) {\n logHandshakeError({\n method: args.method,\n correlationId,\n errorMessage: parseErrorMessageFromAny(error),\n });\n throw error;\n }\n }\n async request(request) {\n const correlationId = correlationIds.get(request);\n logRequestStarted({ method: request.method, correlationId });\n try {\n const result = await this._request(request);\n logRequestCompleted({ method: request.method, correlationId });\n return result;\n }\n catch (error) {\n logRequestError({\n method: request.method,\n correlationId,\n errorMessage: parseErrorMessageFromAny(error),\n });\n throw error;\n }\n }\n async _request(request) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n if (this.accounts.length === 0) {\n switch (request.method) {\n case 'wallet_switchEthereumChain': {\n assertParamsChainId(request.params);\n this.chain.id = Number(request.params[0].chainId);\n return;\n }\n case 'wallet_connect': {\n // Wait for the popup to be loaded before making async calls\n await ((_b = (_a = this.communicator).waitForPopupLoaded) === null || _b === void 0 ? void 0 : _b.call(_a));\n await initSubAccountConfig();\n // Check if addSubAccount capability is present and if so, inject the the sub account capabilities\n let capabilitiesToInject = {};\n if (requestHasCapability(request, 'addSubAccount')) {\n capabilitiesToInject = (_d = (_c = store.subAccountsConfig.get()) === null || _c === void 0 ? void 0 : _c.capabilities) !== null && _d !== void 0 ? _d : {};\n }\n const modifiedRequest = injectRequestCapabilities(request, capabilitiesToInject);\n return this.sendRequestToPopup(modifiedRequest);\n }\n case 'wallet_sendCalls':\n case 'wallet_sign': {\n return this.sendRequestToPopup(request);\n }\n default:\n throw standardErrors.provider.unauthorized();\n }\n }\n if (this.shouldRequestUseSubAccountSigner(request)) {\n const correlationId = correlationIds.get(request);\n logSubAccountRequestStarted({ method: request.method, correlationId });\n try {\n const result = await this.sendRequestToSubAccountSigner(request);\n logSubAccountRequestCompleted({ method: request.method, correlationId });\n return result;\n }\n catch (error) {\n logSubAccountRequestError({\n method: request.method,\n correlationId,\n errorMessage: parseErrorMessageFromAny(error),\n });\n throw error;\n }\n }\n switch (request.method) {\n case 'eth_requestAccounts':\n case 'eth_accounts': {\n const subAccount = store.subAccounts.get();\n const subAccountsConfig = store.subAccountsConfig.get();\n if (subAccount === null || subAccount === void 0 ? void 0 : subAccount.address) {\n // if auto sub accounts are enabled and we have a sub account, we need to return it as a top level account\n // otherwise, we just append it to the accounts array\n this.accounts = (subAccountsConfig === null || subAccountsConfig === void 0 ? void 0 : subAccountsConfig.enableAutoSubAccounts)\n ? prependWithoutDuplicates(this.accounts, subAccount.address)\n : appendWithoutDuplicates(this.accounts, subAccount.address);\n }\n (_e = this.callback) === null || _e === void 0 ? void 0 : _e.call(this, 'connect', { chainId: numberToHex(this.chain.id) });\n return this.accounts;\n }\n case 'eth_coinbase':\n return this.accounts[0];\n case 'net_version':\n return this.chain.id;\n case 'eth_chainId':\n return numberToHex(this.chain.id);\n case 'wallet_getCapabilities':\n return this.handleGetCapabilitiesRequest(request);\n case 'wallet_switchEthereumChain':\n return this.handleSwitchChainRequest(request);\n case 'eth_ecRecover':\n case 'personal_sign':\n case 'wallet_sign':\n case 'personal_ecRecover':\n case 'eth_signTransaction':\n case 'eth_sendTransaction':\n case 'eth_signTypedData_v1':\n case 'eth_signTypedData_v3':\n case 'eth_signTypedData_v4':\n case 'eth_signTypedData':\n case 'wallet_addEthereumChain':\n case 'wallet_watchAsset':\n case 'wallet_sendCalls':\n case 'wallet_showCallsStatus':\n case 'wallet_grantPermissions':\n return this.sendRequestToPopup(request);\n case 'wallet_connect': {\n // Return cached wallet connect response if available\n const cachedResponse = await getCachedWalletConnectResponse();\n if (cachedResponse) {\n return cachedResponse;\n }\n // Wait for the popup to be loaded before making async calls\n await ((_g = (_f = this.communicator).waitForPopupLoaded) === null || _g === void 0 ? void 0 : _g.call(_f));\n await initSubAccountConfig();\n const subAccountsConfig = store.subAccountsConfig.get();\n const modifiedRequest = injectRequestCapabilities(request, (_h = subAccountsConfig === null || subAccountsConfig === void 0 ? void 0 : subAccountsConfig.capabilities) !== null && _h !== void 0 ? _h : {});\n const result = await this.sendRequestToPopup(modifiedRequest);\n (_j = this.callback) === null || _j === void 0 ? void 0 : _j.call(this, 'connect', { chainId: numberToHex(this.chain.id) });\n return result;\n }\n // Sub Account Support\n case 'wallet_getSubAccounts': {\n const subAccount = store.subAccounts.get();\n if (subAccount === null || subAccount === void 0 ? void 0 : subAccount.address) {\n return {\n subAccounts: [subAccount],\n };\n }\n if (!this.chain.rpcUrl) {\n throw standardErrors.rpc.internal('No RPC URL set for chain');\n }\n const response = (await fetchRPCRequest(request, this.chain.rpcUrl));\n assertArrayPresence(response.subAccounts, 'subAccounts');\n if (response.subAccounts.length > 0) {\n // cache the sub account\n assertSubAccount(response.subAccounts[0]);\n const subAccount = response.subAccounts[0];\n store.subAccounts.set({\n address: subAccount.address,\n factory: subAccount.factory,\n factoryData: subAccount.factoryData,\n });\n }\n return response;\n }\n case 'wallet_addSubAccount':\n return this.addSubAccount(request);\n case 'coinbase_fetchPermissions': {\n assertFetchPermissionsRequest(request);\n const completeRequest = fillMissingParamsForFetchPermissions(request);\n const permissions = (await fetchRPCRequest(completeRequest, CB_WALLET_RPC_URL));\n const requestedChainId = hexToNumber((_k = completeRequest.params) === null || _k === void 0 ? void 0 : _k[0].chainId);\n store.spendPermissions.set(permissions.permissions.map((permission) => (Object.assign(Object.assign({}, permission), { chainId: requestedChainId }))));\n return permissions;\n }\n default:\n if (!this.chain.rpcUrl) {\n throw standardErrors.rpc.internal('No RPC URL set for chain');\n }\n return fetchRPCRequest(request, this.chain.rpcUrl);\n }\n }\n async sendRequestToPopup(request) {\n var _a, _b;\n // Open the popup before constructing the request message.\n // This is to ensure that the popup is not blocked by some browsers (i.e. Safari)\n await ((_b = (_a = this.communicator).waitForPopupLoaded) === null || _b === void 0 ? void 0 : _b.call(_a));\n const response = await this.sendEncryptedRequest(request);\n const decrypted = await this.decryptResponseMessage(response);\n return this.handleResponse(request, decrypted);\n }\n async handleResponse(request, decrypted) {\n var _a, _b, _c, _d, _e;\n const result = decrypted.result;\n if ('error' in result)\n throw result.error;\n switch (request.method) {\n case 'eth_requestAccounts': {\n const accounts = result.value;\n this.accounts = accounts;\n store.account.set({\n accounts,\n chain: this.chain,\n });\n (_a = this.callback) === null || _a === void 0 ? void 0 : _a.call(this, 'accountsChanged', accounts);\n break;\n }\n case 'wallet_connect': {\n const response = result.value;\n const accounts = response.accounts.map((account) => account.address);\n this.accounts = accounts;\n store.account.set({\n accounts,\n });\n const account = response.accounts.at(0);\n const capabilities = account === null || account === void 0 ? void 0 : account.capabilities;\n if (capabilities === null || capabilities === void 0 ? void 0 : capabilities.subAccounts) {\n const capabilityResponse = capabilities === null || capabilities === void 0 ? void 0 : capabilities.subAccounts;\n assertArrayPresence(capabilityResponse, 'subAccounts');\n assertSubAccount(capabilityResponse[0]);\n store.subAccounts.set({\n address: capabilityResponse[0].address,\n factory: capabilityResponse[0].factory,\n factoryData: capabilityResponse[0].factoryData,\n });\n }\n let accounts_ = [this.accounts[0]];\n const subAccount = store.subAccounts.get();\n const subAccountsConfig = store.subAccountsConfig.get();\n if (subAccount === null || subAccount === void 0 ? void 0 : subAccount.address) {\n // Sub account should be returned as a top level account if auto sub accounts are enabled\n this.accounts = (subAccountsConfig === null || subAccountsConfig === void 0 ? void 0 : subAccountsConfig.enableAutoSubAccounts)\n ? prependWithoutDuplicates(this.accounts, subAccount.address)\n : appendWithoutDuplicates(this.accounts, subAccount.address);\n }\n const spendPermissions = (_c = (_b = response === null || response === void 0 ? void 0 : response.accounts) === null || _b === void 0 ? void 0 : _b[0].capabilities) === null || _c === void 0 ? void 0 : _c.spendPermissions;\n if (spendPermissions && 'permissions' in spendPermissions) {\n store.spendPermissions.set(spendPermissions === null || spendPermissions === void 0 ? void 0 : spendPermissions.permissions);\n }\n (_d = this.callback) === null || _d === void 0 ? void 0 : _d.call(this, 'accountsChanged', accounts_);\n break;\n }\n case 'wallet_addSubAccount': {\n assertSubAccount(result.value);\n const subAccount = result.value;\n store.subAccounts.set(subAccount);\n const subAccountsConfig = store.subAccountsConfig.get();\n this.accounts = (subAccountsConfig === null || subAccountsConfig === void 0 ? void 0 : subAccountsConfig.enableAutoSubAccounts)\n ? prependWithoutDuplicates(this.accounts, subAccount.address)\n : appendWithoutDuplicates(this.accounts, subAccount.address);\n (_e = this.callback) === null || _e === void 0 ? void 0 : _e.call(this, 'accountsChanged', this.accounts);\n break;\n }\n default:\n break;\n }\n return result.value;\n }\n async cleanup() {\n var _a, _b;\n const metadata = store.config.get().metadata;\n await this.keyManager.clear();\n // clear the store\n store.account.clear();\n store.subAccounts.clear();\n store.spendPermissions.clear();\n store.chains.clear();\n // reset the signer\n this.accounts = [];\n this.chain = {\n id: (_b = (_a = metadata === null || metadata === void 0 ? void 0 : metadata.appChainIds) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 1,\n };\n }\n /**\n * @returns `null` if the request was successful.\n * https://eips.ethereum.org/EIPS/eip-3326#wallet_switchethereumchain\n */\n async handleSwitchChainRequest(request) {\n assertParamsChainId(request.params);\n const chainId = ensureIntNumber(request.params[0].chainId);\n const localResult = this.updateChain(chainId);\n if (localResult)\n return null;\n const popupResult = await this.sendRequestToPopup(request);\n if (popupResult === null) {\n this.updateChain(chainId);\n }\n return popupResult;\n }\n async handleGetCapabilitiesRequest(request) {\n assertGetCapabilitiesParams(request.params);\n const requestedAccount = request.params[0];\n const filterChainIds = request.params[1]; // Optional second parameter\n if (!this.accounts.some((account) => isAddressEqual(account, requestedAccount))) {\n throw standardErrors.provider.unauthorized('no active account found when getting capabilities');\n }\n const capabilities = store.getState().account.capabilities;\n // Return empty object if capabilities is undefined\n if (!capabilities) {\n return {};\n }\n // If no filter is provided, return all capabilities\n if (!filterChainIds || filterChainIds.length === 0) {\n return capabilities;\n }\n // Convert filter chain IDs to numbers once for efficient lookup\n const filterChainNumbers = new Set(filterChainIds.map((chainId) => hexToNumber(chainId)));\n // Filter capabilities\n const filteredCapabilities = Object.fromEntries(Object.entries(capabilities).filter(([capabilityKey]) => {\n try {\n const capabilityChainNumber = hexToNumber(capabilityKey);\n return filterChainNumbers.has(capabilityChainNumber);\n }\n catch (_a) {\n // If capabilityKey is not a valid hex string, exclude it\n return false;\n }\n }));\n return filteredCapabilities;\n }\n async sendEncryptedRequest(request) {\n const sharedSecret = await this.keyManager.getSharedSecret();\n if (!sharedSecret) {\n throw standardErrors.provider.unauthorized('No shared secret found when encrypting request');\n }\n const encrypted = await encryptContent({\n action: request,\n chainId: this.chain.id,\n }, sharedSecret);\n const correlationId = correlationIds.get(request);\n const message = await this.createRequestMessage({ encrypted }, correlationId);\n return this.communicator.postRequestAndWaitForResponse(message);\n }\n async createRequestMessage(content, correlationId) {\n const publicKey = await exportKeyToHexString('public', await this.keyManager.getOwnPublicKey());\n return {\n id: crypto.randomUUID(),\n correlationId,\n sender: publicKey,\n content,\n timestamp: new Date(),\n };\n }\n async decryptResponseMessage(message) {\n var _a, _b, _c;\n const content = message.content;\n // throw protocol level error\n if ('failure' in content) {\n throw content.failure;\n }\n const sharedSecret = await this.keyManager.getSharedSecret();\n if (!sharedSecret) {\n throw standardErrors.provider.unauthorized('Invalid session: no shared secret found when decrypting response');\n }\n const response = await decryptContent(content.encrypted, sharedSecret);\n const availableChains = (_a = response.data) === null || _a === void 0 ? void 0 : _a.chains;\n if (availableChains) {\n const nativeCurrencies = (_b = response.data) === null || _b === void 0 ? void 0 : _b.nativeCurrencies;\n const chains = Object.entries(availableChains).map(([id, rpcUrl]) => {\n const nativeCurrency = nativeCurrencies === null || nativeCurrencies === void 0 ? void 0 : nativeCurrencies[Number(id)];\n return Object.assign({ id: Number(id), rpcUrl }, (nativeCurrency ? { nativeCurrency } : {}));\n });\n store.chains.set(chains);\n this.updateChain(this.chain.id, chains);\n createClients(chains);\n }\n const walletCapabilities = (_c = response.data) === null || _c === void 0 ? void 0 : _c.capabilities;\n if (walletCapabilities) {\n store.account.set({\n capabilities: walletCapabilities,\n });\n }\n return response;\n }\n updateChain(chainId, newAvailableChains) {\n var _a;\n const state = store.getState();\n const chains = newAvailableChains !== null && newAvailableChains !== void 0 ? newAvailableChains : state.chains;\n const chain = chains === null || chains === void 0 ? void 0 : chains.find((chain) => chain.id === chainId);\n if (!chain)\n return false;\n if (chain !== this.chain) {\n this.chain = chain;\n store.account.set({\n chain,\n });\n (_a = this.callback) === null || _a === void 0 ? void 0 : _a.call(this, 'chainChanged', hexStringFromNumber(chain.id));\n }\n return true;\n }\n async addSubAccount(request) {\n var _a, _b, _c, _d;\n const state = store.getState();\n const subAccount = state.subAccount;\n const subAccountsConfig = store.subAccountsConfig.get();\n if (subAccount === null || subAccount === void 0 ? void 0 : subAccount.address) {\n this.accounts = (subAccountsConfig === null || subAccountsConfig === void 0 ? void 0 : subAccountsConfig.enableAutoSubAccounts)\n ? prependWithoutDuplicates(this.accounts, subAccount.address)\n : appendWithoutDuplicates(this.accounts, subAccount.address);\n (_a = this.callback) === null || _a === void 0 ? void 0 : _a.call(this, 'accountsChanged', this.accounts);\n return subAccount;\n }\n // Wait for the popup to be loaded before sending the request\n await ((_c = (_b = this.communicator).waitForPopupLoaded) === null || _c === void 0 ? void 0 : _c.call(_b));\n if (Array.isArray(request.params) &&\n request.params.length > 0 &&\n request.params[0].account &&\n request.params[0].account.type === 'create') {\n let keys;\n if (request.params[0].account.keys && request.params[0].account.keys.length > 0) {\n keys = request.params[0].account.keys;\n }\n else {\n const config = (_d = store.subAccountsConfig.get()) !== null && _d !== void 0 ? _d : {};\n const { account: ownerAccount } = config.toOwnerAccount\n ? await config.toOwnerAccount()\n : await getCryptoKeyAccount();\n if (!ownerAccount) {\n throw standardErrors.provider.unauthorized('could not get subaccount owner account when adding sub account');\n }\n keys = [\n {\n type: ownerAccount.address ? 'address' : 'webauthn-p256',\n publicKey: ownerAccount.address || ownerAccount.publicKey,\n },\n ];\n }\n request.params[0].account.keys = keys;\n }\n const response = await this.sendRequestToPopup(request);\n assertSubAccount(response);\n return response;\n }\n shouldRequestUseSubAccountSigner(request) {\n const sender = getSenderFromRequest(request);\n const subAccount = store.subAccounts.get();\n if (sender) {\n return sender.toLowerCase() === (subAccount === null || subAccount === void 0 ? void 0 : subAccount.address.toLowerCase());\n }\n return false;\n }\n async sendRequestToSubAccountSigner(request) {\n var _a;\n const subAccount = store.subAccounts.get();\n const subAccountsConfig = store.subAccountsConfig.get();\n const config = store.config.get();\n assertPresence(subAccount === null || subAccount === void 0 ? void 0 : subAccount.address, standardErrors.provider.unauthorized('no active sub account when sending request to sub account signer'));\n // Get the owner account from the config\n const ownerAccount = (subAccountsConfig === null || subAccountsConfig === void 0 ? void 0 : subAccountsConfig.toOwnerAccount)\n ? await subAccountsConfig.toOwnerAccount()\n : await getCryptoKeyAccount();\n assertPresence(ownerAccount === null || ownerAccount === void 0 ? void 0 : ownerAccount.account, standardErrors.provider.unauthorized('no active sub account owner when sending request to sub account signer'));\n const sender = getSenderFromRequest(request);\n // if sender is undefined, we inject the active sub account\n // address into the params for the supported request methods\n if (sender === undefined) {\n request = addSenderToRequest(request, subAccount.address);\n }\n const client = getClient(this.chain.id);\n assertPresence(client, standardErrors.rpc.internal(`client not found for chainId ${this.chain.id} when sending request to sub account signer`));\n const globalAccountAddress = this.accounts.find((account) => account.toLowerCase() !== subAccount.address.toLowerCase());\n assertPresence(globalAccountAddress, standardErrors.provider.unauthorized('no global account found when sending request to sub account signer'));\n const dataSuffix = makeDataSuffix({\n attribution: (_a = config.preference) === null || _a === void 0 ? void 0 : _a.attribution,\n dappOrigin: window.location.origin,\n });\n const publicKey = ownerAccount.account.type === 'local'\n ? ownerAccount.account.address\n : ownerAccount.account.publicKey;\n let ownerIndex = await findOwnerIndex({\n address: subAccount.address,\n factory: subAccount.factory,\n factoryData: subAccount.factoryData,\n publicKey,\n client,\n });\n if (ownerIndex === -1) {\n const correlationId = correlationIds.get(request);\n logAddOwnerStarted({ method: request.method, correlationId });\n try {\n ownerIndex = await handleAddSubAccountOwner({\n ownerAccount: ownerAccount.account,\n globalAccountRequest: this.sendRequestToPopup.bind(this),\n });\n logAddOwnerCompleted({ method: request.method, correlationId });\n }\n catch (error) {\n logAddOwnerError({\n method: request.method,\n correlationId,\n errorMessage: parseErrorMessageFromAny(error),\n });\n return standardErrors.provider.unauthorized('failed to add sub account owner when sending request to sub account signer');\n }\n }\n const { request: subAccountRequest } = await createSubAccountSigner({\n address: subAccount.address,\n owner: ownerAccount.account,\n client: client,\n factory: subAccount.factory,\n factoryData: subAccount.factoryData,\n parentAddress: globalAccountAddress,\n attribution: dataSuffix ? { suffix: dataSuffix } : undefined,\n ownerIndex,\n });\n try {\n const result = await subAccountRequest(request);\n return result;\n }\n catch (error) {\n let errorObject;\n if (isViemError(error)) {\n errorObject = JSON.parse(error.details);\n }\n else if (isActionableHttpRequestError(error)) {\n errorObject = error;\n }\n else {\n throw error;\n }\n if (!(isActionableHttpRequestError(errorObject) && errorObject.data)) {\n throw error;\n }\n if (!errorObject.data) {\n throw error;\n }\n const correlationId = correlationIds.get(request);\n logInsufficientBalanceErrorHandlingStarted({ method: request.method, correlationId });\n try {\n const result = await handleInsufficientBalanceError({\n errorData: errorObject.data,\n globalAccountAddress,\n subAccountAddress: subAccount.address,\n client,\n request,\n subAccountRequest,\n globalAccountRequest: this.request.bind(this),\n });\n logInsufficientBalanceErrorHandlingCompleted({ method: request.method, correlationId });\n return result;\n }\n catch (handlingError) {\n console.error(handlingError);\n logInsufficientBalanceErrorHandlingError({\n method: request.method,\n correlationId,\n errorMessage: parseErrorMessageFromAny(handlingError),\n });\n throw error;\n }\n }\n }\n}\n//# sourceMappingURL=Signer.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Communicator } from '../../../core/communicator/Communicator.js';\nimport { CB_WALLET_RPC_URL } from '../../../core/constants.js';\nimport { standardErrorCodes } from '../../../core/error/constants.js';\nimport { standardErrors } from '../../../core/error/errors.js';\nimport { serializeError } from '../../../core/error/serialize.js';\nimport { ProviderEventEmitter, } from '../../../core/provider/interface.js';\nimport { logRequestError, logRequestResponded, logRequestStarted, } from '../../../core/telemetry/events/provider.js';\nimport { hexStringFromNumber } from '../../../core/type/util.js';\nimport { Signer } from '../../../sign/base-account/Signer.js';\nimport { initSubAccountConfig } from '../../../sign/base-account/utils.js';\nimport { correlationIds } from '../../../store/correlation-ids/store.js';\nimport { store } from '../../../store/store.js';\nimport { checkErrorForInvalidRequestArgs, fetchRPCRequest } from '../../../util/provider.js';\nexport class BaseAccountProvider extends ProviderEventEmitter {\n constructor(_a) {\n var { metadata } = _a, _b = _a.preference, { walletUrl } = _b, preference = __rest(_b, [\"walletUrl\"]);\n super();\n this.isBaseAccount = true;\n this.communicator = new Communicator({\n url: walletUrl,\n metadata,\n preference,\n });\n this.signer = new Signer({\n metadata,\n communicator: this.communicator,\n callback: this.emit.bind(this),\n });\n }\n async request(args) {\n // correlation id across the entire request lifecycle\n const correlationId = crypto.randomUUID();\n correlationIds.set(args, correlationId);\n logRequestStarted({ method: args.method, correlationId });\n try {\n const result = await this._request(args);\n logRequestResponded({\n method: args.method,\n correlationId,\n });\n return result;\n }\n catch (error) {\n logRequestError({\n method: args.method,\n correlationId,\n errorMessage: error instanceof Error ? error.message : '',\n });\n throw error;\n }\n finally {\n correlationIds.delete(args);\n }\n }\n async _request(args) {\n var _a, _b;\n try {\n checkErrorForInvalidRequestArgs(args);\n if (!this.signer.isConnected) {\n switch (args.method) {\n case 'eth_requestAccounts': {\n await this.signer.handshake({ method: 'handshake' });\n // We are translating eth_requestAccounts to wallet_connect always\n await initSubAccountConfig();\n await this.signer.request({\n method: 'wallet_connect',\n params: [\n {\n version: '1',\n capabilities: Object.assign({}, ((_b = (_a = store.subAccountsConfig.get()) === null || _a === void 0 ? void 0 : _a.capabilities) !== null && _b !== void 0 ? _b : {})),\n },\n ],\n });\n // wallet_connect will retrieve and save the account info in the store\n // continue to requesting it again at L130 for emitting the connect event +\n // returning the accounts\n break;\n }\n case 'wallet_connect': {\n await this.signer.handshake({ method: 'handshake' }); // exchange session keys\n const result = await this.signer.request(args); // send diffie-hellman encrypted request\n return result;\n }\n case 'wallet_sendCalls':\n case 'wallet_sign': {\n try {\n await this.signer.handshake({ method: 'handshake' }); // exchange session keys\n const result = await this.signer.request(args); // send diffie-hellman encrypted request\n return result;\n }\n finally {\n await this.signer.cleanup(); // clean up (rotate) the ephemeral session keys\n }\n }\n case 'wallet_getCallsStatus': {\n const result = await fetchRPCRequest(args, CB_WALLET_RPC_URL);\n return result;\n }\n case 'eth_accounts': {\n return [];\n }\n case 'net_version': {\n const result = 1; // default value\n return result;\n }\n case 'eth_chainId': {\n const result = hexStringFromNumber(1); // default value\n return result;\n }\n default: {\n throw standardErrors.provider.unauthorized(\"Must call 'eth_requestAccounts' before other methods\");\n }\n }\n }\n const result = await this.signer.request(args);\n return result;\n }\n catch (error) {\n const { code } = error;\n if (code === standardErrorCodes.provider.unauthorized) {\n await this.disconnect();\n }\n return Promise.reject(serializeError(error));\n }\n }\n async disconnect() {\n await this.signer.cleanup();\n correlationIds.clear();\n this.emit('disconnect', standardErrors.provider.disconnected('User initiated disconnection'));\n }\n}\n//# sourceMappingURL=BaseAccountProvider.js.map","const TBA_PROVIDER_IDENTIFIER = 'isCoinbaseBrowser';\nexport function getInjectedProvider() {\n var _a, _b;\n const injectedProvider = (_a = window.ethereum) !== null && _a !== void 0 ? _a : (_b = window.top) === null || _b === void 0 ? void 0 : _b.ethereum;\n if (injectedProvider === null || injectedProvider === void 0 ? void 0 : injectedProvider[TBA_PROVIDER_IDENTIFIER]) {\n return injectedProvider;\n }\n return null;\n}\n//# sourceMappingURL=getInjectedProvider.js.map","import { loadTelemetryScript } from '../../../core/telemetry/initCCA.js';\nimport { abi } from '../../../sign/base-account/utils/constants.js';\nimport { store } from '../../../store/store.js';\nimport { assertPresence } from '../../../util/assertPresence.js';\nimport { checkCrossOriginOpenerPolicy } from '../../../util/checkCrossOriginOpenerPolicy.js';\nimport { validatePreferences, validateSubAccount } from '../../../util/validatePreferences.js';\nimport { decodeAbiParameters, encodeFunctionData, toHex } from 'viem';\nimport { BaseAccountProvider } from './BaseAccountProvider.js';\nimport { getInjectedProvider } from './getInjectedProvider.js';\n/**\n * Create Base AccountSDK instance with EIP-1193 compliant provider\n * @param params - Options to create a base account SDK instance.\n * @returns An SDK object with a getProvider method that returns an EIP-1193 compliant provider.\n */\nexport function createBaseAccountSDK(params) {\n var _a, _b, _c, _d;\n const options = {\n metadata: {\n appName: params.appName || 'App',\n appLogoUrl: params.appLogoUrl || '',\n appChainIds: params.appChainIds || [],\n },\n preference: (_a = params.preference) !== null && _a !== void 0 ? _a : {},\n paymasterUrls: params.paymasterUrls,\n };\n // ====================================================================\n // If we have a toOwnerAccount function, set it in the non-persisted config\n // ====================================================================\n if ((_b = params.subAccounts) === null || _b === void 0 ? void 0 : _b.toOwnerAccount) {\n validateSubAccount(params.subAccounts.toOwnerAccount);\n }\n store.subAccountsConfig.set({\n toOwnerAccount: (_c = params.subAccounts) === null || _c === void 0 ? void 0 : _c.toOwnerAccount,\n // @ts-expect-error - enableSubAccounts is not officially supported yet\n enableAutoSubAccounts: (_d = params.subAccounts) === null || _d === void 0 ? void 0 : _d.enableAutoSubAccounts,\n });\n // ====================================================================\n // Set the options in the store and rehydrate the store from storage\n // ====================================================================\n store.config.set(options);\n void store.persist.rehydrate();\n // ====================================================================\n // Validation and telemetry\n // ====================================================================\n void checkCrossOriginOpenerPolicy();\n validatePreferences(options.preference);\n if (options.preference.telemetry !== false) {\n void loadTelemetryScript();\n }\n // ====================================================================\n // Return the provider\n // ====================================================================\n let provider = null;\n const sdk = {\n getProvider: () => {\n var _a;\n if (!provider) {\n provider = (_a = getInjectedProvider()) !== null && _a !== void 0 ? _a : new BaseAccountProvider(options);\n }\n return provider;\n },\n subAccount: {\n async create(accountParam) {\n var _a;\n return (await ((_a = sdk.getProvider()) === null || _a === void 0 ? void 0 : _a.request({\n method: 'wallet_addSubAccount',\n params: [\n {\n version: '1',\n account: accountParam,\n },\n ],\n })));\n },\n async get() {\n var _a, _b;\n const subAccount = store.subAccounts.get();\n if (subAccount === null || subAccount === void 0 ? void 0 : subAccount.address) {\n return subAccount;\n }\n const response = (await ((_a = sdk.getProvider()) === null || _a === void 0 ? void 0 : _a.request({\n method: 'wallet_connect',\n params: [\n {\n version: '1',\n capabilities: {},\n },\n ],\n })));\n const subAccounts = (_b = response.accounts[0].capabilities) === null || _b === void 0 ? void 0 : _b.subAccounts;\n if (!Array.isArray(subAccounts)) {\n return null;\n }\n return subAccounts[0];\n },\n addOwner: async ({ address, publicKey, chainId, }) => {\n var _a, _b;\n const subAccount = store.subAccounts.get();\n const account = store.account.get();\n assertPresence(account, new Error('account does not exist'));\n assertPresence(subAccount === null || subAccount === void 0 ? void 0 : subAccount.address, new Error('subaccount does not exist'));\n const calls = [];\n if (publicKey) {\n const [x, y] = decodeAbiParameters([{ type: 'bytes32' }, { type: 'bytes32' }], publicKey);\n calls.push({\n to: subAccount.address,\n data: encodeFunctionData({\n abi,\n functionName: 'addOwnerPublicKey',\n args: [x, y],\n }),\n value: toHex(0),\n });\n }\n if (address) {\n calls.push({\n to: subAccount.address,\n data: encodeFunctionData({\n abi,\n functionName: 'addOwnerAddress',\n args: [address],\n }),\n value: toHex(0),\n });\n }\n return (await ((_a = sdk.getProvider()) === null || _a === void 0 ? void 0 : _a.request({\n method: 'wallet_sendCalls',\n params: [\n {\n calls,\n chainId: toHex(chainId),\n from: (_b = account.accounts) === null || _b === void 0 ? void 0 : _b[0],\n version: '1',\n },\n ],\n })));\n },\n setToOwnerAccount(toSubAccountOwner) {\n validateSubAccount(toSubAccountOwner);\n store.subAccountsConfig.set({\n toOwnerAccount: toSubAccountOwner,\n });\n },\n },\n };\n return sdk;\n}\n//# sourceMappingURL=createBaseAccountSDK.js.map"],"names":["spendPermissions","account","chains","config","_","ComponentType","ActionType","AnalyticsEventImportance","name","_jsx","useState","useEffect","render","_createElement","_jsxs","username","useMemo","popup","dialog","logRequestStarted","logRequestError","h","generateKeyPair","store","createStore","get","WebCryptoP256.createKeyPair","Hex.slice","PublicKey.toHex","sign","WebAuthnP256.getSignPayload","WebCryptoP256.sign","Signature.toHex","slice","toHex","Signature.fromHex","__rest","_a","_b","parameters","address","chainId","y","subAccountsConfig","subAccount","chain","keys","result","subAccounts"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53]}