rise-wallet 0.1.4-beta.2 → 0.2.29-beta.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 (738) hide show
  1. package/README.md +56 -34
  2. package/dist/cli/Dialog.d.ts +35 -0
  3. package/dist/cli/Dialog.d.ts.map +1 -0
  4. package/dist/cli/Dialog.js +60 -0
  5. package/dist/cli/Dialog.js.map +1 -0
  6. package/dist/cli/Messenger.d.ts +8 -0
  7. package/dist/cli/Messenger.d.ts.map +1 -0
  8. package/dist/cli/Messenger.js +123 -0
  9. package/dist/cli/Messenger.js.map +1 -0
  10. package/dist/cli/bin/commands-BWkYsY2L.js +50 -0
  11. package/dist/cli/bin/index.js +9 -0
  12. package/dist/cli/index.d.ts +3 -0
  13. package/dist/cli/index.d.ts.map +1 -0
  14. package/dist/cli/index.js +3 -0
  15. package/dist/cli/index.js.map +1 -0
  16. package/dist/cli/internal/commands.d.ts +13 -0
  17. package/dist/cli/internal/commands.d.ts.map +1 -0
  18. package/dist/cli/internal/commands.js +180 -0
  19. package/dist/cli/internal/commands.js.map +1 -0
  20. package/dist/cli/internal/context.d.ts +521 -0
  21. package/dist/cli/internal/context.d.ts.map +1 -0
  22. package/dist/cli/internal/context.js +38 -0
  23. package/dist/cli/internal/context.js.map +1 -0
  24. package/dist/cli/internal/http.d.ts +7 -0
  25. package/dist/cli/internal/http.d.ts.map +1 -0
  26. package/dist/cli/internal/http.js +17 -0
  27. package/dist/cli/internal/http.js.map +1 -0
  28. package/dist/cli/internal/utils.d.ts +7 -0
  29. package/dist/cli/internal/utils.d.ts.map +1 -0
  30. package/dist/cli/internal/utils.js +24 -0
  31. package/dist/cli/internal/utils.js.map +1 -0
  32. package/dist/core/Chains.d.ts +211 -0
  33. package/dist/core/Chains.d.ts.map +1 -0
  34. package/dist/core/Chains.js +20 -0
  35. package/dist/core/Chains.js.map +1 -0
  36. package/dist/core/Dialog.d.ts +308 -0
  37. package/dist/core/Dialog.d.ts.map +1 -0
  38. package/dist/core/Dialog.js +809 -0
  39. package/dist/core/Dialog.js.map +1 -0
  40. package/dist/core/Messenger.d.ts +165 -0
  41. package/dist/core/Messenger.d.ts.map +1 -0
  42. package/dist/core/Messenger.js +207 -0
  43. package/dist/core/Messenger.js.map +1 -0
  44. package/dist/core/Mode.d.ts +5 -0
  45. package/dist/core/Mode.d.ts.map +1 -0
  46. package/dist/core/Mode.js +5 -0
  47. package/dist/core/Mode.js.map +1 -0
  48. package/dist/core/Porto.d.ts +1609 -0
  49. package/dist/core/Porto.d.ts.map +1 -0
  50. package/dist/core/Porto.js +105 -0
  51. package/dist/core/Porto.js.map +1 -0
  52. package/dist/core/RpcSchema.d.ts +82 -0
  53. package/dist/core/RpcSchema.d.ts.map +1 -0
  54. package/dist/core/RpcSchema.js +2 -0
  55. package/dist/core/RpcSchema.js.map +1 -0
  56. package/dist/core/Storage.d.ts +15 -0
  57. package/dist/core/Storage.d.ts.map +1 -0
  58. package/dist/core/Storage.js +109 -0
  59. package/dist/core/Storage.js.map +1 -0
  60. package/dist/core/Transport.d.ts +23 -0
  61. package/dist/core/Transport.d.ts.map +1 -0
  62. package/dist/core/Transport.js +37 -0
  63. package/dist/core/Transport.js.map +1 -0
  64. package/dist/core/internal/_generated/chains.d.ts +2 -0
  65. package/dist/core/internal/_generated/chains.d.ts.map +1 -0
  66. package/dist/core/internal/_generated/chains.js +3 -0
  67. package/dist/core/internal/_generated/chains.js.map +1 -0
  68. package/dist/core/internal/_generated/contracts/EIP7702Proxy.d.ts +18 -0
  69. package/dist/core/internal/_generated/contracts/EIP7702Proxy.d.ts.map +1 -0
  70. package/dist/core/internal/_generated/contracts/EIP7702Proxy.js +24 -0
  71. package/dist/core/internal/_generated/contracts/EIP7702Proxy.js.map +1 -0
  72. package/dist/core/internal/_generated/contracts/Escrow.d.ts +256 -0
  73. package/dist/core/internal/_generated/contracts/Escrow.d.ts.map +1 -0
  74. package/dist/core/internal/_generated/contracts/Escrow.js +329 -0
  75. package/dist/core/internal/_generated/contracts/Escrow.js.map +1 -0
  76. package/dist/core/internal/_generated/contracts/ExperimentERC20.d.ts +440 -0
  77. package/dist/core/internal/_generated/contracts/ExperimentERC20.d.ts.map +1 -0
  78. package/dist/core/internal/_generated/contracts/ExperimentERC20.js +568 -0
  79. package/dist/core/internal/_generated/contracts/ExperimentERC20.js.map +1 -0
  80. package/dist/core/internal/_generated/contracts/ExperimentERC721.d.ts +456 -0
  81. package/dist/core/internal/_generated/contracts/ExperimentERC721.d.ts.map +1 -0
  82. package/dist/core/internal/_generated/contracts/ExperimentERC721.js +587 -0
  83. package/dist/core/internal/_generated/contracts/ExperimentERC721.js.map +1 -0
  84. package/dist/core/internal/_generated/contracts/GuardedExecutor.d.ts +482 -0
  85. package/dist/core/internal/_generated/contracts/GuardedExecutor.d.ts.map +1 -0
  86. package/dist/core/internal/_generated/contracts/GuardedExecutor.js +622 -0
  87. package/dist/core/internal/_generated/contracts/GuardedExecutor.js.map +1 -0
  88. package/dist/core/internal/_generated/contracts/ICallChecker.d.ts +25 -0
  89. package/dist/core/internal/_generated/contracts/ICallChecker.d.ts.map +1 -0
  90. package/dist/core/internal/_generated/contracts/ICallChecker.js +33 -0
  91. package/dist/core/internal/_generated/contracts/ICallChecker.js.map +1 -0
  92. package/dist/core/internal/_generated/contracts/ICommon.d.ts +3 -0
  93. package/dist/core/internal/_generated/contracts/ICommon.d.ts.map +1 -0
  94. package/dist/core/internal/_generated/contracts/ICommon.js +3 -0
  95. package/dist/core/internal/_generated/contracts/ICommon.js.map +1 -0
  96. package/dist/core/internal/_generated/contracts/IEscrow.d.ts +88 -0
  97. package/dist/core/internal/_generated/contracts/IEscrow.d.ts.map +1 -0
  98. package/dist/core/internal/_generated/contracts/IEscrow.js +113 -0
  99. package/dist/core/internal/_generated/contracts/IEscrow.js.map +1 -0
  100. package/dist/core/internal/_generated/contracts/IFunder.d.ts +61 -0
  101. package/dist/core/internal/_generated/contracts/IFunder.d.ts.map +1 -0
  102. package/dist/core/internal/_generated/contracts/IFunder.js +79 -0
  103. package/dist/core/internal/_generated/contracts/IFunder.js.map +1 -0
  104. package/dist/core/internal/_generated/contracts/IFunderV4.d.ts +34 -0
  105. package/dist/core/internal/_generated/contracts/IFunderV4.d.ts.map +1 -0
  106. package/dist/core/internal/_generated/contracts/IFunderV4.js +44 -0
  107. package/dist/core/internal/_generated/contracts/IFunderV4.js.map +1 -0
  108. package/dist/core/internal/_generated/contracts/IIthacaAccount.d.ts +81 -0
  109. package/dist/core/internal/_generated/contracts/IIthacaAccount.d.ts.map +1 -0
  110. package/dist/core/internal/_generated/contracts/IIthacaAccount.js +106 -0
  111. package/dist/core/internal/_generated/contracts/IIthacaAccount.js.map +1 -0
  112. package/dist/core/internal/_generated/contracts/IOAppCore.d.ts +108 -0
  113. package/dist/core/internal/_generated/contracts/IOAppCore.d.ts.map +1 -0
  114. package/dist/core/internal/_generated/contracts/IOAppCore.js +141 -0
  115. package/dist/core/internal/_generated/contracts/IOAppCore.js.map +1 -0
  116. package/dist/core/internal/_generated/contracts/IOAppMsgInspector.d.ts +33 -0
  117. package/dist/core/internal/_generated/contracts/IOAppMsgInspector.d.ts.map +1 -0
  118. package/dist/core/internal/_generated/contracts/IOAppMsgInspector.js +44 -0
  119. package/dist/core/internal/_generated/contracts/IOAppMsgInspector.js.map +1 -0
  120. package/dist/core/internal/_generated/contracts/IOAppReceiver.d.ts +122 -0
  121. package/dist/core/internal/_generated/contracts/IOAppReceiver.d.ts.map +1 -0
  122. package/dist/core/internal/_generated/contracts/IOAppReceiver.js +160 -0
  123. package/dist/core/internal/_generated/contracts/IOAppReceiver.js.map +1 -0
  124. package/dist/core/internal/_generated/contracts/IOrchestrator.d.ts +71 -0
  125. package/dist/core/internal/_generated/contracts/IOrchestrator.d.ts.map +1 -0
  126. package/dist/core/internal/_generated/contracts/IOrchestrator.js +94 -0
  127. package/dist/core/internal/_generated/contracts/IOrchestrator.js.map +1 -0
  128. package/dist/core/internal/_generated/contracts/ISettler.d.ts +39 -0
  129. package/dist/core/internal/_generated/contracts/ISettler.d.ts.map +1 -0
  130. package/dist/core/internal/_generated/contracts/ISettler.js +51 -0
  131. package/dist/core/internal/_generated/contracts/ISettler.js.map +1 -0
  132. package/dist/core/internal/_generated/contracts/ISigner.d.ts +25 -0
  133. package/dist/core/internal/_generated/contracts/ISigner.d.ts.map +1 -0
  134. package/dist/core/internal/_generated/contracts/ISigner.js +33 -0
  135. package/dist/core/internal/_generated/contracts/ISigner.js.map +1 -0
  136. package/dist/core/internal/_generated/contracts/IthacaAccount.d.ts +1121 -0
  137. package/dist/core/internal/_generated/contracts/IthacaAccount.d.ts.map +1 -0
  138. package/dist/core/internal/_generated/contracts/IthacaAccount.js +1453 -0
  139. package/dist/core/internal/_generated/contracts/IthacaAccount.js.map +1 -0
  140. package/dist/core/internal/_generated/contracts/IthacaAccountNew.d.ts +1121 -0
  141. package/dist/core/internal/_generated/contracts/IthacaAccountNew.d.ts.map +1 -0
  142. package/dist/core/internal/_generated/contracts/IthacaAccountNew.js +1453 -0
  143. package/dist/core/internal/_generated/contracts/IthacaAccountNew.js.map +1 -0
  144. package/dist/core/internal/_generated/contracts/IthacaAccountOld.d.ts +1121 -0
  145. package/dist/core/internal/_generated/contracts/IthacaAccountOld.d.ts.map +1 -0
  146. package/dist/core/internal/_generated/contracts/IthacaAccountOld.js +1453 -0
  147. package/dist/core/internal/_generated/contracts/IthacaAccountOld.js.map +1 -0
  148. package/dist/core/internal/_generated/contracts/LayerZeroSettler.d.ts +621 -0
  149. package/dist/core/internal/_generated/contracts/LayerZeroSettler.d.ts.map +1 -0
  150. package/dist/core/internal/_generated/contracts/LayerZeroSettler.js +810 -0
  151. package/dist/core/internal/_generated/contracts/LayerZeroSettler.js.map +1 -0
  152. package/dist/core/internal/_generated/contracts/LibNonce.d.ts +11 -0
  153. package/dist/core/internal/_generated/contracts/LibNonce.d.ts.map +1 -0
  154. package/dist/core/internal/_generated/contracts/LibNonce.js +14 -0
  155. package/dist/core/internal/_generated/contracts/LibNonce.js.map +1 -0
  156. package/dist/core/internal/_generated/contracts/LibTStack.d.ts +3 -0
  157. package/dist/core/internal/_generated/contracts/LibTStack.d.ts.map +1 -0
  158. package/dist/core/internal/_generated/contracts/LibTStack.js +3 -0
  159. package/dist/core/internal/_generated/contracts/LibTStack.js.map +1 -0
  160. package/dist/core/internal/_generated/contracts/MultiSigSigner.d.ts +157 -0
  161. package/dist/core/internal/_generated/contracts/MultiSigSigner.d.ts.map +1 -0
  162. package/dist/core/internal/_generated/contracts/MultiSigSigner.js +202 -0
  163. package/dist/core/internal/_generated/contracts/MultiSigSigner.js.map +1 -0
  164. package/dist/core/internal/_generated/contracts/OApp.d.ts +314 -0
  165. package/dist/core/internal/_generated/contracts/OApp.d.ts.map +1 -0
  166. package/dist/core/internal/_generated/contracts/OApp.js +411 -0
  167. package/dist/core/internal/_generated/contracts/OApp.js.map +1 -0
  168. package/dist/core/internal/_generated/contracts/OAppCore.d.ts +175 -0
  169. package/dist/core/internal/_generated/contracts/OAppCore.d.ts.map +1 -0
  170. package/dist/core/internal/_generated/contracts/OAppCore.js +228 -0
  171. package/dist/core/internal/_generated/contracts/OAppCore.js.map +1 -0
  172. package/dist/core/internal/_generated/contracts/OAppReceiver.d.ts +302 -0
  173. package/dist/core/internal/_generated/contracts/OAppReceiver.d.ts.map +1 -0
  174. package/dist/core/internal/_generated/contracts/OAppReceiver.js +395 -0
  175. package/dist/core/internal/_generated/contracts/OAppReceiver.js.map +1 -0
  176. package/dist/core/internal/_generated/contracts/OAppSender.d.ts +187 -0
  177. package/dist/core/internal/_generated/contracts/OAppSender.d.ts.map +1 -0
  178. package/dist/core/internal/_generated/contracts/OAppSender.js +244 -0
  179. package/dist/core/internal/_generated/contracts/OAppSender.js.map +1 -0
  180. package/dist/core/internal/_generated/contracts/Orchestrator.d.ts +302 -0
  181. package/dist/core/internal/_generated/contracts/Orchestrator.d.ts.map +1 -0
  182. package/dist/core/internal/_generated/contracts/Orchestrator.js +389 -0
  183. package/dist/core/internal/_generated/contracts/Orchestrator.js.map +1 -0
  184. package/dist/core/internal/_generated/contracts/SimpleFunder.d.ts +413 -0
  185. package/dist/core/internal/_generated/contracts/SimpleFunder.d.ts.map +1 -0
  186. package/dist/core/internal/_generated/contracts/SimpleFunder.js +533 -0
  187. package/dist/core/internal/_generated/contracts/SimpleFunder.js.map +1 -0
  188. package/dist/core/internal/_generated/contracts/SimpleSettler.d.ts +280 -0
  189. package/dist/core/internal/_generated/contracts/SimpleSettler.d.ts.map +1 -0
  190. package/dist/core/internal/_generated/contracts/SimpleSettler.js +359 -0
  191. package/dist/core/internal/_generated/contracts/SimpleSettler.js.map +1 -0
  192. package/dist/core/internal/_generated/contracts/Simulator.d.ts +131 -0
  193. package/dist/core/internal/_generated/contracts/Simulator.d.ts.map +1 -0
  194. package/dist/core/internal/_generated/contracts/Simulator.js +169 -0
  195. package/dist/core/internal/_generated/contracts/Simulator.js.map +1 -0
  196. package/dist/core/internal/_generated/contracts/TokenTransferLib.d.ts +3 -0
  197. package/dist/core/internal/_generated/contracts/TokenTransferLib.d.ts.map +1 -0
  198. package/dist/core/internal/_generated/contracts/TokenTransferLib.js +3 -0
  199. package/dist/core/internal/_generated/contracts/TokenTransferLib.js.map +1 -0
  200. package/dist/core/internal/call.d.ts +164 -0
  201. package/dist/core/internal/call.d.ts.map +1 -0
  202. package/dist/core/internal/call.js +115 -0
  203. package/dist/core/internal/call.js.map +1 -0
  204. package/dist/core/internal/erc8010.d.ts +18 -0
  205. package/dist/core/internal/erc8010.d.ts.map +1 -0
  206. package/dist/core/internal/erc8010.js +29 -0
  207. package/dist/core/internal/erc8010.js.map +1 -0
  208. package/dist/core/internal/intersectionObserver.d.ts +2 -0
  209. package/dist/core/internal/intersectionObserver.d.ts.map +1 -0
  210. package/dist/core/internal/intersectionObserver.js +5 -0
  211. package/dist/core/internal/intersectionObserver.js.map +1 -0
  212. package/dist/core/internal/logger.d.ts +22 -0
  213. package/dist/core/internal/logger.d.ts.map +1 -0
  214. package/dist/core/internal/logger.js +24 -0
  215. package/dist/core/internal/logger.js.map +1 -0
  216. package/dist/core/internal/mode.d.ts +345 -0
  217. package/dist/core/internal/mode.d.ts.map +1 -0
  218. package/dist/core/internal/mode.js +110 -0
  219. package/dist/core/internal/mode.js.map +1 -0
  220. package/dist/core/internal/modes/dialog.d.ts +800 -0
  221. package/dist/core/internal/modes/dialog.d.ts.map +1 -0
  222. package/dist/core/internal/modes/dialog.js +760 -0
  223. package/dist/core/internal/modes/dialog.js.map +1 -0
  224. package/dist/core/internal/modes/reactNative.d.ts +1402 -0
  225. package/dist/core/internal/modes/reactNative.d.ts.map +1 -0
  226. package/dist/core/internal/modes/reactNative.js +19 -0
  227. package/dist/core/internal/modes/reactNative.js.map +1 -0
  228. package/dist/core/internal/modes/relay.d.ts +685 -0
  229. package/dist/core/internal/modes/relay.d.ts.map +1 -0
  230. package/dist/core/internal/modes/relay.js +708 -0
  231. package/dist/core/internal/modes/relay.js.map +1 -0
  232. package/dist/core/internal/permissions.d.ts +60 -0
  233. package/dist/core/internal/permissions.d.ts.map +1 -0
  234. package/dist/core/internal/permissions.js +30 -0
  235. package/dist/core/internal/permissions.js.map +1 -0
  236. package/dist/core/internal/permissionsRequest.d.ts +72 -0
  237. package/dist/core/internal/permissionsRequest.d.ts.map +1 -0
  238. package/dist/core/internal/permissionsRequest.js +58 -0
  239. package/dist/core/internal/permissionsRequest.js.map +1 -0
  240. package/dist/core/internal/porto.d.ts +14 -0
  241. package/dist/core/internal/porto.d.ts.map +1 -0
  242. package/dist/core/internal/porto.js +2 -0
  243. package/dist/core/internal/porto.js.map +1 -0
  244. package/dist/core/internal/promise.d.ts +9 -0
  245. package/dist/core/internal/promise.d.ts.map +1 -0
  246. package/dist/core/internal/promise.js +11 -0
  247. package/dist/core/internal/promise.js.map +1 -0
  248. package/dist/core/internal/provider.d.ts +30 -0
  249. package/dist/core/internal/provider.d.ts.map +1 -0
  250. package/dist/core/internal/provider.js +944 -0
  251. package/dist/core/internal/provider.js.map +1 -0
  252. package/dist/core/internal/relay/rpcSchema.d.ts +76 -0
  253. package/dist/core/internal/relay/rpcSchema.d.ts.map +1 -0
  254. package/dist/core/internal/relay/rpcSchema.js +7 -0
  255. package/dist/core/internal/relay/rpcSchema.js.map +1 -0
  256. package/dist/core/internal/relay/schema/capabilities.d.ts +165 -0
  257. package/dist/core/internal/relay/schema/capabilities.d.ts.map +1 -0
  258. package/dist/core/internal/relay/schema/capabilities.js +112 -0
  259. package/dist/core/internal/relay/schema/capabilities.js.map +1 -0
  260. package/dist/core/internal/relay/schema/intent.d.ts +168 -0
  261. package/dist/core/internal/relay/schema/intent.d.ts.map +1 -0
  262. package/dist/core/internal/relay/schema/intent.js +170 -0
  263. package/dist/core/internal/relay/schema/intent.js.map +1 -0
  264. package/dist/core/internal/relay/schema/key.d.ts +44 -0
  265. package/dist/core/internal/relay/schema/key.d.ts.map +1 -0
  266. package/dist/core/internal/relay/schema/key.js +30 -0
  267. package/dist/core/internal/relay/schema/key.js.map +1 -0
  268. package/dist/core/internal/relay/schema/permission.d.ts +40 -0
  269. package/dist/core/internal/relay/schema/permission.d.ts.map +1 -0
  270. package/dist/core/internal/relay/schema/permission.js +29 -0
  271. package/dist/core/internal/relay/schema/permission.js.map +1 -0
  272. package/dist/core/internal/relay/schema/preCall.d.ts +63 -0
  273. package/dist/core/internal/relay/schema/preCall.d.ts.map +1 -0
  274. package/dist/core/internal/relay/schema/preCall.js +36 -0
  275. package/dist/core/internal/relay/schema/preCall.js.map +1 -0
  276. package/dist/core/internal/relay/schema/quotes.d.ts +370 -0
  277. package/dist/core/internal/relay/schema/quotes.d.ts.map +1 -0
  278. package/dist/core/internal/relay/schema/quotes.js +89 -0
  279. package/dist/core/internal/relay/schema/quotes.js.map +1 -0
  280. package/dist/core/internal/relay/schema/rpc.d.ts +1529 -0
  281. package/dist/core/internal/relay/schema/rpc.d.ts.map +1 -0
  282. package/dist/core/internal/relay/schema/rpc.js +638 -0
  283. package/dist/core/internal/relay/schema/rpc.js.map +1 -0
  284. package/dist/core/internal/relay/schema/token.d.ts +14 -0
  285. package/dist/core/internal/relay/schema/token.d.ts.map +1 -0
  286. package/dist/core/internal/relay/schema/token.js +13 -0
  287. package/dist/core/internal/relay/schema/token.js.map +1 -0
  288. package/dist/core/internal/requiredFunds.d.ts +19 -0
  289. package/dist/core/internal/requiredFunds.d.ts.map +1 -0
  290. package/dist/core/internal/requiredFunds.js +25 -0
  291. package/dist/core/internal/requiredFunds.js.map +1 -0
  292. package/dist/core/internal/schema/capabilities.d.ts +314 -0
  293. package/dist/core/internal/schema/capabilities.d.ts.map +1 -0
  294. package/dist/core/internal/schema/capabilities.js +133 -0
  295. package/dist/core/internal/schema/capabilities.js.map +1 -0
  296. package/dist/core/internal/schema/key.d.ts +165 -0
  297. package/dist/core/internal/schema/key.d.ts.map +1 -0
  298. package/dist/core/internal/schema/key.js +75 -0
  299. package/dist/core/internal/schema/key.js.map +1 -0
  300. package/dist/core/internal/schema/permissions.d.ts +103 -0
  301. package/dist/core/internal/schema/permissions.d.ts.map +1 -0
  302. package/dist/core/internal/schema/permissions.js +28 -0
  303. package/dist/core/internal/schema/permissions.js.map +1 -0
  304. package/dist/core/internal/schema/request.d.ts +938 -0
  305. package/dist/core/internal/schema/request.d.ts.map +1 -0
  306. package/dist/core/internal/schema/request.js +57 -0
  307. package/dist/core/internal/schema/request.js.map +1 -0
  308. package/dist/core/internal/schema/rpc.d.ts +3315 -0
  309. package/dist/core/internal/schema/rpc.d.ts.map +1 -0
  310. package/dist/core/internal/schema/rpc.js +599 -0
  311. package/dist/core/internal/schema/rpc.js.map +1 -0
  312. package/dist/core/internal/schema/token.d.ts +2 -0
  313. package/dist/core/internal/schema/token.d.ts.map +1 -0
  314. package/dist/core/internal/schema/token.js +2 -0
  315. package/dist/core/internal/schema/token.js.map +1 -0
  316. package/dist/core/internal/schema/utils.d.ts +19 -0
  317. package/dist/core/internal/schema/utils.d.ts.map +1 -0
  318. package/dist/core/internal/schema/utils.js +213 -0
  319. package/dist/core/internal/schema/utils.js.map +1 -0
  320. package/dist/core/internal/siwe.d.ts +33 -0
  321. package/dist/core/internal/siwe.d.ts.map +1 -0
  322. package/dist/core/internal/siwe.js +92 -0
  323. package/dist/core/internal/siwe.js.map +1 -0
  324. package/dist/core/internal/store.d.ts +3 -0
  325. package/dist/core/internal/store.d.ts.map +1 -0
  326. package/dist/core/internal/store.js +9 -0
  327. package/dist/core/internal/store.js.map +1 -0
  328. package/dist/core/internal/tokens.d.ts +58 -0
  329. package/dist/core/internal/tokens.d.ts.map +1 -0
  330. package/dist/core/internal/tokens.js +69 -0
  331. package/dist/core/internal/tokens.js.map +1 -0
  332. package/dist/core/internal/types.d.ts +299 -0
  333. package/dist/core/internal/types.d.ts.map +1 -0
  334. package/dist/core/internal/types.js +2 -0
  335. package/dist/core/internal/types.js.map +1 -0
  336. package/dist/core/internal/urlString.d.ts +2 -0
  337. package/dist/core/internal/urlString.d.ts.map +1 -0
  338. package/dist/core/internal/urlString.js +8 -0
  339. package/dist/core/internal/urlString.js.map +1 -0
  340. package/dist/core/internal/userAgent.d.ts +11 -0
  341. package/dist/core/internal/userAgent.d.ts.map +1 -0
  342. package/dist/core/internal/userAgent.js +19 -0
  343. package/dist/core/internal/userAgent.js.map +1 -0
  344. package/dist/core/internal/utils.d.ts +25 -0
  345. package/dist/core/internal/utils.d.ts.map +1 -0
  346. package/dist/core/internal/utils.js +62 -0
  347. package/dist/core/internal/utils.js.map +1 -0
  348. package/dist/core/react-native/Porto.d.ts +1481 -0
  349. package/dist/core/react-native/Porto.d.ts.map +1 -0
  350. package/dist/core/react-native/Porto.js +17 -0
  351. package/dist/core/react-native/Porto.js.map +1 -0
  352. package/dist/core/react-native/configure.d.ts +10 -0
  353. package/dist/core/react-native/configure.d.ts.map +1 -0
  354. package/dist/core/react-native/configure.js +24 -0
  355. package/dist/core/react-native/configure.js.map +1 -0
  356. package/dist/core/react-native/environment.d.ts +27 -0
  357. package/dist/core/react-native/environment.d.ts.map +1 -0
  358. package/dist/core/react-native/environment.js +13 -0
  359. package/dist/core/react-native/environment.js.map +1 -0
  360. package/dist/core/react-native/index.d.ts +5 -0
  361. package/dist/core/react-native/index.d.ts.map +1 -0
  362. package/dist/core/react-native/index.js +5 -0
  363. package/dist/core/react-native/index.js.map +1 -0
  364. package/dist/core/react-native/utils.d.ts +2 -0
  365. package/dist/core/react-native/utils.d.ts.map +1 -0
  366. package/dist/core/react-native/utils.js +12 -0
  367. package/dist/core/react-native/utils.js.map +1 -0
  368. package/dist/index.d.ts +17 -2
  369. package/dist/index.d.ts.map +1 -0
  370. package/dist/index.js +15 -2
  371. package/dist/index.js.map +1 -0
  372. package/dist/index.native.d.ts +8 -0
  373. package/dist/index.native.d.ts.map +1 -0
  374. package/dist/index.native.js +12 -0
  375. package/dist/index.native.js.map +1 -0
  376. package/dist/internal/index.d.ts +4 -0
  377. package/dist/internal/index.d.ts.map +1 -0
  378. package/dist/internal/index.js +4 -0
  379. package/dist/internal/index.js.map +1 -0
  380. package/dist/react-native/crypto.d.ts +2 -0
  381. package/dist/react-native/crypto.d.ts.map +1 -0
  382. package/dist/react-native/crypto.js +12 -0
  383. package/dist/react-native/crypto.js.map +1 -0
  384. package/dist/react-native/index.d.ts +8 -0
  385. package/dist/react-native/index.d.ts.map +1 -0
  386. package/dist/react-native/index.js +12 -0
  387. package/dist/react-native/index.js.map +1 -0
  388. package/dist/react-native/register.d.ts +3 -0
  389. package/dist/react-native/register.d.ts.map +1 -0
  390. package/dist/react-native/register.js +15 -0
  391. package/dist/react-native/register.js.map +1 -0
  392. package/dist/register/index.d.ts +15 -0
  393. package/dist/register/index.d.ts.map +1 -0
  394. package/dist/register/index.js +2 -0
  395. package/dist/register/index.js.map +1 -0
  396. package/dist/remote/Actions.d.ts +34 -0
  397. package/dist/remote/Actions.d.ts.map +1 -0
  398. package/dist/remote/Actions.js +76 -0
  399. package/dist/remote/Actions.js.map +1 -0
  400. package/dist/remote/Events.d.ts +47 -0
  401. package/dist/remote/Events.d.ts.map +1 -0
  402. package/dist/remote/Events.js +132 -0
  403. package/dist/remote/Events.js.map +1 -0
  404. package/dist/remote/Hooks.d.ts +3801 -0
  405. package/dist/remote/Hooks.d.ts.map +1 -0
  406. package/dist/remote/Hooks.js +106 -0
  407. package/dist/remote/Hooks.js.map +1 -0
  408. package/dist/remote/Porto.d.ts +858 -0
  409. package/dist/remote/Porto.d.ts.map +1 -0
  410. package/dist/remote/Porto.js +66 -0
  411. package/dist/remote/Porto.js.map +1 -0
  412. package/dist/remote/index.d.ts +5 -0
  413. package/dist/remote/index.d.ts.map +1 -0
  414. package/dist/remote/index.js +5 -0
  415. package/dist/remote/index.js.map +1 -0
  416. package/dist/remote/internal/methodPolicies.d.ts +97 -0
  417. package/dist/remote/internal/methodPolicies.d.ts.map +1 -0
  418. package/dist/remote/internal/methodPolicies.js +102 -0
  419. package/dist/remote/internal/methodPolicies.js.map +1 -0
  420. package/dist/server/Route.d.ts +88 -0
  421. package/dist/server/Route.d.ts.map +1 -0
  422. package/dist/server/Route.js +189 -0
  423. package/dist/server/Route.js.map +1 -0
  424. package/dist/server/Router.d.ts +24 -0
  425. package/dist/server/Router.d.ts.map +1 -0
  426. package/dist/server/Router.js +29 -0
  427. package/dist/server/Router.js.map +1 -0
  428. package/dist/server/index.d.ts +3 -0
  429. package/dist/server/index.d.ts.map +1 -0
  430. package/dist/server/index.js +3 -0
  431. package/dist/server/index.js.map +1 -0
  432. package/dist/server/internal/merchantSchema.d.ts +65 -0
  433. package/dist/server/internal/merchantSchema.d.ts.map +1 -0
  434. package/dist/server/internal/merchantSchema.js +7 -0
  435. package/dist/server/internal/merchantSchema.js.map +1 -0
  436. package/dist/server/internal/requestListener.d.ts +124 -0
  437. package/dist/server/internal/requestListener.d.ts.map +1 -0
  438. package/dist/server/internal/requestListener.js +172 -0
  439. package/dist/server/internal/requestListener.js.map +1 -0
  440. package/dist/theme/Theme.d.ts +122 -0
  441. package/dist/theme/Theme.d.ts.map +1 -0
  442. package/dist/theme/Theme.js +18 -0
  443. package/dist/theme/Theme.js.map +1 -0
  444. package/dist/theme/index.d.ts +3 -0
  445. package/dist/theme/index.d.ts.map +1 -0
  446. package/dist/theme/index.js +2 -0
  447. package/dist/theme/index.js.map +1 -0
  448. package/dist/trusted-hosts.d.ts +2 -0
  449. package/dist/trusted-hosts.d.ts.map +1 -0
  450. package/dist/trusted-hosts.js +44 -0
  451. package/dist/trusted-hosts.js.map +1 -0
  452. package/dist/tsconfig.tmp.tsbuildinfo +1 -0
  453. package/dist/viem/Account.d.ts +111 -0
  454. package/dist/viem/Account.d.ts.map +1 -0
  455. package/dist/viem/Account.js +132 -0
  456. package/dist/viem/Account.js.map +1 -0
  457. package/dist/viem/AccountActions.d.ts +11 -0
  458. package/dist/viem/AccountActions.d.ts.map +1 -0
  459. package/dist/viem/AccountActions.js +14 -0
  460. package/dist/viem/AccountActions.js.map +1 -0
  461. package/dist/viem/CapabilitiesSchema.d.ts +15 -0
  462. package/dist/viem/CapabilitiesSchema.d.ts.map +1 -0
  463. package/dist/viem/CapabilitiesSchema.js +2 -0
  464. package/dist/viem/CapabilitiesSchema.js.map +1 -0
  465. package/dist/viem/ContractActions.d.ts +209 -0
  466. package/dist/viem/ContractActions.d.ts.map +1 -0
  467. package/dist/viem/ContractActions.js +350 -0
  468. package/dist/viem/ContractActions.js.map +1 -0
  469. package/dist/viem/Key.d.ts +1156 -0
  470. package/dist/viem/Key.d.ts.map +1 -0
  471. package/dist/viem/Key.js +924 -0
  472. package/dist/viem/Key.js.map +1 -0
  473. package/dist/viem/RelayActions.d.ts +436 -0
  474. package/dist/viem/RelayActions.d.ts.map +1 -0
  475. package/dist/viem/RelayActions.js +385 -0
  476. package/dist/viem/RelayActions.js.map +1 -0
  477. package/dist/viem/RelayClient.d.ts +27 -0
  478. package/dist/viem/RelayClient.d.ts.map +1 -0
  479. package/dist/viem/RelayClient.js +44 -0
  480. package/dist/viem/RelayClient.js.map +1 -0
  481. package/dist/viem/RpcSchema.d.ts +23 -0
  482. package/dist/viem/RpcSchema.d.ts.map +1 -0
  483. package/dist/viem/RpcSchema.js +2 -0
  484. package/dist/viem/RpcSchema.js.map +1 -0
  485. package/dist/viem/WalletActions.d.ts +87 -0
  486. package/dist/viem/WalletActions.d.ts.map +1 -0
  487. package/dist/viem/WalletActions.js +220 -0
  488. package/dist/viem/WalletActions.js.map +1 -0
  489. package/dist/viem/WalletClient.d.ts +21 -0
  490. package/dist/viem/WalletClient.d.ts.map +1 -0
  491. package/dist/viem/WalletClient.js +23 -0
  492. package/dist/viem/WalletClient.js.map +1 -0
  493. package/dist/viem/index.d.ts +14 -0
  494. package/dist/viem/index.d.ts.map +1 -0
  495. package/dist/viem/index.js +12 -0
  496. package/dist/viem/index.js.map +1 -0
  497. package/dist/viem/internal/relayActions.d.ts +365 -0
  498. package/dist/viem/internal/relayActions.d.ts.map +1 -0
  499. package/dist/viem/internal/relayActions.js +783 -0
  500. package/dist/viem/internal/relayActions.js.map +1 -0
  501. package/dist/viem/internal/utils.d.ts +16 -0
  502. package/dist/viem/internal/utils.d.ts.map +1 -0
  503. package/dist/viem/internal/utils.js +2 -0
  504. package/dist/viem/internal/utils.js.map +1 -0
  505. package/dist/wagmi/Actions.d.ts +2 -0
  506. package/dist/wagmi/Actions.d.ts.map +1 -0
  507. package/dist/wagmi/Actions.js +2 -0
  508. package/dist/wagmi/Actions.js.map +1 -0
  509. package/dist/wagmi/Connector.d.ts +28 -0
  510. package/dist/wagmi/Connector.d.ts.map +1 -0
  511. package/dist/wagmi/Connector.js +238 -0
  512. package/dist/wagmi/Connector.js.map +1 -0
  513. package/dist/wagmi/Hooks.d.ts +2 -0
  514. package/dist/wagmi/Hooks.d.ts.map +1 -0
  515. package/dist/wagmi/Hooks.js +2 -0
  516. package/dist/wagmi/Hooks.js.map +1 -0
  517. package/dist/wagmi/Hooks.native.d.ts +3 -0
  518. package/dist/wagmi/Hooks.native.d.ts.map +1 -0
  519. package/dist/wagmi/Hooks.native.js +3 -0
  520. package/dist/wagmi/Hooks.native.js.map +1 -0
  521. package/dist/wagmi/Query.d.ts +2 -0
  522. package/dist/wagmi/Query.d.ts.map +1 -0
  523. package/dist/wagmi/Query.js +2 -0
  524. package/dist/wagmi/Query.js.map +1 -0
  525. package/dist/wagmi/index.d.ts +5 -0
  526. package/dist/wagmi/index.d.ts.map +1 -0
  527. package/dist/wagmi/index.js +5 -0
  528. package/dist/wagmi/index.js.map +1 -0
  529. package/dist/wagmi/index.native.d.ts +6 -0
  530. package/dist/wagmi/index.native.d.ts.map +1 -0
  531. package/dist/wagmi/index.native.js +6 -0
  532. package/dist/wagmi/index.native.js.map +1 -0
  533. package/dist/wagmi/internal/core.d.ts +84 -0
  534. package/dist/wagmi/internal/core.d.ts.map +1 -0
  535. package/dist/wagmi/internal/core.js +229 -0
  536. package/dist/wagmi/internal/core.js.map +1 -0
  537. package/dist/wagmi/internal/query.d.ts +33 -0
  538. package/dist/wagmi/internal/query.d.ts.map +1 -0
  539. package/dist/wagmi/internal/query.js +23 -0
  540. package/dist/wagmi/internal/query.js.map +1 -0
  541. package/dist/wagmi/internal/react.d.ts +91 -0
  542. package/dist/wagmi/internal/react.d.ts.map +1 -0
  543. package/dist/wagmi/internal/react.js +256 -0
  544. package/dist/wagmi/internal/react.js.map +1 -0
  545. package/dist/wagmi/internal/types.d.ts +11 -0
  546. package/dist/wagmi/internal/types.d.ts.map +1 -0
  547. package/dist/wagmi/internal/types.js +2 -0
  548. package/dist/wagmi/internal/types.js.map +1 -0
  549. package/dist/wagmi/internal/utils.d.ts +2 -0
  550. package/dist/wagmi/internal/utils.d.ts.map +1 -0
  551. package/dist/wagmi/internal/utils.js +18 -0
  552. package/dist/wagmi/internal/utils.js.map +1 -0
  553. package/package.json +287 -34
  554. package/src/cli/Dialog.ts +75 -0
  555. package/src/cli/Messenger.ts +148 -0
  556. package/src/cli/bin/index.ts +37 -0
  557. package/src/cli/bin/tsconfig.json +8 -0
  558. package/src/cli/index.ts +2 -0
  559. package/src/cli/internal/commands.ts +216 -0
  560. package/src/cli/internal/context.ts +56 -0
  561. package/src/cli/internal/http.ts +28 -0
  562. package/src/cli/internal/utils.ts +28 -0
  563. package/src/cli/tsdown.config.ts +37 -0
  564. package/src/core/Chains.ts +25 -0
  565. package/src/core/Dialog.ts +1059 -0
  566. package/src/core/Messenger.ts +394 -0
  567. package/src/core/Mode.ts +4 -0
  568. package/src/core/Porto.ts +287 -0
  569. package/src/core/RpcSchema.ts +124 -0
  570. package/src/core/Storage.ts +122 -0
  571. package/src/core/Transport.ts +45 -0
  572. package/src/core/internal/_generated/chains.ts +4 -0
  573. package/src/core/internal/_generated/contracts/EIP7702Proxy.ts +25 -0
  574. package/src/core/internal/_generated/contracts/Escrow.ts +330 -0
  575. package/src/core/internal/_generated/contracts/ExperimentERC20.ts +569 -0
  576. package/src/core/internal/_generated/contracts/ExperimentERC721.ts +588 -0
  577. package/src/core/internal/_generated/contracts/GuardedExecutor.ts +623 -0
  578. package/src/core/internal/_generated/contracts/ICallChecker.ts +34 -0
  579. package/src/core/internal/_generated/contracts/ICommon.ts +4 -0
  580. package/src/core/internal/_generated/contracts/IEscrow.ts +114 -0
  581. package/src/core/internal/_generated/contracts/IFunder.ts +80 -0
  582. package/src/core/internal/_generated/contracts/IFunderV4.ts +45 -0
  583. package/src/core/internal/_generated/contracts/IIthacaAccount.ts +107 -0
  584. package/src/core/internal/_generated/contracts/IOAppCore.ts +142 -0
  585. package/src/core/internal/_generated/contracts/IOAppMsgInspector.ts +45 -0
  586. package/src/core/internal/_generated/contracts/IOAppReceiver.ts +161 -0
  587. package/src/core/internal/_generated/contracts/IOrchestrator.ts +95 -0
  588. package/src/core/internal/_generated/contracts/ISettler.ts +52 -0
  589. package/src/core/internal/_generated/contracts/ISigner.ts +34 -0
  590. package/src/core/internal/_generated/contracts/IthacaAccount.ts +1454 -0
  591. package/src/core/internal/_generated/contracts/IthacaAccountNew.ts +1454 -0
  592. package/src/core/internal/_generated/contracts/IthacaAccountOld.ts +1454 -0
  593. package/src/core/internal/_generated/contracts/LayerZeroSettler.ts +811 -0
  594. package/src/core/internal/_generated/contracts/LibNonce.ts +15 -0
  595. package/src/core/internal/_generated/contracts/LibTStack.ts +4 -0
  596. package/src/core/internal/_generated/contracts/MultiSigSigner.ts +203 -0
  597. package/src/core/internal/_generated/contracts/OApp.ts +412 -0
  598. package/src/core/internal/_generated/contracts/OAppCore.ts +229 -0
  599. package/src/core/internal/_generated/contracts/OAppReceiver.ts +396 -0
  600. package/src/core/internal/_generated/contracts/OAppSender.ts +245 -0
  601. package/src/core/internal/_generated/contracts/Orchestrator.ts +390 -0
  602. package/src/core/internal/_generated/contracts/SimpleFunder.ts +534 -0
  603. package/src/core/internal/_generated/contracts/SimpleSettler.ts +360 -0
  604. package/src/core/internal/_generated/contracts/Simulator.ts +170 -0
  605. package/src/core/internal/_generated/contracts/TokenTransferLib.ts +4 -0
  606. package/src/core/internal/_snapshots/provider.browser.test.ts.snap +119 -0
  607. package/src/core/internal/_snapshots/provider.test.ts.snap +1103 -0
  608. package/src/core/internal/call.test.ts +116 -0
  609. package/src/core/internal/call.ts +245 -0
  610. package/src/core/internal/erc8010.test.ts +74 -0
  611. package/src/core/internal/erc8010.ts +44 -0
  612. package/src/core/internal/intersectionObserver.ts +5 -0
  613. package/src/core/internal/logger.ts +42 -0
  614. package/src/core/internal/mode.ts +498 -0
  615. package/src/core/internal/modes/dialog.ts +1051 -0
  616. package/src/core/internal/modes/reactNative.ts +29 -0
  617. package/src/core/internal/modes/relay.ts +893 -0
  618. package/src/core/internal/permissions.ts +43 -0
  619. package/src/core/internal/permissionsRequest.ts +88 -0
  620. package/src/core/internal/porto.ts +16 -0
  621. package/src/core/internal/promise.ts +19 -0
  622. package/src/core/internal/provider.browser.test.ts +311 -0
  623. package/src/core/internal/provider.test.ts +3552 -0
  624. package/src/core/internal/provider.ts +1278 -0
  625. package/src/core/internal/relay/rpcSchema.ts +101 -0
  626. package/src/core/internal/relay/schema/capabilities.test.ts +663 -0
  627. package/src/core/internal/relay/schema/capabilities.ts +156 -0
  628. package/src/core/internal/relay/schema/intent.test.ts +433 -0
  629. package/src/core/internal/relay/schema/intent.ts +174 -0
  630. package/src/core/internal/relay/schema/key.test.ts +424 -0
  631. package/src/core/internal/relay/schema/key.ts +34 -0
  632. package/src/core/internal/relay/schema/permission.test.ts +499 -0
  633. package/src/core/internal/relay/schema/permission.ts +34 -0
  634. package/src/core/internal/relay/schema/preCall.ts +39 -0
  635. package/src/core/internal/relay/schema/quotes.test.ts +901 -0
  636. package/src/core/internal/relay/schema/quotes.ts +98 -0
  637. package/src/core/internal/relay/schema/rpc.ts +822 -0
  638. package/src/core/internal/relay/schema/token.ts +16 -0
  639. package/src/core/internal/requiredFunds.test.ts +141 -0
  640. package/src/core/internal/requiredFunds.ts +45 -0
  641. package/src/core/internal/schema/capabilities.test.ts +1334 -0
  642. package/src/core/internal/schema/capabilities.ts +162 -0
  643. package/src/core/internal/schema/key.test.ts +570 -0
  644. package/src/core/internal/schema/key.ts +98 -0
  645. package/src/core/internal/schema/permissions.test.ts +948 -0
  646. package/src/core/internal/schema/permissions.ts +31 -0
  647. package/src/core/internal/schema/request.bench.ts +35 -0
  648. package/src/core/internal/schema/request.ts +90 -0
  649. package/src/core/internal/schema/rpc.ts +821 -0
  650. package/src/core/internal/schema/token.ts +1 -0
  651. package/src/core/internal/schema/utils.test.ts +572 -0
  652. package/src/core/internal/schema/utils.ts +236 -0
  653. package/src/core/internal/siwe.test.ts +473 -0
  654. package/src/core/internal/siwe.ts +144 -0
  655. package/src/core/internal/store.ts +9 -0
  656. package/src/core/internal/tokens.test.ts +317 -0
  657. package/src/core/internal/tokens.ts +125 -0
  658. package/src/core/internal/types.ts +448 -0
  659. package/src/core/internal/urlString.ts +5 -0
  660. package/src/core/internal/userAgent.ts +35 -0
  661. package/src/core/internal/utils.test.ts +35 -0
  662. package/src/core/internal/utils.ts +67 -0
  663. package/src/core/react-native/Porto.ts +22 -0
  664. package/src/core/react-native/configure.ts +31 -0
  665. package/src/core/react-native/environment.ts +43 -0
  666. package/src/core/react-native/index.ts +4 -0
  667. package/src/core/react-native/utils.ts +18 -0
  668. package/src/index.native.ts +15 -0
  669. package/src/index.ts +17 -0
  670. package/src/internal/index.ts +3 -0
  671. package/src/react-native/crypto.ts +19 -0
  672. package/src/react-native/index.ts +15 -0
  673. package/src/react-native/register.ts +24 -0
  674. package/src/register/index.ts +17 -0
  675. package/src/remote/Actions.ts +115 -0
  676. package/src/remote/Events.ts +193 -0
  677. package/src/remote/Hooks.ts +194 -0
  678. package/src/remote/Porto.ts +144 -0
  679. package/src/remote/index.ts +4 -0
  680. package/src/remote/internal/methodPolicies.ts +124 -0
  681. package/src/server/Route.test.ts +347 -0
  682. package/src/server/Route.ts +259 -0
  683. package/src/server/Router.test.ts +32 -0
  684. package/src/server/Router.ts +59 -0
  685. package/src/server/index.ts +2 -0
  686. package/src/server/internal/merchantSchema.ts +11 -0
  687. package/src/server/internal/requestListener.ts +284 -0
  688. package/src/theme/Theme.ts +163 -0
  689. package/src/theme/index.ts +2 -0
  690. package/src/trusted-hosts.ts +43 -0
  691. package/src/tsconfig.build.tsbuildinfo +1 -0
  692. package/src/tsconfig.json +15 -0
  693. package/src/viem/Account.test.ts +270 -0
  694. package/src/viem/Account.ts +278 -0
  695. package/src/viem/AccountActions.test.ts +3 -0
  696. package/src/viem/AccountActions.ts +30 -0
  697. package/src/viem/CapabilitiesSchema.ts +18 -0
  698. package/src/viem/ContractActions.test.ts +980 -0
  699. package/src/viem/ContractActions.ts +624 -0
  700. package/src/viem/Key.test.ts +1420 -0
  701. package/src/viem/Key.ts +1318 -0
  702. package/src/viem/RelayActions.test.ts +1730 -0
  703. package/src/viem/RelayActions.ts +1082 -0
  704. package/src/viem/RelayClient.test.ts +127 -0
  705. package/src/viem/RelayClient.ts +87 -0
  706. package/src/viem/RpcSchema.ts +27 -0
  707. package/src/viem/WalletActions.test.ts +646 -0
  708. package/src/viem/WalletActions.ts +476 -0
  709. package/src/viem/WalletClient.test.ts +36 -0
  710. package/src/viem/WalletClient.ts +74 -0
  711. package/src/viem/index.ts +13 -0
  712. package/src/viem/internal/relayActions.test.ts +1296 -0
  713. package/src/viem/internal/relayActions.ts +1222 -0
  714. package/src/viem/internal/utils.ts +27 -0
  715. package/src/wagmi/Actions.ts +13 -0
  716. package/src/wagmi/Connector.ts +306 -0
  717. package/src/wagmi/Hooks.native.ts +16 -0
  718. package/src/wagmi/Hooks.ts +14 -0
  719. package/src/wagmi/Query.ts +5 -0
  720. package/src/wagmi/index.native.ts +6 -0
  721. package/src/wagmi/index.ts +4 -0
  722. package/src/wagmi/internal/core.test.ts +12 -0
  723. package/src/wagmi/internal/core.ts +468 -0
  724. package/src/wagmi/internal/query.ts +52 -0
  725. package/src/wagmi/internal/react.test.ts +12 -0
  726. package/src/wagmi/internal/react.ts +705 -0
  727. package/src/wagmi/internal/types.ts +21 -0
  728. package/src/wagmi/internal/utils.ts +25 -0
  729. package/dist/chain.cjs +0 -17
  730. package/dist/chain.d.cts +0 -41
  731. package/dist/chain.d.ts +0 -41
  732. package/dist/chain.js +0 -13
  733. package/dist/config.cjs +0 -19
  734. package/dist/config.d.cts +0 -3
  735. package/dist/config.d.ts +0 -3
  736. package/dist/config.js +0 -16
  737. package/dist/index.cjs +0 -18
  738. package/dist/index.d.cts +0 -2
@@ -0,0 +1,1051 @@
1
+ import type * as Address from 'ox/Address'
2
+ import * as Hex from 'ox/Hex'
3
+ import * as Provider from 'ox/Provider'
4
+ import * as RpcRequest from 'ox/RpcRequest'
5
+ import * as RpcResponse from 'ox/RpcResponse'
6
+ import * as RpcSchema from 'ox/RpcSchema'
7
+ import { waitForCallsStatus } from 'viem/actions'
8
+ import * as z from 'zod/mini'
9
+ import type { ThemeFragment } from '../../../theme/Theme.js'
10
+ import * as Account from '../../../viem/Account.js'
11
+ import * as Key from '../../../viem/Key.js'
12
+ import * as Dialog from '../../Dialog.js'
13
+ import type { QueuedRequest } from '../../Porto.js'
14
+ import * as RpcSchema_porto from '../../RpcSchema.js'
15
+ import type { Storage } from '../../Storage.js'
16
+ import * as Mode from '../mode.js'
17
+ import * as Permissions from '../permissions.js'
18
+ import * as PermissionsRequest from '../permissionsRequest.js'
19
+ import type * as Porto from '../porto.js'
20
+ import type * as Token from '../schema/token.js'
21
+ import * as Siwe from '../siwe.js'
22
+ import * as U from '../utils.js'
23
+ import { relay } from './relay.js'
24
+
25
+ export function dialog(parameters: dialog.Parameters = {}) {
26
+ const {
27
+ fallback = relay(),
28
+ host = Dialog.hostUrls.prod,
29
+ renderer = Dialog.iframe(),
30
+ theme,
31
+ themeController,
32
+ } = parameters
33
+
34
+ const listeners = new Set<(requestQueue: readonly QueuedRequest[]) => void>()
35
+ const requestStore = RpcRequest.createStore()
36
+
37
+ // Function to instantiate a provider for the dialog. This
38
+ // will be used to queue up requests for the dialog and
39
+ // handle responses.
40
+ function getProvider(store: Porto.Internal['store']) {
41
+ return Provider.from(
42
+ {
43
+ async request(r) {
44
+ const request = requestStore.prepare(r as any)
45
+
46
+ // When we receive a request, we need to add it to the queue.
47
+ store.setState((x) => {
48
+ const account = x.accounts[0]
49
+ const adminKey = account?.keys?.find(
50
+ (key) => key.role === 'admin' && key.type === 'webauthn-p256',
51
+ )
52
+ return {
53
+ ...x,
54
+ requestQueue: [
55
+ ...x.requestQueue,
56
+ {
57
+ account: account
58
+ ? {
59
+ address: account.address,
60
+ key: adminKey
61
+ ? {
62
+ credentialId: (adminKey as any)?.credentialId,
63
+ publicKey: adminKey.publicKey,
64
+ }
65
+ : undefined,
66
+ }
67
+ : undefined,
68
+ request,
69
+ status: 'pending',
70
+ },
71
+ ],
72
+ }
73
+ })
74
+
75
+ // We need to wait for the request to be resolved.
76
+ return new Promise((resolve, reject) => {
77
+ const listener = (requestQueue: readonly QueuedRequest[]) => {
78
+ // Find the request in the queue based off its JSON-RPC identifier.
79
+ const queued = requestQueue.find(
80
+ (x) => x.request.id === request.id,
81
+ )
82
+
83
+ // If the request is not found and the queue is empty, reject the request
84
+ // as it will never be resolved (likely cancelled or dialog closed).
85
+ if (!queued && requestQueue.length === 0) {
86
+ listeners.delete(listener)
87
+ reject(new Provider.UserRejectedRequestError())
88
+ return
89
+ }
90
+
91
+ // If request not found but queue has other requests, wait for next update.
92
+ if (!queued) return
93
+
94
+ // If request found but not yet resolved, wait for next update.
95
+ if (queued.status !== 'success' && queued.status !== 'error')
96
+ return
97
+
98
+ // We have a response, we can unsubscribe from the listener.
99
+ listeners.delete(listener)
100
+
101
+ // If the request was successful, resolve with the result.
102
+ if (queued.status === 'success') resolve(queued.result as any)
103
+ // Otherwise, reject with EIP-1193 Provider error.
104
+ else reject(Provider.parseError(queued.error))
105
+
106
+ // Remove the request from the queue.
107
+ store.setState((x) => ({
108
+ ...x,
109
+ requestQueue: x.requestQueue.filter(
110
+ (x) => x.request.id !== request.id,
111
+ ),
112
+ }))
113
+ }
114
+
115
+ listeners.add(listener)
116
+ })
117
+ },
118
+ },
119
+ { schema: RpcSchema.from<RpcSchema_porto.Schema>() },
120
+ )
121
+ }
122
+
123
+ return Mode.from({
124
+ actions: {
125
+ async addFunds(parameters) {
126
+ const { internal } = parameters
127
+ const { request, store } = internal
128
+
129
+ if (request.method !== 'wallet_addFunds')
130
+ throw new Error('Cannot add funds for method: ' + request.method)
131
+
132
+ const provider = getProvider(store)
133
+ return await provider.request(request)
134
+ },
135
+
136
+ async createAccount(parameters) {
137
+ const { internal } = parameters
138
+ const { client, config, request, store } = internal
139
+ const { storage } = config
140
+
141
+ const provider = getProvider(store)
142
+
143
+ const account = await (async () => {
144
+ if (request.method === 'wallet_connect') {
145
+ // Extract the capabilities from the request.
146
+ const [{ capabilities, chainIds }] = request._decoded.params ?? [{}]
147
+
148
+ const authUrl = getAuthUrl(
149
+ capabilities?.signInWithEthereum?.authUrl ?? config.authUrl,
150
+ { storage },
151
+ )
152
+
153
+ const signInWithEthereum =
154
+ request.params?.[0]?.capabilities?.signInWithEthereum
155
+
156
+ // Parse the authorize key into a structured key.
157
+ const key = await PermissionsRequest.toKey(
158
+ capabilities?.grantPermissions,
159
+ {
160
+ chainId: client.chain.id,
161
+ },
162
+ )
163
+
164
+ // Convert the key into a permission.
165
+ const permissionsRequest = key
166
+ ? z.encode(
167
+ PermissionsRequest.Schema,
168
+ PermissionsRequest.fromKey(key),
169
+ )
170
+ : undefined
171
+
172
+ // Send a request off to the dialog to create an account.
173
+ const { accounts } = await provider.request({
174
+ ...request,
175
+ params: [
176
+ {
177
+ capabilities: {
178
+ ...request.params?.[0]?.capabilities,
179
+ grantPermissions: permissionsRequest,
180
+ signInWithEthereum:
181
+ authUrl || signInWithEthereum
182
+ ? {
183
+ ...signInWithEthereum,
184
+ authUrl: authUrl!,
185
+ }
186
+ : undefined,
187
+ },
188
+ chainIds: chainIds?.map((chainId) => Hex.fromNumber(chainId)),
189
+ },
190
+ ],
191
+ })
192
+
193
+ const [account] = accounts
194
+ if (!account) throw new Error('no account found.')
195
+
196
+ // Build keys to assign onto the account.
197
+ const adminKeys = account.capabilities?.admins
198
+ ?.map((admin) => Key.from(admin, { chainId: client.chain.id }))
199
+ .filter(Boolean) as readonly Key.Key[] | undefined
200
+
201
+ const sessionKeys = account.capabilities?.permissions
202
+ ?.map((permission) => {
203
+ try {
204
+ const key_permission = Permissions.toKey(
205
+ z.decode(Permissions.Schema, permission),
206
+ )
207
+ if (key_permission.id === key?.id)
208
+ return {
209
+ ...key_permission,
210
+ ...key,
211
+ permissions: key_permission.permissions,
212
+ }
213
+ return key_permission
214
+ } catch {
215
+ return undefined
216
+ }
217
+ })
218
+ .filter(Boolean) as readonly Key.Key[] | undefined
219
+
220
+ const signInWithEthereum_response = await (async () => {
221
+ if (!account.capabilities?.signInWithEthereum) return
222
+ const { message, signature } =
223
+ account.capabilities.signInWithEthereum
224
+
225
+ if (!authUrl)
226
+ return {
227
+ message,
228
+ signature,
229
+ }
230
+
231
+ const { token } = await Siwe.authenticate({
232
+ address: account.address,
233
+ authUrl,
234
+ message,
235
+ signature,
236
+ })
237
+ return {
238
+ message,
239
+ signature,
240
+ token,
241
+ }
242
+ })()
243
+
244
+ return {
245
+ ...Account.from({
246
+ address: account.address,
247
+ keys: [...(adminKeys ?? []), ...(sessionKeys ?? [])],
248
+ }),
249
+ signInWithEthereum: signInWithEthereum_response,
250
+ }
251
+ }
252
+
253
+ throw new Error(
254
+ `Account creation not supported on method: ${request.method}`,
255
+ )
256
+ })()
257
+
258
+ return {
259
+ account,
260
+ }
261
+ },
262
+
263
+ async disconnect(parameters) {
264
+ const { internal } = parameters
265
+ const { config } = internal
266
+ const { storage } = config
267
+
268
+ const authUrl_storage =
269
+ (await storage.getItem<Siwe.AuthUrl | undefined>('porto.authUrl')) ||
270
+ undefined
271
+ const authUrl = getAuthUrl(config.authUrl ?? authUrl_storage, {
272
+ storage,
273
+ })
274
+
275
+ if (authUrl)
276
+ await fetch(authUrl.logout, {
277
+ credentials: 'include',
278
+ method: 'POST',
279
+ }).catch(() => {})
280
+ },
281
+
282
+ async getAccountVersion(parameters) {
283
+ const { internal } = parameters
284
+ const { store, request } = internal
285
+
286
+ if (request.method !== 'wallet_getAccountVersion')
287
+ throw new Error('Cannot get version for method: ' + request.method)
288
+
289
+ if (!renderer.supportsHeadless)
290
+ return fallback.actions.getAccountVersion(parameters)
291
+
292
+ const provider = getProvider(store)
293
+ const result = await provider.request(request)
294
+ return result
295
+ },
296
+
297
+ async getAssets(parameters) {
298
+ const { internal } = parameters
299
+ const { store, request } = internal
300
+
301
+ if (request.method !== 'wallet_getAssets')
302
+ throw new Error('Cannot get assets for method: ' + request.method)
303
+
304
+ if (!renderer.supportsHeadless)
305
+ return fallback.actions.getAssets(parameters)
306
+
307
+ const provider = getProvider(store)
308
+ const result = await provider.request(request)
309
+ return z.decode(RpcSchema_porto.wallet_getAssets.Response, result)
310
+ },
311
+
312
+ async getCallsStatus(parameters) {
313
+ const { internal } = parameters
314
+ const { store, request } = internal
315
+
316
+ if (request.method !== 'wallet_getCallsStatus')
317
+ throw new Error('Cannot get status for method: ' + request.method)
318
+
319
+ if (!renderer.supportsHeadless)
320
+ return fallback.actions.getCallsStatus(parameters)
321
+
322
+ const provider = getProvider(store)
323
+ const result = await provider.request(request)
324
+ return result
325
+ },
326
+
327
+ async getCapabilities(parameters) {
328
+ const { internal } = parameters
329
+ const { store, request } = internal
330
+
331
+ if (request.method !== 'wallet_getCapabilities')
332
+ throw new Error(
333
+ 'Cannot get capabilities for method: ' + request.method,
334
+ )
335
+
336
+ if (!renderer.supportsHeadless)
337
+ return fallback.actions.getCapabilities(parameters)
338
+
339
+ const provider = getProvider(store)
340
+ const result = await provider.request(request)
341
+ return result
342
+ },
343
+
344
+ async getKeys(parameters) {
345
+ const { account, chainIds, internal } = parameters
346
+ const { store } = internal
347
+
348
+ const keys = await (async () => {
349
+ if (!renderer.supportsHeadless)
350
+ return fallback.actions.getKeys(parameters)
351
+
352
+ const provider = getProvider(store)
353
+ const result = await provider.request({
354
+ method: 'wallet_getKeys',
355
+ params: [
356
+ z.encode(RpcSchema_porto.wallet_getKeys.Parameters, {
357
+ address: account.address,
358
+ chainIds,
359
+ }),
360
+ ],
361
+ })
362
+
363
+ return z.decode(RpcSchema_porto.wallet_getKeys.Response, result)
364
+ })()
365
+
366
+ return U.uniqBy(
367
+ [...keys, ...(account.keys ?? [])],
368
+ (key) => key.publicKey,
369
+ )
370
+ },
371
+
372
+ async grantAdmin(parameters) {
373
+ const { internal } = parameters
374
+ const { request, store } = internal
375
+
376
+ if (request.method !== 'wallet_grantAdmin')
377
+ throw new Error(
378
+ 'Cannot authorize admin for method: ' + request.method,
379
+ )
380
+
381
+ const [params] = request._decoded.params
382
+
383
+ const key = Key.from(params.key)
384
+ if (!key) throw new Error('no key found.')
385
+
386
+ const feeToken = await resolveFeeToken(internal, parameters)
387
+
388
+ // Send a request off to the dialog to authorize the admin.
389
+ const provider = getProvider(store)
390
+ await provider.request({
391
+ method: 'wallet_grantAdmin',
392
+ params: [
393
+ {
394
+ ...request.params?.[0],
395
+ capabilities: {
396
+ ...request.params?.[0]?.capabilities,
397
+ feeToken,
398
+ },
399
+ },
400
+ ],
401
+ })
402
+
403
+ return { key }
404
+ },
405
+
406
+ async grantPermissions(parameters) {
407
+ const { internal } = parameters
408
+ const { client, request, store } = internal
409
+
410
+ if (request.method !== 'wallet_grantPermissions')
411
+ throw new Error(
412
+ 'Cannot grant permissions for method: ' + request.method,
413
+ )
414
+
415
+ const [{ address, ...permissions }] = request._decoded.params
416
+
417
+ // Parse permissions request into a structured key.
418
+ const key = await PermissionsRequest.toKey(permissions, {
419
+ chainId: client.chain.id,
420
+ })
421
+ if (!key) throw new Error('no key found.')
422
+
423
+ const permissionsRequest = z.encode(
424
+ PermissionsRequest.Schema,
425
+ PermissionsRequest.fromKey(key),
426
+ )
427
+
428
+ // Send a request off to the dialog to grant the permissions.
429
+ const provider = getProvider(store)
430
+ await provider.request({
431
+ method: 'wallet_grantPermissions',
432
+ params: [permissionsRequest],
433
+ })
434
+
435
+ return { key }
436
+ },
437
+
438
+ async loadAccounts(parameters) {
439
+ const { internal } = parameters
440
+ const { client, config, store } = internal
441
+ const { storage } = config
442
+
443
+ const provider = getProvider(store)
444
+
445
+ const request = internal.request as z.input<
446
+ typeof RpcSchema_porto.wallet_connect.Request
447
+ > & {
448
+ _decoded: RpcSchema_porto.wallet_connect.Request
449
+ }
450
+
451
+ if (
452
+ request.method !== 'wallet_connect' &&
453
+ request.method !== 'eth_requestAccounts'
454
+ )
455
+ throw new Error('Cannot load accounts for method: ' + request.method)
456
+
457
+ const accounts = await (async () => {
458
+ const [params] = request._decoded.params ?? []
459
+ const { capabilities } = params ?? {}
460
+
461
+ const authUrl = getAuthUrl(
462
+ capabilities?.signInWithEthereum?.authUrl ?? config.authUrl,
463
+ { storage },
464
+ )
465
+
466
+ const signInWithEthereum =
467
+ request.params?.[0]?.capabilities?.signInWithEthereum
468
+
469
+ // Parse provided (RPC) key into a structured key.
470
+ const key = await PermissionsRequest.toKey(
471
+ capabilities?.grantPermissions,
472
+ {
473
+ chainId: client.chain.id,
474
+ },
475
+ )
476
+
477
+ // Convert the key into a permissions request.
478
+ const permissionsRequest = key
479
+ ? z.encode(
480
+ PermissionsRequest.Schema,
481
+ PermissionsRequest.fromKey(key),
482
+ )
483
+ : undefined
484
+
485
+ // Send a request to the dialog.
486
+ const { accounts } = await provider.request({
487
+ method: 'wallet_connect',
488
+ params: [
489
+ {
490
+ ...request.params?.[0],
491
+ capabilities: {
492
+ ...request.params?.[0]?.capabilities,
493
+ grantPermissions: permissionsRequest,
494
+ signInWithEthereum:
495
+ authUrl || signInWithEthereum
496
+ ? {
497
+ ...signInWithEthereum,
498
+ authUrl: authUrl!,
499
+ }
500
+ : undefined,
501
+ },
502
+ },
503
+ ],
504
+ })
505
+
506
+ return Promise.all(
507
+ accounts.map(async (account) => {
508
+ const adminKeys = account.capabilities?.admins
509
+ ?.map((key) => Key.from(key))
510
+ .filter(Boolean) as readonly Key.Key[] | undefined
511
+ const sessionKeys = account.capabilities?.permissions
512
+ ?.map((permission) => {
513
+ try {
514
+ const key_permission = Permissions.toKey(
515
+ z.decode(Permissions.Schema, permission),
516
+ )
517
+ if (key_permission.id === key?.id)
518
+ return {
519
+ ...key_permission,
520
+ ...key,
521
+ permissions: key_permission.permissions,
522
+ }
523
+ return key_permission
524
+ } catch {
525
+ return undefined
526
+ }
527
+ })
528
+ .filter(Boolean) as readonly Key.Key[] | undefined
529
+
530
+ const signInWithEthereum_response = await (async () => {
531
+ if (!account.capabilities?.signInWithEthereum) return
532
+ const { message, signature } =
533
+ account.capabilities.signInWithEthereum
534
+
535
+ if (!authUrl)
536
+ return {
537
+ message,
538
+ signature,
539
+ }
540
+
541
+ const { token } = await Siwe.authenticate({
542
+ address: account.address,
543
+ authUrl,
544
+ message,
545
+ signature,
546
+ })
547
+ return {
548
+ message,
549
+ signature,
550
+ token,
551
+ }
552
+ })()
553
+
554
+ return {
555
+ ...Account.from({
556
+ address: account.address,
557
+ keys: [...(adminKeys ?? []), ...(sessionKeys ?? [])],
558
+ }),
559
+ signInWithEthereum: signInWithEthereum_response,
560
+ } as const
561
+ }),
562
+ )
563
+ })()
564
+
565
+ return {
566
+ accounts,
567
+ }
568
+ },
569
+
570
+ async prepareCalls(parameters) {
571
+ const { account, internal } = parameters
572
+ const { store, request } = internal
573
+
574
+ if (request.method !== 'wallet_prepareCalls')
575
+ throw new Error('Cannot prepare calls for method: ' + request.method)
576
+
577
+ if (!renderer.supportsHeadless)
578
+ return fallback.actions.prepareCalls(parameters)
579
+
580
+ const feeToken = await resolveFeeToken(internal, parameters)
581
+
582
+ const provider = getProvider(store)
583
+ const result = z.decode(
584
+ RpcSchema_porto.wallet_prepareCalls.Response,
585
+ await provider.request({
586
+ ...request,
587
+ params: [
588
+ {
589
+ ...request.params?.[0],
590
+ capabilities: {
591
+ ...request.params?.[0]?.capabilities,
592
+ feeToken,
593
+ },
594
+ },
595
+ ],
596
+ }),
597
+ )
598
+
599
+ return {
600
+ account,
601
+ chainId: Number(result.chainId),
602
+ context: result.context as any,
603
+ digest: result.digest,
604
+ key: result.key,
605
+ typedData: result.typedData,
606
+ }
607
+ },
608
+
609
+ async prepareUpgradeAccount(parameters) {
610
+ const { internal } = parameters
611
+ const { client, store, request } = internal
612
+
613
+ if (request.method !== 'wallet_prepareUpgradeAccount')
614
+ throw new Error(
615
+ 'Cannot prepare upgrade for method: ' + request.method,
616
+ )
617
+
618
+ if (!renderer.supportsHeadless)
619
+ return fallback.actions.prepareUpgradeAccount(parameters)
620
+
621
+ // Extract the capabilities from the request.
622
+ const [{ capabilities }] = request._decoded.params ?? [{}]
623
+
624
+ // Parse the authorize key into a structured key.
625
+ const key = await PermissionsRequest.toKey(
626
+ capabilities?.grantPermissions,
627
+ {
628
+ chainId: client.chain.id,
629
+ },
630
+ )
631
+
632
+ // Convert the key into a permission.
633
+ const permissionsRequest = key
634
+ ? z.encode(PermissionsRequest.Schema, PermissionsRequest.fromKey(key))
635
+ : undefined
636
+
637
+ // Send a request off to the dialog to prepare the upgrade.
638
+ const provider = getProvider(store)
639
+ const { context, digests } = await provider.request({
640
+ ...request,
641
+ params: [
642
+ {
643
+ ...request.params?.[0],
644
+ capabilities: {
645
+ ...request.params?.[0]?.capabilities,
646
+ grantPermissions: permissionsRequest,
647
+ },
648
+ },
649
+ ],
650
+ })
651
+
652
+ type Context = { account: Account.Account }
653
+ const keys = (context as Context).account.keys?.map((k) => {
654
+ if (k.id === key?.id) return { ...k, ...key }
655
+ return k
656
+ })
657
+
658
+ return {
659
+ context: {
660
+ ...(context as Context),
661
+ account: { ...(context as Context).account, keys },
662
+ },
663
+ digests,
664
+ }
665
+ },
666
+
667
+ async revokeAdmin(parameters) {
668
+ const { account, id, internal } = parameters
669
+ const { store, request } = internal
670
+
671
+ if (request.method !== 'wallet_revokeAdmin')
672
+ throw new Error('Cannot revoke admin for method: ' + request.method)
673
+
674
+ const key = account.keys?.find((key) => key.id === id)
675
+ if (!key) return
676
+
677
+ // Cannot revoke the only WebAuthn key left
678
+ if (
679
+ key.type === 'webauthn-p256' &&
680
+ account.keys?.filter((key) => key.type === 'webauthn-p256').length ===
681
+ 1
682
+ )
683
+ throw new Error('revoke the only WebAuthn key left.')
684
+
685
+ const feeToken = await resolveFeeToken(internal, parameters)
686
+
687
+ const provider = getProvider(store)
688
+ return await provider.request({
689
+ ...request,
690
+ params: [
691
+ {
692
+ ...request.params?.[0],
693
+ capabilities: {
694
+ ...request.params?.[0]?.capabilities,
695
+ feeToken,
696
+ },
697
+ },
698
+ ],
699
+ })
700
+ },
701
+
702
+ async revokePermissions(parameters) {
703
+ const { account, id, internal } = parameters
704
+ const { store, request } = internal
705
+
706
+ if (request.method !== 'wallet_revokePermissions')
707
+ throw new Error(
708
+ 'Cannot revoke permissions for method: ' + request.method,
709
+ )
710
+
711
+ const key = account.keys?.find((key) => key.id === id)
712
+ if (!key) return
713
+
714
+ // We shouldn't be able to revoke admins.
715
+ if (key.role === 'admin') throw new Error('cannot revoke permissions.')
716
+
717
+ const provider = getProvider(store)
718
+ return await provider.request(request)
719
+ },
720
+
721
+ async sendCalls(parameters) {
722
+ const {
723
+ account,
724
+ asTxHash,
725
+ calls,
726
+ internal,
727
+ merchantUrl,
728
+ requiredFunds,
729
+ } = parameters
730
+ const { client, store, request } = internal
731
+
732
+ const provider = getProvider(store)
733
+
734
+ const feeToken = await resolveFeeToken(internal, parameters)
735
+
736
+ // Try and extract an authorized key to sign the calls with.
737
+ const key = await Mode.getAuthorizedExecuteKey({
738
+ account,
739
+ calls,
740
+ permissionsId: parameters.permissionsId,
741
+ })
742
+
743
+ // If a session key is found, try execute the calls with it
744
+ // without sending a request to the dialog. If the key does not
745
+ // have permission to execute the calls, fall back to the dialog.
746
+ if (key && key.role === 'session') {
747
+ if (!renderer.supportsHeadless)
748
+ return fallback.actions.sendCalls(parameters)
749
+
750
+ try {
751
+ // TODO: use eventual Viem Action.
752
+ const req = await provider.request(
753
+ z.encode(RpcSchema_porto.wallet_prepareCalls.Request, {
754
+ method: 'wallet_prepareCalls',
755
+ params: [
756
+ {
757
+ calls,
758
+ capabilities: {
759
+ ...(request._decoded.method === 'wallet_sendCalls'
760
+ ? request._decoded.params?.[0]?.capabilities
761
+ : undefined),
762
+ feeToken,
763
+ merchantUrl,
764
+ requiredFunds,
765
+ },
766
+ chainId: client.chain.id,
767
+ from: account.address,
768
+ key,
769
+ },
770
+ ],
771
+ }),
772
+ )
773
+
774
+ const quotes = req.capabilities?.quote?.quotes ?? []
775
+ const hasFeeDeficit = quotes.some((quote, index) => {
776
+ const isMultichainDestination =
777
+ index === quotes.length - 1 && quotes.length > 1
778
+ if (isMultichainDestination) return false
779
+ return Hex.toBigInt(quote.feeTokenDeficit) > 0n
780
+ })
781
+ if (hasFeeDeficit) throw new Error('insufficient funds')
782
+
783
+ const signature = await Key.sign(key, {
784
+ address: null,
785
+ payload: req.digest,
786
+ wrap: false,
787
+ })
788
+
789
+ // TODO: use eventual Viem Action.
790
+ const result = await provider.request({
791
+ method: 'wallet_sendPreparedCalls',
792
+ params: [
793
+ {
794
+ ...req,
795
+ signature,
796
+ },
797
+ ],
798
+ })
799
+
800
+ const response = result[0]
801
+ if (!response) throw new Error('id not found')
802
+
803
+ if (asTxHash) {
804
+ const { id, receipts, status } = await waitForCallsStatus(
805
+ client,
806
+ {
807
+ id: response.id,
808
+ pollingInterval: 500,
809
+ },
810
+ )
811
+ if (!receipts?.[0]) {
812
+ if (status === 'success')
813
+ throw new Provider.UnknownBundleIdError({
814
+ message: 'Call bundle with id: ' + id + ' not found.',
815
+ })
816
+ throw new RpcResponse.TransactionRejectedError({
817
+ message:
818
+ 'Transaction failed under call bundle id: ' + id + '.',
819
+ })
820
+ }
821
+ return {
822
+ id: receipts[0].transactionHash,
823
+ }
824
+ }
825
+
826
+ return response
827
+ } catch {}
828
+ }
829
+
830
+ if (request.method === 'eth_sendTransaction') {
831
+ // Send a transaction request to the dialog.
832
+ const id = await provider.request({
833
+ ...request,
834
+ params: [
835
+ {
836
+ ...request.params?.[0],
837
+ // @ts-expect-error
838
+ capabilities: {
839
+ feeToken,
840
+ merchantUrl,
841
+ },
842
+ },
843
+ ],
844
+ })
845
+
846
+ return { id }
847
+ }
848
+
849
+ if (request.method === 'wallet_sendCalls') {
850
+ // Send calls request to the dialog.
851
+ const result = await provider.request({
852
+ method: 'wallet_sendCalls',
853
+ params: [
854
+ {
855
+ ...request.params?.[0],
856
+ capabilities: {
857
+ ...request.params?.[0]?.capabilities,
858
+ feeToken,
859
+ merchantUrl,
860
+ },
861
+ },
862
+ ],
863
+ })
864
+
865
+ return result
866
+ }
867
+
868
+ throw new Error('Cannot execute for method: ' + request.method)
869
+ },
870
+
871
+ async sendPreparedCalls(parameters) {
872
+ const { internal } = parameters
873
+ const { store, request } = internal
874
+
875
+ if (request.method !== 'wallet_sendPreparedCalls')
876
+ throw new Error(
877
+ 'Cannot send prepared calls for method: ' + request.method,
878
+ )
879
+
880
+ if (!renderer.supportsHeadless)
881
+ return fallback.actions.sendPreparedCalls(parameters)
882
+
883
+ const provider = getProvider(store)
884
+ const result = await provider.request(request)
885
+
886
+ const id = result[0]?.id
887
+ if (!id) throw new Error('id not found')
888
+
889
+ return id
890
+ },
891
+
892
+ async signPersonalMessage(parameters) {
893
+ const { internal } = parameters
894
+ const { store, request } = internal
895
+
896
+ if (request.method !== 'personal_sign')
897
+ throw new Error(
898
+ 'Cannot sign personal message for method: ' + request.method,
899
+ )
900
+
901
+ const provider = getProvider(store)
902
+ return await provider.request(request)
903
+ },
904
+
905
+ async signTypedData(parameters) {
906
+ const { internal } = parameters
907
+ const { store, request } = internal
908
+
909
+ if (request.method !== 'eth_signTypedData_v4')
910
+ throw new Error(
911
+ 'Cannot sign typed data for method: ' + request.method,
912
+ )
913
+
914
+ const provider = getProvider(store)
915
+ return await provider.request(request)
916
+ },
917
+
918
+ async switchChain(parameters) {
919
+ const { internal } = parameters
920
+ const { store, request } = internal
921
+
922
+ if (request.method !== 'wallet_switchEthereumChain')
923
+ throw new Error('Cannot switch chain for method: ' + request.method)
924
+
925
+ if (!renderer.supportsHeadless) return
926
+
927
+ const provider = getProvider(store)
928
+ return await provider.request(request)
929
+ },
930
+
931
+ async upgradeAccount(parameters) {
932
+ const { account, internal } = parameters
933
+ const { store, request } = internal
934
+
935
+ if (request.method !== 'wallet_upgradeAccount')
936
+ throw new Error(
937
+ 'Cannot upgrade account for method: ' + request.method,
938
+ )
939
+
940
+ const provider = getProvider(store)
941
+ await provider.request(request)
942
+
943
+ return { account }
944
+ },
945
+
946
+ async verifyEmail(parameters) {
947
+ const { internal } = parameters
948
+ const { request, store } = internal
949
+
950
+ if (request.method !== 'account_verifyEmail')
951
+ throw new Error('Cannot verify email for method: ' + request.method)
952
+
953
+ const provider = getProvider(store)
954
+ return await provider.request(request)
955
+ },
956
+ },
957
+ config: parameters,
958
+ name: 'dialog',
959
+ setup(parameters) {
960
+ const { internal } = parameters
961
+ const { store } = internal
962
+
963
+ const dialog = renderer.setup({
964
+ host,
965
+ internal,
966
+ theme,
967
+ themeController,
968
+ })
969
+
970
+ const unsubscribe = store.subscribe(
971
+ (x) => x.requestQueue,
972
+ (requestQueue) => {
973
+ for (const listener of listeners) listener(requestQueue)
974
+
975
+ const requests = requestQueue
976
+ .map((x) => (x.status === 'pending' ? x : undefined))
977
+ .filter(Boolean) as readonly QueuedRequest[]
978
+ dialog.syncRequests(requests).catch(() => {})
979
+ if (requests.length === 0) dialog.close()
980
+ },
981
+ )
982
+
983
+ return () => {
984
+ unsubscribe()
985
+ dialog.destroy()
986
+ }
987
+ },
988
+ })
989
+ }
990
+
991
+ export declare namespace dialog {
992
+ type Parameters = {
993
+ /**
994
+ * Mode to fall back to if the renderer does not support background
995
+ * operations (e.g. popups and web views).
996
+ *
997
+ * @default `Mode.relay()`
998
+ */
999
+ fallback?: Mode.Mode | undefined
1000
+ /**
1001
+ * URL of the dialog embed.
1002
+ * @default 'http://id.porto.sh/dialog'
1003
+ */
1004
+ host?: string | undefined
1005
+ /**
1006
+ * Dialog renderer.
1007
+ * @default Dialog.iframe()
1008
+ */
1009
+ renderer?: Dialog.Dialog | undefined
1010
+ /**
1011
+ * Theme to apply to the dialog.
1012
+ * @default undefined
1013
+ */
1014
+ theme?: ThemeFragment | undefined
1015
+ /**
1016
+ * Theme controller.
1017
+ * @default undefined
1018
+ */
1019
+ themeController?: Dialog.ThemeController | undefined
1020
+ }
1021
+ }
1022
+
1023
+ export async function resolveFeeToken(
1024
+ internal: Mode.ActionsInternal,
1025
+ parameters?: {
1026
+ feeToken?: Token.Symbol | Address.Address | undefined
1027
+ },
1028
+ ) {
1029
+ const {
1030
+ config: { feeToken },
1031
+ } = internal
1032
+ const { feeToken: overrideFeeToken } = parameters ?? {}
1033
+ return overrideFeeToken ?? feeToken
1034
+ }
1035
+
1036
+ function getAuthUrl(
1037
+ apiUrl: string | Siwe.AuthUrl | undefined,
1038
+ { storage }: { storage: Storage },
1039
+ ) {
1040
+ if (!apiUrl) return undefined
1041
+
1042
+ const authUrl = Siwe.resolveAuthUrl(
1043
+ apiUrl,
1044
+ typeof window !== 'undefined' ? window.location.origin : undefined,
1045
+ )
1046
+
1047
+ // Store the resolved auth URL for future use (e.g., disconnect)
1048
+ if (authUrl) storage.setItem('porto.authUrl', authUrl)
1049
+
1050
+ return authUrl
1051
+ }