@lidofinance/wallets-testing-wallets 1.35.0 → 1.36.1-alpha-close-modals.1

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 (442) hide show
  1. package/dist/src/bitget/bitget.constants.d.ts +3 -0
  2. package/dist/src/bitget/bitget.constants.d.ts.map +1 -0
  3. package/dist/src/{EOA/bitget → bitget}/bitget.constants.js +2 -3
  4. package/dist/src/bitget/bitget.constants.js.map +1 -0
  5. package/dist/src/bitget/bitgetPage.d.ts +26 -0
  6. package/dist/src/bitget/bitgetPage.d.ts.map +1 -0
  7. package/dist/src/{EOA/bitget → bitget}/bitgetPage.js +19 -13
  8. package/dist/src/bitget/bitgetPage.js.map +1 -0
  9. package/dist/src/bitget/index.d.ts.map +1 -0
  10. package/dist/src/bitget/index.js.map +1 -0
  11. package/dist/src/coin98/coin98.constants.d.ts +3 -0
  12. package/dist/src/coin98/coin98.constants.d.ts.map +1 -0
  13. package/dist/src/{EOA/coin98 → coin98}/coin98.constants.js +2 -3
  14. package/dist/src/coin98/coin98.constants.js.map +1 -0
  15. package/dist/src/coin98/coin98.page.d.ts +27 -0
  16. package/dist/src/coin98/coin98.page.d.ts.map +1 -0
  17. package/dist/src/{EOA/coin98 → coin98}/coin98.page.js +22 -18
  18. package/dist/src/coin98/coin98.page.js.map +1 -0
  19. package/dist/src/coin98/helper.d.ts.map +1 -0
  20. package/dist/src/coin98/helper.js.map +1 -0
  21. package/dist/src/coin98/index.d.ts.map +1 -0
  22. package/dist/src/coin98/index.js.map +1 -0
  23. package/dist/src/coinbase/coinbase.constants.d.ts +3 -0
  24. package/dist/src/coinbase/coinbase.constants.d.ts.map +1 -0
  25. package/dist/src/{EOA/coinbase → coinbase}/coinbase.constants.js +2 -3
  26. package/dist/src/coinbase/coinbase.constants.js.map +1 -0
  27. package/dist/src/{EOA/coinbase → coinbase}/coinbase.page.d.ts +9 -10
  28. package/dist/src/coinbase/coinbase.page.d.ts.map +1 -0
  29. package/dist/src/{EOA/coinbase → coinbase}/coinbase.page.js +16 -12
  30. package/dist/src/coinbase/coinbase.page.js.map +1 -0
  31. package/dist/src/coinbase/index.d.ts.map +1 -0
  32. package/dist/src/coinbase/index.js.map +1 -0
  33. package/dist/src/ctrl/ctrl.constants.d.ts +3 -0
  34. package/dist/src/ctrl/ctrl.constants.d.ts.map +1 -0
  35. package/dist/src/{EOA/ctrl → ctrl}/ctrl.constants.js +2 -3
  36. package/dist/src/ctrl/ctrl.constants.js.map +1 -0
  37. package/dist/src/{EOA/ctrl → ctrl}/ctrl.page.d.ts +11 -11
  38. package/dist/src/ctrl/ctrl.page.d.ts.map +1 -0
  39. package/dist/src/{EOA/ctrl → ctrl}/ctrl.page.js +15 -15
  40. package/dist/src/ctrl/ctrl.page.js.map +1 -0
  41. package/dist/src/ctrl/index.d.ts.map +1 -0
  42. package/dist/src/ctrl/index.js.map +1 -0
  43. package/dist/src/ctrl/pages/index.d.ts.map +1 -0
  44. package/dist/src/ctrl/pages/index.js.map +1 -0
  45. package/dist/src/{EOA/ctrl → ctrl}/pages/login.page.d.ts +1 -1
  46. package/dist/src/ctrl/pages/login.page.d.ts.map +1 -0
  47. package/dist/src/ctrl/pages/login.page.js.map +1 -0
  48. package/dist/src/{EOA/ctrl → ctrl}/pages/onboarding.page.d.ts +1 -1
  49. package/dist/src/ctrl/pages/onboarding.page.d.ts.map +1 -0
  50. package/dist/src/ctrl/pages/onboarding.page.js.map +1 -0
  51. package/dist/src/ctrl/pages/walletOperations.page.d.ts.map +1 -0
  52. package/dist/src/ctrl/pages/walletOperations.page.js.map +1 -0
  53. package/dist/src/exodus/exodus.constants.d.ts +3 -0
  54. package/dist/src/exodus/exodus.constants.d.ts.map +1 -0
  55. package/dist/src/{EOA/exodus → exodus}/exodus.constants.js +2 -3
  56. package/dist/src/exodus/exodus.constants.js.map +1 -0
  57. package/dist/src/{EOA/exodus → exodus}/exodus.page.d.ts +10 -9
  58. package/dist/src/exodus/exodus.page.d.ts.map +1 -0
  59. package/dist/src/{EOA/exodus → exodus}/exodus.page.js +15 -9
  60. package/dist/src/exodus/exodus.page.js.map +1 -0
  61. package/dist/src/exodus/index.d.ts.map +1 -0
  62. package/dist/src/exodus/index.js.map +1 -0
  63. package/dist/src/exodus/pages/index.d.ts.map +1 -0
  64. package/dist/src/exodus/pages/index.js.map +1 -0
  65. package/dist/src/{EOA/exodus → exodus}/pages/onboarding.page.d.ts +1 -1
  66. package/dist/src/exodus/pages/onboarding.page.d.ts.map +1 -0
  67. package/dist/src/exodus/pages/onboarding.page.js.map +1 -0
  68. package/dist/src/index.d.ts +9 -9
  69. package/dist/src/index.d.ts.map +1 -1
  70. package/dist/src/index.js +11 -9
  71. package/dist/src/index.js.map +1 -1
  72. package/dist/src/metamask/helper.d.ts.map +1 -0
  73. package/dist/src/metamask/helper.js.map +1 -0
  74. package/dist/src/metamask/index.d.ts.map +1 -0
  75. package/dist/src/metamask/index.js.map +1 -0
  76. package/dist/src/metamask/metamask.constants.d.ts +3 -0
  77. package/dist/src/metamask/metamask.constants.d.ts.map +1 -0
  78. package/dist/src/{EOA/metamask → metamask}/metamask.constants.js +2 -3
  79. package/dist/src/metamask/metamask.constants.js.map +1 -0
  80. package/dist/src/{EOA/metamask → metamask}/metamask.page.d.ts +8 -11
  81. package/dist/src/metamask/metamask.page.d.ts.map +1 -0
  82. package/dist/src/{EOA/metamask → metamask}/metamask.page.js +17 -14
  83. package/dist/src/metamask/metamask.page.js.map +1 -0
  84. package/dist/src/metamask/pages/elements/accountMenu.element.d.ts.map +1 -0
  85. package/dist/src/metamask/pages/elements/accountMenu.element.js.map +1 -0
  86. package/dist/src/metamask/pages/elements/header.element.d.ts.map +1 -0
  87. package/dist/src/metamask/pages/elements/header.element.js.map +1 -0
  88. package/dist/src/metamask/pages/elements/index.d.ts.map +1 -0
  89. package/dist/src/metamask/pages/elements/index.js.map +1 -0
  90. package/dist/src/{EOA/metamask → metamask}/pages/elements/networkList.element.d.ts +1 -1
  91. package/dist/src/metamask/pages/elements/networkList.element.d.ts.map +1 -0
  92. package/dist/src/metamask/pages/elements/networkList.element.js.map +1 -0
  93. package/dist/src/{EOA/metamask → metamask}/pages/elements/networkSetting.element.d.ts +1 -1
  94. package/dist/src/metamask/pages/elements/networkSetting.element.d.ts.map +1 -0
  95. package/dist/src/metamask/pages/elements/networkSetting.element.js.map +1 -0
  96. package/dist/src/metamask/pages/elements/optionsMenu.element.d.ts.map +1 -0
  97. package/dist/src/metamask/pages/elements/optionsMenu.element.js.map +1 -0
  98. package/dist/src/{EOA/metamask → metamask}/pages/elements/popover.element.d.ts +4 -0
  99. package/dist/src/metamask/pages/elements/popover.element.d.ts.map +1 -0
  100. package/dist/src/{EOA/metamask → metamask}/pages/elements/popover.element.js +16 -0
  101. package/dist/src/metamask/pages/elements/popover.element.js.map +1 -0
  102. package/dist/src/{EOA/metamask → metamask}/pages/home.page.d.ts +1 -1
  103. package/dist/src/metamask/pages/home.page.d.ts.map +1 -0
  104. package/dist/src/metamask/pages/home.page.js.map +1 -0
  105. package/dist/src/metamask/pages/index.d.ts.map +1 -0
  106. package/dist/src/metamask/pages/index.js.map +1 -0
  107. package/dist/src/{EOA/metamask → metamask}/pages/login.page.d.ts +1 -1
  108. package/dist/src/metamask/pages/login.page.d.ts.map +1 -0
  109. package/dist/src/metamask/pages/login.page.js.map +1 -0
  110. package/dist/src/{EOA/metamask → metamask}/pages/onboarding.page.d.ts +1 -1
  111. package/dist/src/metamask/pages/onboarding.page.d.ts.map +1 -0
  112. package/dist/src/metamask/pages/onboarding.page.js.map +1 -0
  113. package/dist/src/{EOA/metamask → metamask}/pages/settings.page.d.ts +1 -1
  114. package/dist/src/metamask/pages/settings.page.d.ts.map +1 -0
  115. package/dist/src/metamask/pages/settings.page.js.map +1 -0
  116. package/dist/src/metamask/pages/walletOperations.page.d.ts.map +1 -0
  117. package/dist/src/{EOA/metamask → metamask}/pages/walletOperations.page.js +3 -1
  118. package/dist/src/metamask/pages/walletOperations.page.js.map +1 -0
  119. package/dist/src/okx/helper.d.ts.map +1 -0
  120. package/dist/src/okx/helper.js.map +1 -0
  121. package/dist/src/okx/index.d.ts.map +1 -0
  122. package/dist/src/okx/index.js.map +1 -0
  123. package/dist/src/okx/okx.constants.d.ts +3 -0
  124. package/dist/src/okx/okx.constants.d.ts.map +1 -0
  125. package/dist/src/{EOA/okx → okx}/okx.constants.js +2 -3
  126. package/dist/src/okx/okx.constants.js.map +1 -0
  127. package/dist/src/{EOA/okx → okx}/okx.page.d.ts +7 -9
  128. package/dist/src/okx/okx.page.d.ts.map +1 -0
  129. package/dist/src/{EOA/okx → okx}/okx.page.js +11 -11
  130. package/dist/src/okx/okx.page.js.map +1 -0
  131. package/dist/src/okx/pages/accountList.page.d.ts.map +1 -0
  132. package/dist/src/okx/pages/accountList.page.js.map +1 -0
  133. package/dist/src/okx/pages/home.page.d.ts.map +1 -0
  134. package/dist/src/{EOA/okx → okx}/pages/home.page.js +2 -2
  135. package/dist/src/okx/pages/home.page.js.map +1 -0
  136. package/dist/src/okx/pages/index.d.ts.map +1 -0
  137. package/dist/src/okx/pages/index.js.map +1 -0
  138. package/dist/src/{EOA/trustwallet → okx}/pages/login.page.d.ts +1 -1
  139. package/dist/src/okx/pages/login.page.d.ts.map +1 -0
  140. package/dist/src/okx/pages/login.page.js.map +1 -0
  141. package/dist/src/okx/pages/manageCrypto.page.d.ts.map +1 -0
  142. package/dist/src/okx/pages/manageCrypto.page.js.map +1 -0
  143. package/dist/src/{EOA/okx → okx}/pages/networkList.page.d.ts +1 -1
  144. package/dist/src/okx/pages/networkList.page.d.ts.map +1 -0
  145. package/dist/src/okx/pages/networkList.page.js.map +1 -0
  146. package/dist/src/{EOA/okx → okx}/pages/onboarding.page.d.ts +1 -1
  147. package/dist/src/okx/pages/onboarding.page.d.ts.map +1 -0
  148. package/dist/src/okx/pages/onboarding.page.js.map +1 -0
  149. package/dist/src/okx/pages/walletOperations.page.d.ts.map +1 -0
  150. package/dist/src/okx/pages/walletOperations.page.js.map +1 -0
  151. package/dist/src/safe/index.d.ts +4 -0
  152. package/dist/src/safe/index.d.ts.map +1 -0
  153. package/dist/src/{WC/safe → safe}/index.js +2 -1
  154. package/dist/src/safe/index.js.map +1 -0
  155. package/dist/src/safe/pages/home.page.d.ts.map +1 -0
  156. package/dist/src/safe/pages/home.page.js.map +1 -0
  157. package/dist/src/safe/pages/index.d.ts +5 -0
  158. package/dist/src/safe/pages/index.d.ts.map +1 -0
  159. package/dist/src/{WC/safe → safe}/pages/index.js +2 -0
  160. package/dist/src/safe/pages/index.js.map +1 -0
  161. package/dist/src/safe/pages/setting.page.d.ts +8 -0
  162. package/dist/src/safe/pages/setting.page.d.ts.map +1 -0
  163. package/dist/src/safe/pages/setting.page.js +12 -0
  164. package/dist/src/safe/pages/setting.page.js.map +1 -0
  165. package/dist/src/{WC/safe → safe}/pages/setup.page.d.ts +5 -4
  166. package/dist/src/safe/pages/setup.page.d.ts.map +1 -0
  167. package/dist/src/{WC/safe → safe}/pages/setup.page.js +27 -24
  168. package/dist/src/safe/pages/setup.page.js.map +1 -0
  169. package/dist/src/safe/pages/transaction.page.d.ts +27 -0
  170. package/dist/src/safe/pages/transaction.page.d.ts.map +1 -0
  171. package/dist/src/safe/pages/transaction.page.js +172 -0
  172. package/dist/src/safe/pages/transaction.page.js.map +1 -0
  173. package/dist/src/safe/safe.constants.d.ts +4 -0
  174. package/dist/src/safe/safe.constants.d.ts.map +1 -0
  175. package/dist/src/safe/safe.constants.js +25 -0
  176. package/dist/src/safe/safe.constants.js.map +1 -0
  177. package/dist/src/safe/safeIframe.page.d.ts +47 -0
  178. package/dist/src/safe/safeIframe.page.d.ts.map +1 -0
  179. package/dist/src/safe/safeIframe.page.js +129 -0
  180. package/dist/src/safe/safeIframe.page.js.map +1 -0
  181. package/dist/src/safe/safeWc.page.d.ts +39 -0
  182. package/dist/src/safe/safeWc.page.d.ts.map +1 -0
  183. package/dist/src/safe/safeWc.page.js +85 -0
  184. package/dist/src/safe/safeWc.page.js.map +1 -0
  185. package/dist/src/trustwallet/helper.d.ts.map +1 -0
  186. package/dist/src/trustwallet/helper.js.map +1 -0
  187. package/dist/src/trustwallet/index.d.ts.map +1 -0
  188. package/dist/src/trustwallet/index.js.map +1 -0
  189. package/dist/src/trustwallet/pages/home.page.d.ts.map +1 -0
  190. package/dist/src/trustwallet/pages/home.page.js.map +1 -0
  191. package/dist/src/trustwallet/pages/index.d.ts.map +1 -0
  192. package/dist/src/trustwallet/pages/index.js.map +1 -0
  193. package/dist/src/{EOA/okx → trustwallet}/pages/login.page.d.ts +1 -1
  194. package/dist/src/trustwallet/pages/login.page.d.ts.map +1 -0
  195. package/dist/src/trustwallet/pages/login.page.js.map +1 -0
  196. package/dist/src/{EOA/trustwallet → trustwallet}/pages/onboarding.page.d.ts +1 -1
  197. package/dist/src/trustwallet/pages/onboarding.page.d.ts.map +1 -0
  198. package/dist/src/trustwallet/pages/onboarding.page.js.map +1 -0
  199. package/dist/src/{EOA/trustwallet → trustwallet}/pages/setting.page.d.ts +1 -1
  200. package/dist/src/trustwallet/pages/setting.page.d.ts.map +1 -0
  201. package/dist/src/trustwallet/pages/setting.page.js.map +1 -0
  202. package/dist/src/trustwallet/pages/walletOperations.page.d.ts.map +1 -0
  203. package/dist/src/trustwallet/pages/walletOperations.page.js.map +1 -0
  204. package/dist/src/{EOA/trustwallet → trustwallet}/trustWallet.page.d.ts +7 -10
  205. package/dist/src/trustwallet/trustWallet.page.d.ts.map +1 -0
  206. package/dist/src/{EOA/trustwallet → trustwallet}/trustWallet.page.js +11 -13
  207. package/dist/src/trustwallet/trustWallet.page.js.map +1 -0
  208. package/dist/src/trustwallet/trustwallet.constants.d.ts +3 -0
  209. package/dist/src/trustwallet/trustwallet.constants.d.ts.map +1 -0
  210. package/dist/src/{EOA/trustwallet → trustwallet}/trustwallet.constants.js +2 -3
  211. package/dist/src/trustwallet/trustwallet.constants.js.map +1 -0
  212. package/dist/src/wallet.page.d.ts +38 -10
  213. package/dist/src/wallet.page.d.ts.map +1 -1
  214. package/dist/src/wallets.constants.d.ts +6 -6
  215. package/dist/src/wallets.constants.d.ts.map +1 -1
  216. package/dist/src/wallets.constants.js +8 -7
  217. package/dist/src/wallets.constants.js.map +1 -1
  218. package/dist/tsconfig.tsbuildinfo +1 -1
  219. package/package.json +3 -2
  220. package/dist/src/EOA/bitget/bitget.constants.d.ts +0 -3
  221. package/dist/src/EOA/bitget/bitget.constants.d.ts.map +0 -1
  222. package/dist/src/EOA/bitget/bitget.constants.js.map +0 -1
  223. package/dist/src/EOA/bitget/bitgetPage.d.ts +0 -25
  224. package/dist/src/EOA/bitget/bitgetPage.d.ts.map +0 -1
  225. package/dist/src/EOA/bitget/bitgetPage.js.map +0 -1
  226. package/dist/src/EOA/bitget/index.d.ts.map +0 -1
  227. package/dist/src/EOA/bitget/index.js.map +0 -1
  228. package/dist/src/EOA/coin98/coin98.constants.d.ts +0 -3
  229. package/dist/src/EOA/coin98/coin98.constants.d.ts.map +0 -1
  230. package/dist/src/EOA/coin98/coin98.constants.js.map +0 -1
  231. package/dist/src/EOA/coin98/coin98.page.d.ts +0 -26
  232. package/dist/src/EOA/coin98/coin98.page.d.ts.map +0 -1
  233. package/dist/src/EOA/coin98/coin98.page.js.map +0 -1
  234. package/dist/src/EOA/coin98/helper.d.ts.map +0 -1
  235. package/dist/src/EOA/coin98/helper.js.map +0 -1
  236. package/dist/src/EOA/coin98/index.d.ts.map +0 -1
  237. package/dist/src/EOA/coin98/index.js.map +0 -1
  238. package/dist/src/EOA/coinbase/coinbase.constants.d.ts +0 -3
  239. package/dist/src/EOA/coinbase/coinbase.constants.d.ts.map +0 -1
  240. package/dist/src/EOA/coinbase/coinbase.constants.js.map +0 -1
  241. package/dist/src/EOA/coinbase/coinbase.page.d.ts.map +0 -1
  242. package/dist/src/EOA/coinbase/coinbase.page.js.map +0 -1
  243. package/dist/src/EOA/coinbase/index.d.ts.map +0 -1
  244. package/dist/src/EOA/coinbase/index.js.map +0 -1
  245. package/dist/src/EOA/ctrl/ctrl.constants.d.ts +0 -3
  246. package/dist/src/EOA/ctrl/ctrl.constants.d.ts.map +0 -1
  247. package/dist/src/EOA/ctrl/ctrl.constants.js.map +0 -1
  248. package/dist/src/EOA/ctrl/ctrl.page.d.ts.map +0 -1
  249. package/dist/src/EOA/ctrl/ctrl.page.js.map +0 -1
  250. package/dist/src/EOA/ctrl/index.d.ts.map +0 -1
  251. package/dist/src/EOA/ctrl/index.js.map +0 -1
  252. package/dist/src/EOA/ctrl/pages/index.d.ts.map +0 -1
  253. package/dist/src/EOA/ctrl/pages/index.js.map +0 -1
  254. package/dist/src/EOA/ctrl/pages/login.page.d.ts.map +0 -1
  255. package/dist/src/EOA/ctrl/pages/login.page.js.map +0 -1
  256. package/dist/src/EOA/ctrl/pages/onboarding.page.d.ts.map +0 -1
  257. package/dist/src/EOA/ctrl/pages/onboarding.page.js.map +0 -1
  258. package/dist/src/EOA/ctrl/pages/walletOperations.page.d.ts.map +0 -1
  259. package/dist/src/EOA/ctrl/pages/walletOperations.page.js.map +0 -1
  260. package/dist/src/EOA/exodus/exodus.constants.d.ts +0 -3
  261. package/dist/src/EOA/exodus/exodus.constants.d.ts.map +0 -1
  262. package/dist/src/EOA/exodus/exodus.constants.js.map +0 -1
  263. package/dist/src/EOA/exodus/exodus.page.d.ts.map +0 -1
  264. package/dist/src/EOA/exodus/exodus.page.js.map +0 -1
  265. package/dist/src/EOA/exodus/index.d.ts.map +0 -1
  266. package/dist/src/EOA/exodus/index.js.map +0 -1
  267. package/dist/src/EOA/exodus/pages/index.d.ts.map +0 -1
  268. package/dist/src/EOA/exodus/pages/index.js.map +0 -1
  269. package/dist/src/EOA/exodus/pages/onboarding.page.d.ts.map +0 -1
  270. package/dist/src/EOA/exodus/pages/onboarding.page.js.map +0 -1
  271. package/dist/src/EOA/metamask/helper.d.ts.map +0 -1
  272. package/dist/src/EOA/metamask/helper.js.map +0 -1
  273. package/dist/src/EOA/metamask/index.d.ts.map +0 -1
  274. package/dist/src/EOA/metamask/index.js.map +0 -1
  275. package/dist/src/EOA/metamask/metamask.constants.d.ts +0 -3
  276. package/dist/src/EOA/metamask/metamask.constants.d.ts.map +0 -1
  277. package/dist/src/EOA/metamask/metamask.constants.js.map +0 -1
  278. package/dist/src/EOA/metamask/metamask.page.d.ts.map +0 -1
  279. package/dist/src/EOA/metamask/metamask.page.js.map +0 -1
  280. package/dist/src/EOA/metamask/pages/elements/accountMenu.element.d.ts.map +0 -1
  281. package/dist/src/EOA/metamask/pages/elements/accountMenu.element.js.map +0 -1
  282. package/dist/src/EOA/metamask/pages/elements/header.element.d.ts.map +0 -1
  283. package/dist/src/EOA/metamask/pages/elements/header.element.js.map +0 -1
  284. package/dist/src/EOA/metamask/pages/elements/index.d.ts.map +0 -1
  285. package/dist/src/EOA/metamask/pages/elements/index.js.map +0 -1
  286. package/dist/src/EOA/metamask/pages/elements/networkList.element.d.ts.map +0 -1
  287. package/dist/src/EOA/metamask/pages/elements/networkList.element.js.map +0 -1
  288. package/dist/src/EOA/metamask/pages/elements/networkSetting.element.d.ts.map +0 -1
  289. package/dist/src/EOA/metamask/pages/elements/networkSetting.element.js.map +0 -1
  290. package/dist/src/EOA/metamask/pages/elements/optionsMenu.element.d.ts.map +0 -1
  291. package/dist/src/EOA/metamask/pages/elements/optionsMenu.element.js.map +0 -1
  292. package/dist/src/EOA/metamask/pages/elements/popover.element.d.ts.map +0 -1
  293. package/dist/src/EOA/metamask/pages/elements/popover.element.js.map +0 -1
  294. package/dist/src/EOA/metamask/pages/home.page.d.ts.map +0 -1
  295. package/dist/src/EOA/metamask/pages/home.page.js.map +0 -1
  296. package/dist/src/EOA/metamask/pages/index.d.ts.map +0 -1
  297. package/dist/src/EOA/metamask/pages/index.js.map +0 -1
  298. package/dist/src/EOA/metamask/pages/login.page.d.ts.map +0 -1
  299. package/dist/src/EOA/metamask/pages/login.page.js.map +0 -1
  300. package/dist/src/EOA/metamask/pages/onboarding.page.d.ts.map +0 -1
  301. package/dist/src/EOA/metamask/pages/onboarding.page.js.map +0 -1
  302. package/dist/src/EOA/metamask/pages/settings.page.d.ts.map +0 -1
  303. package/dist/src/EOA/metamask/pages/settings.page.js.map +0 -1
  304. package/dist/src/EOA/metamask/pages/walletOperations.page.d.ts.map +0 -1
  305. package/dist/src/EOA/metamask/pages/walletOperations.page.js.map +0 -1
  306. package/dist/src/EOA/okx/helper.d.ts.map +0 -1
  307. package/dist/src/EOA/okx/helper.js.map +0 -1
  308. package/dist/src/EOA/okx/index.d.ts.map +0 -1
  309. package/dist/src/EOA/okx/index.js.map +0 -1
  310. package/dist/src/EOA/okx/okx.constants.d.ts +0 -3
  311. package/dist/src/EOA/okx/okx.constants.d.ts.map +0 -1
  312. package/dist/src/EOA/okx/okx.constants.js.map +0 -1
  313. package/dist/src/EOA/okx/okx.page.d.ts.map +0 -1
  314. package/dist/src/EOA/okx/okx.page.js.map +0 -1
  315. package/dist/src/EOA/okx/pages/accountList.page.d.ts.map +0 -1
  316. package/dist/src/EOA/okx/pages/accountList.page.js.map +0 -1
  317. package/dist/src/EOA/okx/pages/home.page.d.ts.map +0 -1
  318. package/dist/src/EOA/okx/pages/home.page.js.map +0 -1
  319. package/dist/src/EOA/okx/pages/index.d.ts.map +0 -1
  320. package/dist/src/EOA/okx/pages/index.js.map +0 -1
  321. package/dist/src/EOA/okx/pages/login.page.d.ts.map +0 -1
  322. package/dist/src/EOA/okx/pages/login.page.js.map +0 -1
  323. package/dist/src/EOA/okx/pages/manageCrypto.page.d.ts.map +0 -1
  324. package/dist/src/EOA/okx/pages/manageCrypto.page.js.map +0 -1
  325. package/dist/src/EOA/okx/pages/networkList.page.d.ts.map +0 -1
  326. package/dist/src/EOA/okx/pages/networkList.page.js.map +0 -1
  327. package/dist/src/EOA/okx/pages/onboarding.page.d.ts.map +0 -1
  328. package/dist/src/EOA/okx/pages/onboarding.page.js.map +0 -1
  329. package/dist/src/EOA/okx/pages/walletOperations.page.d.ts.map +0 -1
  330. package/dist/src/EOA/okx/pages/walletOperations.page.js.map +0 -1
  331. package/dist/src/EOA/trustwallet/helper.d.ts.map +0 -1
  332. package/dist/src/EOA/trustwallet/helper.js.map +0 -1
  333. package/dist/src/EOA/trustwallet/index.d.ts.map +0 -1
  334. package/dist/src/EOA/trustwallet/index.js.map +0 -1
  335. package/dist/src/EOA/trustwallet/pages/home.page.d.ts.map +0 -1
  336. package/dist/src/EOA/trustwallet/pages/home.page.js.map +0 -1
  337. package/dist/src/EOA/trustwallet/pages/index.d.ts.map +0 -1
  338. package/dist/src/EOA/trustwallet/pages/index.js.map +0 -1
  339. package/dist/src/EOA/trustwallet/pages/login.page.d.ts.map +0 -1
  340. package/dist/src/EOA/trustwallet/pages/login.page.js.map +0 -1
  341. package/dist/src/EOA/trustwallet/pages/onboarding.page.d.ts.map +0 -1
  342. package/dist/src/EOA/trustwallet/pages/onboarding.page.js.map +0 -1
  343. package/dist/src/EOA/trustwallet/pages/setting.page.d.ts.map +0 -1
  344. package/dist/src/EOA/trustwallet/pages/setting.page.js.map +0 -1
  345. package/dist/src/EOA/trustwallet/pages/walletOperations.page.d.ts.map +0 -1
  346. package/dist/src/EOA/trustwallet/pages/walletOperations.page.js.map +0 -1
  347. package/dist/src/EOA/trustwallet/trustWallet.page.d.ts.map +0 -1
  348. package/dist/src/EOA/trustwallet/trustWallet.page.js.map +0 -1
  349. package/dist/src/EOA/trustwallet/trustwallet.constants.d.ts +0 -3
  350. package/dist/src/EOA/trustwallet/trustwallet.constants.d.ts.map +0 -1
  351. package/dist/src/EOA/trustwallet/trustwallet.constants.js.map +0 -1
  352. package/dist/src/WC/safe/index.d.ts +0 -3
  353. package/dist/src/WC/safe/index.d.ts.map +0 -1
  354. package/dist/src/WC/safe/index.js.map +0 -1
  355. package/dist/src/WC/safe/pages/home.page.d.ts.map +0 -1
  356. package/dist/src/WC/safe/pages/home.page.js.map +0 -1
  357. package/dist/src/WC/safe/pages/index.d.ts +0 -3
  358. package/dist/src/WC/safe/pages/index.d.ts.map +0 -1
  359. package/dist/src/WC/safe/pages/index.js.map +0 -1
  360. package/dist/src/WC/safe/pages/setup.page.d.ts.map +0 -1
  361. package/dist/src/WC/safe/pages/setup.page.js.map +0 -1
  362. package/dist/src/WC/safe/safe.constants.d.ts +0 -3
  363. package/dist/src/WC/safe/safe.constants.d.ts.map +0 -1
  364. package/dist/src/WC/safe/safe.constants.js +0 -16
  365. package/dist/src/WC/safe/safe.constants.js.map +0 -1
  366. package/dist/src/WC/safe/safeWcPage.d.ts +0 -35
  367. package/dist/src/WC/safe/safeWcPage.d.ts.map +0 -1
  368. package/dist/src/WC/safe/safeWcPage.js +0 -79
  369. package/dist/src/WC/safe/safeWcPage.js.map +0 -1
  370. /package/dist/src/{EOA/bitget → bitget}/index.d.ts +0 -0
  371. /package/dist/src/{EOA/bitget → bitget}/index.js +0 -0
  372. /package/dist/src/{EOA/coin98 → coin98}/helper.d.ts +0 -0
  373. /package/dist/src/{EOA/coin98 → coin98}/helper.js +0 -0
  374. /package/dist/src/{EOA/coin98 → coin98}/index.d.ts +0 -0
  375. /package/dist/src/{EOA/coin98 → coin98}/index.js +0 -0
  376. /package/dist/src/{EOA/coinbase → coinbase}/index.d.ts +0 -0
  377. /package/dist/src/{EOA/coinbase → coinbase}/index.js +0 -0
  378. /package/dist/src/{EOA/ctrl → ctrl}/index.d.ts +0 -0
  379. /package/dist/src/{EOA/ctrl → ctrl}/index.js +0 -0
  380. /package/dist/src/{EOA/ctrl → ctrl}/pages/index.d.ts +0 -0
  381. /package/dist/src/{EOA/ctrl → ctrl}/pages/index.js +0 -0
  382. /package/dist/src/{EOA/ctrl → ctrl}/pages/login.page.js +0 -0
  383. /package/dist/src/{EOA/ctrl → ctrl}/pages/onboarding.page.js +0 -0
  384. /package/dist/src/{EOA/ctrl → ctrl}/pages/walletOperations.page.d.ts +0 -0
  385. /package/dist/src/{EOA/ctrl → ctrl}/pages/walletOperations.page.js +0 -0
  386. /package/dist/src/{EOA/exodus → exodus}/index.d.ts +0 -0
  387. /package/dist/src/{EOA/exodus → exodus}/index.js +0 -0
  388. /package/dist/src/{EOA/exodus → exodus}/pages/index.d.ts +0 -0
  389. /package/dist/src/{EOA/exodus → exodus}/pages/index.js +0 -0
  390. /package/dist/src/{EOA/exodus → exodus}/pages/onboarding.page.js +0 -0
  391. /package/dist/src/{EOA/metamask → metamask}/helper.d.ts +0 -0
  392. /package/dist/src/{EOA/metamask → metamask}/helper.js +0 -0
  393. /package/dist/src/{EOA/metamask → metamask}/index.d.ts +0 -0
  394. /package/dist/src/{EOA/metamask → metamask}/index.js +0 -0
  395. /package/dist/src/{EOA/metamask → metamask}/pages/elements/accountMenu.element.d.ts +0 -0
  396. /package/dist/src/{EOA/metamask → metamask}/pages/elements/accountMenu.element.js +0 -0
  397. /package/dist/src/{EOA/metamask → metamask}/pages/elements/header.element.d.ts +0 -0
  398. /package/dist/src/{EOA/metamask → metamask}/pages/elements/header.element.js +0 -0
  399. /package/dist/src/{EOA/metamask → metamask}/pages/elements/index.d.ts +0 -0
  400. /package/dist/src/{EOA/metamask → metamask}/pages/elements/index.js +0 -0
  401. /package/dist/src/{EOA/metamask → metamask}/pages/elements/networkList.element.js +0 -0
  402. /package/dist/src/{EOA/metamask → metamask}/pages/elements/networkSetting.element.js +0 -0
  403. /package/dist/src/{EOA/metamask → metamask}/pages/elements/optionsMenu.element.d.ts +0 -0
  404. /package/dist/src/{EOA/metamask → metamask}/pages/elements/optionsMenu.element.js +0 -0
  405. /package/dist/src/{EOA/metamask → metamask}/pages/home.page.js +0 -0
  406. /package/dist/src/{EOA/metamask → metamask}/pages/index.d.ts +0 -0
  407. /package/dist/src/{EOA/metamask → metamask}/pages/index.js +0 -0
  408. /package/dist/src/{EOA/metamask → metamask}/pages/login.page.js +0 -0
  409. /package/dist/src/{EOA/metamask → metamask}/pages/onboarding.page.js +0 -0
  410. /package/dist/src/{EOA/metamask → metamask}/pages/settings.page.js +0 -0
  411. /package/dist/src/{EOA/metamask → metamask}/pages/walletOperations.page.d.ts +0 -0
  412. /package/dist/src/{EOA/okx → okx}/helper.d.ts +0 -0
  413. /package/dist/src/{EOA/okx → okx}/helper.js +0 -0
  414. /package/dist/src/{EOA/okx → okx}/index.d.ts +0 -0
  415. /package/dist/src/{EOA/okx → okx}/index.js +0 -0
  416. /package/dist/src/{EOA/okx → okx}/pages/accountList.page.d.ts +0 -0
  417. /package/dist/src/{EOA/okx → okx}/pages/accountList.page.js +0 -0
  418. /package/dist/src/{EOA/okx → okx}/pages/home.page.d.ts +0 -0
  419. /package/dist/src/{EOA/okx → okx}/pages/index.d.ts +0 -0
  420. /package/dist/src/{EOA/okx → okx}/pages/index.js +0 -0
  421. /package/dist/src/{EOA/okx → okx}/pages/login.page.js +0 -0
  422. /package/dist/src/{EOA/okx → okx}/pages/manageCrypto.page.d.ts +0 -0
  423. /package/dist/src/{EOA/okx → okx}/pages/manageCrypto.page.js +0 -0
  424. /package/dist/src/{EOA/okx → okx}/pages/networkList.page.js +0 -0
  425. /package/dist/src/{EOA/okx → okx}/pages/onboarding.page.js +0 -0
  426. /package/dist/src/{EOA/okx → okx}/pages/walletOperations.page.d.ts +0 -0
  427. /package/dist/src/{EOA/okx → okx}/pages/walletOperations.page.js +0 -0
  428. /package/dist/src/{WC/safe → safe}/pages/home.page.d.ts +0 -0
  429. /package/dist/src/{WC/safe → safe}/pages/home.page.js +0 -0
  430. /package/dist/src/{EOA/trustwallet → trustwallet}/helper.d.ts +0 -0
  431. /package/dist/src/{EOA/trustwallet → trustwallet}/helper.js +0 -0
  432. /package/dist/src/{EOA/trustwallet → trustwallet}/index.d.ts +0 -0
  433. /package/dist/src/{EOA/trustwallet → trustwallet}/index.js +0 -0
  434. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/home.page.d.ts +0 -0
  435. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/home.page.js +0 -0
  436. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/index.d.ts +0 -0
  437. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/index.js +0 -0
  438. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/login.page.js +0 -0
  439. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/onboarding.page.js +0 -0
  440. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/setting.page.js +0 -0
  441. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/walletOperations.page.d.ts +0 -0
  442. /package/dist/src/{EOA/trustwallet → trustwallet}/pages/walletOperations.page.js +0 -0
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettingPage = void 0;
4
+ class SettingPage {
5
+ constructor(page) {
6
+ this.page = page;
7
+ this.rpcUrlInput = this.page.locator('input[name="rpc"]');
8
+ this.saveSettingBtn = this.page.locator('button:has-text("Save")');
9
+ }
10
+ }
11
+ exports.SettingPage = SettingPage;
12
+ //# sourceMappingURL=setting.page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setting.page.js","sourceRoot":"","sources":["../../../../src/safe/pages/setting.page.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IAItB,YAAmB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACrE,CAAC;CACF;AARD,kCAQC"}
@@ -1,10 +1,10 @@
1
1
  import { Locator, Page } from '@playwright/test';
2
- import { WalletPage } from '../../../wallet.page';
3
- import { WalletTypes } from '../../../wallets.constants';
2
+ import { WalletPage } from '../../wallet.page';
3
+ import { WalletConnectTypes } from '../../wallets.constants';
4
4
  import { ConsoleLogger } from '@nestjs/common';
5
5
  export declare class SetupPage {
6
6
  page: Page;
7
- extensionPage: WalletPage<WalletTypes.EOA>;
7
+ extensionPage: WalletPage<WalletConnectTypes.EOA>;
8
8
  chainId: number;
9
9
  logger: ConsoleLogger;
10
10
  saveCookiesSettingBtn: Locator;
@@ -14,10 +14,11 @@ export declare class SetupPage {
14
14
  setupUrl: string;
15
15
  closeSecurityNoticeBtn: Locator;
16
16
  inAppContinueBtn: Locator;
17
- constructor(page: Page, extensionPage: WalletPage<WalletTypes.EOA>, chainId: number);
17
+ constructor(page: Page, extensionPage: WalletPage<WalletConnectTypes.EOA>, chainId: number);
18
18
  firstTimeSetupWallet(): Promise<string>;
19
19
  agreeCookiesSetting(): Promise<void>;
20
20
  connectWalletExtension(): Promise<void>;
21
21
  closeExtraPopup(): Promise<void>;
22
+ waitForVisible(locator: Locator, timeout: number): Promise<boolean>;
22
23
  }
23
24
  //# sourceMappingURL=setup.page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.page.d.ts","sourceRoot":"","sources":["../../../../src/safe/pages/setup.page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAQ,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,SAAS;IAWX,IAAI,EAAE,IAAI;IACV,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC;IACjD,OAAO,EAAE,MAAM;IAZxB,MAAM,gBAAgD;IACtD,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,EAAE,OAAO,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;gBAGjB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,EACjD,OAAO,EAAE,MAAM;IAsBlB,oBAAoB;IAgBpB,mBAAmB;IAcnB,sBAAsB;IA+CtB,eAAe;IAef,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;CAQvD"}
@@ -12,25 +12,25 @@ class SetupPage {
12
12
  this.setupUrl =
13
13
  this.chainId === 1
14
14
  ? 'https://app.safe.global/welcome/accounts'
15
- : this.chainId === 17000
16
- ? 'https://holesky-safe.protofire.io/welcome/accounts'
17
- : 'https://app.safe.protofire.io/welcome/accounts'; //Hoodi
15
+ : 'https://app.safe.protofire.io/welcome/accounts'; //Hoodi
18
16
  this.saveCookiesSettingBtn = this.page.locator('button:has-text("Accept all")');
19
17
  this.connectWalletBtn = this.page.getByTestId('connect-wallet-btn').nth(0);
20
18
  this.accountCenter = this.page.getByTestId('open-account-center');
21
- this.safeAccount = this.page.getByTestId('safe-list-item').nth(0);
19
+ this.safeAccount = this.page
20
+ .locator(`[data-testId=safe-list-item]:has(img[alt='${this.chainId === 1 ? 'Ethereum' : 'Hoodi Testnet'} Logo'])`)
21
+ .nth(0);
22
22
  this.closeSecurityNoticeBtn = this.page.getByText('I understand');
23
23
  this.inAppContinueBtn = this.page.getByText('Continue');
24
24
  }
25
25
  async firstTimeSetupWallet() {
26
- return await test_1.test.step('Safe wallet setup', async () => {
26
+ return await test_1.test.step('First time Safe wallet setup', async () => {
27
27
  await this.page.goto(this.setupUrl);
28
28
  await this.connectWalletExtension();
29
29
  try {
30
- await this.safeAccount.waitFor({ state: 'visible', timeout: 5000 });
30
+ await this.safeAccount.waitFor({ state: 'visible', timeout: 15000 });
31
31
  }
32
32
  catch {
33
- this.logger.error("Used wallet address doesn't have any accounts in Safe");
33
+ this.logger.warn("Used wallet address doesn't have any accounts in Safe");
34
34
  }
35
35
  await this.safeAccount.click();
36
36
  return this.page.url();
@@ -55,37 +55,31 @@ class SetupPage {
55
55
  await this.closeExtraPopup();
56
56
  await this.agreeCookiesSetting();
57
57
  await this.page.waitForTimeout(2000);
58
- try {
59
- await this.accountCenter.waitFor({ state: 'visible', timeout: 5000 });
58
+ if (await this.waitForVisible(this.accountCenter, 5000)) {
60
59
  this.logger.log('Extension is auto-connected');
61
60
  return;
62
61
  }
63
- catch {
64
- // extension not connected - continue the flow
65
- }
66
- await this.connectWalletBtn.click();
67
- try {
68
- await this.page
69
- .getByText(this.extensionPage.walletConfig.EXTENSION_WALLET_NAME)
70
- .waitFor({ state: 'visible', timeout: 5000 });
71
- }
72
- catch {
73
- this.logger.log('Connect wallet modal is not opened. Need to reload page');
62
+ const attempts = 3; // to connect wallet
63
+ for (let attempt = 1; attempt <= attempts; attempt++) {
64
+ await this.connectWalletBtn.click();
65
+ if (await this.waitForVisible(this.page.getByText(this.extensionPage.options.walletConfig.EXTENSION_WALLET_NAME), 5000)) {
66
+ break;
67
+ }
68
+ this.logger.log(`[Attempt ${attempt}] Connect wallet to Safe failed`);
74
69
  await this.page.reload();
75
70
  await this.closeExtraPopup();
76
- await this.connectWalletBtn.click();
77
71
  }
78
72
  try {
79
73
  const [connectWalletPage] = await Promise.all([
80
74
  this.page.context().waitForEvent('page', { timeout: 5000 }),
81
75
  this.page
82
- .getByText(this.extensionPage.walletConfig.EXTENSION_WALLET_NAME)
76
+ .getByText(this.extensionPage.options.walletConfig.EXTENSION_WALLET_NAME)
83
77
  .click(),
84
78
  ]);
85
79
  await this.extensionPage.connectWallet(connectWalletPage);
86
80
  }
87
- catch {
88
- this.logger.log('Simple way wallet connection');
81
+ catch (er) {
82
+ // Expect the wallet is connected
89
83
  }
90
84
  await this.accountCenter.waitFor({ state: 'visible', timeout: 5000 });
91
85
  });
@@ -102,6 +96,15 @@ class SetupPage {
102
96
  });
103
97
  });
104
98
  }
99
+ async waitForVisible(locator, timeout) {
100
+ try {
101
+ await locator.waitFor({ state: 'visible', timeout });
102
+ return true;
103
+ }
104
+ catch {
105
+ return false;
106
+ }
107
+ }
105
108
  }
106
109
  exports.SetupPage = SetupPage;
107
110
  //# sourceMappingURL=setup.page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.page.js","sourceRoot":"","sources":["../../../../src/safe/pages/setup.page.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Locator, Page } from '@playwright/test';
2
+ import { ConsoleLogger } from '@nestjs/common';
3
+ import { WalletPage } from '../../wallet.page';
4
+ import { WalletConnectTypes } from '../../wallets.constants';
5
+ export declare class TransactionPage {
6
+ page: Page;
7
+ extensionPage: WalletPage<WalletConnectTypes.EOA>;
8
+ logger: ConsoleLogger;
9
+ transactionCardContent: Locator;
10
+ contractExplorerUrl: Locator;
11
+ tokenAmount: Locator;
12
+ executeTxBtn: Locator;
13
+ finishTxBtn: Locator;
14
+ switchNetworkBtn: Locator;
15
+ allActionsList: Locator;
16
+ actionItem: Locator;
17
+ contentLoader: Locator;
18
+ transactionFailBanner: Locator;
19
+ constructor(page: Page, extensionPage: WalletPage<WalletConnectTypes.EOA>);
20
+ assertsContractOfTransaction(expectedAddress: string): Promise<void>;
21
+ confirmTransaction(): Promise<Page>;
22
+ private executeTxBtnClick;
23
+ assertTransactionAmount(expectedAmount: string): Promise<void>;
24
+ private waitForLoaderToBeHidden;
25
+ private failTestIfSafeDisplayFailBanner;
26
+ }
27
+ //# sourceMappingURL=transaction.page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.page.d.ts","sourceRoot":"","sources":["../../../../src/safe/pages/transaction.page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAgB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,qBAAa,eAAe;IAejB,IAAI,EAAE,IAAI;IACV,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC;IAf1D,MAAM,gBAAsD;IAC5D,sBAAsB,EAAE,OAAO,CAAC;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAE1B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;gBAGtB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC;IAkBpD,4BAA4B,CAAC,eAAe,EAAE,MAAM;IAsCpD,kBAAkB;YAsBV,iBAAiB;IA8BzB,uBAAuB,CAAC,cAAc,EAAE,MAAM;YAyCtC,uBAAuB;YAcvB,+BAA+B;CAmB9C"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionPage = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const common_1 = require("@nestjs/common");
6
+ const big_js_1 = require("big.js");
7
+ class TransactionPage {
8
+ constructor(page, extensionPage) {
9
+ this.page = page;
10
+ this.extensionPage = extensionPage;
11
+ this.logger = new common_1.ConsoleLogger(`Safe. ${TransactionPage.name}`);
12
+ this.transactionCardContent = this.page.getByTestId('card-content').first();
13
+ this.contractExplorerUrl = this.transactionCardContent
14
+ .getByTestId('explorer-btn')
15
+ .first();
16
+ this.tokenAmount = this.transactionCardContent.getByTestId('token-amount');
17
+ this.executeTxBtn = this.page.getByTestId('execute-form-btn');
18
+ this.finishTxBtn = this.page.getByTestId('finish-transaction-btn');
19
+ this.switchNetworkBtn = this.page.getByText('Switch to');
20
+ this.allActionsList = this.page.getByTestId('all-actions');
21
+ this.actionItem = this.page.getByTestId('action-item');
22
+ this.contentLoader = this.page.locator('#gooey').locator('../../..');
23
+ this.transactionFailBanner = this.page.getByText('This transaction will most likely fail.');
24
+ }
25
+ async assertsContractOfTransaction(expectedAddress) {
26
+ await this.waitForLoaderToBeHidden();
27
+ await this.failTestIfSafeDisplayFailBanner();
28
+ let isNeedToCheckAllActions = false;
29
+ try {
30
+ await this.allActionsList.waitFor({ timeout: 3000, state: 'visible' });
31
+ isNeedToCheckAllActions = true;
32
+ }
33
+ catch {
34
+ const contractExplorerUrl = await this.contractExplorerUrl.getAttribute('href');
35
+ const match = contractExplorerUrl.match(/address\/([^/\s]+)/);
36
+ (0, test_1.expect)(match[1]).toEqual(expectedAddress);
37
+ }
38
+ if (isNeedToCheckAllActions) {
39
+ const actions = await this.actionItem.all();
40
+ for (const action of actions) {
41
+ await test_1.test.step(`Check address of "${await action.textContent()}" action`, async () => {
42
+ if ((await action.getAttribute('aria-expanded')) === 'false') {
43
+ await action.click();
44
+ }
45
+ const actionInfo = action.locator('../..');
46
+ const contractsUrls = await actionInfo
47
+ .getByTestId('explorer-btn')
48
+ .all();
49
+ const contractExplorerUrl = await contractsUrls[contractsUrls.length - 1].getAttribute('href');
50
+ const match = contractExplorerUrl.match(/address\/([^/\s]+)/);
51
+ (0, test_1.expect)(match[1]).toEqual(expectedAddress);
52
+ });
53
+ }
54
+ }
55
+ }
56
+ async confirmTransaction() {
57
+ await this.waitForLoaderToBeHidden();
58
+ await this.failTestIfSafeDisplayFailBanner();
59
+ await test_1.test.step('Switch network if needed', async () => {
60
+ if (await this.switchNetworkBtn.isVisible()) {
61
+ const [extensionTxPage] = await Promise.all([
62
+ this.page.context().waitForEvent('page', { timeout: 10000 }),
63
+ await this.switchNetworkBtn.click(),
64
+ ]);
65
+ await this.extensionPage.confirmTx(extensionTxPage);
66
+ }
67
+ });
68
+ const [extensionTxPage] = await Promise.all([
69
+ this.executeTxBtnClick(),
70
+ this.executeTxBtn.click(),
71
+ ]);
72
+ await this.extensionPage.confirmTx(extensionTxPage, true);
73
+ return extensionTxPage;
74
+ }
75
+ async executeTxBtnClick(maxAttempts = 3) {
76
+ return await test_1.test.step('Click to execute transaction button', async () => {
77
+ // Sometimes the tx execution fails, and we need to try to execute the tx several times
78
+ // It helps us to avoid fail of test with the tx execution
79
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
80
+ const result = await Promise.race([
81
+ this.page
82
+ .context()
83
+ .waitForEvent('page', { timeout: 30000 })
84
+ .then((page) => ({ type: 'page', value: page })),
85
+ this.page
86
+ .waitForSelector('[data-testid="error-message"]', {
87
+ timeout: 30000,
88
+ })
89
+ .then((el) => ({ type: 'error', value: el })),
90
+ ]);
91
+ if (result.type === 'error') {
92
+ await this.executeTxBtn.click();
93
+ this.logger.warn(`[Attempt ${attempt}]`);
94
+ }
95
+ else if (result.type === 'page') {
96
+ return result.value;
97
+ }
98
+ }
99
+ this.logger.error("Extension's page to confirm transaction is not opened");
100
+ return null;
101
+ });
102
+ }
103
+ async assertTransactionAmount(expectedAmount) {
104
+ await this.waitForLoaderToBeHidden();
105
+ await this.failTestIfSafeDisplayFailBanner();
106
+ let isNeedToCheckAllActions = false;
107
+ try {
108
+ await this.allActionsList.waitFor({ timeout: 5000, state: 'visible' });
109
+ isNeedToCheckAllActions = true;
110
+ }
111
+ catch {
112
+ (0, test_1.expect)(await this.tokenAmount.textContent()).toEqual(expectedAmount);
113
+ }
114
+ if (isNeedToCheckAllActions) {
115
+ const actions = await this.actionItem.all();
116
+ for (const action of actions) {
117
+ await test_1.test.step(`Check amount of "${await action.textContent()}" action`, async () => {
118
+ if ((await action.getAttribute('aria-expanded')) === 'false') {
119
+ await action.click();
120
+ }
121
+ let actionInfo = action.locator('../..');
122
+ const actionParameters = await actionInfo
123
+ .getByTestId('tx-row-title')
124
+ .all();
125
+ if (actionParameters.length > 1) {
126
+ actionInfo = actionInfo
127
+ .locator('[data-testid="tx-row-title"]:has-text("value")')
128
+ .locator('..');
129
+ }
130
+ const valueParam = await actionInfo
131
+ .getByTestId('tx-data-row')
132
+ .textContent();
133
+ // Safe UI displays the BigInt type of tx value (100000000000), and we need to convert to before matching
134
+ (0, test_1.expect)(String(new big_js_1.Big(valueParam).div(1e18))).toEqual(expectedAmount);
135
+ });
136
+ }
137
+ }
138
+ }
139
+ async waitForLoaderToBeHidden() {
140
+ await test_1.test.step('Waiting for loader to be hidden', async () => {
141
+ try {
142
+ await this.contentLoader.waitFor({ timeout: 5000, state: 'visible' });
143
+ }
144
+ catch {
145
+ return;
146
+ }
147
+ await this.contentLoader.waitFor({ timeout: 30000, state: 'hidden' });
148
+ });
149
+ }
150
+ // If Safe UI get problems with rpc or current tx, it displays the warning banner
151
+ // It means the tx will not be completed
152
+ // So we interrupt the test to avoid long downtime
153
+ async failTestIfSafeDisplayFailBanner() {
154
+ let needToInterruptTest = false;
155
+ try {
156
+ await this.transactionFailBanner.waitFor({
157
+ timeout: 2000,
158
+ state: 'visible',
159
+ });
160
+ needToInterruptTest = true;
161
+ }
162
+ catch {
163
+ // Transaction fail banner is not visible
164
+ }
165
+ if (needToInterruptTest) {
166
+ this.logger.error("Interrupting the test process because safe can't realize transaction and display fail banner");
167
+ await (0, test_1.expect)(this.transactionFailBanner).not.toBeVisible();
168
+ }
169
+ }
170
+ }
171
+ exports.TransactionPage = TransactionPage;
172
+ //# sourceMappingURL=transaction.page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.page.js","sourceRoot":"","sources":["../../../../src/safe/pages/transaction.page.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CommonWalletConfig } from '../wallets.constants';
2
+ export declare const WC_SAFE_COMMON_CONFIG: CommonWalletConfig;
3
+ export declare const IFRAME_SAFE_COMMON_CONFIG: CommonWalletConfig;
4
+ //# sourceMappingURL=safe.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe.constants.d.ts","sourceRoot":"","sources":["../../../src/safe/safe.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC;AAE9E,eAAO,MAAM,qBAAqB,EAAE,kBASnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBASvC,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IFRAME_SAFE_COMMON_CONFIG = exports.WC_SAFE_COMMON_CONFIG = void 0;
4
+ const wallets_constants_1 = require("../wallets.constants");
5
+ exports.WC_SAFE_COMMON_CONFIG = {
6
+ WALLET_NAME: 'safeWc',
7
+ EXTENSION_WALLET_NAME: 'metamask',
8
+ CONNECTED_WALLET_NAME: 'WalletConnect',
9
+ STORE_EXTENSION_ID: 'nkbihfbeogaeaoehlefnkodbefgpgknn',
10
+ CONNECT_BUTTON_NAME: 'WalletConnect',
11
+ WALLET_TYPE: wallets_constants_1.WalletConnectTypes.WC,
12
+ LATEST_STABLE_DOWNLOAD_LINK: null,
13
+ EXTENSION_START_PATH: '/home.html',
14
+ };
15
+ exports.IFRAME_SAFE_COMMON_CONFIG = {
16
+ WALLET_NAME: 'safeIframe',
17
+ EXTENSION_WALLET_NAME: 'metamask',
18
+ CONNECTED_WALLET_NAME: 'Safe',
19
+ STORE_EXTENSION_ID: 'nkbihfbeogaeaoehlefnkodbefgpgknn',
20
+ CONNECT_BUTTON_NAME: '',
21
+ WALLET_TYPE: wallets_constants_1.WalletConnectTypes.IFRAME,
22
+ LATEST_STABLE_DOWNLOAD_LINK: null,
23
+ EXTENSION_START_PATH: '/home.html',
24
+ };
25
+ //# sourceMappingURL=safe.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe.constants.js","sourceRoot":"","sources":["../../../src/safe/safe.constants.ts"],"names":[],"mappings":";;;AAAA,4DAA8E;AAEjE,QAAA,qBAAqB,GAAuB;IACvD,WAAW,EAAE,QAAQ;IACrB,qBAAqB,EAAE,UAAU;IACjC,qBAAqB,EAAE,eAAe;IACtC,kBAAkB,EAAE,kCAAkC;IACtD,mBAAmB,EAAE,eAAe;IACpC,WAAW,EAAE,sCAAkB,CAAC,EAAE;IAClC,2BAA2B,EAAE,IAAI;IACjC,oBAAoB,EAAE,YAAY;CACnC,CAAC;AAEW,QAAA,yBAAyB,GAAuB;IAC3D,WAAW,EAAE,YAAY;IACzB,qBAAqB,EAAE,UAAU;IACjC,qBAAqB,EAAE,MAAM;IAC7B,kBAAkB,EAAE,kCAAkC;IACtD,mBAAmB,EAAE,EAAE;IACvB,WAAW,EAAE,sCAAkB,CAAC,MAAM;IACtC,2BAA2B,EAAE,IAAI;IACjC,oBAAoB,EAAE,YAAY;CACnC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { Page } from '@playwright/test';
2
+ import { WalletPage, WalletPageOptions } from '../wallet.page';
3
+ import { NetworkConfig, WalletConnectTypes } from '../wallets.constants';
4
+ import { ConsoleLogger } from '@nestjs/common';
5
+ import { SetupPage, SettingPage } from './pages';
6
+ export declare class SafeIframePage implements WalletPage<WalletConnectTypes.IFRAME> {
7
+ options: WalletPageOptions;
8
+ logger: ConsoleLogger;
9
+ page: Page;
10
+ safeUrl: URL;
11
+ setupPage: SetupPage;
12
+ settingPage: SettingPage;
13
+ constructor(options: WalletPageOptions);
14
+ initLocators(page?: Page): Promise<void>;
15
+ /** Navigate to Safe Iframe
16
+ * - Setup Extension wallet
17
+ * - Open Gnosis Safe app
18
+ * - Connect EOA wallet and setup Safe
19
+ * - Setup fork link (if needed)
20
+ */
21
+ setup(): Promise<void>;
22
+ navigate(pageName: 'lidoApp' | 'envSetting'): Promise<void>;
23
+ private getNavigationUrl;
24
+ getWalletAddress(): Promise<string>;
25
+ /** Open Lido app and confirm wallet auto connection */
26
+ connectWallet(): Promise<void>;
27
+ assertReceiptAddress(page: Page, expectedAddress: string): Promise<void>;
28
+ confirmTx(page: Page): Promise<void>;
29
+ assertTxAmount(page: Page, expectedAmount: string): Promise<void>;
30
+ /** Setup network to the extension wallet */
31
+ setupNetwork(networkConfig: NetworkConfig): Promise<void>;
32
+ /** Change network in the extension wallet */
33
+ changeNetwork(networkName: string): Promise<void>;
34
+ /** Check the wallet address exists in the extension wallet */
35
+ isWalletAddressExist(address: string): Promise<boolean>;
36
+ /** Import key to the extension wallet */
37
+ importKey(secretKey: string): Promise<void>;
38
+ /** Change account in the extension wallet */
39
+ changeWalletAccountByAddress(address: string): Promise<void>;
40
+ cancelTx(): Promise<void>;
41
+ approveTokenTx?(): Promise<void>;
42
+ getTokenBalance?(): Promise<number>;
43
+ openLastTxInEthplorer?(): Promise<Page>;
44
+ confirmAddTokenToWallet?(): Promise<void>;
45
+ addNetwork(): Promise<void>;
46
+ }
47
+ //# sourceMappingURL=safeIframe.page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeIframe.page.d.ts","sourceRoot":"","sources":["../../../src/safe/safeIframe.page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,SAAS,CAAC;AAElE,qBAAa,cAAe,YAAW,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC;IAOvD,OAAO,EAAE,iBAAiB;IAN7C,MAAM,gBAA0C;IAChD,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;gBAEN,OAAO,EAAE,iBAAiB;IAEvC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI;IAc9B;;;;;OAKG;IACG,KAAK;IAoBL,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,YAAY;IAIjD,OAAO,CAAC,gBAAgB;IAiBlB,gBAAgB;IAItB,uDAAuD;IACjD,aAAa;IAkBb,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM;IASxD,SAAS,CAAC,IAAI,EAAE,IAAI;IAcpB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM;IASvD,4CAA4C;IACtC,YAAY,CAAC,aAAa,EAAE,aAAa;IAI/C,6CAA6C;IACvC,aAAa,CAAC,WAAW,EAAE,MAAM;IAIvC,8DAA8D;IACxD,oBAAoB,CAAC,OAAO,EAAE,MAAM;IAI1C,yCAAyC;IACnC,SAAS,CAAC,SAAS,EAAE,MAAM;IAIjC,6CAA6C;IACvC,4BAA4B,CAAC,OAAO,EAAE,MAAM;IAIlD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,cAAc,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,eAAe,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,qBAAqB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC,uBAAuB,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SafeIframePage = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ const common_1 = require("@nestjs/common");
6
+ const pages_1 = require("./pages");
7
+ class SafeIframePage {
8
+ constructor(options) {
9
+ this.options = options;
10
+ this.logger = new common_1.ConsoleLogger(SafeIframePage.name);
11
+ }
12
+ async initLocators(page) {
13
+ if (!page) {
14
+ this.page = await this.options.browserContext.newPage();
15
+ }
16
+ else {
17
+ this.page = page;
18
+ }
19
+ this.setupPage = new pages_1.SetupPage(this.page, this.options.extensionPage, this.options.standConfig.chainId);
20
+ this.settingPage = new pages_1.SettingPage(this.page);
21
+ }
22
+ /** Navigate to Safe Iframe
23
+ * - Setup Extension wallet
24
+ * - Open Gnosis Safe app
25
+ * - Connect EOA wallet and setup Safe
26
+ * - Setup fork link (if needed)
27
+ */
28
+ async setup() {
29
+ await this.options.extensionPage.setup();
30
+ await test_1.test.step('Init Safe wallet', async () => {
31
+ await this.initLocators();
32
+ const safeAccountUrl = await this.setupPage.firstTimeSetupWallet();
33
+ this.safeUrl = new URL(safeAccountUrl);
34
+ await test_1.test.step('Setup RPC url', async () => {
35
+ await this.navigate('envSetting');
36
+ await this.setupPage.closeExtraPopup();
37
+ await this.settingPage.rpcUrlInput.fill(this.options.standConfig.rpcUrl);
38
+ await this.settingPage.saveSettingBtn.click();
39
+ });
40
+ await this.page.goto(String(this.safeUrl));
41
+ });
42
+ }
43
+ async navigate(pageName) {
44
+ await this.page.goto(this.getNavigationUrl(pageName));
45
+ }
46
+ getNavigationUrl(pageName) {
47
+ switch (pageName) {
48
+ case 'lidoApp':
49
+ return `${this.safeUrl.origin}/apps/open?safe=${this.safeUrl.searchParams.get('safe')}&appUrl=${this.options.standConfig.standUrl}`;
50
+ case 'envSetting':
51
+ return `${this.safeUrl.origin}/settings/environment-variables?safe=${this.safeUrl.searchParams.get('safe')}`;
52
+ }
53
+ }
54
+ async getWalletAddress() {
55
+ return this.safeUrl.searchParams.get('safe').slice(4);
56
+ }
57
+ /** Open Lido app and confirm wallet auto connection */
58
+ async connectWallet() {
59
+ await this.initLocators(this.options.browserContext.pages()[0]);
60
+ await this.navigate('lidoApp');
61
+ await test_1.test.step('Open Lido app in the Safe', async () => {
62
+ await this.setupPage.closeExtraPopup();
63
+ while (await this.setupPage.waitForVisible(this.setupPage.inAppContinueBtn, 5000)) {
64
+ await this.setupPage.inAppContinueBtn.click();
65
+ await this.page.waitForTimeout(1000);
66
+ }
67
+ });
68
+ }
69
+ async assertReceiptAddress(page, expectedAddress) {
70
+ await test_1.test.step('Assert of receipt address', async () => {
71
+ await new pages_1.TransactionPage(page, this.options.extensionPage).assertsContractOfTransaction(expectedAddress);
72
+ });
73
+ }
74
+ async confirmTx(page) {
75
+ await test_1.test.step('Confirm transaction', async () => {
76
+ const transactionPage = new pages_1.TransactionPage(page, this.options.extensionPage);
77
+ await transactionPage.confirmTransaction();
78
+ await this.page.waitForSelector('text=Transaction was successful', {
79
+ timeout: 180000,
80
+ });
81
+ await transactionPage.finishTxBtn.click();
82
+ });
83
+ }
84
+ async assertTxAmount(page, expectedAmount) {
85
+ await test_1.test.step('Assert of transaction amount', async () => {
86
+ await new pages_1.TransactionPage(page, this.options.extensionPage).assertTransactionAmount(expectedAmount);
87
+ });
88
+ }
89
+ /** Setup network to the extension wallet */
90
+ async setupNetwork(networkConfig) {
91
+ await this.options.extensionPage.setupNetwork(networkConfig);
92
+ }
93
+ /** Change network in the extension wallet */
94
+ async changeNetwork(networkName) {
95
+ await this.options.extensionPage.changeNetwork(networkName);
96
+ }
97
+ /** Check the wallet address exists in the extension wallet */
98
+ async isWalletAddressExist(address) {
99
+ return await this.options.extensionPage.isWalletAddressExist(address);
100
+ }
101
+ /** Import key to the extension wallet */
102
+ async importKey(secretKey) {
103
+ await this.options.extensionPage.importKey(secretKey);
104
+ }
105
+ /** Change account in the extension wallet */
106
+ async changeWalletAccountByAddress(address) {
107
+ await this.options.extensionPage.changeWalletAccountByAddress(address);
108
+ }
109
+ cancelTx() {
110
+ throw new Error('Method not implemented.');
111
+ }
112
+ approveTokenTx() {
113
+ throw new Error('Method not implemented.');
114
+ }
115
+ getTokenBalance() {
116
+ throw new Error('Method not implemented.');
117
+ }
118
+ openLastTxInEthplorer() {
119
+ throw new Error('Unsupported method for WalletConnectTypes.IFRAME');
120
+ }
121
+ confirmAddTokenToWallet() {
122
+ throw new Error('Unsupported method for WalletConnectTypes.IFRAME');
123
+ }
124
+ addNetwork() {
125
+ throw new Error('Unsupported method for WalletConnectTypes.IFRAME');
126
+ }
127
+ }
128
+ exports.SafeIframePage = SafeIframePage;
129
+ //# sourceMappingURL=safeIframe.page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeIframe.page.js","sourceRoot":"","sources":["../../../src/safe/safeIframe.page.ts"],"names":[],"mappings":"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"}